Hoe u uw Arduino bedient met JavaScript

Hoe u uw Arduino bedient met JavaScript / Programming

Arduino-kaarten zijn een van de gemakkelijkste manieren om hardware-hackers voor programmeurs in te schakelen. Er zijn een groot aantal beginnersprojecten. 15 Great Arduino Projects for Beginners 15 Great Arduino Projects for Beginners Geïnteresseerd in Arduino, maar niet zeker waar te beginnen? Hier zijn enkele van onze beste Arduino-projecten voor beginners om mee te beginnen! Lees meer daar voor bijna iedereen met een programmeerachtergrond. Maar toch, aan de slag gaan kan schokkend lijken voor degenen die kort op tijd zijn.

Een geheel nieuwe taal leren Welke programmeertaal moet je leren voor de toekomst? Welke programmeertaal moet je leren voor de toekomst? Welke is de beste programmeertaal om te leren voor de toekomst? Als je in de toekomst maar één taal kon kiezen om te leren en te beheersen, is er geen wedstrijd: het moet JavaScript zijn. Meer lezen om een ​​microcontroller uit te proberen, lijkt misschien een hoop werk. Wat als je met thuisbrouwelektronica wilt spelen in een programmeertaal die je al kent? Goed nieuws: dat kan!

We hebben je al laten zien hoe je een Arduino-bord bestuurt met Python. Een Arduino programmeren en besturen met Python Een Arduino programmeren en besturen met Saddam Helaas is het onmogelijk om een ​​Arduino rechtstreeks in Python te programmeren, maar je kunt hem besturen via USB via een Python-programma. Hier is hoe. Lees meer en vandaag laten we u zien hoe u hetzelfde kunt doen met JavaScript. In plaats van alleen de meest elementaire knipperende LED-zelfstudie, gebruiken we vandaag het Johnny-Five-framework om een ​​servo met het toetsenbord van de computer te besturen, allemaal geprogrammeerd in JavaScript. Wat is JavaScript en hoe werkt het? Wat is JavaScript en hoe werkt het? Wat is Javascript? Het is een programmeertaal die wordt gebruikt om webpagina's te verbeteren. Het omvat het dynamisch bijwerken van webpagina's, gebruikersinterfaces en meer. Laten we eens kijken naar waar Javascript over gaat. Lees verder .

Hardware lijst

Voor dit project heb je nodig:

  • Arduino Uno (of compatibel bord Arduino Koopwijzer: welk bord moet je kopen? Arduino Koopwijzer: welk bord moet je krijgen? Er zijn zoveel verschillende soorten Arduino-kaarten die er zijn, je zou vergeven zijn dat je in de war was. koop voor uw project? Laat ons u helpen, met deze Arduino koopgids! Lees meer): $ 22 van de officiële winkel, hoewel u ze goedkoper kunt krijgen 5 Redenen om geen echte Arduino te gebruiken in uw volgende project 5 Redenen om geen echt te gebruiken Arduino in je volgende project Is de Arduino-stichting te ver gegaan? Waarom zou u uw geld besteden aan echte Arduino-producten? We leggen alles uit wat je moet weten. Lees meer, klonenborden zijn beschikbaar voor slechts $ 3,20 op AliExpress.
  • Hobby Servo: elke Arduino compatibele servo van een hobbywinkel zal doen, ik gebruik een $ 1.60 servo van AliExpress.
  • Een paar stukjes ophangdraad
  • USB-kabel: om de Arduino op uw computer aan te sluiten

De tutorial van vandaag zal een Arduino Uno-bord gebruiken. Het Johnny-Five-raamwerk dat we verderop in dit project zullen gebruiken, ondersteunt de meeste Arduino-compatibele microcontrollers, hoewel je board PWM-functionaliteit nodig heeft om de servo tevreden te houden.

Circuit instellen

Sluit je servo zo aan op je Arduino:

Kort gezegd, VCC-lijn (ROOD) verbindt met de 5v pin van de Arduino, de GND-lijn (ZWART of BRUIN) maakt verbinding met de GND-pin van de Arduino- en de Pulse-lijn (Geel of Oranje) maak verbinding met pin 10 van de Arduino. Merk op dat hoewel u het niet specifiek aan pin 10 hoeft te verbinden, het wel verbonden moet zijn met een PWM-pin, meestal aangeduid met een ~.

Controleer nogmaals of je geen draden hebt verwisseld en sluit de Arduino aan op je computer. We zullen Windows 10 gebruiken voor dit project. Alle elementen van dit project zijn ook beschikbaar voor Mac en Linux, hoewel sommige installatie-instructies enigszins kunnen verschillen.

