Sadržaj:

MicroPython IoT Rover baziran na WEMOS D1 (ESP-8266EX): 7 koraka (sa slikama)
MicroPython IoT Rover baziran na WEMOS D1 (ESP-8266EX): 7 koraka (sa slikama)

Video: MicroPython IoT Rover baziran na WEMOS D1 (ESP-8266EX): 7 koraka (sa slikama)

Video: MicroPython IoT Rover baziran na WEMOS D1 (ESP-8266EX): 7 koraka (sa slikama)
Video: CircuitPython Weekly - March 11th, 2019 @adafruit #adafruit 2024, Srpanj
Anonim
Image
Image
MicroPython IoT Rover baziran na WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover baziran na WEMOS D1 (ESP-8266EX)

** Ažuriranje: Objavio sam novi video za v2 s kopljem **

Domaćin sam radionica robotike za malu djecu i uvijek sam u potrazi za ekonomičnim platformama za izgradnju intrigantnih projekata. Iako su Arduino klonovi jeftini, on koristi C/C ++ jezik koji djeca ne poznaju. Također, nema ugrađen WiFi koji je neophodan za IoT projekte. S druge strane, iako Raspberry Pi ima WIFI i djeca ga mogu programirati pomoću Pythona, to je još uvijek skupa platforma za upravljanje samo nekoliko GPIO portova za uključivanje i isključivanje uređaja. Trebam nešto između što ima i WIFI i Python mogućnosti. Čini se da sam svoj odgovor pronašao u MicroPythonu na jeftinoj ploči zasnovanoj na ESP8266.

Što je Micropython?

Prema svojoj web stranici, MicroPython je mršava i učinkovita implementacija programskih jezika Python 3 koja uključuje mali podskup standardne knjižnice Python i optimizirana je za rad na mikrokontrolerima i u ograničenim okruženjima (poput ESP8266). To je u osnovi Python IDE na čipu. Jedna od glavnih prednosti je što možete stvoriti kôd i promijeniti ga u hodu pomoću klijenta web-preglednika pod nazivom Webrepl. (Pokušajte to učiniti u Arduinu.) Također možete vidjeti podatke senzora u stvarnom vremenu na Webreplu umjesto da se oslanjate na bilježenje podataka ili LED zaslon u Arduinu.

Što je ESP8266?

Ukratko, zamislite to kao Arduino s ugrađenom mrežnom sposobnošću. Arduino IDE možete koristiti za programiranje ESP8266 ploča na C/C ++ ili ga možete bljeskati s NodeMCU -om ili MicroPythonom. U ovom projektu prebacit ću MicroPython na ploču ESP8266.

Odlučio sam nabaviti WEMOS D1 koji se temelji na ESP8266-12EX za ovaj jednostavan projekt u kojem ću se kretati automobilom s 2 pogona pomoću web preglednika. Postoje i druge ploče koje su dizajnirane za MicroPython, ali htio sam nešto jeftino što bih mogao baciti ako ne zadovoljava moje kriterije. Očekivano, ispunio je sve moje zahtjeve i najvjerojatnije ću u buduće projekte uključiti WeMos i Micropython.

Korak 1: Dijelovi

Dijelovi
Dijelovi
Dijelovi
Dijelovi
Dijelovi
Dijelovi
Dijelovi
Dijelovi
  • Wemos D1 ili bilo koje ploče bazirane na ESP8266
  • Motorni štit (koristim jeftin L293D sa AliExpress -a)
  • Držači baterija za 4 x AA i 9V (4 x AA baterije su za motore, a 9V za ploču Wemos)
  • 2WD šasija automobila
  • Dupont kabeli

Možda će vam trebati lemilica, odvijač i pištolj za ljepilo kako biste sve spojili.

Korak 2: Sklapanje hardvera

Sklapanje hardvera
Sklapanje hardvera
Sklapanje hardvera
Sklapanje hardvera
Sklapanje hardvera
Sklapanje hardvera

Prvo sastavite šasiju prema uputama.

Zatim vruće zalijepite ostale komponente kao što je prikazano.

Žice motora trebaju biti lemljene na stezaljke motora i vrućim ljepilom ojačati spojeve terminala.

Pričvrstite mali prekidač na držač baterije 4AA. Ovo će uključiti/isključiti napajanje štitnika motora.

Korak 3: Ožičenje

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

Slijedite moj dijagram ožičenja kao što je prikazano.

Wemos za motorni štit:

D1 IN2

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

Štit motora prema motoru/snazi:

Priključak -> Lijevi motor

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

Korak 4: Instalacija MicroPythona

Prvo, Wemos ima serijski/USB čip baziran na CH304G. Ovo je isti čip koji se nalazi u jeftinim Arduino klonovima i morate instalirati odgovarajući upravljački program za Mac ili PC. Slijedite upute na ovoj web stranici da biste instalirali upravljački program.

Povežite Wemos s računalom i potvrdite da vaše računalo može otkriti Wemos. Na Macu pokrenite sljedeću naredbu i vidjet ćete uređaj koji se zove /dev/tty.wchusbserial640.

$ ls -lt /dev /tty* | glava

crw-rw-rw- 1 korijenski kotač 17, 4. ožujka 2 23:31 /dev/tty.wchusbserial640

Ako ste na računalu, možete koristiti ovaj Instructable kao referencu.

Zatim ćete morati postaviti Python 2 ili 3 na svoje računalo jer se flash alat, esptool.py, temelji na Pythonu. Iako u vodiču za MicroPython može biti navedeno da alat radi samo s Pythonom 2.7, uspio sam to pokrenuti u Pythonu 3 bez ikakvih problema. Preuzmite najnoviji Python s https://www.python.org i slijedite upute za instalaciju za svoje računalo ili Mac.

Na kraju ćete morati instalirati MicroPython na Wemos. MicroPython web mjesto ima izvrstan vodič o postavljanju MicroPythona na ESP8266. Samo slijedite upute za instalaciju u odjeljku Početak rada s MicroPythonom na ESP8266.

Ispod su naredbe koje sam koristio:

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

esptool.py v1.3 Povezivanje…. Pokreće se Cesanta bljeskalica … Brisanje bljeskalice (ovo može potrajati) … Brisanje je trajalo 10,5 sekundi

$ 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 Povezivanje…. Pokreće se Cesanta flasher stub… Parametri bljeskalice postavljeni na 0x0240 Napisali su 589824 bajta pri 0x0 za 50,8 sekundi (92,8 kbit/s)… Napuštamo…

MicroPython je sada instaliran na vašoj ploči!

Korak 5: Postavljanje mreže

Postavljanje mreže
Postavljanje mreže

Iako je MicroPython sada instaliran na vašem Wemosu, još nije povezan s vašom mrežom. Najprije morate omogućiti mrežu. Na Macu izvedite naredbu SCREEN da biste započeli sesiju serijskog terminala za Wemos.

$ screen /dev/tty.wchusbserial640 115200

Kad vidite prazan zaslon, pritisnite RETURN da biste vidjeli upit:

>>

(Napomena: Za izlaz unesite CTRL-A CTRL-)

Omogućimo sada pristup web -klijentima. Upišite "import webrepl_setup" da biste pokrenuli program za postavljanje. Unesite E da biste omogućili WebREPL, a zatim postavite lozinku. Ponovo pokrenite sustav da biste aktivirali promjene.

>> uvezite webrepl_setup

Status automatskog pokretanja demona WebREPL: onemogućeno Želite li (E) uključiti ili (D) dopustiti njegovo pokretanje pri pokretanju? (Prazni redak za izlaz)> E Da biste omogućili WebREPL, morate postaviti lozinku za njega Nova lozinka: xxxxx Potvrda lozinke: xxxxx Promjene će se aktivirati nakon ponovnog pokretanja sustava. Želite li sada ponovno pokrenuti sustav? (y/n) y

Na kraju, preuzmite Webrepl klijent na svoj stroj. Ovo je izborno, ali klijent dolazi s drugim korisnim alatima koje ćete kasnije možda htjeti koristiti. Na primjer, webrepl_cli.py je naredba za kopiranje datoteka u Wemos u sintaksi sličnoj scp-u. Koristite git za preuzimanje klijenta. (Instalirajte git alat ako ga još nemate.)

git klon

Otvorite web -preglednik i u polje URL unesite lokaciju preuzete datoteke datoteke webrepl klijenta, kao što su:

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

To bi trebalo prikazati webrepl klijenta u vašem pregledniku. Da biste se mogli povezati s njim, morate se prvo povezati s WIFi pristupnom točkom. Ako pogledate dostupan WIFI za vaše računalo, vidjet ćete da mreža počinje s MicroPython-xxxx. Povežite se s tom mrežom. (Upozorenje: Nakon što se povežete s tom mrežom, izgubit ćete pristup internetu.)

Vratite se svom webrepl klijentu i kliknite Poveži. Trebao bi zatražiti lozinku. Unesite lozinku za Wemos i trebali biste se povezati.

Dobro došli u MicroPython!

Lozinka: WebREPL povezan >>>

Vaš Wemos i dalje radi u AccessPoint načinu rada. Iako je to u redu, više volim da radi u načinu rada stanice gdje se povezuje s kućnim WIFI -jem kako bi mu računalo moglo pristupiti putem kućnog WIFI -ja i još uvijek imati pristup internetu. Da biste to učinili, morat ćete stvoriti datoteku pod nazivom boot.py s mrežnom konfiguracijom i prenijeti je na Wemos.

Evo primjera boot.py. Promijenite ssid i lozinku na svoju kućnu WIFI mrežu. Također, želim mu dati statički IP od 192.168.0.32. Promijenite je na dostupnu IP adresu kućnog WIFI -ja.

boot.py (možete ga preuzeti odozdo)

uvoz gc

import webrepl def do_connect (): uvoz mreže sta_if = network. WLAN (network. STA_IF) ako nije sta_if.isconnected (): print ('povezivanje s mrežom …') 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 (' ',' ') dok nije sta_if.isconnected (): pass print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Upotrijebite obrazac "Pošalji datoteku" klijenta Webrepl da biste poslali svoju datoteku boot.py na svoj Wemos. Pritisnite gumb za resetiranje za ponovno pokretanje. Ako ste i dalje povezani putem USB -a pomoću naredbe SCREEN, vidjet ćete:

povezivanje s mrežom … mrežna konfiguracija: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL demon pokrenut na ws: //192.168.4.1: 8266 WebREPL demon pokrenut na ws: //192.168.0.32: 8266 Pokrenuti webrepl u normalnom načinu rada nije mogao otvoriti datoteku 'main.py' za čitanje MicroPythona v1.8.7-7-gb5a1a20a3 dana 2017-01-09; ESP modul s ESP8266 Za više informacija upišite "help ()". >>>

Time se potvrđuje da je vaš Wemos povezan s kućnim WIFI -jem pomoću ipad adrese 192.168.0.32.

Možete provjeriti valjanost te IP adrese radi provjere.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 bajtova podataka

64 bajta iz 192.168.0.32: icmp_seq = 0 ttl = 255 vrijeme = 9.334 ms 64 bajta iz 192.168.0.32: icmp_seq = 1 ttl = 255 vrijeme = 11.071 ms..

Korak 6: Instalirajte glavni program

Instalirajte glavni program
Instalirajte glavni program
Instalirajte glavni program
Instalirajte glavni program

Na kraju, morate instalirati glavni program koji će se nastaviti izvoditi na vašem Wemosu.

Vratite se u web -preglednik i pokrenite klijentski program webrepl. Promijenite IP adresu u svoju Wemos IP adresu. U mom slučaju sada je 192.168.0.32. Unesite svoju lozinku za Wemos i sada biste trebali biti povezani s Wemosom.

Prenesite priloženi program main.py. Preuzmite priloženu datoteku na svoje računalo. Pritisnite Odaberi datoteku za odabir preuzete datoteke main.py, a zatim kliknite Poslano na uređaj.

Morat ćete pritisnuti gumb Odmor da biste učitali program main.py. Nakon što pritisnete gumb Poništi, vidjet ćete:

povezivanje s mrežom …

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

WebREPL demon pokrenut na ws: //192.168.4.1: 8266 WebREPL demon pokrenut na ws: //192.168.0.32: 8266 Webrepl je pokrenut u normalnom načinu rada Slušanje, povežite svoj preglednik s…

To znači da je vaš program main.py aktiviran i da se prikazuje na portu 80.

Za testiranje otvorite web preglednik i unesite

Ovo bi trebalo prikazati zaslon za upravljanje automobilom kao što je prikazano u videu. Ako su vaše žice pravilno spojene, upravljački gumbi šalju odgovarajuće signale na vaše GPIO priključke za pomicanje automobila.

Korak 7: Buduća poboljšanja

Na mom v2 popisu nalaze se sljedeće stavke obaveza:

  • Za kontrolu brzine motora upotrijebite PWM
  • Poboljšajte web sučelje. Možda upotrijebite okvir aREST. Ne vjerujem da je aREST lib trenutno dostupan na MicroPythonu pa ću ga morati hakirati.

Hvala vam što ste pročitali ovaj Instructable. Pratite me na Facebooku, Youtubeu i Instructables za više projekata u budućnosti.

Preporučeni: