Hoe u uw Arduino bedient met JavaScript

Wist je dat je je Arduino kunt besturen met Javascript? Met een stukje software en wat creativiteit, dat kan! Hier is hoe het te doen.

Wist je dat je je Arduino kunt besturen met Javascript?  Met een stukje software en wat creativiteit, dat kan!  Hier is hoe het te doen.
Advertentie

Arduino-kaarten zijn een van de gemakkelijkste manieren om hardware-hackers voor programmeurs in te schakelen. Er zijn een groot aantal beginnersprojecten. 10 Great Arduino Projects for Beginners 10 Great Arduino Projects for Beginners Het voltooien van een Arduino-project geeft je een gevoel van voldoening als geen ander. De meeste beginners weten echter niet waar ze moeten beginnen, en zelfs projecten voor beginners kunnen behoorlijk intimiderend lijken. Lees meer daar voor bijna iedereen met een programmeerachtergrond. Maar toch, aan de slag kan intimiderend 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 echte 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

hoe arduino te controleren met javascript

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:

hoe arduino te controleren met javascript

Kort gezegd, VCC-lijn ( RED ) maakt verbinding met de 5v-pin van de Arduino, de GND-lijn ( BLACK of BROWN ) verbindt met de GND-pin van de Arduino en de Pulse-lijn ( geel of oranje ) verbindt met pin 10 van de Arduino. Merk op dat terwijl u het niet specifiek aan pin 10 hoeft te verbinden, het moet worden verbonden met een PWM-pin, meestal aangegeven 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, als je dat nog niet hebt gedaan, de Arduino IDE en kies je Board en Port in het menu Tools . 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 beginnersgids 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.

hoe arduino te controleren met javascript

Zodra je het hebt aangesloten, upload je de StandardFirmataPlus- voorbeeldschets naar het bord. U vindt deze schets in het menu Bestand 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 verschaffen.

JavaScript Robotics met Johnny-Five

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

hoe arduino te controleren met javascript
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? [Webontwikkeling] 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 8.9.4 LTS is .

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

hoe arduino te controleren met javascript

Nadat de installatie is voltooid, hebben we toegang tot de pakketbeheerder van Node Package Manager (NPM) vanaf de Windows Command Line (CMD). Klik op Start 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 install 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 Keypress- pakket, waarmee we toetsaanslagen van het toetsenbord kunnen lezen.

Installeer het door het volgende in te voeren:

 npm install keypress 

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

Als er tijdens het installeren problemen optreden, probeer de installatie van Johnny-Five nogmaals uit te voeren nadat de toetsaanslag is geïnstalleerd. 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 waarschijnlijk later tegenkomt, zoals ik deed.

De code

We zullen vandaag een stukje voorbeeldcode gebruiken die wordt geleverd 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 Meest bruikbare sneltoetsen voor beginners Eclipse IDE-gebruikers 8 Meest bruikbare sneltoetsen voor beginners Eclipse IDE-gebruikers Als nieuwkomer 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 Keypress- bibliotheek om binnenkomende gegevens te beluisteren, samen met het aanroepen van de methode Board () om het bord in te stellen.

 var five = require("johnny-five"); var keypress = require("keypress"); keypress(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.

Vervolgens willen we ons bord "wakker maken" en instellen voor servobesturing. Het board.on- call wacht totdat de Arduino-pinnen klaar zijn voordat ze verder gaan. De johnny-five bibliotheek heeft ondersteuning voor ingebouwde servo's en we roepen Servo.Continuous (10) op pin 10 om directe controle mogelijk te maken.

 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); 

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

 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(); } }); }); 

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:

hoe arduino te controleren met javascript

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 de volledige omvang van wat kan worden gedaan met Arduino-borden en vergelijkbare 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 om DIY Smart Home-setups te maken. 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 hoe we je in de begintijd hebben geholpen.

In this article