Manejo de un robot con node.js


Node.js es un entorno en tiempo de ejecución multiplataforma de código abierto  para  servidor , aunque como vamos a ver,  se puede usar para otros propósitos . Fue creado con el enfoque de ser útil en la creación de programas de red altamente escalables, como por ejemplo, servidores web. 

Es un lenguaje de programación ECMAScript, asíncrono, con I/O de datos en una arquitectura orientada a eventos y basado en el motor V8 de Goog asi que desde este punto de vista Node.js es similar en su propósito a Twisted o Tornado de Python, Perl Object Environment de Perl, libevent o libev de C, EventMachine de Ruby, vibe.d de D y JEE de Java existe Apache MINA, Netty, Akka, Vert.x, Grizzly o Xsocket.

Como nota  muy diferenciadora,al contrario que la mayoría del código JavaScript, no se ejecuta en un navegador, sino en el servidor.

Asimismo Node.js implementa algunas especificaciones de CommonJS   e  incluye un entorno REPL para depuración interactiva

Tal es la potencia de  Node.js  que ya existen plataformas basadas en este entorno para intereactuar con placas como Arduino ,Linino. Intel Edison, Raspberry pi,etc  en aplicaciones de Robotica o plataformas de IoT

Johnny – Five    es una Plataforma JavaScript Robótica  e  IO  lanzada por bocoup en 2012  y mantenida por una comunidad de desarrolladores de software apasionados e ingenieros de hardware (más de 75 desarrolladores han hecho contribuciones a la construcción de éste).

onny

Como  ejemplo de “Hola Mundo”  con un LED parpadeante sencilla , el  siguiente ejemplo para Arduino nos muestra lo sencillo que es hacerlo en el entorno de Johnny Five :

 

var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  var led = new five.Led(13);
  led.blink(500);
});

 

  • Ejecute el  códido Run: npm install johnny-five

 

Como ejemplo mas avanzado en el repositorio de github  (https://github.com/stylixboom/lr_motor ) Siriwat Kasamwattanarote   nos ensela  como podemos  controlar  un coche de juguete  directamente a través de SSH  (mediante  el terminal)  usando  Node.js.

Desde SSH no  se aceptan 2 teclas de flecha al mismo tiempo, es por eso que la forma en que gira a la izquierda / derecha no es tan suave (al cambiar las dos teclas en consecuencia) pero el funcionamiento es muy fluido

Los requerimientos son los siguientes:

 

Este proyecto es pues aprender a controlar dos motores ( izquierda – derecha) mediante el uso de la Raspberry Pi . El código proporcionado  está escrito en Node.js , y requiere un paquete de ‘ Pigpio ‘ para  acceder al puerto GPIO en la Raspberry Pi . ‘ Pulsación ‘ es escuchar a la entrada de teclado de la tecla de flecha ( arriba-abajo – izquierda – derecha) .

Este experimento apoya dos controladores de motor diferentes :

  • Toshiba – TB6612FNG Texas Instruments
  •  L293D

Notas:

-TB6612FNG es más eficiente , pero más caro (unos  10 $ ) , y se necesita soldadura .

 

TB6612FNG
Ref: http://www.robotshop.com/media/files/PDF/Datasheet%20713.pdf
Truth table
Input                           Output
IN1     IN2     PWM     STBY    OUT1    OUT2    Mode
H       H       H/L     H       L       L       Short brake
L       H       H       H       L       H       CCW
L       H       L       H       L       L       Short brake
H       L       H       H       H       L       CW
H       L       L       H       L       L       Short brake
L       L       H       H       OFF(High ohm)   Stop
H/L     H/L     H/L     L       OFF(High ohm)   Standby

-L293D es mucho más barato ( $ 0,6 ) y más fácil de utilizar con una placa.

L293D
Ref: http://www.robotplatform.com/howto/L293/motor_driver_1.html
Truth table
Input                   Function
PWM     IN1     IN2    
H       H       L       Reverse
H       L       H       Forward
H       H       H       Stop
H       L       L       Stop
L       X       X       Stop

En caso de usar la primera opcion , este es el esquema seguido: 





Una vez montado el circuito y ya vez tenga el código descargado  (https://github.com/stylixboom/lr_motor)  ,simplemente para ejecutarlo use :

                        $ sudo node app_t.js

Finalmente en el vídeo que os dejo a continuación podemos ver el conjunto del  robot utilizando una Raspberry Pi combinando NodeJS y el controlador de motores. .

Anuncios

LLegan los motores fueraborda e intraborda electricos


Por muy difícil que nos pueda resultar, la movilidad eléctrica ha llegado por sus innegables ventajas (como puede ser la ausencia de emisiones contaminantes, nulo mantenimiento  y altísimo  fiabilidad ) frente a la movilidad conducida por los  clásicos motores de combustión interna , y en efecto el movimiento es imparable  y  la evolución no acaba mas que empezar.

Dentro de la movilidad marina , es normal  que el “movimiento a lo  eléctrico” también sea seguido con interés   por idénticos motivos , en las que como es normal destaca la mayor fiabilidad y el coste de cada milla recorrida frente a los sistemas  convencionales.

Algunas ventajas de la motorización eléctrica:

  • Una  sóla pieza móvil (nada de correas, filtros, etc que complican la vida)
  • No hay mas manchas de aceite, ni gases de escape
  •  Sin ruido ni vibraciones
  •  No hay mantenimiento
  •  No hay monóxido de carbono
  •  No hay depósito de combustible
  •  El combustible seguirá aumentando de precio.

Sus bondades las conocen bien los aficionados a la pesca  ya que en agua dulce es indispensable para desplazarse con una embarcación sin ruidos que asusten a los cautos depredadores. En las aguas calmadas de los embalses, cualquier ruido se intensifica, y para una pesca activa moverse con sigilo sin llamar la atención de los peces es obligado. Estamos acostumbrados a ver bonitas embarcaciones al estilo americano equipadas con motores eléctricos, pero cuando hablamos del mar, la cosa cambia y se hace más extraño. Pero, ¿por qué? Acaso los peces son más confiados y les da igual el ruido, No, para nada. Es una cuestión de costumbres.

La tendencia es tan clara  que no solo existen motores para maniobra electricos , sino motores marinos completamente operativos para reemplazar  los clasicos motores marinos, tanto  intraborda como fueraborda.

Hoy en día  ya de hecho  existen muchos motores  intraborda marinos que se pueden encontrar comercialmente   , normalmente para altas potencias  diseñados para reemplazar los viejos motores de  combustión diesel.

motor

En cuanto a motores intraborda resumidamente estas son algunas de  sus características:

  • Potencias :desde  6  a 100 HP
  • Alimentación : desde 36v hasta 144V
  • Corriente : desde 70 hasta 270Amps

Igualmente también existen motores fueraborda eléctricos en un abanico muchísimo mas amplio que los intraborda  dada su gran versatilidad . Como característica llamativa suelen  incorporar el controlador del motor( normalmente del tipo bruslless )  dentro de la propia carcasa y también suelen ser de menor potencia que los motores  intraborda.

La  potencia  se suele medir  en libras de empuje, siendo lo normal  desde  las 20 libras hasta las 90 . A grandes rasgos diremos que para mover una pequeña neumática de menos de cuatro metros,   con un motor eléctrico de hasta 40 libras nos bastaría. Podremos movernos con soltura incluso cargando la embarcación. Si la embarcación es mayor o es una clásica de fibra, necesitamos los de mayores potencias para moverla sin problemas ( a mayor peso, más libras de empuje). !Incluso podemos colocar motores de apenas 20 libras a kayaks y catamaranes!.

Como ejemplo de motor fueraborda  de gran potencia a  un precio ajustado (140€en   Amazon)destaca  el modelo   86 LBS ETBM04-1BP  del fabricante Jagp86 LBS ETBM04-1BP  del fabricante Jago  destacando por una gran  potencia de propulsión de aprox. 2050 kg( 86 libras ) .La batería con el mismo rendimiento dura más tiempo gracias a la alta eficiencia energética del motor  ,el cual ademas puede ser monitorizado fácilmente gracias a que  lleva integrado un voltímetro con 10 LED .

El motor tiene 5 marchas hacia delante y 3 hacia atrás y se puede usar en aguas saladas pero es necesario limpiarlo minuciosamente después del uso .La hélice con profundidad de inmersión es  regulable y  la presión de la dirección también es regulable (la caja de control giratoria  rota 360º ).

También este motor  incluye sistema de inclinación rápida con  10 niveles de inclinación, ajusta el ángulo o eleva el motor sobre el agua
jago
INFORMACIÓN TÉCNICA:

Tamaño (L/An/Alt): aprox. 130/46,5/15,5 cm
Tamaño del eje (L): aprox. 914 mm
Peso: aprox. 9,2 kg
Voltaje: aprox. 24 V
Batería: batería de coche o batería de gel
Propulsión/potencia: hasta aprox. 1.164 W/aprox. 37,2 CV
Potencia de propulsión: aprox. 2.050 kg
Potencia de entrada: máx. 492 W
Caja de control: rota hasta aprox. 360º
Color: negro

 

Obviamente  a mayor potencia antes agotarán la batería y aunque las de automóvil servirán, las mejores son las náuticas  de gel o AGM  que nos ofrecen durabilidad, poco peso y potencia, teniendo en cuenta que los eléctricos más potentes necesitan baterías de 24v en vez de 12v que son las adecuadas para los más pequeños.

Resumidamente estas son algunas de  las  características de los motores fueraborda eléctricos:

  • Potencias muy  variadas : desde  .0.5 hasta 20HP
  • Alimentación : desde 12v hasta 48V
  • Consumo: desde 7 hasta 165 Amp

 

Si queremos motorizar nuestra embarcación de forma sostenible ,una opción obvia es comprar cualquier  motor marino a algún fabricante conocido como Yamaha,  Sevylor, Torquedo ,Minn Kota  , el citado Jago de 86lb  u otros modelos fabricados en plásticos resistentes y ligeros, adecuados para el agua salada, pero otra opción es fabricarlo uno mismo a partir de motores  para uso industrial.

Jamie Hyneman  ( el famoso protagonista del programa Cazadores de mitos)  presenta, su último proyecto: un motor externo eléctrico híbrido que puso juntos para sustituir el motor de gas tradicional de una lancha rápida. Jamie explica las ventajas de este sistema motor y como su fuente de alimentación personalizada  en  comparación con la de los automóviles híbridos y eléctricos.

Otra idea es desmontar un viejo fueraborda averiado y adaptarlo con un motor eléctrico convencional  y añadirle la electrónica .En este vídeo se muestra las  partes del proyecto “Charles” , Un mayor motor externo eléctrico que el creador hizo  desmontando el motor de gasolina y el accesorio / pruebas y añadiendo la parte eléctrica