Comment contrôler votre Arduino en utilisant JavaScript

Saviez-vous que vous pouvez contrôler votre Arduino avec Javascript? Avec un logiciel et de la créativité, vous pouvez! Voici comment le faire.

Saviez-vous que vous pouvez contrôler votre Arduino avec Javascript?  Avec un logiciel et de la créativité, vous pouvez!  Voici comment le faire.
Publicité

Les cartes Arduino sont l'un des moyens les plus faciles d'entrer dans le piratage matériel pour les programmeurs. Il existe une vaste gamme de projets débutants 10 Grands projets Arduino pour les débutants 10 Grands projets Arduino pour les débutants Compléter un projet Arduino vous donne un sentiment de satisfaction pas comme les autres. La plupart des débutants ne savent pas par où commencer, et même les projets de débutants peuvent sembler décourageants. En savoir plus là-bas pour répondre à presque tout le monde avec un fond de programmation. Même ainsi, commencer peut sembler intimidant pour ceux à court de temps.

Apprendre une langue totalement nouvelle Quel langage de programmation devez-vous apprendre pour l'avenir? Quel langage de programmation devriez-vous apprendre pour l'avenir? Quel est le meilleur langage de programmation à apprendre pour l'avenir? Si vous ne pouviez choisir qu'une seule langue pour apprendre et maîtriser l'avenir, il n'y a pas de concours: ce doit être JavaScript. Lire la suite juste pour essayer un microcontrôleur peut sembler beaucoup de travail. Que se passe-t-il si vous voulez commencer à jouer avec l'électronique de brassage à la maison dans une langue de programme que vous connaissez déjà? Bonne nouvelle: vous pouvez!

Nous vous avons déjà montré comment contrôler un tableau Arduino avec Python Comment programmer et contrôler un Arduino avec Python Comment programmer et contrôler un Arduino avec Python Malheureusement, il est impossible de programmer directement un Arduino en Python, mais vous pouvez le contrôler via USB en utilisant un programme Python. Voici comment. Lire la suite, et aujourd'hui, nous allons vous montrer comment faire la même chose avec JavaScript. Plutôt que d'utiliser le tutoriel clignotant le plus simple de LED, nous utiliserons aujourd'hui le framework Johnny-Five pour contrôler un servo avec le clavier de l'ordinateur, tous programmés en JavaScript Qu'est-ce que JavaScript et comment ça marche? Qu'est-ce que JavaScript et comment ça marche? Qu'est-ce que Javascript? C'est un langage de programmation utilisé pour améliorer les pages Web. Il comprend la mise à jour dynamique des pages Web, des interfaces utilisateur et plus encore. Laissez-nous plonger dans ce que Javascript est tout au sujet. Lire la suite .

Liste de matériel

Pour ce projet, vous aurez besoin de:

  • Arduino Uno (ou carte compatible Arduino Guide d'achat: Quel conseil devriez-vous obtenir?) Guide d'achat Arduino: Quel conseil devriez-vous obtenir? Il y a tellement de différents types de cartes Arduino là-bas, vous seriez pardonné d'être confus. Laissez-nous vous aider, avec ce guide d'achat Arduino! Lire la suite): 22 $ de la boutique officielle, mais vous pouvez les obtenir moins cher 5 raisons de ne pas utiliser un véritable Arduino dans votre prochain projet 5 raisons de ne pas utiliser un véritable Arduino dans votre prochain projet La fondation Arduino est-elle allée trop loin? Pourquoi devriez-vous dépenser votre argent sur des produits d'origine Arduino? Nous expliquons tout ce que vous devez savoir. En savoir plus, les clones sont disponibles pour seulement 3, 20 $ sur AliExpress.
  • Servo Hobby: Tout servo compatible Arduino d'un magasin de passe-temps fera, j'utilise un servo de 1, 60 $ d'AliExpress.
  • Un couple de morceaux de fil de connexion
  • Câble USB: pour connecter l'Arduino à votre ordinateur

comment contrôler arduino avec javascript

Le tutoriel d'aujourd'hui utilisera une carte Arduino Uno. Le framework Johnny-Five que nous utiliserons plus tard dans ce projet supporte la plupart des microcontrôleurs compatibles Arduino, bien que votre carte ait besoin de la fonctionnalité PWM pour que le servo reste disponible.

Configuration de circuit

Attachez votre servo à votre Arduino comme ceci:

comment contrôler arduino avec javascript

En bref, la ligne VCC ( RED ) se connecte à la broche 5v de l'Arduino, la ligne GND ( BLACK ou BROWN ) se connecte à la broche GND de l'Arduino et la ligne Pulse ( Jaune ou Orange ) se connecte à la broche 10 de l'Arduino. Notez que bien que vous n'ayez pas besoin de le connecter à la broche 10 en particulier, il doit se connecter à une broche PWM, généralement indiquée par ~ .

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 carte et votre port dans le menu Outils . Si c'est la première fois que vous le faites et que c'est un peu mystérieux, notre Arduino Débutants Guide Arduino: Un Guide du Débutant Initiation à Arduino: Guide du Débutant Arduino est une plate-forme de prototypage électronique open source basée sur matériel et logiciel facile à utiliser. Il est destiné aux artistes, designers, amateurs et toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire la suite pourrait vous aider à travers ces étapes.

comment contrôler arduino avec javascript

Une fois connecté, téléchargez l'exemple d'esquisse StandardFirmataPlus sur le tableau. Vous pouvez trouver cette esquisse dans le menu Fichier sous Exemples> Firmata> StandardFirmataPlus . Vous n'avez pas du tout besoin de modifier l'esquisse, il ne fait que mettre l'Arduino en attente d'instructions extérieures - ce que nous vous fournirons plus tard.

Robotique JavaScript avec Johnny-Five

Le framework que nous utiliserons pour contrôler notre Arduino avec Javascript s'appelle Johnny-Five. Sans surprise, compte tenu de son homonyme de film, le projet vise à travailler avec la robotique.

comment contrôler arduino avec javascript
Crédit d'image: johnny-five.io

Pour installer Johnny-Five, nous devons d'abord installer Node.js Qu'est-ce que Node.JS et Why Should I Care? [Développement Web] Qu'est-ce que Node.JS et pourquoi devrais-je m'en soucier? [Développement Web] JavaScript est juste un langage de programmation côté client qui s'exécute dans le navigateur, non? Plus maintenant. Node.js est un moyen d'exécuter JavaScript sur le serveur; mais c'est beaucoup plus. Si ... Lire la suite. 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 fichier .msi et suivez les instructions d'installation, en veillant à ce qu'il soit 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 nécessaire pour notre prochaine étape.

comment contrôler arduino avec javascript

Une fois l'installation terminée, nous aurons accès au gestionnaire de paquets NPM ( Node Package Manager ) à 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écifique, il suffit de taper:

npm init 

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

 npm install johnny-five 

Cela va installer les paquets tous importants, qui vont parler avec notre Arduino. Nous avons besoin d'une autre chose pour que ce projet fonctionne, et c'est le paquet Keypress, qui nous permettra de lire les frappes du clavier.

Installez-le en entrant:

 npm install keypress 

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

Si vous rencontrez des problèmes lors de l'installation, essayez à nouveau d'installer johnny-five après l'installation de la touche. Il se peut que ce soit un peu bizarre de la version de NPM utilisée ici, mais cela maintenant évite 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 comment cela fonctionne.

Nous utilisons Eclipse IDE 8 Raccourcis clavier les plus utiles pour les utilisateurs débutants Eclipse IDE 8 Raccourcis clavier les plus utiles Pour les débutants IDE Eclipse Comme les débutants Eclipse IDE (interface) est, vous vous devez d'apprendre ces raccourcis clavier. Lire la suite pour le codage aujourd'hui, même si vous pouvez utiliser un éditeur de texte ou un éditeur de texte IDE Editeurs vs IDE: Quel est le meilleur pour les programmeurs? Editeurs de texte contre IDE: quel est le meilleur pour les programmeurs? Choisir entre un IDE avancé et un éditeur de texte plus simple peut être difficile. Nous offrons un aperçu pour vous aider à prendre cette décision. Lire la suite pour ce projet.

Créez un nouveau fichier et nommez-le test.js, puis enregistrez-le dans un endroit auquel vous pourrez accéder facilement à partir de la ligne de commande plus tard. Le script commence en créant des variables pour les bibliothèques requises et en initialisant la bibliothèque Keypress pour écouter les données entrantes, en même temps que l'appel de la méthode Board () pour configurer la carte.

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

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

Ensuite, nous voulons "réveiller" notre conseil et le configurer pour le contrôle de servo. L'appel board.on 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("ready", function() { console.log("Use Up and Down arrows for CW and CCW respectively. Space to stop."); var servo = new five.Servo.Continuous(10); process.stdin.resume(); process.stdin.setEncoding("utf8"); process.stdin.setRawMode(true); 

Les appels process.stdin garantissent que toutes les données que nous recevons du clavier seront utilisables dans le prochain bloc de code. Nous voulons maintenant "é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 arrêter dans ses traces.

 process.stdin.on("keypress", function(ch, key) { if (!key) { // if no key is pressed, return ie do nothing. return; } if (key.name === "q") { console.log("Quitting"); 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("Stopping"); servo.stop(); } }); }); 

Assurez-vous d'inclure toutes les parenthèses fermantes en bas ici, et référez-vous au bloc de code entier comme lié ci-dessus si vous obtenez des erreurs. Enregistrez ce script et ouvrez l'invite de commande.

Bonjour!

Naviguez maintenant dans le répertoire dans lequel vous avez sauvegardé votre script et exécutez-le en tapant:

 node test.js 

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

comment contrôler arduino avec javascript

Et tout va bien, le servo devrait danser à vos frappes! Regarde cette petite vague de bête!

Humble débuts

Malgré un projet un peu plus ambitieux que le tutoriel habituel des LED clignotantes pour débutants, nous n'avons pratiquement pas abordé la totalité de ce qui peut être fait avec les cartes Arduino et les microcontrôleurs similaires.

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

La grande chose à propos de cette bibliothèque est que même si elle est conçue avec des robots en tête, les mêmes données d'entrée et de sortie peuvent être utilisées pour créer des configurations intelligentes de maisons bricolage avec Arduino, MySensors et OpenHAB DIY Smart Home Capteurs avec Arduino, MySensors et les détecteurs de la maison OpenHAB Smart coûtent une somme ridicule. Le câblage d'une maison entière est le domaine de ceux qui ont des montants stupides de revenu disponible. Construisons les nôtres avec MySensors. Lire la suite et même les systèmes de sécurité maison bricolage Smart Lock avec Arduino et RFID DIY Smart Lock avec Arduino et RFID Voici comment construire un verrou intelligent RFID simple basé sur un Arduino comme l'épine dorsale et quelques composants bon marché. Lire la suite .

Communiquer avec les 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 là-bas, et s'il vous arrive de construire un robot tueur, s'il vous plaît rappelez-vous comment nous vous avons aidé dans les premiers jours.

In this article