Sådan programmeres og styres en Arduino med Python

  • Gabriel Brooks
  • 0
  • 4216
  • 738
Reklame

Python har taget den kodende verden med storm. Ved siden af ​​fremkomsten af ​​dette nye sprog har DIY-elektronik-scenen også blomstret. Udviklingsborde og enkeltbordscomputere fra virksomheder som Arduino Hvad er Arduino og hvad kan du gøre med det? Hvad er Arduino og hvad kan du gøre med det? Arduino er en bemærkelsesværdig lille elektronik, men hvis du aldrig har brugt en før, hvad er de nøjagtigt, og hvad kan du gøre med en? og Raspberry Pi Raspberry Pi: Den uofficielle tutorial Raspberry Pi: Den uofficielle tutorial Uanset om du er en nuværende Pi-ejer, der vil lære mere eller en potentiel ejer af denne enhed med kreditkortstørrelse, er dette ikke en guide, du vil gå glip af . har ændret måden, hvorpå folk skaber hjemmebrygget elektronik. Ville det ikke være fantastisk, hvis du kunne programmere en Arduino med Python?

Der er ingen bedre følelse end at kombinere to seje ting. Desværre er det umuligt at direkte programmere en Arduino med Python, da brædderne ikke har nogen mulighed for fortolkning af sproget ombord. Hvad der dog er muligt, er direkte kontrol over USB ved hjælp af et Python-program.

Denne artikel viser dig, hvordan du opretter en Arduino UNO (dog et Arduino-kompatibelt bord Arduino Buying Guide: Hvilket bord skal du få? Arduino Buying Guide: Hvilket bord skal du få? Der er så mange forskellige slags Arduino boards derude, du ville blive tilgivet for at blive forvirret. Hvilket skal du købe til dit projekt? Lad os hjælpe med denne Arduino-købsguide! kan arbejde her) til at blive programmeret og kontrolleret fra kommandolinjen ved hjælp af Python-programmer. Denne tutorial er skrevet til Windows 10, men fungerer også til Mac og Linux. Du kan endda bruge denne arbejdsgang til at kontrollere en Arduino direkte fra en Raspberry Pi-hjemmeautomatiseringsvejledning med Raspberry Pi og Arduino-hjemmeautomatiseringsvejledning med Raspberry Pi og Arduino Hjemme-automatiseringsmarkedet er oversvømmet med dyre forbrugersystemer, uforenelige med hinanden og dyre at installere . Hvis du har en Raspberry Pi og en Arduino, kan du dybest set opnå det samme ved ... for den ultimative dobbelt-down-DIY-oplevelse.

Opsætning af din Arduino til Python

Til dagens projekt bruger vi en Arduino Uno sammen med pyFirmata-interface til Python. Du kan bruge næsten ethvert Arduino-kompatibelt bræt til dette, selvom kun Arduino Uno, Mega, Due og Nano understøttes af pyFfirmata-grænsefladen på dette tidspunkt. Hvis du allerede er en Python-guru, kan du tilføje din egen bredsupport til pyFirmata - sørg for at opdatere deres GitHub, hvis du gør!

Hvis du ikke allerede har gjort det, skal du installere Arduino IDE. Hvis du er helt ny i verdenen af ​​mikrokontrollere, er vores begyndervejledning til Arduino Kom godt i gang med Arduino: En begynderguide Kom godt i gang med Arduino: En begynderguide Arduino er en open source-elektronikprototypeplatform baseret på fleksibel, let at bruge hardware og software. Det er beregnet til kunstnere, designere, hobbyister og enhver der er interesseret i at skabe interaktive objekter eller miljøer. vil hjælpe dig med at få alt på plads.

Tilslut dit Arduino-kort, og åbn IDE-koden. Sørg for, at du har valgt det rigtige kort og port i Værktøj menu. Indlæs op StandardFirmata eksempel skitse og uploade det til brættet. Dette giver dig mulighed for at kontrollere Arduino direkte, så længe den er tilsluttet computeren via USB. Forudsat at skitse blev uploadet til dit bord uden fejl, er du klar til at gå videre.

Python og kommandolinjekontrol

