Sadržaj:
- Korak 1: Dijelovi
- Korak 2: Sklapanje hardvera
- Korak 3: Ožičenje
- Korak 4: Instalacija MicroPythona
- Korak 5: Postavljanje mreže
- Korak 6: Instalirajte glavni program
- Korak 7: Buduća poboljšanja
Video: MicroPython IoT Rover baziran na WEMOS D1 (ESP-8266EX): 7 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
** 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
- 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
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
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
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
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:
Višenamjenski kockasti sat baziran na položaju: 5 koraka (sa slikama)
Višenamjenski kockasti sat temeljen na položaju: Ovo je sat baziran na Arduinu s OLED zaslonom koji funkcionira kao sat s datumom, kao tajmer za drijemanje i kao noćno svjetlo. Različite " funkcije " kontroliraju se mjeračem ubrzanja i biraju rotiranjem kockastog sata
Dotter - ogroman matrični pisač baziran na Arduinu: 13 koraka (sa slikama)
Dotter - ogroman matrični pisač baziran na Arduinu: Bok, dobrodošli u ovaj instruktor :) Ja sam Nikodem Bartnik, 18 -godišnji proizvođač. Napravio sam mnogo stvari, robota, uređaja kroz svoje 4 godine izrade. No, ovaj je projekt vjerojatno najveći po pitanju veličine. Također je vrlo dobro osmišljen, mislim
Dodajte optički mjerač okretaja baziran na Arduinu CNC usmjerivaču: 34 koraka (sa slikama)
Dodajte optički mjerač okretaja temeljen na Arduinu CNC usmjerivaču: Izgradite optički indikator broja okretaja za svoj CNC usmjerivač s Arduino Nano, IR LED/IR fotodiodnim senzorom i OLED zaslonom za manje od 30 USD. Inspirirao me eletro18 -ov Measure RPM - Optic Tachometer Instructable i htio sam dodati tahometar
Kompletan GPS+GPRS sustav protiv krađe vozila baziran na Arduinu: 5 koraka (sa slikama)
Cjeloviti GPS-GPRS sustav za zaštitu vozila od krađe baziran na Arduinu: Pozdrav svima! Htio sam izgraditi cjelovito rješenje za GPS uređaj protiv krađe vozila, koje bi bilo: što jeftinije što je moguće potpunije što funkcionira -ne postoji ništa drugo za učiniti pa sam na kraju izgradio rješenje na bazi Arduina
RFID sigurnosni sustav (baziran na Arduinu): 6 koraka (sa slikama)
RFID sigurnosni sustav (baziran na Arduinu): Zaista lijep uređaj koji možete imati u kući čak i u konzervi