Skip to content

Instantly share code, notes, and snippets.

@alanhoff
Created July 23, 2015 03:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alanhoff/ba78fff113d63c5c0efc to your computer and use it in GitHub Desktop.
Save alanhoff/ba78fff113d63c5c0efc to your computer and use it in GitHub Desktop.
* Aplicações modernas
- Carros
- http://imguol.com/blogs/8/files/2014/06/googleselfdrive.gif
- Robótica
- http://gifsec.com/wp-content/uploads/GIF/2014/06/GIF-Robot-feeding-FAIL.gif
- Impressoras 3D
- https://a248.e.akamai.net/f/248/1/1/www.geek.com/wp-content/uploads/2014/03/5.gif
- Drones
- http://ak-hdl.buzzfed.com/static/2014-04/enhanced/webdr04/19/6/anigif_enhanced-1915-1397902864-1.gif
- IoT
- https://learn.adafruit.com/system/assets/assets/000/015/217/medium800/raspberry_pi_raspanimated.gif
- Medicina
- https://farm4.staticflickr.com/3248/2686539458_d03bc15edf_o_d.gif
* Sistemas embarcados
- An embedded system is a computer system with a dedicated function within a
larger mechanical or electrical system, often with real-time computing constraints.
- Características
- Eficiência energética
- Tamanho do código reduzido
- Run-time simples
- Peso reduzido
- Preço reduzido
- Interface de usuário dedicada
- Interface de usuários: botões, telas, teclados, touchscreen
- Periféricos (como o sistema se comunica com o exterior): portas de comunicação serial, USB, MMC (SD Card, Flash, etc..),
network (wireless, ethernet, etc...), GPIO (sensores em geral), debugging (JTAG, ISP, etc...)
* As linguagens mais comuns
- C, C++, Java, Python, Lua
- Como rodar um interpretador gigantesco em um sistema embarcado?
* Ascensão dos computadores de placa única (Embedded Single Board Computers, Single Board Computer, SBC)
- As caracteríscas originais dos sistemas embarcados continuam (em essência)
- Tudo junto: GPIO, processamento, memória, armazenamento e network
- Um computador completo
- Um viva à arquitetura ARM
- Exemplos
- Raspberry Pi
- Beaglebone
- ODroid-C1
- Banana Pi
- Radxa
- Cubieboard
- Galileo
- Tessel
- Espruino
- E agora, é possível rodar um interpretador?
- Node.js em sistemas embarcados
- Vantagens
- Open Source
- Eficiência de hardware
- Tempo de desenvolvimento
- JS / Não precisa compilar
- Gerenciados de pacotes NPM
- Event-Driven e streams nativos
- I/O não bloqueante
- Cross-compiling
- Runtime leve e estático que já vem com várias ferramentas
- TCP / UDP
- Criptografia
- Arquivos de Sistema
- HTTP / HTTPS
- Compressão
- Embedável
- Desvantagens
- Poucos desenvolvedores até o momento
- Péssimo em trabalhos que necessitam de CPU
- Debug assíncrono
- Super desvantagens
- O sistema como um todo fica complexo
- Set padrão
- Linux
- Drivers
- Kernel básico
- Hardware
- Daemons
- Node.js
- Scripting fácil
- Cola entre a lógica e o hardware
- Exemplos
- Timer assíncrono
- GPIO led on/off
- Captura de uso de CPU e memória
- Principais pacotes
- libmraa
- serialport
- Sensores e periféricos!
- node-RED
- node-usb
- electron
* Fontes
- http://www.slideshare.net/manjunathan1804/embedded-systems-43439510 (aula sobre sistemas embcarcados)
- https://events.linuxfoundation.org/sites/events/files/slides/nodejs-presentation_0.pdf
- https://strongloop.com/strongblog/whats-new-node-js-v0-12-multiple-context-execution/
- https://en.wikipedia.org/wiki/Embedded_system
- https://en.wikipedia.org/wiki/Single-board_computer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment