Cuprins:

MicroPython IoT Rover Bazat pe WEMOS D1 (ESP-8266EX): 7 pași (cu imagini)
MicroPython IoT Rover Bazat pe WEMOS D1 (ESP-8266EX): 7 pași (cu imagini)

Video: MicroPython IoT Rover Bazat pe WEMOS D1 (ESP-8266EX): 7 pași (cu imagini)

Video: MicroPython IoT Rover Bazat pe WEMOS D1 (ESP-8266EX): 7 pași (cu imagini)
Video: Arduino Leanardo Project || USB Keyboard || HID Device || #Shorts || #ShortVideo | #TrendingVideo 2024, Noiembrie
Anonim
Image
Image
MicroPython IoT Rover Bazat pe WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover Bazat pe WEMOS D1 (ESP-8266EX)

** Actualizare: am postat un nou videoclip pentru v2 cu o lance **

Găzduiesc ateliere de robotică pentru copii mici și sunt mereu în căutare de platforme economice pentru a construi proiecte interesante. În timp ce clonele Arduino sunt ieftine, folosește limbajul C / C ++ cu care copiii nu sunt familiarizați. De asemenea, nu are un WiFi încorporat, care este o necesitate pentru proiectele IoT. Pe de altă parte, în timp ce Raspberry Pi are WIFI, iar copiii îl pot programa folosind Python, este încă o platformă scumpă pentru a controla doar câteva porturi GPIO pentru a porni și opri dispozitivele. Am nevoie de ceva între care să aibă atât capabilități WIFI, cât și Python. Se pare că am găsit răspunsul meu în MicroPython fulgerat pe o placă ieftină bazată pe ESP8266.

Ce este Micropython?

Conform site-ului său web, MicroPython este o implementare slabă și eficientă a limbajelor de programare Python 3 care include un subset mic al bibliotecii standard Python și este optimizată pentru a rula pe microcontrolere și în mediu constrâns (cum ar fi ESP8266). Este în esență Python IDE pe un cip. Un avantaj major este că puteți crea cod și schimba din mers utilizând un client de browser web numit Webrepl. (Încercați să faceți acest lucru în Arduino.) De asemenea, puteți vedea datele senzorilor în timp real pe Webrepl în loc să vă bazați pe înregistrarea datelor sau pe un ecran LED în Arduino.

Ce este ESP8266?

Pe scurt, gândiți-vă la acesta ca la un Arduino cu capacitate de rețea încorporată. Puteți utiliza Arduino IDE pentru a programa plăci ESP8266 în C / C ++ sau îl puteți bloca cu NodeMCU sau MicroPython. În acest proiect, voi clipi MicroPython pe o placă ESP8266.

Am decis să obțin un WEMOS D1 care se bazează pe ESP8266-12EX pentru acest proiect simplu în care voi naviga pe o mașină 2WD folosind un browser web. Există alte plăci care sunt proiectate pentru MicroPython, dar am vrut ceva ieftin pe care să-l pot arunca dacă nu îndeplinește criteriile mele. Așa cum era de așteptat, mi-a îndeplinit toate cerințele și cel mai probabil voi încorpora WeMos și Micropython în proiecte viitoare.

Pasul 1: Piese

Părți
Părți
Părți
Părți
Părți
Părți
Părți
Părți
  • Wemos D1 sau orice plăci bazate pe ESP8266
  • Scut motor (folosesc un L293D ieftin de la AliExpress)
  • Suporturi pentru baterii pentru 4 x AA și 9V (4 baterii AA sunt pentru motoare și 9V pentru placa Wemos)
  • Șasiu auto 2WD
  • Cabluri Dupont

Poate avea nevoie de un fier de lipit, un șurubelniță și un pistol de lipit pentru a pune totul împreună.

Pasul 2: Asamblare hardware

Asamblare hardware
Asamblare hardware
Asamblare hardware
Asamblare hardware
Asamblare hardware
Asamblare hardware

Mai întâi, asamblați șasiul conform instrucțiunilor.

Apoi, lipiți fierbinte alte componente așa cum se arată.

Sârmele motorului trebuie lipite la bornele motorului și să se utilizeze adeziv fierbinte pentru a întări îmbinările terminale.

Așezat un mic comutator pe suportul bateriei 4AA. Aceasta va porni / opri alimentarea ecranului motorului.

Pasul 3: Cablare

Cablare
Cablare
Cablare
Cablare
Cablare
Cablare

Urmați schema mea de cablare așa cum se arată.

Wemos to Motor Shield:

D1 IN2

