FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Comment contrôler votre Arduino en utilisant JavaScript

Les cartes Arduino sont l'un des moyens les plus simples de se lancer dans le piratage matériel pour les programmeurs. Il existe une vaste gamme de projets pour débutants qui conviennent à presque tous ceux qui ont une formation en programmation. Même ainsi, commencer peut sembler décourageant pour ceux qui manquent de temps.

Apprendre un langage totalement nouveau juste pour essayer un microcontrôleur peut sembler beaucoup de travail. Que se passe-t-il si vous voulez commencer à jouer avec l'électronique maison dans un langage de programme que vous connaissez déjà ? Bonne nouvelle :vous pouvez !

Nous vous avons déjà montré comment contrôler une carte Arduino avec Python, et aujourd'hui nous allons vous montrer comment faire de même avec JavaScript. Plutôt que le didacticiel le plus basique sur les LED clignotantes, nous utiliserons aujourd'hui le framework Johnny-Five pour contrôler un servo avec le clavier de l'ordinateur, le tout programmé en JavaScript.

Liste du matériel

Pour ce projet, vous aurez besoin de :

  • Arduino Uno (ou carte compatible) :22 $ dans la boutique officielle, bien que vous puissiez les obtenir moins cher, les cartes clones sont disponibles pour seulement 3,20 $ sur AliExpress.
  • Hobby Servo :N'importe quel servo compatible Arduino d'un magasin de loisirs fera l'affaire, j'utilise un servo de 1,60 $ d'AliExpress.
  • Quelques morceaux de fil de connexion
  • Câble USB :Pour connecter l'Arduino à votre ordinateur
Comment contrôler votre Arduino en utilisant JavaScript

Le tutoriel d'aujourd'hui utilisera une carte Arduino Uno. Le framework Johnny-Five que nous utiliserons plus tard dans ce projet prend en charge la plupart des microcontrôleurs compatibles Arduino, bien que votre carte devra avoir une capacité PWM pour garder le servo heureux.

Configuration du circuit

Attachez votre servo à votre Arduino comme ceci :

Comment contrôler votre Arduino en utilisant JavaScript

En bref, la ligne VCC (ROUGE ) se connecte à la broche 5v de l'Arduino, la ligne GND (BLACK ou MARRON ) se connecte à la broche GND de l'Arduino et à la ligne Pulse (Jaune ou Orange ) connectez-vous à la broche 10 de l'Arduino. Notez que bien que vous n'ayez pas à le connecter spécifiquement à la broche 10, il doit se connecter à une broche PWM, généralement indiquée par un ~ .

Vérifiez que vous n'avez pas mélangé de fils et connectez l'Arduino à votre ordinateur. Nous utiliserons Windows 10 pour ce projet. Tous les éléments de ce projet sont également disponibles pour Mac et Linux, bien que certaines instructions d'installation puissent différer légèrement.

Si vous ne l'avez pas déjà fait, téléchargez l'IDE Arduino et choisissez votre Board et Port depuis les Outils menu. Si c'est la première fois que vous faites cela et que tout reste un peu mystérieux, notre guide du débutant Arduino pourrait vous aider à travers ces étapes.

Comment contrôler votre Arduino en utilisant JavaScript

Une fois que vous l'avez connecté, téléchargez le StandardFirmataPlus exemple croquis au tableau. Vous pouvez trouver ce croquis dans le Fichier menu sous Examples> Firmata> StandardFirmataPlus . Vous n'avez pas du tout besoin de modifier l'esquisse, cela configure simplement l'Arduino pour attendre des instructions extérieures - que nous vous fournirons plus tard.

Robotique JavaScript avec Johnny-Five

Le framework que nous allons utiliser pour contrôler notre Arduino avec Javascript s'appelle Johnny-Five. Sans surprise, étant donné son homonyme de film, le projet est orienté vers le travail avec la robotique.

Comment contrôler votre Arduino en utilisant JavaScript

Pour installer Johnny-Five, il faut d'abord installer Node.js. Vous pouvez télécharger leur dernière version sur le site Web Node.js. Nous utilisons la version recommandée, qui au moment de la rédaction est 8.9.4 LTS .

Ouvrez le .msi fichier et suivez les instructions d'installation, en vous assurant qu'il est ajouté à votre PATH . Le programme d'installation actuel de Node.js ajoute PATH en standard, bien qu'il soit utile de le vérifier lors de l'installation car il est requis pour notre prochaine étape.

Comment contrôler votre Arduino en utilisant JavaScript

Une fois l'installation terminée, nous aurons accès au Node Package Manager (NPM) gestionnaire de packages à partir de la ligne de commande Windows (CMD). Cliquez sur Démarrer et tapez CMD. Avant de continuer, nous devons initialiser le NPM pour éviter d'éventuelles erreurs d'installation. Il ne nécessite aucune connaissance spécialisée, il suffit de taper :

npm init 

Suivez les invites à l'écran. Pour le projet d'aujourd'hui, vous n'avez rien à changer, appuyez simplement sur Entrée jusqu'à ce que vous reveniez à l'invite de commande, puis tapez :

npm install johnny-five 

