Slik kontrollerer du din Arduino ved hjelp av JavaScript

Slik kontrollerer du din Arduino ved hjelp av JavaScript / programmering

Arduino boards er en av de enkleste måtene å komme inn på maskinvare hacking for programmerere. Det er et stort utvalg av nybegynnerprosjekter 15 Great Arduino-prosjekter for nybegynnere 15 Great Arduino-prosjekter for nybegynnere Interessert i Arduino, men ikke sikker på hvor du skal begynne? Her er noen av våre beste Arduino-prosjekter for nybegynnere å komme i gang med! 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

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:

Kort sagt, VCC-linje (RØD) kobles til 5v-pin av Arduino, GND-linjen (SVART eller BRUN) kobles til GND-tappen på Arduino og Pulse-linjen (Gul eller oransje) Koble 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 din Borde og Havn fra Verktøy Meny. 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.

Når du har koblet den til, last opp StandardFirmataPlus eksempel skisse til styret. Du finner denne skissen i Fil meny 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 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.

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 fil og følg installeringsinstruksjonene, sørg for at den blir lagt til din STI. 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.

Når installasjonen er fullført, har vi tilgang til Node Package Manager (NPM) pakkebehandling 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 installere johnny-five

Dette vil installere alle viktige pakker, som vil snakke med vår Arduino. Vi trenger en ytterligere ting for å få dette prosjektet til å fungere, og det er Tastetrykk pakke, som gjør at vi kan lese tastetrykk fra tastaturet.

Installer den ved å skrive inn:

npm installere tastetrykk

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 på nytt etter tastetrykkinstallasjonen. Det kan bare være en prang av NPM-versjonen som brukes her, men å gjøre dette forhindrer nå et problem du sannsynligvis kommer til å 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 Eclipse Keyboard Shortcuts Nødvendig for nybegynnere 8 Eclipse Keyboard Shortcuts Nødvendig for nybegynnere Som nybegynner-vennlig som Eclipse IDE (grensesnitt) er, skylder du det selv for å lære disse hurtigtastene. Les mer for koding i dag, selv om du kan bruke noen 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 Tastetrykk bibliotek for å lytte etter innkommende data, sammen med å ringe Borde() metode for å sette opp styret.

var fem = krever ("johnny-fem"); var tastetrykk = krever ("tastetrykk"); tastetrykk (process.stdin); var styret = nytt fem. Bord (); 

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åkn opp” vårt bord og sett det opp for servostyring. De board.on Samtale 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 ("Bruk opp og ned pilene for henholdsvis CW og CCW. Plass til å stoppe."); var servo = ny five.Servo.Continuous (10); stdin.resume (); process.stdin.setEncoding ("utf8"); process.stdin.setRawMode (true);

De process.stdin samtaler sørger for at alle dataene vi mottar fra tastaturet, vil være brukbare i neste blokk med kode. Nå vil vi “lytte” for tastetrykk og bruk dem til å flytte servoen med urviseren (CW), mot klokka (CCW), eller å stoppe i sporene.

 prosess.stdin.on ("tastetrykk", funksjon (ch, tast) hvis (! -tasten) // hvis ingen tast er trykket, returner dvs. gjør ingenting. return; hvis (key.name === "q" ) console.log ("Quit"); process.exit (); annet hvis (key.name === "up") console.log ("CW"); servo.cw (); annet hvis (key.name === "down") console.log ("CCW"); servo.ccw (); annet hvis (key.name === "space") console.log ("Stopp") ; 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 på piltastene opp og ned, og mellomromstasten og Q å slutte. Skjermen skal se slik ut:

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.

Utforsk mer om: Arduino, JavaScript.