Les cartes Arduino offrent une entrée idéale dans le monde du piratage matériel pour les programmeurs. De nombreux projets débutants s'adaptent à quiconque a une expérience en programmation. Pourtant, se lancer peut sembler intimidant pour ceux qui manquent de temps.
Apprendre un nouveau langage rien que pour tester un microcontrôleur représente un investissement important. Et si vous pouviez expérimenter l'électronique DIY avec un langage que vous maîtrisez déjà ? Bonne nouvelle : c'est possible !
Nous avons déjà exploré le contrôle d'Arduino via Python. Aujourd'hui, découvrez comment faire de même avec JavaScript. Au-delà du classique clignotement de LED, ce tutoriel utilise le framework Johnny-Five pour piloter un servo-moteur depuis le clavier de votre ordinateur, le tout en JavaScript pur.
Pour ce projet, procurez-vous :

Ce tutoriel s'appuie sur une Arduino Uno. Johnny-Five supporte la plupart des cartes compatibles Arduino, à condition qu'elles disposent de broches PWM (marquées ~) pour le servo.
Connectez le servo comme suit :

En résumé : fil VCC (rouge) sur 5V Arduino, GND (noir ou marron) sur GND Arduino, et fil de signal (jaune ou orange) sur la broche 10 (PWM). Vérifiez les connexions avant de brancher l'USB.
Ce guide utilise Windows 10, mais il est compatible Mac/Linux (instructions d'installation légèrement adaptées).
Installez l'IDE Arduino si nécessaire, sélectionnez Carte et Port dans Outils. Consultez notre guide débutant Arduino pour plus de détails.

Une fois connecté, téléversez l'exemple StandardFirmataPlus (Fichier > Exemples > Firmata > StandardFirmataPlus). Ce sketch prépare l'Arduino à recevoir des commandes externes.
Johnny-Five est le framework idéal pour contrôler Arduino en JavaScript, orienté robotique.

Installez d'abord Node.js (dernière LTS recommandée sur nodejs.org).
Exécutez le .msi et vérifiez l'ajout au PATH.

Dans l'invite de commande (CMD), initialisez NPM :
npm init -yInstallez Johnny-Five :
npm install johnny-fivePuis Keypress pour les entrées clavier :
npm install keypressSi des erreurs surgissent, réinstallez keypress en premier.
Ce script, inspiré de la doc Johnny-Five, contrôle le servo via flèches directionnelles. Utilisez votre éditeur préféré (ex. : VS Code).
Créez test.js :
var five = require("johnny-five");
var keypress = require("keypress");
keypress(process.stdin);
var board = new five.Board();
board.on("ready", function() {
console.log("Flèches haut/bas pour CW/CCW. Espace pour arrêter. Q pour quitter.");
var servo = new five.Servo.Continuous(10);
process.stdin.resume();
process.stdin.setEncoding("utf8");
process.stdin.setRawMode(true);
process.stdin.on("keypress", function(ch, key) {
if (!key) return;
if (key.name === "q") {
console.log("Quitter");
process.exit();
} else if (key.name === "up") {
console.log("CW");
servo.cw();
} else if (key.name === "down") {
console.log("CCW");
servo.ccw();
} else if (key.name === "space") {
console.log("Arrêt");
servo.stop();
}
});
});
La détection du port est automatique ; spécifiez-le si besoin (ex. : new five.Board({port: '/dev/ttyUSB0'})).
Dans CMD, naviguez vers le fichier et lancez :
node test.jsUtilisez les flèches, espace et Q. Votre servo devrait répondre !


Ce projet dépasse le simple LED clignotant, mais ouvre les portes d'un univers vaste : robotique, domotique, sécurité DIY.
Johnny-Five est intuitif pour les JS devs et compatible Raspberry Pi. Parfait pour les makers sans temps à apprendre un nouveau langage.
Amusez-vous, et si vous créez un robot tueur, rappelez-vous ce tutoriel !
[]