Vi bruger Python 3.4 til at kontrollere vores Arduino, da det modul, du installerer, specificerer dette som den seneste kompatible version. Enhver version før dette skal fungere fint, og senere versioner er rapporteret at fungere. Du kan downloade Python 3.4 til Windows 10 fra webstedet Python Software Foundation. Hvis du vil køre flere versioner af Python, lærer vores guide til Python-virtuelle miljøer, hvordan man bruger Python-virtuelle miljø Lær, hvordan man bruger Python-virtuelle miljø Uanset om du er en erfaren Python-udvikler, eller du lige er i gang med at lære at installation af et virtuelt miljø er vigtigt for ethvert Python-projekt. vil være i stand til at hjælpe dig.

Når du har installeret Python, vil vi tilføje det til dit systems PATH-variabel. Dette vil lade os køre Python-kode direkte fra kommandolinjen uden at skulle være i det bibliotek, det blev installeret i. Du kan gøre dette ved at åbne Kontrolpanel, leder efter Miljø og klik på Rediger systemmiljøvariablerne. Vælg nederst i vinduet miljøvariabler. Dette åbner dette vindue:

Hvis du allerede ser STI på listen, klik på rediger, og tilføj din Python og Python / Scripts vejviser. Hvis du ikke har en PATH-variabel, skal du klikke på ny og tilføje den. Bemærk, at Python blev installeret direkte i C: \ her. Hvis du installerede det andetsteds, skal du ændre det for at afspejle dette. Klik på OK nedad i Windows-kæden, og du er næsten klar til at kontrollere din Arduino med Python!

Den magiske fedt

Du har brug for et sidste stykke af puslespillet for at få Python til at tale godt med vores Arduino. Dette kommer i form af en Python-interface, der kaldes pyFirmata. Denne interface, oprettet af Tino de Bruijn, kan downloades fra github, selvom du kan installere den direkte fra kommandolinjen ved at skrive:

pip installere pyfirmata

I det hele taget skal det installeres og se sådan ud:

Hvis det mislykkes, skal du gå til at tilføje Python til Miljøvariabel og sørg for, at du har givet den rigtige sti til dit Python-bibliotek.

At få det til at ske

Nu er alt opsat, og du kan oprette et Python-program til din Arduino for at teste det. Åbn en IDE efter dit valg. Vi bruger Eclipse 8 Eclipse Tastaturgenveje, der er vigtige for begyndere 8 Eclipse Tastaturgenveje, der er vigtige for begyndere Så nybegynder som Eclipse IDE (interface) er, skylder du dig selv at lære disse tastaturgenveje. i dag, men du kunne lige så let bruge enhver tekstredigerer Teksteditorer vs. IDE'er: Hvilken er bedre for programmerere? Tekstredaktører vs. IDE'er: Hvilken af ​​dem er bedre for programmerere? Det kan være svært at vælge mellem en avanceret IDE og en enklere teksteditor. Vi tilbyder en vis indsigt for at hjælpe dig med at tage denne beslutning. , eller endda en IDE i skyen Codenvy IDE: En online IDE til Ruby, HTML, Java, Python og mere Codenvy IDE: En online IDE til Ruby, HTML, Java, Python og mere .

Opret et nyt script, og gem det som blink.py. Ved at bryde traditionen med det standard blinkende LED-program skal du oprette et program, der beder brugeren om, hvor mange gange de vil have LED'en til at blinke, inden den udføres. Det er et kort program, som du kan downloade her, hvis du vil komme direkte til det, men lad os nedbryde det.

For det første vil du importere, hvad du har brug for fra pyFirmata modul sammen med standard Python Tid modul.

fra import af Pyfirmata Arduino, brug importtid

Nu skal du oprette Arduino-tavlen. Denne artikel antager, at du bruger en Arduino Uno selvom flere andre Arduino-bestyrelser understøttes. Se pyFirmata github for detaljer om bordstøtte.

Kontroller, hvilken COM-port du bruger i Arduino IDE, og indtast den i din kode som variablen bestyrelse.

bord = Arduino ("COM3")

Nu konfigurerer du brugerprompt. De, der kender Python, vil genkende alt her. Du udskriver et spørgsmål til skærmen vha input funktion, og gem svaret som en variabel. Når brugeren har angivet et nummer, rapporterer programmet, hvor mange gange LED'en blinker.

