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, Novembar
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 sa kopljem **

Domaćin sam radionica robotike za malu djecu i uvijek sam u potrazi za ekonomskim 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 samo nekoliko GPIO portova za uključivanje i isključivanje uređaja. Treba mi nešto između što ima i WIFI i Python mogućnosti. Čini se da sam svoj odgovor našao u MicroPythonu na jeftinoj ploči zasnovanoj na ESP8266.

Šta je Micropython?

Prema njegovoj web stranici, MicroPython je mršava i efikasna implementacija programskih jezika Python 3 koji uključuje mali podskup standardne biblioteke Python i optimiziran 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.

Šta je ESP8266?

Ukratko, zamislite to kao Arduino s ugrađenim mrežnim mogućnostima. Možete koristiti Arduino IDE za programiranje ESP8266 ploča na C/C ++ ili ga možete fleširati pomoću NodeMCU -a ili MicroPythona. U ovom projektu ću prebaciti MicroPython na ploču ESP8266.

Odlučio sam nabaviti WEMOS D1 zasnovan 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

Delovi
Delovi
Delovi
Delovi
Delovi
Delovi
Delovi
Delovi
  • Wemos D1 ili bilo koje ploče zasnovane 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 Wemos ploču)
  • 2WD šasija automobila
  • Dupont kablovi

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

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 treba lemiti na stezaljkama motora i koristiti vruće ljepilo za učvršćivanje spojeva terminala.

Priključio 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

Pratite 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:

Terminal -> Lijevi motor

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

Korak 4: Instalacija MicroPythona

Prvo, Wemos ima serijski/USB čip zasnovan 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 sa računarom i potvrdite da vaš računar može otkriti Wemos. Na Mac -u 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čunaru, možete koristiti ovaj Instructable kao referencu.

Zatim ćete morati postaviti Python 2 ili 3 na računaru budući da je flash alat, esptool.py, zasnovan 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 sa https://www.python.org i slijedite upute za instalaciju za vaš PC ili Mac.

Na kraju ćete morati instalirati MicroPython na Wemos. MicroPython web mjesto ima odličan vodič o postavljanju MicroPythona na ESP8266. Samo slijedite upute za instalaciju u odjeljku Prvi koraci 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 flasher stub… 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. Morat ćete prvo omogućiti mrežu. Na Macu izvedite naredbu SCREEN da biste započeli sesiju serijskog terminala za Wemos.

$ screen /dev/tty.wchusbserial640 115200

Kada vidite prazan ekran, pritisnite RETURN da vidite upit:

>>

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

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

>> uvezite webrepl_setup

Status automatskog pokretanja demona WebREPL: onemogućen Želite li (E) uključiti ili (D) je moguće da radi pri pokretanju? (Prazna linija za zatvaranje)> E Da biste omogućili WebREPL, morate postaviti lozinku za nju Nova lozinka: xxxxx Potvrdite lozinku: xxxxx Promjene će se aktivirati nakon ponovnog pokretanja sistema. Želite li sada ponovo pokrenuti sistem? (y/n) y

Na kraju, preuzmite Webrepl klijent na svoju mašinu. Ovo nije obavezno, 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 clone

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

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

Ovo 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 na tu mrežu. (Upozorenje: Jednom kada se povežete na tu mrežu, izgubit ćete pristup internetu.)

Vratite se svom webrepl klijentu i kliknite na Poveži se. Trebao bi zatražiti lozinku. Unesite svoju Wemos lozinku 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)

import gc

import webrepl def do_connect (): uvoz mreže sta_if = network. WLAN (network. STA_IF) ako nije sta_if.isconnected (): print ('povezivanje na mrežu …') 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 ()

Koristite obrazac "Pošalji datoteku" klijenta Webrepl da pošaljete svoju datoteku boot.py na svoj Wemos. Pritisnite dugme za resetovanje da biste ponovo pokrenuli sistem. Ako ste i dalje povezani putem USB -a pomoću naredbe SCREEN, vidjet ćete:

povezivanje na mrežu… 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 sa ESP8266 Upišite "help ()" za više informacija. >>>

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

Možete provjeriti tu IP adresu radi provjere valjanosti.

$ 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 na svoj 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 lozinku za Wemos i sada biste trebali biti povezani s Wemosom.

Prenesite priloženi program main.py. Preuzmite priloženu datoteku na svoj računar. 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 pritiska na tipku Reset, vidjet ćete:

povezivanje na mrežu…

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 je pokrenut na ws: //192.168.0.32: 8266 Webrepl je pokrenut u normalnom načinu rada Slušanje, povežite svoj preglednik na…

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 ekran za upravljanje automobilom kao što je prikazano u videu. Ako su vaše žice pravilno spojene, kontrolna tipka će poslati odgovarajuće signale na vaše GPIO portove za pomicanje automobila.

Korak 7: Buduća poboljšanja

Na mojoj v2 listi nalaze se sljedeće stavke obaveza:

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

Hvala vam što ste pročitali ovo uputstvo. Pratite me na Facebook -u, Youtube -u i Instructables za više projekata u budućnosti.

Preporučuje se: