Kazalo:

MicroPython IoT Rover na osnovi WEMOS D1 (ESP-8266EX): 7 korakov (s slikami)
MicroPython IoT Rover na osnovi WEMOS D1 (ESP-8266EX): 7 korakov (s slikami)

Video: MicroPython IoT Rover na osnovi WEMOS D1 (ESP-8266EX): 7 korakov (s slikami)

Video: MicroPython IoT Rover na osnovi WEMOS D1 (ESP-8266EX): 7 korakov (s slikami)
Video: MicroPython IoT Rover Based on WeMos D1 (ESP-8266EX) 2024, November
Anonim
Image
Image
MicroPython IoT Rover na osnovi WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover na osnovi WEMOS D1 (ESP-8266EX)

** Posodobitev: Objavil sem nov videoposnetek za v2 s kopjem **

Gostim delavnice robotike za majhne otroke in vedno iščem ekonomične platforme za gradnjo zanimivih projektov. Medtem ko so kloni Arduino poceni, uporablja jezik C/C ++, ki ga otroci ne poznajo. Prav tako nima vgrajenega WiFi, ki je nujen za projekte IoT. Po drugi strani pa ima Raspberry Pi WIFI, otroci pa ga lahko programirajo z uporabo Pythona, vendar je še vedno draga platforma za nadzor le nekaj vrat GPIO za vklop in izklop naprav. Potrebujem nekaj vmes, ki ima tako WIFI kot Python zmogljivosti. Zdi se, da sem naš odgovor v MicroPythonu preletel na poceni ploščo na osnovi ESP8266.

Kaj je Micropython?

Glede na njegovo spletno stran je MicroPython vitka in učinkovita implementacija programskih jezikov Python 3, ki vključuje majhno podskupino standardne knjižnice Python in je optimizirana za delovanje na mikrokrmilnikih in v omejenem okolju (kot je ESP8266). V bistvu je Python IDE na čipu. Ena od glavnih prednosti je, da lahko ustvarite kodo in jo spremenite na hitro z odjemalcem spletnega brskalnika Webrepl. (Poskusite to narediti v Arduinu.) Podatke senzorjev si lahko v realnem času ogledate tudi na Webreplu, namesto da se zanašate na beleženje podatkov ali LED zaslon v Arduinu.

Kaj je ESP8266?

Skratka, pomislite na to kot na Arduino z vgrajenimi zmogljivostmi omrežja. Arduino IDE lahko uporabite za programiranje plošč ESP8266 v C/C ++ ali pa ga utripate z NodeMCU ali MicroPython. V tem projektu bom MicroPython prestavil na ploščo ESP8266.

Odločil sem se, da bom za ta preprost projekt, kjer bom krmaril z avtomobilom z dvema pogonoma s spletnim brskalnikom, kupil WEMOS D1, ki temelji na ESP8266-12EX. Obstajajo tudi druge plošče, ki so namenjene MicroPythonu, vendar sem hotel nekaj poceni, kar bi lahko zavrgel, če ne bi ustrezalo mojim kriterijem. Po pričakovanjih je izpolnil vse moje zahteve in najverjetneje bom v prihodnje projekte vključil WeMos in Micropython.

1. korak: Deli

Deli
Deli
Deli
Deli
Deli
Deli
Deli
Deli
  • Wemos D1 ali katere koli druge plošče na osnovi ESP8266
  • Motorni ščit (uporabljam poceni L293D iz AliExpressa)
  • Držala za baterije 4 x AA in 9V (4 x AA baterije so za motorje, 9V pa za ploščo Wemos)
  • Avtomobilsko podvozje 2WD
  • Dupont kabli

Morda boste potrebovali spajkalnik, izvijač in pištolo za lepilo, da vse sestavite.

2. korak: Sestavljanje strojne opreme

Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme

Najprej sestavite podvozje v skladu z navodili.

Nato vroče lepite druge komponente, kot je prikazano.

Motorne žice je treba spajkati na sponke motorja in z vročim lepilom okrepiti spončne spoje.

Na držalo za baterijo 4AA je pritrjeno majhno stikalo. S tem boste vklopili/izklopili ščit motorja.

3. korak: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje

Sledite moji shemi ožičenja, kot je prikazano.

Wemos za motorni ščit:

D1 IN2

D2 IN1 D3 IN4 ** preskočite D4 D5 IN3 GND -> GND

Ščit motorja za motor/moč:

Terminal -> Levi motor