Download de Arduino IDE als je dat nog niet hebt gedaan en kies je Boord en Haven van de Hulpmiddelen menu. Als dit de eerste keer is dat u dit doet en het is allemaal een beetje een raadsel, onze Arduino-beginnersgids Aan de slag met Arduino: een beginnershandleiding Aan de slag met Arduino: een beginnershandleiding Arduino is een prototype-platform voor open-source elektronica op basis van flexibele, eenvoudig te gebruiken hardware en software. Het is bedoeld voor kunstenaars, ontwerpers, hobbyisten en iedereen die geïnteresseerd is in het maken van interactieve objecten of omgevingen. Meer informatie kan u door deze stappen helpen.

Zodra je het hebt verbonden, upload je de StandardFirmataPlus voorbeeld schets naar het bord. Je kunt deze schets vinden in de het dossier menu onder Voorbeelden> Firmata> StandardFirmataPlus. Je hoeft de schets helemaal niet te veranderen, het zet in feite alleen de Arduino op om te wachten op instructies van buitenaf - die we later zelf zullen verstrekken.

JavaScript Robotics met Johnny-Five

Het raamwerk dat we zullen gebruiken om onze Arduino te besturen met Javascript heet Johnny-Five. Het is niet verwonderlijk dat het project, gezien de naamgever van de film, is gericht op het werken met robotica.

Afbeelding tegoed: johnny-five.io

Om Johnny-Five te installeren, moeten we eerst Node.js installeren Wat is Node.JS en waarom zou ik erom geven? [Webontwikkeling] Wat is Node.JS en waarom zou ik erom geven? [Web Development] JavaScript is slechts een client-side programmeertaal die in de browser draait, toch? Niet meer. Node.js is een manier om JavaScript op de server uit te voeren; maar het is zoveel meer ook. Als ... Lees meer. Je kunt hun nieuwste versie downloaden van de Node.js-website. We gebruiken de aanbevolen release, die op het moment van schrijven is 8.9.4 LTS.

Open de .msi bestand en volg de installatie-instructies, zorg ervoor dat het wordt toegevoegd aan uw PAD. Het huidige Node.js-installatieprogramma voegt PATH toe als standaard, hoewel het de moeite waard is om dit te controleren tijdens de installatie, omdat dit nodig is voor onze volgende stap.

Zodra de installatie is voltooid, hebben we toegang tot de Node Package Manager (NPM) pakketbeheerder van de Windows Command Line (CMD). Klik Begin en typ CMD. Voordat we verder gaan, moeten we de NPM initialiseren om mogelijke installatiefouten te voorkomen. Het vereist geen specialistische kennis, typ gewoon:

npm init

Volg de aanwijzingen op het scherm. Voor het project van vandaag hoef je niets te veranderen, druk gewoon op enter totdat je terug bent bij de opdrachtprompt en typ vervolgens:

npm installeer johnny-five

Dit zal de alle belangrijke pakketten installeren, die met onze Arduino zullen praten. We hebben nog iets nodig om dit project te laten werken, en dat is het Toets indrukken pakket, waarmee we toetsaanslagen van het toetsenbord kunnen lezen.

Installeer het door het volgende in te voeren:

npm installeer toetsaanslag

Zodra al deze pakketten zijn geïnstalleerd, zijn we klaar om te coderen!

Als er tijdens het installeren problemen optreden, probeer dan de Johnny-Five-installatie nogmaals uit te voeren na de toetsaanslag installeren. Het is misschien een eigenaardigheid van de NPM-versie die hier wordt gebruikt, maar als je dit nu doet, voorkom je een probleem dat je later waarschijnlijk tegenkomt, zoals ik deed.

De code

We zullen vandaag een stukje voorbeeldcode gebruiken in de Johnny-vijf-documentatie, die controle over onze servo mogelijk maakt met behulp van de pijltoetsen op het toetsenbord. De volledige code is beschikbaar op johnny-five.io, maar we zullen het hier in detail doornemen om volledig te begrijpen hoe het werkt.

We gebruiken Eclipse IDE 8 Eclipse-sneltoetsen Essentieel voor beginners 8 Eclipse-sneltoetsen Essentieel voor beginners Als newbie-vriendelijk als de Eclipse IDE (interface), ben je het aan jezelf verplicht om deze sneltoetsen te leren. Meer lezen voor codering vandaag, maar u kunt elke IDE- of teksteditor gebruiken Teksteditors versus IDE's: welke is beter voor programmeurs? Teksteditors versus IDE's: welke is beter voor programmeurs? Kiezen tussen een geavanceerde IDE en een eenvoudigere teksteditor kan moeilijk zijn. We bieden enig inzicht om u te helpen bij het nemen van die beslissing. Lees meer voor dit project.

Maak een nieuw bestand en noem het test.js en bewaar het ergens waar je later gemakkelijk toegang tot kunt krijgen via de Commandolijn. Het script begint met het maken van variabelen voor de vereiste bibliotheken en het initialiseren van de Toets indrukken bibliotheek om inkomende gegevens te beluisteren, samen met het oproepen van de Boord() methode om het bord in te stellen.

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

Merk op dat de opstelling van het bord hier automatisch is, geen poorten hoeft aan te geven. Als u een specifieke poortconfiguratie hebt, of gewoon geen geluk hebt met de automatische detectie, moet u uw poort mogelijk expliciet opgeven.

Volgende willen we “wakker worden” ons bord en stel het in voor servobesturing. De board.on wacht totdat de Arduino-pinnen klaar zijn voordat ze verder gaan. De Johnny-Five-bibliotheek heeft ondersteuning voor ingebouwde servo's en we bellen Servo.Continuous (10) op pin 10 om directe controle mogelijk te maken.

board.on ("ready", function () console.log ("Gebruik de pijlen omhoog en omlaag voor respectievelijk CW en CCW. Spatie om te stoppen."); var servo = nieuw vijf.Servo.Continuous (10); proces. stdin.resume (); process.stdin.setEncoding ("utf8"); process.stdin.setRawMode (true);

De process.stdin oproepen zorgen ervoor dat alle gegevens die we van het toetsenbord ontvangen, bruikbaar zijn in het volgende codeblok. Nu willen we “luister” voor toetsaanslagen en gebruik deze om onze servo met de klok mee (CW), tegen de klok in (CCW) te verplaatsen of om te stoppen in zijn sporen.

 process.stdin.on ("toetsaanslag", functie (ch, toets) if (! key) // als er geen toets wordt ingedrukt, retourneer ie niets doen. return; if (key.name === "q" ) console.log ("Afsluiten"); 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 ("Stoppen") ; servo.stop ();); );

Zorg ervoor dat u hier alle sluitingshaken aan de onderkant opneemt en verwijs naar het hele blok met code zoals hierboven gekoppeld als u fouten krijgt. Sla dit script op en open de opdrachtprompt.

Hallo zwaaien!

Navigeer nu naar de map waarin je je script hebt opgeslagen en voer het uit door het volgende te typen:

node test.js

Het programma moet onmiddellijk opstarten met informatie over het bord voordat u de instructies in de code krijgt. Probeer op de pijltoetsen omhoog en omlaag en de spatiebalk te drukken, en Q om te stoppen. Het scherm zou er als volgt uit moeten zien:

En als alles goed gaat, moet de servo dansen op je toetsaanslagen! Kijk naar die kleine beestgolf!

Nederig begin

Ondanks het aannemen van een iets ambitieuzer project dan de gebruikelijke LED-zelfstudie met knipperende LED's, hebben we nauwelijks eens de volledige omvang van wat kan worden gedaan met Arduino-borden en soortgelijke microcontrollers, aangehaald..

Ervaren JavaScript-gebruikers moeten het Johnny-Five-pakket intuïtief vinden om mee te werken. De bibliotheek is ook installeerbaar op de Raspberry Pi en is daarmee het perfecte pakket voor beginnende robotbouwers.

Het mooie van deze bibliotheek is dat, hoewel deze is ontworpen met robots in gedachten, dezelfde invoer- en uitvoergegevens kunnen worden gebruikt voor het maken van DIY smart home setups DIY Smart Home Sensors met Arduino, MySensors en OpenHAB DIY Smart Home Sensors met Arduino, MySensors en OpenHAB Smart-homesensoren kosten een belachelijke hoeveelheid geld. Bedrading van een heel huis is het domein van mensen met domme hoeveelheden beschikbaar inkomen. Laten we onze eigen bouwen met MySensors. Lees meer en zelfs zelfgemaakte beveiligingssystemen DIY Smart Lock met Arduino en RFID DIY Smart Lock met Arduino en RFID Hier leest u hoe u een eenvoudig op RFID gebaseerd slim slot kunt bouwen met een Arduino als ruggengraat en een paar goedkope componenten. Lees verder .

Op deze manier communiceren met microcontrollers is een geweldige kennismaking met de wereld van doe-het-zelf hardware zonder de tijd te moeten besteden aan het leren van een geheel nieuwe programmeertaal. Veel plezier daar, en als je toevallig een moordende robot bouwt, onthoud dan nog hoe we je in de begintijd hielpen.

Ontdek meer over: Arduino, JavaScript.