D2 IN1 D3 IN4 ** sări peste D4 D5 IN3 GND -> GND

Scutul motorului la motor / putere:

Un terminal -> Motor stânga

Terminal B -> Motor dreapta VCC -> Baterie (+) GND -> Baterie (-)

Pasul 4: Instalarea MicroPython

În primul rând, Wemos are un cip serial / USB bazat pe CH304G. Acesta este același cip găsit în clonele Arduino ieftine și trebuie să instalați un driver adecvat pentru Mac sau PC. Urmați instrucțiunile de pe acest site pentru a instala driverul.

Conectați Wemos la computer și confirmați că computerul dvs. ar putea detecta Wemos. Pe Mac, rulați următoarea comandă și veți vedea un dispozitiv numit /dev/tty.wchusbserial640.

$ ls -lt / dev / tty * | cap

crw-rw-rw- 1 roată rădăcină 17, 4 Mar 2 23:31 /dev/tty.wchusbserial640

Dacă sunteți pe computer, puteți utiliza acest instructabil ca referință.

Apoi, va trebui să configurați Python 2 sau 3 pe computer, deoarece instrumentul flash, esptool.py, se bazează pe Python. În timp ce ghidul MicroPython poate afirma că instrumentul funcționează numai cu Python 2.7, am reușit să îl rulez în Python 3 fără probleme. Descărcați cel mai recent Python de pe https://www.python.org și urmați instrucțiunile de instalare pentru PC sau Mac.

În cele din urmă, va trebui să instalați MicroPython pe Wemos. Site-ul MicroPython are un tutorial excelent despre cum să configurați MicroPython pe ESP8266. Doar urmați instrucțiunile de instalare din Noțiuni introductive despre MicroPython pe ESP8266.

Mai jos sunt comenzile pe care le-am folosit:

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

esptool.py v1.3 Conectarea…. Rularea butonului intermitent Cesanta … Ștergerea blițului (poate dura ceva timp) … Ștergerea a durat 10,5 secunde

$ 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 Conectarea…. Se rulează Cesant flasher stub … Parametrii blițului sunt setați la 0x0240 Au scris 589824 octeți la 0x0 în 50,8 secunde (92,8 kbit / s) … Plecând …

MicroPython este acum instalat pe placa dvs.!

Pasul 5: Configurați rețeaua

Configurare rețea
Configurare rețea

În timp ce MicroPython este acum instalat pe Wemos, acesta nu este încă conectat la rețeaua dvs. Mai întâi va trebui să activați rețeaua. Pe Mac, executați comanda SCREEN pentru a porni sesiunea terminalului serial către Wemos.

$ ecran /dev/tty.wchusbserial640 115200

Când vedeți un ecran gol, apăsați RETURN pentru a vedea o solicitare:

>>

(Notă: pentru a ieși, tastați CTRL-A CTRL-)

Acum, să activăm accesul webclient. Tastați „import webrepl_setup” pentru a rula programul de configurare. Introduceți E pentru a activa WebREPL și apoi setați parola. Reporniți pentru a activa modificările.

>> import webrepl_setup

Starea de pornire automată a demonului WebREPL: dezactivată Doriți să (E) activați sau (D) să o activați la pornire? (Linie goală pentru a ieși)> E Pentru a activa WebREPL, trebuie să setați parola pentru aceasta Parolă nouă: xxxxx Confirmați parola: xxxxx Modificările vor fi activate după repornire Doriți să reporniți acum? (y / n) y

În cele din urmă, descărcați clientul Webrepl pe computer. Acest lucru este opțional, dar clientul vine cu alte instrumente utile pe care poate doriți să le utilizați mai târziu. De exemplu, webrepl_cli.py este o comandă pentru a copia fișiere în Wemos într-o sintaxă asemănătoare scp. Utilizați git pentru a descărca clientul. (Instalați instrumentul git dacă nu îl aveți încă.)

git clone

Deschideți browserul web și, în câmpul URL, introduceți locația fișierului client webrepl descărcat, cum ar fi:

fișier: ///Users/xxxxx/wemos/webrepl/webrepl.html

Aceasta ar trebui să afișeze clientul webrepl în browserul dvs. Înainte de a vă putea conecta la acesta, trebuie să vă conectați mai întâi la punctul său de acces WIFi. Dacă vă uitați la WIFI disponibil pentru computerul dvs., veți vedea o rețea care începe cu MicroPython-xxxx. Conectați-vă la rețeaua respectivă. (Atenție: Odată ce vă conectați la acea rețea, veți pierde accesul la Internet.)

Reveniți la clientul dvs. webrepl și faceți clic pe Conectare. Ar trebui să solicite parola. Introduceți parola Wemos și ar trebui să vă conectați.

Bine ați venit la MicroPython!

Parolă: WebREPL conectat >>>

Wemos-ul dvs. rulează în continuare în modul AccessPoint. În timp ce acest lucru este în regulă, prefer să ruleze în modul stație, unde se conectează la WIFI-ul meu de acasă, astfel încât computerul meu să îl poată accesa prin WIFI de acasă și să aibă în continuare acces la Internet. Pentru a face acest lucru, va trebui să creați un fișier numit boot.py cu configurare de rețea și să îl încărcați în Wemos.

Iată un exemplu boot.py. Schimbați SSID și parola în rețeaua WIFI de acasă. De asemenea, vreau să îi dau un IP static de 192.168.0.32. Schimbați-l la adresa IP disponibilă pentru WIFI de acasă.

boot.py (îl puteți descărca de mai jos)

import gc

import webrepl def do_connect (): import rețea sta_if = network. WLAN (network. STA_IF) dacă nu sta_if.isconnected (): print ('conectarea la rețea …') 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 (' ',' ') while not sta_if.isconnected (): pass print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Utilizați formularul „Trimiteți un fișier” al clientului Webrepl pentru a trimite fișierul boot.py către Wemos. Apăsați butonul de reset pentru a reporni. Dacă sunteți încă conectat prin USB folosind comanda SCREEN, veți vedea:

conectare la rețea … configurare rețea: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') Daemon WebREPL a început pe ws: //192.168.4.1: 8266 Daemon WebREPL a început pe ws: //192.168.0.32: 8266 Webrepl pornit în modul normal nu a putut deschide fișierul „main.py” pentru citirea MicroPython v1.8.7-7-gb5a1a20a3 pe 09.01.2017; Modul ESP cu ESP8266 Tastați „help ()” pentru mai multe informații. >>>

Acest lucru confirmă faptul că Wemos-ul dvs. este conectat la WIFI de acasă utilizând adresa IP a 192.168.0.32.

Puteți face ping la adresa IP pentru a valida.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 octeți de date

64 octeți din 192.168.0.32: icmp_seq = 0 ttl = 255 timp = 9.334 ms 64 octeți din 192.168.0.32: icmp_seq = 1 ttl = 255 timp = 11.071 ms..

Pasul 6: Instalați programul principal

Instalați programul principal
Instalați programul principal
Instalați programul principal
Instalați programul principal

În cele din urmă, va trebui să instalați programul principal care va rula în continuare pe Wemos.

Reveniți la browserul dvs. web și rulați programul client webrepl. Schimbați adresa IP la adresa IP a Wemos. În cazul meu, acum este 192.168.0.32. Introduceți parola Wemos și acum ar trebui să fiți conectat la Wemos.

Să încărcăm programul main.py atașat. Descărcați fișierul atașat pe computer. Faceți clic pe Alegeți fișierul pentru a alege main.py descărcat și apoi faceți clic pe Trimis la dispozitiv.

Va trebui să apăsați butonul Rest pentru a încărca programul main.py. După apăsarea butonului Reset, veți vedea:

conectarea la rețea …

configurare rețea: („192.168.0.32”, „255.255.255.0”, „192.168.0.1”, „192.168.0.1”)

WebREPL daemon a început pe ws: //192.168.4.1: 8266 WebREPL daemon a început pe ws: //192.168.0.32: 8266 A început webrepl în modul normal Ascultare, conectați browserul la …

Aceasta înseamnă că programul dvs. main.py este activat și se afișează în portul 80.

Pentru a testa, deschideți browserul web și introduceți

Aceasta ar trebui să afișeze ecranul de control al mașinii, așa cum se arată în videoclip. Dacă firele dvs. sunt conectate corect, butoanele de control vor trimite semnale corespunzătoare către porturile GPIO pentru a muta mașina.

Pasul 7: Îmbunătățiri viitoare

Următoarele articole de făcut sunt pe lista mea v2:

  • Folosiți PWM pentru a controla viteza motorului
  • Îmbunătățiți interfața web. Poate folosiți un cadru REST. Nu cred că aREST lib este disponibil pe MicroPython în acest moment, deci este posibil să trebuiască să-l piratez.

Vă mulțumim că ați citit acest Instructable. Urmăriți-mă pe Facebook, Youtube și Instructables pentru mai multe proiecte în viitor.

Recomandat: