Innholdsfortegnelse:

MicroPython IoT Rover Basert på WEMOS D1 (ESP-8266EX): 7 trinn (med bilder)
MicroPython IoT Rover Basert på WEMOS D1 (ESP-8266EX): 7 trinn (med bilder)

Video: MicroPython IoT Rover Basert på WEMOS D1 (ESP-8266EX): 7 trinn (med bilder)

Video: MicroPython IoT Rover Basert på WEMOS D1 (ESP-8266EX): 7 trinn (med bilder)
Video: MicroPython IoT Rover Based on WeMos D1 (ESP-8266EX) 2024, Juli
Anonim
Image
Image
MicroPython IoT Rover Basert på WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover Basert på WEMOS D1 (ESP-8266EX)

** Oppdatering: Jeg la ut en ny video for v2 med en lans **

Jeg arrangerer Robotics -workshops for små barn, og jeg leter alltid etter økonomiske plattformer for å bygge spennende prosjekter. Selv om Arduino -kloner er billige, bruker de C/C ++ -språket som barna ikke er kjent med. Den har heller ikke en innebygd WiFi som er et must for IoT-prosjekter. På den annen side, mens Raspberry Pi har WIFI og barna kan programmere det ved hjelp av Python, er det fortsatt en dyr plattform å bare kontrollere få GPIO -porter for å slå enheter på og av. Jeg trenger noe i mellom som har både WIFI- og Python -evner. Det ser ut til at jeg fant svaret mitt i MicroPython blinket på et billig ESP8266-basert kort.

Hva er Micropython?

I følge nettstedet er MicroPython en slank og effektiv implementering av Python 3 programmeringsspråk som inkluderer en liten delmengde av Python standardbibliotek, og det er optimalisert for å kjøre på mikrokontrollere og i begrensede omgivelser (for eksempel ESP8266). Det er egentlig Python IDE på en brikke. En stor fordel er at du kan opprette kode og endre den i farten ved hjelp av en nettleserklient som heter Webrepl. (Prøv å gjøre det i Arduino.) Du kan også se sensordata i sanntid på Webrepl i stedet for å stole på datalogging eller en LED-skjerm i Arduino.

Hva er ESP8266?

Kort sagt, tenk på det som en Arduino med innebygd nettverksevne. Du kan bruke Arduino IDE til å programmere ESP8266 -kort i C/C ++ eller du kan blinke det med NodeMCU eller MicroPython. I dette prosjektet blinker jeg MicroPython på et ESP8266 -kort.

Jeg bestemte meg for å kjøpe en WEMOS D1 som er basert på ESP8266-12EX for dette enkle prosjektet der jeg skal navigere i en 2WD-bil ved hjelp av en nettleser. Det er andre brett som er designet for MicroPython, men jeg ville ha noe billig som jeg kunne kaste hvis det ikke oppfyller kriteriene mine. Som forventet oppfylte den alle kravene mine, og mest sannsynlig vil jeg inkludere WeMos og Micropython i fremtidige prosjekter.

Trinn 1: Deler

Deler
Deler
Deler
Deler
Deler
Deler
Deler
Deler
  • Wemos D1 eller noen ESP8266 -baserte brett
  • Motorskjerm (jeg bruker en billig L293D fra AliExpress)
  • Batteriholdere for 4 x AA og 9V (4 x AA -batterier er for motorer og 9V er for Wemos -kortet)
  • 2WD bilchassis
  • Dupont kabler

Kan trenge et loddejern, en skrutrekker og en limpistol for å sette alt sammen.

Trinn 2: Maskinvaremontasje

Maskinvare montering
Maskinvare montering
Maskinvare montering
Maskinvare montering
Maskinvare montering
Maskinvare montering

Monter først chassiset i henhold til instruksjonene.

Deretter limer du andre komponenter som vist.

Motortråder skal loddes til motorterminalene og bruke varmt lim for å forsterke terminalene.

Festet en liten bryter til 4AA batteriholderen. Dette vil slå på/av strømmen til motorskjermen.

Trinn 3: Kabling

Kabling
Kabling
Kabling
Kabling
Kabling
Kabling

Følg koblingsskjemaet mitt som vist.

Wemos til Motor Shield:

D1 IN2

D2 IN1 D3 IN4 ** hopp over D4 D5 IN3 GND -> GND

Motorskjerm til motor/kraft:

En terminal -> Venstre motor

B -terminal -> Høyre motor VCC -> Batteri (+) GND -> Batteri (-)

Trinn 4: MicroPython -installasjon

For det første har Wemos en seriell/USB -brikke basert på CH304G. Dette er den samme brikken som finnes i billige Arduino-kloner, og du må installere en skikkelig driver for Mac eller PC. Følg instruksjonene på dette nettstedet for å installere driveren.

Koble Wemos til datamaskinen og bekreft at datamaskinen din kan oppdage Wemos. På Mac, kjør følgende kommando, og du vil se en enhet som heter /dev/tty.wchusbserial640.

$ ls -lt /dev /tty* | hode

crw-rw-rw- 1 rothjul 17, 4. mars 2 23:31 /dev/tty.wchusbserial640

Hvis du er på PC, kan du bruke denne instruksjonsboken som referanse.

Deretter må du konfigurere Python 2 eller 3 på datamaskinen din siden flash -verktøyet, esptool.py, er basert på Python. Mens MicroPython -guiden kan si at verktøyet bare fungerer med Python 2.7, var jeg i stand til å kjøre det i Python 3 uten problemer. Last ned siste Python fra https://www.python.org og følg installasjonsinstruksjonene for din PC eller Mac.

Til slutt må du installere MicroPython på Wemos. MicroPython -området har en utmerket opplæring i hvordan du konfigurerer MicroPython på ESP8266. Bare følg installasjonsinstruksjonene i Komme i gang med MicroPython på ESP8266.

Nedenfor er kommandoer jeg brukte:

$ esptool.py --port /dev/tty.wchusbserial640 erase_flash

esptool.py v1.3 Kobler til…. Kjører Cesanta blinkerstubbe … Slette blits (dette kan ta en stund) … Sletting tok 10,5 sekunder

$ esptool.py --port /dev/tty.wchusbserial640 write_flash -fm dio -fs 32m -ff 40m 0x00000 esp8266-20170108 -v1.8.7.bin

esptool.py v1.3 Kobler til…. Kjører Cesanta blinkerstubbe … Flash -parametere satt til 0x0240 Skrev 589824 byte ved 0x0 på 50,8 sekunder (92,8 kbit/s) … Avgår …

MicroPython er nå installert på brettet ditt!

Trinn 5: Konfigurer nettverk

Oppsett av nettverk
Oppsett av nettverk

Mens MicroPython nå er installert på Wemos, er det ikke koblet til nettverket ditt ennå. Du må først aktivere nettverk. På Mac, utfør SCREEN -kommandoen for å starte den serielle terminaløkten til Wemos.

$ skjerm /dev/tty.wchusbserial640 115200

Når du ser en tom skjerm, trykker du på RETURN for å se en melding:

>>

(Merk: For å gå ut, skriv inn CTRL-A CTRL-)

La oss nå aktivere webklienttilgang. Skriv "import webrepl_setup" for å kjøre installasjonsprogrammet. Skriv inn E for å aktivere WebREPL og angi deretter passord. Start på nytt for å aktivere endringer.

>> importer webrepl_setup

WebREPL daemon automatisk startstatus: deaktivert Vil du (E) aktivere eller (D) aktivere at den kjører på oppstart? (Tom linje for å avslutte)> E For å aktivere WebREPL, må du angi passord for det Nytt passord: xxxxx Bekreft passord: xxxxx Endringer aktiveres etter omstart Vil du starte på nytt nå? (y/n) y

Last ned Webrepl -klienten til maskinen din. Dette er valgfritt, men klienten kommer med andre nyttige verktøy som du kanskje vil bruke senere. For eksempel er webrepl_cli.py en kommando for å kopiere filer til Wemos i scp-lignende syntaks. Bruk git for å laste ned klienten. (Installer git -verktøyet hvis du ikke har det ennå.)

git -klon

Åpne nettleseren din, og i URL -feltet angir du plasseringen av den nedlastede webrepl -klientfilplasseringen, for eksempel:

fil: ///Users/xxxxx/wemos/webrepl/webrepl.html

Dette skal vise webrepl -klienten i nettleseren din. Før du kan koble til den, må du først koble til WIFi -tilgangspunktet. Hvis du ser på tilgjengelig WIFI for datamaskinen din, ser du at et nettverk starter med MicroPython-xxxx. Koble til det nettverket. (Advarsel: Når du kobler deg til det nettverket, mister du internettilgangen.)

Gå tilbake til webrepl -klienten din og klikk på Koble til. Det bør be om passord. Skriv inn Wemos -passordet ditt, og du bør koble til.

Velkommen til MicroPython!

Passord: WebREPL tilkoblet >>>

Wemos kjører fremdeles i AccessPoint -modus. Selv om dette er OK, foretrekker jeg at det kjører i stasjonsmodus, der det kobles til WIFI -hjemmet mitt, slik at datamaskinen min kan få tilgang til det via hjemme -WIFI og fortsatt har internettilgang. For å gjøre det må du opprette en fil som heter boot.py med nettverkskonfigurasjon og laste den opp til Wemos.

Her er et eksempel på boot.py. Endre ssid og passord til ditt hjemme WIFI -nettverk. Jeg vil også gi den en statisk IP på 192.168.0.32. Endre den til din hjemlige WIFIs tilgjengelige IP -adresse.

boot.py (du kan laste den ned nedenfor)

import gc

import webrepl def do_connect (): import network sta_if = network. WLAN (network. STA_IF) if not sta_if.isconnected (): print ('connect to network …') sta_if.active (True) sta_if.ifconfig (('192.168. 0,32 ',' 255.255.255.0 ',' 192.168.0.1 ',' 192.168.0.1 ')) sta_if.connect (' ',' ') mens den ikke er sta_if.frakoblet (): pass print (' nettverkskonfigurasjon: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Bruk Webrepl -klientens "Send en fil" -skjema for å sende boot.py -filen til Wemos. Trykk på reset -knappen for å starte på nytt. Hvis du fremdeles er tilkoblet via USB ved hjelp av SCREEN -kommandoen, ser du:

koble til nettverk … nettverkskonfigurasjon: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL -daemon startet på ws: //192.168.4.1: 8266 WebREPL -demon startet på ws: //192.168.0.32: 8266 Startet webrepl i normal modus kunne ikke åpne filen 'main.py' for å lese MicroPython v1.8.7-7-gb5a1a20a3 2017-01-09; ESP -modul med ESP8266 Skriv "help ()" for mer informasjon. >>>

Dette bekrefter at Wemos er koblet til ditt hjemlige WIFI ved hjelp av ipaddressen til 192.168.0.32.

Du kan pinge IP -adressen for å validere.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 databytes

64 byte fra 192.168.0.32: icmp_seq = 0 ttl = 255 time = 9.334 ms 64 byte fra 192.168.0.32: icmp_seq = 1 ttl = 255 time = 11.071 ms..

Trinn 6: Installer hovedprogrammet

Installer hovedprogrammet
Installer hovedprogrammet
Installer hovedprogrammet
Installer hovedprogrammet

Til slutt må du installere hovedprogrammet som vil fortsette å kjøre på Wemos.

Gå tilbake til nettleseren din og kjør webrepl -klientprogrammet. Endre ip -adressen til Wemos 'IP -adresse. I mitt tilfelle er det nå 192.168.0.32. Skriv inn Wemos -passordet ditt, og du bør nå være koblet til Wemos.

La oss laste opp det vedlagte main.py -programmet. Last ned den vedlagte filen til datamaskinen din. Klikk på Velg fil for å velge den nedlastede main.py og klikk på Sendt til enhet.

Du må trykke på Rest -knappen for å laste main.py -programmet. Etter å ha trykket på Reset -knappen, ser du:

koble til nettverk …

nettverkskonfigurasjon: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

WebREPL -demonen startet på ws: //192.168.4.1: 8266 WebREPL -demonen startet på ws: //192.168.0.32: 8266 Startet webrepl i normal modus Lytting, koble nettleseren til …

Dette betyr at main.py -programmet ditt er aktivert og vises til port 80.

For å teste, åpne nettleseren din og skriv inn

Dette skal vise bilens kontrollskjerm som vist i videoen. Hvis ledningene er riktig tilkoblet, vil kontrollknappene sende riktige signaler til GPIO -portene for å flytte bilen.

Trinn 7: Fremtidige forbedringer

Følgende gjøremål er på min v2-liste:

  • Bruk PWM til å kontrollere motorhastigheten
  • Forbedre webgrensesnittet. Kanskje bruke aREST -rammeverk. Jeg tror ikke aREST lib er tilgjengelig på MicroPython for øyeblikket, så jeg må kanskje hacke den.

Takk for at du leser denne Instructable. Følg meg på Facebook, Youtube og Instructables for flere prosjekter i fremtiden.

Anbefalt: