Slik kontrollerer du din Arduino ved hjelp av JavaScript

Visste du at du kan kontrollere din Arduino med Javascript? Med et stykke programvare og litt kreativitet, kan du! Slik gjør du det.

Visste du at du kan kontrollere din Arduino med Javascript?  Med et stykke programvare og litt kreativitet, kan du!  Slik gjør du det.
Annonse

Arduino boards er en av de enkleste måtene å komme inn på maskinvare hacking for programmerere. Det er et stort utvalg av nybegynnerprosjekter 10 Great Arduino-prosjekter for nybegynnere 10 Great Arduino-prosjekter for nybegynnere Å fullføre et Arduino-prosjekt gir deg en følelse av tilfredshet som ingen andre. De fleste nybegynnere er ikke sikker på hvor du skal begynne, og selv begynnerprosjekter kan virke ganske skremmende. Les mer der ute for å passe nesten alle med en programmeringsbakgrunn. Likevel kan det være skremmende å komme i gang for dem som er kort i tide.

Lære et helt nytt språk Hvilket programmeringsspråk skal du lære for fremtiden? Hvilket programmeringsspråk skal du lære for fremtiden? Hvilken er det beste programmeringsspråket å lære for fremtiden? Hvis du bare kunne velge ett språk for å lære og mestre for fremtiden, er det ingen konkurranse: det må være JavaScript. Les mer bare for å prøve ut en mikrokontroller kan virke som mye arbeid. Hva om du vil begynne å leke med hjemmebryggingselektronikk på et språket du allerede er kjent med? Gode ​​nyheter: du kan!

Vi har allerede vist deg hvordan du styrer et Arduino bord med Python Slik programmerer og styrer du en Arduino med Python Slik programmerer og styrer du en Arduino med Python Dessverre er det umulig å programmere en Arduino i Python direkte, men du kan kontrollere den over USB ved hjelp av et Python-program. Dette er hvordan. Les mer, og i dag skal vi vise deg hvordan du gjør det samme med JavaScript. I stedet for bare den mest grunnleggende blinkende LED-opplæringen, bruker vi i dag Johnny-Five-rammeverket til å styre en servo med tastaturet, alle programmert i JavaScript. Hva er JavaScript og hvordan fungerer det? Hva er JavaScript og hvordan fungerer det? Hva er Javascript? Det er et programmeringsspråk som brukes til å forbedre nettsider. Den inkluderer dynamisk oppdatering av nettsider, brukergrensesnitt og mer. La oss dykke inn i hva Javascript handler om. Les mer .

Maskinvareliste

For dette prosjektet trenger du:

  • Arduino Uno (eller kompatibelt bord Arduino Buying Guide: Hvilket styre bør du få? Arduino Buying Guide: Hvilket styre bør du få? Det er så mange forskjellige typer Arduino boards der ute, du vil bli tilgitt for å være forvirret. kjøp for prosjektet? La oss hjelpe, med denne Arduino kjøpeguide! Les mer): $ 22 fra den offisielle butikken, selv om du kan få dem billigere 5 grunner til ikke å bruke en ekte Arduino i ditt neste prosjekt 5 grunner til ikke å bruke en ekte Arduino i ditt neste prosjekt Har Arduino-fundamentet gått for langt? Hvorfor skal du bruke pengene dine på ekte Arduino-produkter? Vi forklarer alt du trenger å vite. Les mer, klonbrett er tilgjengelig for så lite $ 3, 20 på AliExpress.
  • Hobby Servo: Enhver Arduino kompatibel servo fra en hobbybutikk vil gjøre, jeg bruker en $ 1, 60 servo fra AliExpress.
  • Et par stykker krog opp ledning
  • USB-kabel: For å koble Arduino til datamaskinen

hvordan å kontrollere arduino med javascript

Dagens opplæring vil bruke et Arduino Uno bord. Johnny-Five-rammeverket vi bruker senere i dette prosjektet, støtter de fleste Arduino-kompatible mikrokontrollere, selv om styret ditt må ha PWM-evne til å holde servoen glad.

Kretsoppsett

Fest din servo til din Arduino slik:

hvordan å kontrollere arduino med javascript

Kort sagt, VCC-linjen ( RØD ) kobles til 5v-pinnen til Arduino, GND-linjen ( BLACK eller BROWN ) kobles til GND-pinnen på Arduino og Pulse-linjen ( gul eller oransje ) kobles til pin 10 av Arduino. Merk at mens du ikke trenger å koble den til pin 10 spesifikt, må den koble til en PWM-pin, vanligvis betegnet med en ~ .

Dobbeltklikk at du ikke har blandet noen ledninger, og koble Arduino til datamaskinen. Vi bruker Windows 10 til dette prosjektet. Alle elementene i dette prosjektet er tilgjengelige for Mac og Linux, selv om noen installasjonsinstruksjoner kan avvike noe.

Hvis du ikke allerede har, last ned Arduino IDE og velg styret og porten i Verktøy- menyen. Hvis dette er første gang du gjør dette, og det er litt av et mysterium, begynner vår Arduino Beginners Guide Komme i gang med Arduino: En nybegynnersguide Komme i gang med Arduino: En nybegynnersguide Arduino er en åpen kilde elektronikk prototyping plattform basert på fleksibel, brukervennlig maskinvare og programvare. Det er ment for kunstnere, designere, hobbyister, og alle som er interessert i å lage interaktive objekter eller miljøer. Les mer kan hjelpe deg gjennom disse trinnene.

hvordan å kontrollere arduino med javascript

Når du har koblet den til, laster du opp StandardFirmataPlus eksempelskissen til brettet. Du kan finne denne skissen i Fil- menyen under Eksempler> Firmata> StandardFirmataPlus . Du trenger ikke å endre skissen i det hele tatt, det setter i hovedsak bare Arduino opp for å vente på instruksjoner utenfor - som vi vil gi oss selv senere.

JavaScript-robotikk med Johnny-Five

Rammen vi skal bruke til å kontrollere vår Arduino med Javascript kalles Johnny-Five. Uten overraskende, gitt sin filmnavne, er prosjektet rettet mot arbeid med robotikk.

hvordan å kontrollere arduino med javascript
Bildekreditt: johnny-five.io

For å installere Johnny-Five må vi først installere Node.js Hva er Node.JS og hvorfor skal jeg bry deg? [Webutvikling] Hva er Node.JS og hvorfor skal jeg bryr meg? [Webutvikling] JavaScript er et bare programmeringsspråk på klientsiden som kjører i nettleseren, ikke sant? Ikke nå lenger. Node.js er en måte å kjøre JavaScript på serveren på; men det er så mye mer også. Hvis ... Les mer. Du kan laste ned deres nyeste bygge fra Node.js nettside. Vi bruker den anbefalte utgivelsen, som i skrivende stund er 8.9.4 LTS .

Åpne .msi- filen og følg installeringsinstruksjonene, sørg for at den blir lagt til i PATH . Nåværende Node.js installer legger til PATH som standard, men det er verdt å sjekke dette under installasjonen som det kreves for vårt neste trinn.

hvordan å kontrollere arduino med javascript

Når installasjonen er fullført, vil vi få tilgang til pakkebehandleren Node Package Manager (NPM) fra Windows Command Line (CMD). Klikk Start og skriv CMD. Før vi fortsetter, må vi initialisere NPM for å forhindre mulige installasjonsfeil. Det krever ingen spesialkunnskap, bare skriv inn:

npm init 

Følg instruksjonene på skjermen. For dagens prosjekt trenger du ikke endre noe, bare trykk enter inntil du er tilbake på ledeteksten, og skriv deretter inn:

 npm install johnny-five 

Dette vil installere alle viktige pakker, som vil snakke med vår Arduino. Vi trenger ytterligere ting for å få dette prosjektet til å fungere, og det er Keypress- pakken, som lar oss lese tastetrykk fra tastaturet.

Installer den ved å skrive inn:

 npm install keypress 

Når alle disse pakkene er installert, er vi klare til å kode!

Hvis du får problemer med å installere, kan du prøve å kjøre johnny-five-installasjonen igjen etter at tastetrykkinstallasjonen er installert. Det kan bare være en prang av NPM-versjonen som brukes her, men å gjøre dette forhindrer nå et problem du sannsynligvis vil løpe inn senere som jeg gjorde.

Koden

Vi vil bruke et stykke eksemplar kode gitt i johnny-fem dokumentasjonen i dag, som gir kontroll over vår servo ved hjelp av piltastene på tastaturet. Den fulle koden er tilgjengelig på johnny-five.io, men vi vil gjennomgå det her i detalj for å forstå hvordan det fungerer.

Vi bruker Eclipse IDE 8 mest nyttige tastaturgenveier for nybegynnere Eclipse IDE-brukere 8 mest nyttige tastaturgenveier for nybegynnere Eclipse IDE-brukere Som nybegynner-vennlig som Eclipse IDE (grensesnitt) er du skylt på deg selv for å lære disse hurtigtastene. Les mer for koding i dag, selv om du kan bruke IDE eller tekstredigerer Tekstredigerere vs. IDE: Hvilken er bedre for programmerere? Tekstredigerere vs IDE: Hvilken er bedre for programmerere? Å velge mellom en avansert IDE og en enklere tekstredigerer kan være vanskelig. Vi gir litt innsikt for å hjelpe deg med å ta den beslutningen. Les mer for dette prosjektet.

Opprett en ny fil og navnet den test.js, og lagre den et sted du lett kan få tilgang til fra kommandolinjen senere. Skriptet begynner med å skape variabler for de nødvendige biblioteker og initialisere tastetrykkbiblioteket for å lytte etter innkommende data, samt å ringe til styret () -metoden for å sette opp brettet.

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

Legg merke til at brettoppsettet her er automatisk, ikke noe å spesifisere porter. Hvis du har et bestemt portoppsett, eller bare ikke har lykke med automatisk oppdagelse, må du kanskje spesifisere porten din eksplisitt.

Neste opp vil vi "våkne opp" styret vårt og sette det opp for servostyring. Bordet venter til Arduino-pinnene er klare før de går videre. Johnny-fem-biblioteket har støtte for servoer bygget inn, og vi ringer Servo.Continuous (10) på pin 10 for å tillate direkte 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 samtaler sørger for at alle dataene vi mottar fra tastaturet, vil kunne brukes i neste kodenavn. Nå vil vi "høre" for tastetrykk og bruke dem til å flytte servoen med urviseren (CW), mot klokken (CCW), eller å stoppe i sporene.

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

Forsikre deg om at du inkluderer alle lukkekonsollene nederst her, og referer til hele koden som kalt ovenfor hvis du får feil. Lagre dette skriptet, og åpne kommandoprompt.

Vifter Hei!

Naviger nå til katalogen du har lagret skriptet ditt, og kjør det ved å skrive:

 node test.js 

Programmet bør starte umiddelbart med informasjon om styret, før du gir instruksjonene som er oppgitt i koden. Prøv å trykke opp og ned piltastene, og mellomromstasten, og Q å slutte. Skjermen skal se slik ut:

hvordan å kontrollere arduino med javascript

Og alt er bra, servo skal danse til tastetrykkene dine! Se på den lille beastiebølgen!

Ydmyke begynnelser

Til tross for å ta på seg et litt mer ambisiøst prosjekt enn den vanlige nybegynner-blinkende LED-opplæringen, har vi knapt nok rørt hele spekteret av hva som kan gjøres med Arduino boards og lignende mikrokontroller.

Krydrede JavaScript-brukere bør finne Johnny-Five-pakken intuitiv å jobbe med. Biblioteket kan også installeres på Raspberry Pi, noe som gjør den til en perfekt pakke for spirende robotbyggere.

Det flotte med dette biblioteket er at selv om det er designet med roboter i tankene, kan de samme inn- og utgangsdataene brukes til å lage DIY smart hjemmeoppsett. DIY Smart Home Sensors med Arduino, MySensors og OpenHAB DIY Smart Home Sensors med Arduino, MySensors og OpenHAB Smart hjemme sensorer koster en latterlig sum penger. Ledning av et helt hus er domenet til de med dumme mengder disponibel inntekt. La oss bygge vår egen med MySensors. Les mer og til og med hjemmebryggede sikkerhetssystemer DIY Smart Lock med Arduino og RFID DIY Smart Lock med Arduino og RFID Slik bygger du en enkel RFID-basert smart lås ved hjelp av en Arduino som ryggraden og noen få billige komponenter. Les mer .

Kommunisere med mikrokontrollere på denne måten er en god introduksjon til DIY-maskinvaren uten å måtte bruke tiden til å lære et helt nytt programmeringsspråk. Ha det gøy der ute, og hvis du skal bygge en morderobot, vær så snill å huske hvordan vi hjalp deg i de tidlige dager.

In this article