Node.js para embarcados

Embed Size (px)

Citation preview

  1. 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. 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. 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
  4. 4. 3.3. Perifricos!Perifricos! ** Botes (teclado, controles..)Botes (teclado, controles..) ** Sensores, perifricosSensores, perifricos ** Tela, ledsTela, leds ** Motores, compassosMotores, compassos ** Wifi, bluetooth, rdioWifi, bluetooth, rdio
  5. 5. 4.4. Aplicaes VeculosAplicaes Veculos
  6. 6. 4.4. Aplicaes RobticaAplicaes Robtica
  7. 7. 4.4. Aplicaes Impressoras 3DAplicaes Impressoras 3D
  8. 8. 4.4. Aplicaes DronesAplicaes Drones
  9. 9. 4.4. Aplicaes IoTAplicaes IoT
  10. 10. 4.4. Aplicaes MedicinaAplicaes Medicina
  11. 11. 5.5. Para iniciar bastaPara iniciar basta ** Engenharia eletrnicaEngenharia eletrnica ** C/C++C/C++ ** JavaJava ** PythonPython ** LuaLua
  12. 12. 5.5. Consegui aprender tudoConsegui aprender tudo!!
  13. 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
  14. 14. 6.6. Single Board ComputersSingle Board Computers ** U$ 35 Raspberry PiU$ 35 Raspberry Pi ** U$ 30 BeagleboneU$ 30 Beaglebone ** U$ 70 CubieboardU$ 70 Cubieboard ** U$ 35 TesselU$ 35 Tessel ** U$ 50 Intel GalileoU$ 50 Intel Galileo ** Odroid, Banana Pi, Radxa...Odroid, Banana Pi, Radxa...
  15. 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. 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. 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. 18. 9.9. ExemplosExemplos
  19. 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!
  20. 20. 11.11. Auf wiedersehenAuf wiedersehen ** FontesFontes -- http://goo.gl/TIRgCjhttp://goo.gl/TIRgCj -- https://goo.gl/qycI25https://goo.gl/qycI25 -- https://goo.gl/i3KiVOhttps://goo.gl/i3KiVO -- https://goo.gl/r4jBvchttps://goo.gl/r4jBvc -- https://goo.gl/pMWFuhhttps://goo.gl/pMWFuh -- http://goo.gl/ua9pechttp://goo.gl/ua9pec