Så här kontrollerar du din Arduino med JavaScript

Visste du att du kan styra din Arduino med Javascript? Med ett program och en viss kreativitet kan du! Så här gör du det.

Visste du att du kan styra din Arduino med Javascript?  Med ett program och en viss kreativitet kan du!  Så här gör du det.
Annons

Arduino boards är ett av de enklaste sätten att komma in i hårdvarupackning för programmerare. Det finns ett stort antal nybörjareprojekt. 10 Stora Arduino-projekt för nybörjare. 10 Stora Arduino-projekt för nybörjare. Att slutföra ett Arduino-projekt ger dig en känsla av tillfredsställelse som ingen annan. De flesta nybörjare är inte säkra på var man ska börja, och även nybörjareprojekt kan verka ganska skrämmande. Läs mer där ute för att passa nästan alla med en programmeringsbakgrund. Trots det är det svårt att komma igång med dem som är korta i tid.

Att lära sig ett helt nytt språk Vilket programmeringsspråk ska du lära dig för framtiden? Vilket programmeringsspråk ska du lära dig för framtiden? Vilket är det bästa programmeringsspråket för att lära sig för framtiden? Om du bara kunde välja ett språk för att lära och behärska framtiden, är det ingen tävling: det måste vara JavaScript. Läs mer bara för att prova en mikrokontroller kan verka som mycket arbete. Vad händer om du vill börja spela med hemmabryggelektronik på ett programspråk du redan är bekant med? Goda nyheter: du kan!

Vi har redan visat dig hur man styr en Arduino-styrelse med Python Hur man programmerar och kontrollerar en Arduino med Python Hur man programmerar och kontrollerar en Arduino med Python Tyvärr är det omöjligt att direkt programmera en Arduino i Python, men du kan styra den över USB med ett Python-program. Här är hur. Läs mer, och idag ska vi visa dig hur du gör detsamma med JavaScript. I stället för bara den mest grundläggande blinkande LED-handledningen, använder vi idag Johnny-Five-ramverket för att styra en servo med datorns tangentbord, alla programmerade i JavaScript Vad är JavaScript och hur fungerar det? Vad är JavaScript och hur fungerar det? Vad är Javascript? Det är ett programmeringsspråk som används för att förbättra webbsidor. Den innehåller dynamiskt uppdatering av webbsidor, användargränssnitt och mer. Låt oss dyka in vad Javascript handlar om. Läs mer .

Hårdvarulista

För detta projekt behöver du:

  • Arduino Uno (eller kompatibel styrelse Arduino Köpguide: Vilket styrelse ska du få? Arduino Köpguide: Vilket styrelse ska du få? Det finns så många olika typer av Arduino brädor där ute, du skulle bli förlåtad för att vara förvirrad. köp till ditt projekt? Låt oss hjälpa till med den här Arduino-köpguiden! Läs mer): $ 22 från den officiella butiken, men du kan få dem billigare. 5 Skäl att inte använda en äkta Arduino i ditt nästa projekt. 5 Anledningar att inte använda en äkta Arduino i ditt nästa projekt Har Arduino-stiftelsen gått för långt? Varför ska du spendera dina pengar på äkta Arduino produkter? Vi förklarar allt du behöver veta. Läs mer, klonskivor finns tillgängliga för så lite $ 3, 20 på AliExpress.
  • Hobby Servo: Varje Arduino-kompatibel servo från en hobbybutik kommer att göra, jag använder en $ 1, 60 servo från AliExpress.
  • Ett par bitar av krok upp tråd
  • USB-kabel: För att ansluta Arduino till din dator

hur man kontrollerar arduino med javascript

Dagens handledning kommer att använda ett Arduino Uno styrelse. Den Johnny-Five-ram som vi använder senare i detta projekt stöder de flesta Arduino-kompatibla mikrokontroller, även om din styrelse kommer att behöva ha PWM-kapacitet för att hålla servo glad.

Kretskonfiguration

Fäst din servo till din Arduino så här:

hur man kontrollerar arduino med javascript