B terminal -> Desni motor VCC -> Baterija (+) GND -> Baterija (-)

4. korak: Namestitev MicroPythona

Prvič, Wemos ima serijski/USB čip, ki temelji na CH304G. To je isti čip, ki ga najdemo v poceni klonih Arduino, zato morate namestiti ustrezen gonilnik za Mac ali PC. Sledite navodilom na tem mestu za namestitev gonilnika.

Povežite Wemos z računalnikom in potrdite, da lahko vaš računalnik zazna Wemos. V Macu zaženite naslednji ukaz in videli boste napravo z imenom /dev/tty.wchusbserial640.

$ ls -lt /dev /tty* | glavo

crw-rw-rw- 1 korensko kolo 17, 4. mar 2. 23:31 /dev/tty.wchusbserial640

Če uporabljate računalnik, lahko ta priročnik uporabite kot referenco.

Nato morate v računalniku nastaviti Python 2 ali 3, saj orodje flash, esptool.py, temelji na Pythonu. Medtem ko lahko v priročniku MicroPython piše, da orodje deluje samo s Pythonom 2.7, sem to lahko zagnal v Pythonu 3 brez težav. Prenesite najnovejši Python s spletnega mesta https://www.python.org in sledite navodilom za namestitev za vaš računalnik ali Mac.

Nazadnje boste morali namestiti MicroPython na Wemos. Spletno mesto MicroPython ima odlično vadnico o nastavitvi MicroPythona na ESP8266. Samo sledite navodilom za namestitev v razdelku Prvi koraki z MicroPythonom na ESP8266.

Spodaj so ukazi, ki sem jih uporabil:

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

esptool.py v1.3 Povezovanje…. Zagon škrbljenega bliskavice Cesanta… Brisanje bliskavice (to lahko traja nekaj časa)… Brisanje je trajalo 10,5 sekunde

$ 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 Povezovanje…. Zagon Cesanta utripajočega čepa… Parametri bliskavice nastavljeni na 0x0240 Napisal je 589824 bajtov pri 0x0 v 50,8 sekunde (92,8 kbit/s)… Zapuščam…

MicroPython je zdaj nameščen na vaši plošči!

5. korak: Nastavite omrežje

Nastavitev omrežja
Nastavitev omrežja

Čeprav je MicroPython zdaj nameščen na vašem Wemosu, še ni povezan z vašim omrežjem. Najprej morate omogočiti omrežje. Na Macu izvedite ukaz SCREEN, da zaženete serijsko terminalsko sejo v Wemos.

$ screen /dev/tty.wchusbserial640 115200

Ko vidite prazen zaslon, pritisnite RETURN, da se prikaže poziv:

>>

(Opomba: za izhod vnesite CTRL-A CTRL- )

Zdaj pa omogočimo dostop do spletnih strank. Vnesite "import webrepl_setup", da zaženete namestitveni program. Vnesite E, da omogočite WebREPL, nato pa nastavite geslo. Znova zaženite, da aktivirate spremembe.

>> uvozite webrepl_setup

Stanje samodejnega zagona demona WebREPL: onemogočeno Ali želite (E) vključiti ali (D) uporabiti, če se izvaja ob zagonu? (Za izhod prazna vrstica)> E Če želite omogočiti WebREPL, morate zanj nastaviti geslo Novo geslo: xxxxx Potrdite geslo: xxxxx Spremembe se bodo aktivirale po ponovnem zagonu Ali bi radi zdaj znova zagnali? (y/n) y

Nazadnje prenesite odjemalca Webrepl na svoj računalnik. To ni obvezno, vendar ima odjemalec druga uporabna orodja, ki jih boste morda želeli uporabiti kasneje. Na primer, webrepl_cli.py je ukaz za kopiranje datotek v Wemos v skladnji, podobni scp. Za prenos odjemalca uporabite git. (Namestite orodje git, če ga še nimate.)

git clone

Odprite spletni brskalnik in v polje URL vnesite lokacijo prenesene datoteke odjemalca webrepl, na primer:

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

To bi moralo prikazati odjemalca webrepl v vašem brskalniku. Preden se lahko povežete z njim, se morate najprej povezati z dostopno točko WIFi. Če pogledate razpoložljiv WIFI za vaš računalnik, boste videli, da se omrežje začne z MicroPython-xxxx. Povežite se s tem omrežjem. (Opozorilo: Ko se povežete s tem omrežjem, izgubite dostop do interneta.)

Vrnite se v odjemalca webrepl in kliknite Poveži. Vnesti mora geslo. Vnesite geslo za Wemos in vzpostavite povezavo.

Dobrodošli v MicroPythonu!

Geslo: WebREPL povezan >>>

Vaš Wemos še vedno deluje v načinu AccessPoint. Čeprav je to v redu, najraje deluje v načinu Station, kjer se poveže z mojim domačim WIFI -jem, tako da lahko računalnik do njega dostopa prek domačega WIFI -ja in ima še vedno dostop do interneta. Če želite to narediti, morate ustvariti datoteko z imenom boot.py z omrežno konfiguracijo in jo naložiti v Wemos.

Tukaj je vzorec boot.py. Spremenite ssid in geslo v domače omrežje WIFI. Prav tako mu želim dati statični IP 192.168.0.32. Spremenite ga v domači naslov WIFI, ki je na voljo.

boot.py (lahko ga prenesete od spodaj)

uvoz gc

import webrepl def do_connect (): uvoz omrežja sta_if = network. WLAN (network. STA_IF), če ni sta_if.isconnected (): print ('povezovanje v omrežje …') 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 (' ',' '), medtem ko ni sta_if.isconnected (): pass print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Uporabite obrazec »Pošlji datoteko« odjemalca Webrepl, da datoteko boot.py pošljete v svoj Wemos. Za ponovni zagon pritisnite gumb za ponastavitev. Če ste še vedno povezani prek USB -ja z ukazom SCREEN, boste videli:

povezovanje z omrežjem… omrežna konfiguracija: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') Demon WebREPL se je zagnal na ws: //192.168.4.1: 8266 Damon WebREPL se je zagnal na ws: //192.168.0.32: 8266 Zagnani webrepl v običajnem načinu ni mogel odpreti datoteke 'main.py' za branje MicroPythona v1.8.7-7-gb5a1a20a3 dne 2017-01-09; Modul ESP z ESP8266 Za več informacij vnesite "help ()". >>>

To potrjuje, da je vaš Wemos povezan z vašim domačim brezžičnim internetom prek ipaddress 192.168.0.32.

Ta naslov IP lahko potrdite za preverjanje.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 podatkovnih bajtov

64 bajtov iz 192.168.0.32: icmp_seq = 0 ttl = 255 čas = 9.334 ms 64 bajtov iz 192.168.0.32: icmp_seq = 1 ttl = 255 čas = 11.071 ms..

6. korak: Namestite glavni program

Namestite glavni program
Namestite glavni program
Namestite glavni program
Namestite glavni program

Nazadnje boste morali namestiti glavni program, ki se bo še naprej izvajal na vašem Wemosu.

Vrnite se v spletni brskalnik in zaženite odjemalski program webrepl. Spremenite naslov IP v naslov IP vašega Wemosa. V mojem primeru je zdaj 192.168.0.32. Vnesite geslo za Wemos in zdaj bi morali biti povezani z Wemosom.

Naložimo priloženi program main.py. Prenesite priloženo datoteko v računalnik. Kliknite Izberi datoteko, da izberete preneseno datoteko main.py, nato pa kliknite Poslano v napravo.

Če želite naložiti program main.py, morate pritisniti gumb Počitek. Ko pritisnete gumb Ponastavi, boste videli:

povezovanje v omrežje …

omrežna konfiguracija: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

Demon WebREPL se je začel na ws: //192.168.4.1: 8266 Demon WebREPL se je zagnal na ws: //192.168.0.32: 8266 Začel webrepl v običajnem načinu Poslušanje, povežite brskalnik z…

To pomeni, da je vaš program main.py aktiviran in se prikaže na vratih 80.

Če želite preizkusiti, odprite spletni brskalnik in vnesite

To bi moralo prikazati zaslon za upravljanje avtomobila, kot je prikazano v videoposnetku. Če so vaše žice pravilno povezane, bodo nadzorni gumbi poslali ustrezne signale v vrata GPIO za premik avtomobila.

7. korak: Prihodnje izboljšave

Na mojem seznamu v2 so naslednji opravila:

  • Za nadzor hitrosti motorja uporabite PWM
  • Izboljšajte spletni vmesnik. Morda uporabite okvir aREST. Ne verjamem, da je aREST lib trenutno na voljo na MicroPythonu, zato ga bom morda moral vlomiti.

Hvala, ker ste prebrali ta navodila. Sledite mi na Facebooku, Youtubeu in Instructables za več projektov v prihodnosti.

Priporočena: