NodeBots
Robots powered by JavaScript
FLISOL - 23 Abril 2016

@jotarios_
Hola, soy Jorge!

"Hoy programo robots con @jotarios_ en #FLISOL2016"
From blinking lights to fly drones

NodeBots
¿Qué veremos?

¡Momento de divertirnos!

-
Qué es NodeBots -
Hardware Básico -
Categorias de NodeBots -
Arduino -
Johnny-Five -
Instrucciones de Instalación -
Demo time -
References
-
Qué es NodeBots
-
Hardware Básico
-
Categorias de NodeBots
-
Arduino
-
Johnny-Five
-
Instrucciones de Instalación
-
Demo time
-
References
NodeBots

Cualquier tipo de máquina impulsada por Javascript y NodeJS

El "cerebro" de un NodeBot puede ser cualquier MicroController

Micro-Controllers
-
Difíciles para empezar y aprender
- Super difíciles de usar
-
Soporte de software pobre
-
Dirigido a Ingeniería Electrónica, etc

-
Usan menos energía que una pc normal
-
Diminutos
-
Operan con baterías
-
Programados para realizar activadades

Wrapped NodeBots
Categorías de NodeBots
- Estos no ejecutan JS internamente; ellos usan una API que es usada a través de JS. Necesitan de una computadora/server ejecutando node.
- p.e. Arduino, Sphero, SparkCore, etc
Native NodeBots
- Estas plataformas ejecutan JS nativamente, no necesitan ninguna computadora corriendo node.
- p.e. Tessel, Espurino, etc
Itty-Bitty Computers
- Estos son 'computadoras pequeñas' con GPIO pins. Ellos ejecutan node desde su terminal.
- p.e. Raspberry Pi, BeagleBone Black, etc


Tú no necesitas permiso de nadie para crear cosas asombrosas




Arduino es una plataforma open-source diseñada para facilitar el uso de hardware para todos





Arduino UNO
- Cerebro de los Wrapped NodeBots
- Los datos pasan a través vía código, GPIO devices, etc.
- Necesita External WiFi/Ethernet Adaptor
- Consume menos energía
- Se programa usando C


Arduino IDE



¿Por qué C?

johnny-five
"jQuery for Internet of Things"


¿Por qué no JS?

Antes de empezar: Arduino - Firmata Protocol




Hardware Básico



Hardware Básico - Breadboard
Usado para prototipar circuitos





Hardware Básico - LED
Emite luz cuando una pequeña corriente pasa a través de él.




Hardware Básico - Resistor
Restringe la cantidad de corriente que puede fluir a través del circuito.




Hardware Básico - Resistor

Violet



Hardware Básico - Recordando los Colores
Better Be Right Or Your Great Big Venture Goes West
BBROYGBVGW
0 - Black
1 - Brown
2 - Red
4 - Yellow
3 - Orange
5 - Green
6 - Blue
7 - Violet
8 - Grey
9 - White
BBROYGBVGW
mnemotécnica para recordar el color
Bye Bye Rosie, Off You Go, Bristol Via Great Western
B.B. ROY of Great Britain has a Very Good Wife
Bye Bye ROsi, Yo Gané un Boleto de Viaje a George Washington



Hardware Básico - Jumper Wires

Un jumper es un cable eléctrico corto con una punta sólida en cada extremo, que se utiliza para interconectar los componentes en una placa.



Hardware Básico - Servo
Toma un pulso y lo convierte en una posición angular del eje de salida.




Hardware Básico - DC Motor
Gira cuando una corriente pasa a través de él




Ahora. Tú conoces todo acerca de Electrónica
Por lo menos, lo mismo que yo.



¿Cuándo te volviste una experto en hardware?
LAST NIGHT


Si mañana, te preguntan...
Primeras impresiones




Tú puedes construir y programar Robots




- Usa una terminal
- Instala NodeJS
- Codea JavaScript
- Usa callbacks



-
framework para robótica basado en node.js
-
"jQuery of IoT"
-
Normaliza el Hardware a través de un API
-
Ponle un interfaz a tu Robot
-
-
JS no se ejecuta en las placas de Arduino
-
Boards como Tessel pueden ejecutar JS nativamente
-
Usa Firmata para comunicarse con la plaa
-
Hace un Hardware más accesible
-
Gran oportunidad para aprender node.js

johnny-five
Por qué Johnny-Five



Prepárense para el

DEMO



Johnny-Five - Getting Started
npm install johnny-five
1
/* blink-led.js */
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function() {
var led = new five.Led(13);
led.blink(500);
});

$ node blink-led.js
2
3



Parpadea tu LED - ON/OFF

Contribuyendo a la Comunidad



Cuestiones de Documentación
¡Desde el más simple Blinking LED hasta el HulkBuster, la documentación importa!







Cuestiones de Documentación

Cuestiones de Documentación


Documenta cuando hagas mal

No solo documentes cuando esté bien




node.js
Quadcopter
NodeCopter
Ahora, a dominar el mundo!



node-copter




powered by ar-drone




Demo




Espero que estén emocionados
Happy Hacking!! Gracias!

Referencias
Comunidad & Movimientos
API Docs & Ejemplos
Inspiración
NodeBots - Flisol 2016
By Jorge Rios
NodeBots - Flisol 2016
My Talk on NodeBots at FLISOL April 2016 Conference
- 49