Cela installera tous les packages importants, qui parleront avec notre Arduino. Nous avons besoin d'une autre chose pour que ce projet fonctionne, et c'est le Keypress package, qui nous permettra de lire les frappes du clavier.

Installez-le en saisissant :

npm install keypress 

Une fois tous ces packages installés, nous sommes prêts à coder !

Si vous rencontrez des problèmes lors de l'installation, essayez de relancer l'installation de johnny-five après l'installation de la touche. C'est peut-être juste une bizarrerie de la version NPM utilisée ici, mais cela évite maintenant un problème que vous risquez de rencontrer plus tard, comme je l'ai fait.

Le Code

Nous allons utiliser un exemple de code fourni dans la documentation de johnny-five aujourd'hui, qui permet de contrôler notre servo à l'aide des touches fléchées du clavier. Le code complet est disponible sur johnny-five.io, mais nous allons le parcourir ici en détail pour bien comprendre son fonctionnement.

Nous utilisons Eclipse IDE pour le codage aujourd'hui, bien que vous puissiez utiliser n'importe quel IDE ou éditeur de texte pour ce projet.

Créez un nouveau fichier et nommez-le test.js, et enregistrez-le quelque part auquel vous pourrez facilement accéder ultérieurement à partir de la ligne de commande. Le script commence par créer des variables pour les bibliothèques requises et initialiser le Keypress bibliothèque pour écouter les données entrantes, ainsi que l'appel du Board() méthode pour configurer le tableau.

var cinq =require("johnny-five"); 
var keypress =require("keypress");
keypress(process.stdin);
var board =new cinq.Board();

Notez que la configuration de la carte ici est automatique, pas besoin de spécifier les ports. Si vous avez une configuration de port spécifique ou si vous n'avez tout simplement pas de chance avec la détection automatique, vous devrez peut-être spécifier explicitement votre port.

Ensuite, nous voulons "réveiller" notre carte et la configurer pour l'asservissement. Le board.on l'appel attend que les broches Arduino soient prêtes avant de continuer. La bibliothèque johnny-five prend en charge les servos intégrés, et nous appelons Servo.Continuous(10) sur la broche 10 pour permettre un contrôle direct.

board.on("prêt", fonction() { 
console.log("Utilisez les flèches haut et bas pour CW et CCW respectivement. Espace pour arrêter.");
var servo =new five.Servo.Continuous(10);
process.stdin.resume();
process.stdin.setEncoding("utf8");
process.stdin.setRawMode(true);

Le process.stdin Les appels garantissent que toutes les données que nous recevons du clavier seront utilisables dans le prochain bloc de code. Maintenant, nous voulons "écouter" les frappes et les utiliser pour déplacer notre servo dans le sens des aiguilles d'une montre (CW), dans le sens inverse des aiguilles d'une montre (CCW) ou pour s'arrêter net.

 process.stdin.on("keypress", function(ch, key) { 
if (!key) { // si aucune touche n'est enfoncée, retour c'est-à-dire ne rien faire.
retourner;
}
si (clé.nom ==="q") {
console.log("Quitter");
process.exit();
} else if (key.name ==="up") {
console.log("CW");
servo.cw();
} sinon si (key.name ==="vers le bas") {
console.log("CCW");
servo.ccw();
} sinon si (clé.nom ==="espace") {
console.log("Arrêt");
servo.stop();
}
});
});

Assurez-vous d'inclure tous les crochets fermants en bas ici et reportez-vous à l'ensemble du bloc de code comme indiqué ci-dessus si vous obtenez des erreurs. Enregistrez ce script et ouvrez l'invite de commande.

Bonjour !

Accédez maintenant au répertoire dans lequel vous avez enregistré votre script et exécutez-le en tapant :

nœud test.js 

Le programme devrait démarrer immédiatement avec des informations sur la carte, avant de vous donner les instructions indiquées dans le code. Essayez d'appuyer sur les touches fléchées haut et bas, la barre d'espace et Q abandonner. L'écran devrait ressembler à ceci :

Comment contrôler votre Arduino en utilisant JavaScript

Et tout va bien, le servo devrait danser au rythme de vos frappes ! Regardez cette petite vague bestiale !

Comment contrôler votre Arduino en utilisant JavaScript

Débuts humbles

Bien que nous ayons entrepris un projet légèrement plus ambitieux que le didacticiel habituel sur les LED clignotantes pour débutants, nous avons à peine abordé l'étendue de ce qui peut être fait avec les cartes Arduino et les microcontrôleurs similaires.

Les utilisateurs chevronnés de JavaScript devraient trouver le package Johnny-Five intuitif à utiliser. La bibliothèque peut également être installée nativement sur le Raspberry Pi, ce qui en fait le package idéal pour les constructeurs de robots en herbe.

L'avantage de cette bibliothèque est que, bien qu'elle soit conçue pour les robots, les mêmes données d'entrée et de sortie peuvent être utilisées pour créer des configurations de maison intelligente DIY et même des systèmes de sécurité maison.

Communiquer avec des microcontrôleurs de cette manière est une excellente introduction au monde du matériel de bricolage sans avoir à consacrer du temps à l'apprentissage d'un tout nouveau langage de programmation. Amusez-vous bien, et s'il vous arrive de construire un robot tueur, rappelez-vous comment nous vous avons aidé au début.


[]