1. Node.jsNode.js para embarcadospara embarcados Alan
HoffmeisterAlan Hoffmeister
https://github.com/alanhoffhttps://github.com/alanhoff
https://twitter.com/alan_hoffhttps://twitter.com/alan_hoff
https://alanhoff.comhttps://alanhoff.com
2. 1.1. Sistema embarcado?Sistema embarcado? An embedded system
is a computer systemAn embedded system is a computer system with a
dedicated function within a largerwith a dedicated function within
a larger mechanical or electrical system, often withmechanical or
electrical system, often with real-timereal-time computing
constraints.computing constraints.
3. 2.2. Caractersticas de um ESCaractersticas de um ES **
Eficincia energticaEficincia energtica ** Tamanho de cdigo
reduzidoTamanho de cdigo reduzido ** Runtime simplificadoRuntime
simplificado ** Peso reduzidoPeso reduzido ** Preo reduzidoPreo
reduzido ** Interface de usurio dedicadaInterface de usurio
dedicada
13. 6.6. Single Board ComputersSingle Board Computers ** Placas
mais robustasPlacas mais robustas ** Matem as caractersticas de um
sistemaMatem as caractersticas de um sistema embarcadoembarcado **
Trs tudo junto: GPIO, proc., mem., net.,Trs tudo junto: GPIO,
proc., mem., net., armazenamento...armazenamento... ** Um
computador completoUm computador completo ** Um brinde arquitetura
ARMUm brinde arquitetura ARM
15. 7.7. Linux + ARM + Node.js = Linux + ARM + Node.js = **
LinuxLinux - Kernel- Kernel - Drivers- Drivers - Controle de
Hardware- Controle de Hardware - Daemons- Daemons ** Node.jsNode.js
- Scripting- Scripting - Cola entre lgica e OS- Cola entre lgica e
OS
16. 8.8. Node.js em embarcadosNode.js em embarcados ** The
goodThe good - Free as FREE BEER- Free as FREE BEER - Baixo consumo
de energia- Baixo consumo de energia - Tempo de desenvolvimento-
Tempo de desenvolvimento - Esquea compilao, JS!- Esquea compilao,
JS! - Milhares de pacotes no NPM- Milhares de pacotes no NPM -
Eventos e streams nativos- Eventos e streams nativos - I/O no
bloqueante- I/O no bloqueante - Cross-compiling- Cross-compiling -
Runtime leve e independente- Runtime leve e independente -
Embedvel- Embedvel - Core rico em features- Core rico em
features
17. 8.8. Node.js em embarcadosNode.js em embarcados ** The
badThe bad - Ruim para CPU-bound tasks- Ruim para CPU-bound tasks -
Debug assncrono- Debug assncrono - Poucos desenvolvedores- Poucos
desenvolvedores ** The uglyThe ugly - Grandes poderes, grandes-
Grandes poderes, grandes responsabilidadesresponsabilidades
18. 9.9. ExemplosExemplos
19. 10.10. npm install --savenpm install --save **
libmraalibmraa - Sanitiza e padroniza componentes- Sanitiza e
padroniza componentes ** serialportserialport - Fale com seus
sensores e perifricos!- Fale com seus sensores e perifricos! **
node-REDnode-RED - Ferramenta visual para integrar harware,-
Ferramenta visual para integrar harware, APIs, servios onlineAPIs,
servios online ** node-usbnode-usb - Fcil manuseio de portas USB-
Fcil manuseio de portas USB ** electronelectron - Crie interfaces
em HTML!- Crie interfaces em HTML!