Étape 4: Écrire le Code
Puisque nous utilisons Node.js et Johnny-cinq pour cet atelier, nous pouvons tirer profit de la dépendance des capacités de gestion qui fournit de Node.js. Nous devons faire notre demande de savoir qu’elle a une dépendance sur le cadre de cinq Johnny afin que lorsque l’application est prête pour l’exécution, il peut aller chercher des dépendances requises pour nous. En Node.js, cela se fait avec un fichier package.json . Ce fichier fournit certains meta-données de base sur l’application, y compris toutes les dépendances sur les paquets qui peuvent être récupérés en utilisant le gestionnaire de paquet de nœud (NGP).
À l’aide de votre éditeur de texte/code favori/préféré (je préfère Code de Visual Studio), créez un fichier dans votre dossier atelier nommé package.json et ajouter ce qui suit :
{ "name": "labs", "repository": { "type": "git", "url": "" }, "version": "0.1.0", "private": "true", "dependencies": { "johnny-five": "^0.8.0" } }
Avec le package.json fichier créé, vous pouvez utiliser NGP pour tirer vers le bas les modules nécessaires de nœud. Ouvrez une fenêtre de terminal (Mac OS X) ou l’invite de commandes de Node.js (Windows) et exécutez les commandes suivantes (remplacez c:\Development\IoTLabs par le chemin qui mène à votre dossier de l’atelier) :
cd C:\Development\IoTLabs npm install
Vous allez ensuite créer le code d’application pour faire le tour de LED sur et en dehors.
Créez un autre fichier dans le même répertoire nommé lab001.js.
La première chose que vous devez faire est de définir les objets que vous allez travailler avec dans l’application. Les trois choses qui comptent sont un objet de Johnny-cinq framework, un objet pour représenter l’Arduino, et sera reliée à la broche de sortie la LED.
var five = require("johnny-five"); var board = new five.Board(); var LEDPIN = 13;
Maintenant que les objets sont créés, vous pouvez obtenir de la viande de la demande. Johnny-cinq fournit une construction de l’initialisation de Conseil qui fait un rappel lorsque le jury est sur et initialisé (démarré). Dans le rappel fonction est où le code de l’application s’exécute.
Johnny-cinq fournit une collection d’objets qui représentent le Conseil, les broches sur la carte et divers types de capteurs et dispositifs qui peuvent être connectés à la carte. Pour cet exercice, vous allez écrire du code qui est assez fidèle au modèle de programmation Arduino C base (nous allons entrer dans ce que Johnny-cinq nous donne plus tard). Cela vous aidera à certains des concepts fondamentaux pour comprendre comment un Arduino Yun.
Dans le code suivant, vous allez créer une fonction de rappel qui est appelée lorsque l’Arduino est initialisé et prêt (il s’agit d’un concept Johnny cinq). Vous définirez broche numérique 13 (la variable LEDPIN ci-dessus) comme une tige de sortie (vs une broche d’entrée), ce qui signifie que l’application attend enverra la tension de la broche par opposition à lire la tension entrant dans l’axe. Puis vous allez créer une boucle qui s’exécute une fois par seconde et à l’intérieur qui boucle vous écrira sur la broche de basse ou haute tension. Broche 13 étant un axe numérique, ses seules options sont 0 et 1 - dans le monde de l’Arduino qui est faible et élevée. Lorsque vous envoyez 0 (ou faible) à la broche, ce qui équivaut à off (n’envoi aucun tension). Lorsque vous envoyez 1 (ou haute) à la broche qui est équivalente à (envoi en pleine tension).
board.on("ready", function(){ // Set pin 13 to OUTPUT mode this.pinMode(LEDPIN, five.Pin.OUTPUT); // Create a loop to "flash/blink/strobe" an led var val = 0; this.loop( 1000, function() { this.digitalWrite(LEDPIN, (val = val ? 0 : 1)); }); });
Johnny-Five a fait un modèle d’objet pour une LED et nous aurions pu aussi simplement faire ce qui suit, mais je voulais vous faire comprendre le fonctionne de la fonction digitalWrite() avant il abstraction.
board.on("ready", function() { var led = new five.Led(LEDPIN); led.blink(1000); });