Përmbajtje:

MicroPython IoT Rover Bazuar në WEMOS D1 (ESP-8266EX): 7 hapa (me fotografi)
MicroPython IoT Rover Bazuar në WEMOS D1 (ESP-8266EX): 7 hapa (me fotografi)

Video: MicroPython IoT Rover Bazuar në WEMOS D1 (ESP-8266EX): 7 hapa (me fotografi)

Video: MicroPython IoT Rover Bazuar në WEMOS D1 (ESP-8266EX): 7 hapa (me fotografi)
Video: CircuitPython Weekly - March 11th, 2019 @adafruit #adafruit 2024, Nëntor
Anonim
Image
Image
MicroPython IoT Rover Bazuar në WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover Bazuar në WEMOS D1 (ESP-8266EX)

** Përditësim: Kam postuar një video të re për v2 me një shtizë **

Unë mbaj punëtori Robotike për fëmijët e vegjël dhe jam gjithmonë në kërkim të platformave ekonomike për të ndërtuar projekte intriguese. Ndërsa klonet Arduino janë të lira, ai përdor gjuhën C/C ++ me të cilën fëmijët nuk janë të njohur. Gjithashtu, nuk ka një WiFi të integruar i cili është një domosdoshmëri për projektet IoT. Nga ana tjetër, ndërsa Raspberry Pi ka WIFI dhe fëmijët mund ta programojnë atë duke përdorur Python, është ende një platformë e shtrenjtë për të kontrolluar vetëm disa porte GPIO për të ndezur dhe fikur pajisjet. Më duhet diçka në mes që ka aftësi WIFI dhe Python. Duket se e gjeta përgjigjen time në MicroPython që u hodh në një tabelë të lirë të bazuar në ESP8266.

Çfarë është Mikropitoni?

Sipas faqes së saj të internetit, MicroPython është një zbatim i dobët dhe efikas i gjuhëve programuese Python 3 që përfshin një nëngrup të vogël të bibliotekës standarde Python dhe është i optimizuar të funksionojë në mikrokontrollues dhe në mjedis të kufizuar (siç është ESP8266). Essentialshtë në thelb Python IDE në një çip. Një përfitim i madh është se ju mund të krijoni kod dhe ta ndryshoni atë në fluturim duke përdorur një klient të shfletuesit të internetit të quajtur Webrepl. (Mundohuni ta bëni këtë në Arduino.) Ju gjithashtu mund të shihni të dhënat e sensorit në kohë reale në Webrepl në vend që të mbështeteni në regjistrimin e të dhënave ose një ekran LED në Arduino.

Çfarë është ESP8266?

Me pak fjalë, mendojeni si një Arduino me aftësi të integruar të rrjetit. Ju mund të përdorni Arduino IDE për të programuar bordet ESP8266 në C/C ++ ose mund ta ndizni me NodeMCU ose MicroPython. Në këtë projekt, unë do të ndez MicroPython në një bord ESP8266.

Vendosa të marr një WEMOS D1 i cili bazohet në ESP8266-12EX për këtë projekt të thjeshtë ku do të lundroj në një makinë 2WD duke përdorur një shfletues uebi. Ka borde të tjera që janë krijuar për MicroPython, por unë doja diçka të lirë që mund ta hidhja nëse nuk i plotësonte kriteret e mia. Siç pritej, ai plotësoi të gjitha kërkesat e mia dhe ka shumë të ngjarë që unë të përfshij WeMos dhe Micropython në projektet e ardhshme.

Hapi 1: Pjesët

Pjesët
Pjesët
Pjesët
Pjesët
Pjesët
Pjesët
Pjesët
Pjesët
  • Wemos D1 ose ndonjë dërrasë të bazuar në ESP8266
  • Mburoja motorike (Unë jam duke përdorur një L293D të lirë nga AliExpress)
  • Mbajtësit e baterisë për 4 x AA dhe 9V (4 x bateri AA janë për motorët dhe 9V janë për bordin Wemos)
  • Shasia e makinave 2WD
  • Kabllot Dupont

Mund të ketë nevojë për një hekur bashkues, një vidë dhe një armë zam për të bashkuar gjithçka.

Hapi 2: Asambleja e harduerit

Asambleja e harduerit
Asambleja e harduerit
Asambleja e harduerit
Asambleja e harduerit
Asambleja e harduerit
Asambleja e harduerit

Së pari, mblidhni shasinë sipas udhëzimit.

Pastaj, ngjitni nxehtësisht përbërës të tjerë siç tregohet.

Telat e motorit duhet të ngjiten në terminalet e motorit dhe të përdorin zam të nxehtë për të përforcuar nyjet e terminalit.

Ngjitur një çelës të vogël në mbajtësen e baterisë 4AA. Kjo do të ndez/fik fuqinë në mburojën e motorit.

Hapi 3: Instalimet elektrike

Instalime elektrike
Instalime elektrike
Instalime elektrike
Instalime elektrike
Instalime elektrike
Instalime elektrike

Ndiqni diagramin tim të instalimeve elektrike siç tregohet.

Wemos në Motor Shield:

D1 IN2

D2 IN1 D3 IN4 ** kaloni D4 D5 IN3 GND -> GND

Mburoja e motorit në motor/fuqi:

Një terminal -> Motor i majtë

Terminali B -> VCC Motor djathtas -> Bateria (+) GND -> Bateria (-)

Hapi 4: Instalimi i MicroPython

Së pari, Wemos ka një çip serial/USB të bazuar në CH304G. Ky është i njëjti çip i gjetur në klonet e lirë Arduino dhe duhet të instaloni një drejtues të përshtatshëm për Mac ose PC. Ndiqni udhëzimet në këtë faqe për të instaluar drejtuesin.

Lidhni Wemos me kompjuterin tuaj dhe konfirmoni që kompjuteri juaj mund të zbulojë Wemos. Në Mac, ekzekutoni komandën e mëposhtme dhe do të shihni një pajisje të quajtur /dev/tty.wchusbserial640.

$ ls -lt /dev /tty* | kokë

crw-rw-rw- 1 rrotë rrënjë 17, 4 mars 2 23:31 /dev/tty.wchusbserial640

Nëse jeni në PC, mund ta përdorni këtë Instructable si referencë.

Tjetra, do t'ju duhet të konfiguroni Python 2 ose 3 në kompjuterin tuaj pasi mjeti flash, esptool.py, bazohet në Python. Ndërsa udhëzuesi MicroPython mund të deklarojë se mjeti punon vetëm me Python 2.7, unë kam qenë në gjendje ta ekzekutoj atë në Python 3 pa ndonjë problem. Shkarkoni Python -in e fundit nga https://www.python.org dhe ndiqni udhëzimet e instalimit për PC ose Mac tuaj.

Së fundmi, do t'ju duhet të instaloni MicroPython në Wemos. Faqja e MicroPython ka një mësim të shkëlqyeshëm se si të konfiguroni MicroPython në ESP8266. Vetëm ndiqni udhëzimet e instalimit në Fillimi me MicroPython në ESP8266.

Më poshtë janë komandat që kam përdorur:

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

esptool.py v1.3 Lidhja…. Drejtimi i cungut të ndezjes së Cesanta… Fshirja e blicit (kjo mund të zgjasë pak)… Fshirja zgjati 10.5 sekonda

$ 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 Lidhja…. Drejtimi i cungut të ndezjes së Cesanta… Flash paramet e vendosura në 0x0240 Shkroi 589824 bajt në 0x0 në 50.8 sekonda (92.8 kbit/s)… Po largohet…

MicroPython tani është instaluar në bordin tuaj!

Hapi 5: Konfigurimi i Rrjetit

Konfiguro Rrjetin
Konfiguro Rrjetin

Ndërsa MicroPython tani është i instaluar në Wemos tuaj, ai nuk është i lidhur ende me rrjetin tuaj. Së pari ju duhet të aktivizoni rrjetin. Në Mac, ekzekutoni komandën SCREEN për të filluar sesionin e terminalit serik në Wemos.

$ screen /dev/tty.wchusbserial640 115200

Kur shihni një ekran të zbrazët, shtypni KTHIM për të parë një kërkesë:

>>

(Shënim: Për të dalë, shtypni CTRL-A CTRL- )

Tani, le të aktivizojmë qasjen e klientit në internet. Shkruani "import webrepl_setup" për të ekzekutuar programin e konfigurimit. Futni E për të aktivizuar WebREPL dhe më pas vendosni fjalëkalimin. Rinisni për të aktivizuar ndryshimet.

>> importoni webrepl_setup

Statusi i nisjes automatike të daemonit WebREPL: me aftësi të kufizuara Dëshironi që (E) të jetë i aftë ose (D) të mundësohet që ai të funksionojë gjatë nisjes? (Linja boshe për të lënë)> E Për të aktivizuar WebREPL, duhet të vendosni fjalëkalimin për të Fjalëkalimi i ri: xxxxx Konfirmo fjalëkalimin: xxxxx Ndryshimet do të aktivizohen pas rindezjes Dëshironi të rindizni tani? (y/n) y

Së fundi, shkarkoni klientin Webrepl në kompjuterin tuaj. Kjo është opsionale, por klienti vjen me mjete të tjera të dobishme që mund të dëshironi t'i përdorni më vonë. Për shembull, webrepl_cli.py është një komandë për të kopjuar skedarët në Wemos në sintaksë të ngjashme me scp. Përdorni git për të shkarkuar klientin. (Instaloni mjetin git nëse nuk e keni akoma.)

git klon

Hapni shfletuesin tuaj të internetit dhe në fushën URL, futni vendndodhjen e vendndodhjes së skedarit të shkarkuar të klientit tuaj webrepl, siç janë:

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

Kjo duhet të shfaqë klientin webrepl në shfletuesin tuaj. Para se të lidheni me të, së pari duhet të lidheni me Pikën e Hyrjes WIFi. Nëse shikoni WIFI në dispozicion për kompjuterin tuaj, do të shihni që një rrjet fillon me MicroPython-xxxx. Lidhu me atë rrjet. (Paralajmërim: Pasi të lidheni me atë rrjet, do të humbni qasjen tuaj në internet.)

Kthehuni te klienti juaj webrepl dhe klikoni në Lidhu. Duhet të kërkojë fjalëkalimin. Vendosni fjalëkalimin tuaj Wemos dhe duhet të lidheni.

Mirësevini në MicroPython!

Fjalëkalimi: WebREPL i lidhur >>>

Wemos juaj është akoma duke funksionuar në modalitetin AccessPoint. Ndërsa kjo është në rregull, unë preferoj që ajo të funksionojë në Stacion Mode ku lidhet me WIFI -në e shtëpisë sime në mënyrë që kompjuteri im të ketë qasje në të përmes WIFI -t në shtëpi dhe të ketë akoma qasje në internet. Për ta bërë këtë, do të duhet të krijoni një skedar të quajtur boot.py me konfigurimin e rrjetit dhe ta ngarkoni atë në Wemos.

Këtu është një mostër boot.py. Ndryshoni ssid -in dhe fjalëkalimin në rrjetin tuaj WIFI në shtëpi. Gjithashtu, dua t'i jap një IP statike prej 192.168.0.32. Ndryshojeni atë në adresën IP të disponueshme të WIFI -t tuaj në shtëpi.

boot.py (mund ta shkarkoni nga poshtë)

import gc

importoni webrepl def do_connect (): importoni rrjetin sta_if = rrjet. WLAN (rrjet. STA_IF) nëse jo sta_if.cisconnected (): print ('duke u lidhur me rrjetin …') 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 (' ',' ') ndërsa nuk sta_if.isconnected (): kaloni printimin (' config network: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Përdorni formularin "Dërgo një skedar" të klientit Webrepl për të dërguar skedarin tuaj boot.py në Wemos tuaj. Shtypni butonin e rivendosjes për të rindezur. Nëse jeni ende të lidhur përmes USB duke përdorur komandën SCREEN, do të shihni:

lidhja me rrjetin… konfigurimi i rrjetit: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') Demoni WebREPL filloi në ws: //192.168.4.1: 8266 WebREPL demoni filloi në ws: //192.168.0.32: 8266 Webrepl i filluar në mënyrë normale nuk mund të hapte skedarin 'main.py' për të lexuar MicroPython v1.8.7-7-gb5a1a20a3 më 2017-01-09; Moduli ESP me ESP8266 Lloji "ndihmë ()" për më shumë informacion. >>>

Kjo vërteton që Wemos -i juaj është i lidhur me WIFI -në tuaj në shtëpi duke përdorur ipaddress -in e 192.168.0.32.

Ju mund ta pingoni atë adresë IP për ta vërtetuar.

ping $ 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 bajt të dhënash

64 bajt nga 192.168.0.32: icmp_seq = 0 ttl = 255 kohë = 9.334 ms 64 byte nga 192.168.0.32: icmp_seq = 1 ttl = 255 kohë = 11.071 ms..

Hapi 6: Instaloni Programin Kryesor

Instaloni programin kryesor
Instaloni programin kryesor
Instaloni programin kryesor
Instaloni programin kryesor

Së fundi, do t'ju duhet të instaloni programin kryesor që do të vazhdojë të funksionojë në Wemos tuaj.

Kthehuni përsëri në shfletuesin tuaj të internetit dhe drejtoni programin e klientit webrepl. Ndryshoni adresën IP në adresën IP të Wemos tuaj. Në rastin tim, tani është 192.168.0.32. Vendosni fjalëkalimin tuaj Wemos dhe tani duhet të jeni të lidhur me Wemos.

Le të ngarkojmë programin e bashkangjitur main.py. Shkarkoni skedarin e bashkangjitur në kompjuterin tuaj. Klikoni në Zgjidh skedarin për të zgjedhur main.py -në e shkarkuar dhe dhe klikoni në Dërguar në pajisje.

Ju do të duhet të shtypni butonin Rest për të ngarkuar programin main.py. Pasi të shtypni butonin Reset, do të shihni:

po lidhet me rrjetin…

konfigurimi i rrjetit: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

Demon WebREPL filloi në ws: //192.168.4.1: 8266 Demon WebREPL filloi në ws: //192.168.0.32: 8266 Filloi webrepl në gjendje normale Dëgjimi, lidhni shfletuesin tuaj me…

Kjo do të thotë që programi juaj main.py është aktivizuar dhe listohet në portin 80.

Për të testuar, hapni shfletuesin tuaj të internetit dhe futni

Kjo duhet të shfaq ekranin e kontrollit të makinës siç tregohet në video. Nëse telat tuaj janë të lidhur siç duhet, butonat e kontrollit do të dërgojnë sinjale të duhura në portat tuaja GPIO për të lëvizur makinën.

Hapi 7: Përmirësimet e së ardhmes

Artikujt e mëposhtëm për të bërë janë në listën time v2:

  • Përdorni PWM për të kontrolluar shpejtësinë e motorit
  • Përmirësoni ndërfaqen në internet. Ndoshta përdorni kornizën aREST. Nuk besoj se libri aREST është i disponueshëm në MicroPython në këtë moment, kështu që mund të më duhet ta hakoj.

Faleminderit që lexuat këtë Udhëzues. Më ndiqni në Facebook, Youtube dhe Instructables për më shumë projekte në të ardhmen.

Recommended: