dimanche 27 juillet 2014

Des robots pour les humains et pour les chats

Samedi 26 Juillet, c'était le NodeBots day (Journée internationale) .


Des microcontrôleurs (Arduino ?)  pilotés en javascript dont Node.js


Le groupe des NodeBots de Paris avait organisé un atelier à la cité des sciences de la Villette (Carrefour Numerique)
Quelques photos



C'est ici un 'catbot' : robots pour amuser les chats

Ce robot utilise 2 servo-moteur et 1 laser.

Ici toutes les ressources nécessaires.

Les projets évoqués: cylon.js 


Et son homologue en Ruby:Artoo 
Ces deux projets proposent une implémentation en couche un peu à la mode MVC à destination des microcontroleurs

Nous avons parlé aussi du protocole MQQT qui permet de construire des dialogues de machine à machine. Ce protocole est basé sur le mode  publish-subscribe  et il est utilisé aussi pour les programmes de 'chat' (exemple facebook messenger) 
Le projet mosca  implemente un serveur MQQT:

Les clients existent en Javascript et en ruby.

La partie codage: 
ici mon code pour piloter le robot:


-----










five = require "johnny-five"
board = new five.Board()
r1 = () ->
a= Math.floor( 180 * Math.random() )
return a
r2 = () ->
a= Math.floor( 30 * Math.random() ) + 85
return a
r3 = () ->
a = Math.floor( 5000 * Math.random() ) + 1000
myrandom = () ->
bond =
x: r1()
y: r2()
t: r3()
board.on "ready", ()->
myServoX = new five.Servo 9
myServoY = new five.Servo(pin: 8 , range: [ 95, 115 ])
myLed = new five.Led 7
board.repl.inject servo: myServoX
board.repl.inject servo: myServoY
servo =
servoX: myServoX
servoY: myServoY
led : myLed
board.repl.inject servo
myLed.on()
myServoY.center()
myServoX.center()
t = myrandom()
console.log t
myServoY.to(t.y)
myServoX.to(t.x)
@.loop 5000, ()->
t = myrandom()
console.log t
myServoY.to(t.y)
myServoX.to(t.x)
view raw lasercat.coffee hosted with ❤ by GitHub
----

Mais ce n'est pas la bonne  manière vraiment utiliser la combinaison javascript / arduino. L'idée est de piloter en temps réel l'arduino au travers d'une interface web. La pile est donc: express, mqqt pour la partie web et johnny-five et mqqt pour la partie robot.
A tester !