Stap 4: Schrijf de Code
Aangezien we zijn met behulp van Node.js en Johnny-vijf voor dit lab kunnen we profiteren van de afhankelijkheid beheermogelijkheden Node.js waarmee. We moeten laten onze applicatie weet dat het een afhankelijkheid van het Johnny-Five-kader heeft, zodat wanneer de toepassing wordt voorbereid voor uitvoering, het voor ons de vereiste afhankelijkheden kunt halen. In Node.js wordt dit gedaan met een package.json -bestand. Dit bestand bevat enkele fundamentele meta-gegevens over de toepassing, met inbegrip van eventuele afhankelijkheden op pakketten die kunnen worden opgehaald met behulp van het knooppunt pakket Manager (NPM).
Met behulp van uw favoriete/voorkeur tekst/code-editor (ik liever Visual Studio-Code), maak een bestand in uw map van de Workshop met de naam package.json en voeg het volgende toe:
{ "name": "labs", "repository": { "type": "git", "url": "" }, "version": "0.1.0", "private": "true", "dependencies": { "johnny-five": "^0.8.0" } }
Met het package.json kunt bestand dat u hebt gemaakt NPM pull-down de nodige modules van het knooppunt. Open een terminal-venster (Mac OS X) of Node.js troepenleiding prompt (Windows) en voer de volgende commando's (Vervang c:\Development\IoTLabs met het pad dat naar de map van uw Workshop leidt):
cd C:\Development\IoTLabs npm install
Vervolgens maakt u de toepassingscode zodat de LED-turn in- en uitschakelen.
Maak een ander bestand in dezelfde map met de naam lab001.js.
Het eerste ding dat u moet doen is u met werkt objecten in de toepassing definiëren. De drie dingen die belangrijk zijn een Johnny-Five kader object, een object te vertegenwoordigen de Arduino, en de uitgang-pins de LED zal worden aangesloten op.
var five = require("johnny-five"); var board = new five.Board(); var LEDPIN = 13;
Nu dat de objecten zijn gemaakt, kunt u het vlees van de toepassing. Johnny-Five biedt een bestuur initialisatie constructie die terugstuurt wanneer de Raad van bestuur is op en geïnitialiseerd (opgestart). In de callback is functie waar de toepassingscode wordt uitgevoerd.
Johnny-Five geven een verzameling objecten met daarin de board, de pinnen op het bord, en diverse soorten sensoren en apparaten die kunnen worden aangesloten op de Raad van bestuur. Voor dit lab zult u code schrijven die is vrij trouw aan het Arduino C programming basismodel (we krijgen in wat Johnny-Five ons later biedt). Dit zal u helpen begrijpen sommige van de basisconcepten voor hoe een Arduino Yun.
In de volgende code maakt u een callback-functie die wordt aangeroepen wanneer de Arduino is geïnitialiseerd en klaar (dit is een vijf Johnny concept). U zal digitale pin 13 (de LEDPIN variabele hierboven) instellen als een uitgang pins (versus een invoer pin), wat betekent dat de toepassing naar verwachting spanning afgeven vanaf de pin in tegenstelling tot het lezen van de spanning die binnenkomen bij de pin. Vervolgens maakt u een lus die loopt eenmaal per seconde en binnenkant dat u een lus naar de pin uitschrijven zal lage of hoge spanning. Aangezien pin 13 een digital pin is, de enige opties zijn 0 en 1 - in de wereld van de Arduino die is laag en hoog. Als u 0 (of laag) stuurt naar de pin, die gelijk is aan het uitschakelen (verzenden geen spanning). Als u stuurt 1 (of hoog) aan de pin die gelijk is aan (sturen vol spanning).
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 heeft eigenlijk een objectmodel voor een LED en we kunnen ook gewoon doen de volgende, maar ik wilde u om te zien hoe de digitalWrite()-functie werkt voordat het weg te abstraheren.
board.on("ready", function() { var led = new five.Led(LEDPIN); led.blink(1000); });