Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Javascript meets hardware - Codemotion 2013

Javascript meets hardware - Codemotion 2013

Julio Galarón

October 20, 2013
Tweet

More Decks by Julio Galarón

Other Decks in Programming

Transcript

  1. Paso 1 : Hacer una listas de las interfaces necesarias.

    Paso 2 : Examinar que tipo de arquitectura necesita el software. Paso 3 : Seleccionar una arquitectura. Paso 4 : Identificar las necesidades de memoria. Paso 5 : Empezar con la búsqueda del microcontrolador. Paso 6 : Examinar los costes y Costs and Power Constraints Paso 7 : Verificar la disponibilidad. Paso 8 : Seleccionar un KIT de desarrollo. Paso 9 : Investigar qué compiladores y dev-tools son necesarios. Paso 10: Empezar a investigar con la plataforma. Con conocimientos en hardware:
  2. Iniciación al hardware: Paso 1 : Buscar una plataforma bien

    documentada y con numerosos ejemplos. Paso 2 : Precio del KIT de desarrollo bajo. Paso 3 : *IDE de programación multiplataforma. Paso 4 : *Open hardware/software. * No es estrictamente necesario.
  3. * Ejemplo de blinking led (el “Hello world” del hardware)

    var tessel = require('tessel'); var servos = require('servo-pca9685') .connect(tessel.port('A')); var degrees = 0; setInterval(function () { servos.moveServo(1, degrees); degrees = degrees == 0 ? 180 : 0; }, 500); #include <Servo.h> Servo servo; uint8_t degrees = 0; void setup() { servo.attach(9); } void loop(){ servo.write(degrees); delay(500); degrees = degrees == 0 ? 180 : 0; } * Ejemplo de control de un motor servo. Izquierda código JS para plataforma Tessel, derecha código en C para Arduino.
  4. Documentación relacionada: Web de oficial: http://tessel.io/ Lenguaje de programación: Javascript

    NodeJS Información relacionada: http://makezine.com/magazine/first-look-javascript-micro-controllers-for-web-developers/
  5. * Ejemplo de blinking led (el “Hello world” del hardware).

    Izquierda código JS para plataforma Espruino, derecha código en C para Arduino. setInterval (function(){ a=!a; digitalWrite (LED1,a); },1000); void setup(){ pinMode(LED1,OUTPUT); } void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }
  6. Documentación relacionada: Web oficial: http://www.espruino.com Lenguaje de programación: Javascript Información

    relacionada: http://makezine.com/magazine/first-look-javascript-micro-controllers-for-web-developers/
  7. *Desarrollo no nativo en JS * Existen numerosas plataformas en

    el mercado. Se han elegido las más representativas o peculiares.
  8. Documentación relacionada: Web oficial: http://arduino.cc Lenguaje de programación: C/C++ Listado

    de placas Arduino y compatibles: https://en.wikipedia.org/wiki/List_of_Arduino_boards_and_compatible_systems
  9. Documentación relacionada: Web oficial: http://vinciduino.com/esp/ Lenguaje de programación: C/C++ Entrada

    en foro de Arduino sobre el desarrollo de la placa Vinciduino: http://arduino.cc/forum/index.php?topic=78781.0
  10. Documentación relacionada: Lenguaje de programación: C/C++ Review en español sobre

    la plataforma Launchpad y el IDE Energía: http://webdelcire.com/wordpress/archives/2127 Proyecto LaunchPad Energía: https://github.com/energia/Energia/wiki/Getting-Started Web de la plataforma LaunchPad en TI: http://www.ti.com/ww/en/launchpad/msp430_head.html Wiki de la plataforma Launchpad MSP430: http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_%28MSP-EXP430G2%29
  11. Documentación relacionada: Lenguaje de programación: C# (.NET Micro Framework) Wiki

    sobre desarrollo con la plataforma Fez: http://wiki.tinyclr.com/index.php?title=Main_Page Web oficial: http://www.ghielectronics.com/catalog/product/256
  12. *Plataforma ARM Linux + NodeJS * Existen numerosas plataformas en

    el mercado. Se han elegido las más representativas o peculiares.
  13. Documentación relacionada: Web de la plataforma UDoo: http://www.udoo.org/ Web de

    la plataforma Olinuxino A13: https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-WIFI-DEV/ Web de la plataforma Raspberry: http://www.raspberrypi.org/ Web de la plataforma Arduino Galileo: http://arduino.cc/en/ArduinoCertified/IntelGalileo Web de la plataforma BeagleBone Black: http://beagleboard.org/Products/BeagleBone%20Black
  14. s4a (Scratch for Arduino): http://seaside.citilab.eu/scratch/arduino http://www.arduteka.com/tag/s4a/ WebSocket en Node.js: http://socket.io/

    http://einaros.github.com/ws/ Frameworks para control de placas Arduino mediante Javascript: Johnny-Five : https://github.com/rwldrn/johnny-five Breakoutjs : http://breakoutjs.com/ Nododuino : http://semu.github.com/noduino/ Comunicación mediante puerto serie con Node.js: https://github.com/voodootikigod/node-serialport Comunicación mediante I2C y SPI con Node.js: https://npmjs.org/package/i2c https://github.com/RussTheAerialist/node-spi GPIO: https://github.com/EnotionZ/GpiO
  15. Información relacionada: LXJS 2012 - Elijah Insua - Hardware with

    Javascript and CNC's https://www.youtube.com/watch?v=XbXcdhYwR8I
  16. var arDrone = require('ar-drone'); var client = arDrone.createClient(); client.takeoff(); client.after(5000,

    function() { this.clockwise(0.5); }).after(3000, function() { this.stop(); this.land(); }); * Ejemplo de comunicación con AR-Drone mediante nodeJS.
  17. Documentación relacionada: Librería para el control de AR.Drone 2.0 mediante

    nodeJS: https://github.com/felixge/node-ar-drone NodeJS en AR.Drone: https://gist.github.com/maxogden/4152815 LXJS 2012 - Felix Geisendörfer - Programming flying robots with Node.js: http://www.youtube.com/watch?v=jl5v3bsMH_E Flying robots & node.js: http://nodecopter.com/ RC Helicopter, Arduino and of course, the Kinect: http://channel9.msdn.com/coding4fun/kinect/RC-Helicopter-Arduino-and-of-course-the-Kinect
  18. Documentación relacionada: Librería para control lanzador misiles USB Node.js: https://github.com/tristil/usb-rocket-launcher-node

    Librería NodeJs para control de dispositivos USB HID https://github.com/hanshuebner/node-hid
  19. *Plataformas software para IOT. Envío, actuación, visualización de datos y

    data logging * Existen numerosas plataformas en el mercado. Se han elegido las más representativas o peculiares.