Kort sagt, VCC-linjen ( RED ) ansluter till 5-polet Arduino, GND-linjen ( BLACK eller BROWN ) ansluter till GND-nålen på Arduino och Pulslinjen ( Gul eller Orange ) ansluts till Pin 10 i Arduino. Observera att medan du inte behöver ansluta den till stift 10 specifikt måste den anslutas till en PWM-stift, vanligtvis betecknad en ~ .

Kontrollera att du inte har blandat några kablar och anslut Arduino till din dator. Vi använder Windows 10 för det här projektet. Alla element i projektet är tillgängliga för Mac och Linux, även om vissa installationsanvisningar kan skilja sig något.

Om du inte redan har laddat ner Arduino IDE och välj ditt styrelse och portVerktyg- menyn. Om det här är första gången du gör det här och det är lite av ett mysterium, börjar vår Arduino Beginners Guide Komma igång med Arduino: En nybörjarhandbok Komma igång med Arduino: En nybörjarhandbok Arduino är en öppen källkods elektronikprototypplattform baserad på flexibel, lättanvänd maskinvara och programvara. Den är avsedd för artister, designers, hobbyister och alla som är intresserade av att skapa interaktiva objekt eller miljöer. Läs mer kan hjälpa dig genom dessa steg.

hur man kontrollerar arduino med javascript

När du har anslutit det, ladda upp StandardFirmataPlus- exempelskissen till styrelsen. Du kan hitta den här skissen på Arkiv- menyn under Exempel> Firmata> StandardFirmataPlus . Du behöver inte ändra skissen alls, det väcker i princip bara Arduino och väntar på externa instruktioner - som vi kommer att förse oss senare.

JavaScript-robotik med Johnny-Five

Ramverket vi ska använda för att styra vår Arduino med Javascript heter Johnny-Five. Otroligt, med tanke på sin filmnamn, är projektet inriktat på att arbeta med robotik.

hur man kontrollerar arduino med javascript
Bildkrediter: johnny-five.io

För att installera Johnny-Five måste vi först installera Node.js Vad är Node.JS och varför ska jag bry mig? [Webbutveckling] Vad är Node.JS och varför ska jag bry sig? [Webbutveckling] JavaScript är ett helt enkelt programmeringsspråk för klientsidor som körs i webbläsaren, eller hur? Inte längre. Node.js är ett sätt att köra JavaScript på servern; men det är så mycket mer också. Om ... Läs mer. Du kan ladda ner deras senaste byggnad från Node.js webbplats. Vi använder den rekommenderade utgåvan, som vid skrivningstillfället är 8.9.4 LTS .

Öppna .msi- filen och följ installationsanvisningarna, se till att den läggs till i din PATH . Nuvarande Node.js installatör lägger till PATH som standard, men det är värt att kolla detta under installationen som det krävs för vårt nästa steg.

hur man kontrollerar arduino med javascript

När installationen är klar kommer vi att ha tillgång till pakethanteraren Node Package Manager (NPM) från Windows Command Line (CMD). Klicka på Start och skriv CMD. Innan vi fortsätter måste vi initiera NPM för att förhindra eventuella installationsfel. Det kräver ingen specialistkunskap, skriv bara:

npm init 

Följ anvisningarna på skärmen. För dagens projekt behöver du inte ändra någonting, tryck bara på enter tills du är tillbaka vid kommandotolken och skriv sedan:

 npm install johnny-five 

Detta kommer att installera alla viktiga paket, som kommer att prata med vår Arduino. Vi behöver ytterligare en sak för att få det här projektet att fungera, och det är Keypress- paketet, vilket gör det möjligt för oss att läsa tangenttryckningar från tangentbordet.

Installera det genom att ange:

 npm install keypress 

När alla dessa paket är installerade, är vi redo att koda!

Om du stöter på några problem under installationen kan du försöka köra johnny-five-installationen igen efter att tangentinstallationen har installerats. Det kan bara vara en jubel av NPM-versionen som används här, men gör det här nu förhindrar ett problem som du sannolikt kommer att springa in senare som jag gjorde.

Koden

Vi använder en exemplar kod som finns i johnny-fem dokumentationen idag, vilket gör det möjligt att styra över vår servo med piltangenterna på tangentbordet. Den fullständiga koden finns tillgänglig på johnny-five.io, men vi kommer att gå igenom det här i detalj för att fullt ut förstå hur det fungerar.

Vi använder Eclipse IDE 8 mest användbara tangentbordsgenvägar för nybörjare Eclipse IDE-användare 8 mest användbara tangentbordsgenvägar för nybörjare Eclipse IDE-användare Som nybörjevänlig som Eclipse IDE (gränssnitt) är du skyldig att själv lära dig dessa kortkommandon. Läs mer för kodning idag, men du kan använda någon IDE eller textredigerare Textredigerare vs IDE: Vilken är bättre för programmerare? Textredigerare vs IDE: Vilken är bättre för programmerare? Att välja mellan en avancerad IDE och en enklare textredigerare kan vara svår. Vi erbjuder lite insikt för att hjälpa dig att fatta beslutet. Läs mer för det här projektet.

Skapa en ny fil och namnge den test.js, och spara den någonstans så kan du enkelt komma åt kommandoraden senare. Skriptet startar genom att skapa variabler för de obligatoriska biblioteken och initiera tangenttrycksbiblioteket för att lyssna på inkommande data, tillsammans med att anropa styrelsen () för att ställa in styrelsen.

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

Observera att brädans inställningar här är automatiska, utan att behöva ange portar. Om du har en specifik portinställning eller bara har ingen tur med auto-detekteringen kan du behöva ange din port explicit.

Därefter vill vi "väcka" vår styrelse och sätta upp den för servostyrning. Bordet väntar tills Arduino-stiftarna är klara innan de går vidare. Johnny-5-biblioteket har stöd för servos inbyggda, och vi ringer Servo.Continuous (10) på pin 10 för att möjliggöra direkt kontroll.

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

Process.stdin samtal säkerställer att alla data vi mottar från tangentbordet kommer att vara användbara i nästa block av kod. Nu vill vi "lyssna" för tangenttryckningar och använda dem för att flytta vår servo medurs (CW), moturs (CCW), eller för att stoppa i dess spår.

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

Se till att du inkluderar alla stängningsfästena längst ned här, och hänvisa till hela kvarteret som länkat ovan om du får några fel. Spara det här skriptet och öppna kommandotolken.

Vifta Hello!

Navigera nu till katalogen där du har sparat ditt skript och kör det genom att skriva:

 node test.js 

Programmet bör starta omedelbart med information om styrelsen innan du ger de instruktioner som anges i koden. Försök att trycka uppåt och nedåtpilarna och mellanslagstangenten och Q för att sluta. Skärmen ska se ut så här:

hur man kontrollerar arduino med javascript

Och allt är bra, servo ska dansa till dina tangenttryckningar! Titta på den lilla beastievågen!

Ödmjuka begynnelser

Trots att vi tagit ett något mer ambitiöst projekt än den vanliga nybörjare-blinkande LED-handledningen, har vi knappt ens berört den fulla omfattningen av vad som kan göras med Arduino boards och liknande mikrokontroller.

Kryssade JavaScript-användare ska hitta Johnny-Five-paketet intuitivt att arbeta med. Biblioteket kan också installeras på Raspberry Pi, vilket gör det till ett perfekt paket för spirande robotbyggare.

Det stora med det här biblioteket är att även om det är konstruerat med robotar i åtanke, kan samma inmatnings- och utgångsdata användas för att skapa DIY smarta heminställningar. DIY Smart Home Sensors med Arduino, MySensors och OpenHAB DIY Smart Home Sensors med Arduino, MySensors och OpenHAB Smart hemsensorer kostar en löjlig summa pengar. Anslutning av ett helt hus är domänen för dem med dumma mängder disponibel inkomst. Låt oss bygga våra egna med MySensors. Läs mer och till och med hembräda säkerhetssystem DIY Smart Lock med Arduino och RFID DIY Smart Lock med Arduino och RFID Så här bygger du ett enkelt RFID-baserat smärtlås med hjälp av en Arduino som ryggrad och några billiga komponenter. Läs mer .

Kommunicera med mikrokontroller på detta sätt är en bra introduktion till världen av DIY-hårdvara utan att behöva ägna sig åt att lära sig ett helt nytt programmeringsspråk. Ha det roligt där ute, och om du råkar bygga en mördarerobot, kom ihåg hur vi hjälpte dig i de tidiga dagarna.

In this article