loopTimes = input ('Hvor mange gange vil du have, at LED'en skal blinke:') udskrive ("Blinkende" + loopTimes + "gange.")

For at få LED'en til at blinke det korrekte antal gange bruger du a til løkke. Hvis du er ny med Python 10 Basic Python-eksempler, der vil hjælpe dig med at lære hurtigt 10 Basic Python-eksempler, der vil hjælpe dig med at lære hurtigt Denne artikel med grundlæggende Python-eksempler er for dem, der allerede har en vis programmeringserfaring og blot ønsker at skifte til Python så hurtigt som muligt. , pas på indrykket, da rummene i modsætning til andre sprog er en del af syntaksen. Bemærk, at pin 13 er den indbyggede LED til Arduino Uno, du bliver nødt til at ændre dette, hvis dit bord er anderledes.

for x inden for rækkevidde (int (loopTimes)): board.digital [13] .write (1) time.sleep (0.2) board.digital [13] .write (0) time.sleep (0.2)

Du skal cast loopTimes variabel til et heltal her, da input fra brugeren automatisk gemmes som en streng. I denne enkle demo antager vi, at brugeren indtaster en numerisk værdi. Enhver anden post som 'otte' vil kaste en fejl.

Gem dit script, og åbn Kommandoprompt.

Blinkende lys og andre åbenbaringer

Alt er klar til at gå, alt hvad du skal gøre er at navigere til hvor scriptet er og køre det. Gør dette ved at skrive cd [sti til scriptets bibliotek] og derefter skrive python blink.py.

Alt i alt kommer dit program til at starte med en lille forsinkelse, når Arduino initialiserer, beder dig om et nummer og derefter blinke så mange gange ved hjælp af den indbyggede LED.

Programoutputen skal se sådan ud:

Så snart du trykker på enter efter dit valgte antal blink, skal Arduino udføre dine ordrer.

Små begyndelser

Dette projekt har været en barebones start til at kommunikere mellem Python og et Arduino-bord. Denne tilgang er meget forskellig fra den sædvanlige arbejdsgang til at uploade scripts til selve Arduino, men det åbner dog en helt ny måde at arbejde med platformen på, især hvis du kan lide Python programmeringssprog.

Hvis du bruger en Linux-server 12 Bedste Linux-serveroperativsystemer, og hvem skal bruge dem 12 Bedste Linux-serveroperativsystemer, og Hvem skal bruge dem Bygning af en server? Linux er ideel, og tilbyder typisk forbedrede tilladelser, øget fleksibilitet og stabilitet. Men hvilken skal du vælge? Tjek de 12 bedste Linux-serveroperativsystemer, og hvem der skal bruge dem. derhjemme kunne denne metode til kommunikation med Arduino-boards udvide denne server til et fuldt udbygget DIY Home Automation-system. Ved at kombinere Python-scripts, der styrer mikrokontrolleren med et DIY-automatiseringskredsløb, Arduino-projektidéer til et automatiseret hjem-Arduino-projektideer til et automatiseret hjem. Ville det ikke være dejligt at vande dit drivhus uden at forlade din stol? En Arduino kan engageres som nøglekomponenten i nogle hjemmeautomatiseringsprojekter - her er fem! , Din NAS-opbevaringsboks kan få et helt nyt sæt nyttige funktioner.

For at gøre det til den ultimative DIY-oplevelse, hvorfor ikke bygge din egen NAS-boks Har du brug for netværkslagring? Sådan bygger du din egen NAS-boks Har du brug for netværkslagring? Her er, hvordan du opbygger din egen NAS-kasse NAS står for netværksbundet lagerplads. Da Windows blev lettere at bruge med netværkstilsluttede enheder, og hardwarepriserne faldt, begyndte dette udtryk at blive brugt på forbrugermarkedet. I dag er der en lang række ... og bruger du det til også at kontrollere dine apparater? Forestil dig, hvor sej det ville være at trykke på play på din Plex Din guide til Plex - The Awesome Media Center Din Guide til Plex - The Awesome Media Center Hvis du har en masse lokale gemte film og tv-shows, skal du installere Plex. Og dette er den eneste guide til at komme i gang med Plex, du nogensinde har brug for at læse. server og få lysene til at slukke automatisk!

Kontrollerer du allerede Arduino ved hjælp af Python? Er der fantastiske løsninger, som vi bare ikke ved om endnu? Fortæl os det i kommentarafsnittet nedenfor!




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.