Un dépôt pour en savoir plus
La suite de cette article n’est qu’une page du wiki d’un dépôt github contenant des projets et des explications pour débuter facilement avec ses outils.
Arduino et Javascript
Le langage d’Arduino est le C. Avec ce langage, on peut tout faire avec Arduino si on maîtrise la bête …
En général, on va donc créer un programme que l’on va téléverser dans le microcontrôleur qui pourra ensuite exécuter le programme sans avoir besoin d’un ordinateur.
Par un câble USB, en utilisant la liaison série, on peut aussi communiquer entre un terminal de l’ordinateur et Arduino.
Si l’idée est de travailler dans cette dernière configuration, pourquoi ne pas utiliser un langage de plus haut niveau pour contrôler la plaque ? Et pour bénéficier d’une bonne interface graphique, pourquoi ne pas utiliser le navigateur de son ordinateur ? Le choix du langage ne peut donc être que Javascript !
NodeJS, Johnny-Five, c’est quoi ?
NodeJS est un outil écrit en Javascript, disponible sur toutes les plateformes. On pourra à partir de l’outil node lancer en console n’importe quel programme Javascript, et surtout créer localement un serveur, ce qui sera très utile pour se servir du navigateur.
NodeJS fonctionne par module que l’on gère via l’outil npm.
Pour un projet communiquant entre Arduino et le navigateur, on se servira principalement des modules socket.io, express et johnny-five.
Johnny-Five est donc un module de l’outil NodeJS. Son site officiel donne bon nombre d’exemples qui mettent en valeur la facilité d’utiliser Arduino en Javascript.
Des limitations
L’idée ici est d’utiliser Arduino connecté à l’ordinateur via un câble USB. C’est une contrainte forte pour bon nombre de projets.
NodeJS étant basée sur une gestion des événements non bloquante, ceci et le plus souvent un avantage mais est parfois déroutant car on a perdu l’aspect séquentiel des événements. Il faut donc en tenir compte par moment.
Enfin, même si Johnny-Five gère la plupart des composants courants, il faut tout de même jeter un œil sur le site officiel ou faire une recherche pour savoir comment procéder