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