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:
-----
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | |
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 !