Talaan ng mga Nilalaman:

MicroPython IoT Rover Batay sa WEMOS D1 (ESP-8266EX): 7 Mga Hakbang (na may Mga Larawan)
MicroPython IoT Rover Batay sa WEMOS D1 (ESP-8266EX): 7 Mga Hakbang (na may Mga Larawan)

Video: MicroPython IoT Rover Batay sa WEMOS D1 (ESP-8266EX): 7 Mga Hakbang (na may Mga Larawan)

Video: MicroPython IoT Rover Batay sa WEMOS D1 (ESP-8266EX): 7 Mga Hakbang (na may Mga Larawan)
Video: MicroPython IoT Rover Based on WeMos D1 (ESP-8266EX) 2024, Hulyo
Anonim
Image
Image
MicroPython IoT Rover Batay sa WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover Batay sa WEMOS D1 (ESP-8266EX)

** Update: Nag-post ako ng isang bagong video para sa v2 na may lance **

Nagho-host ako ng mga workshop ng Robotics para sa mga bata at palagi akong naghahanap ng mga platform na pangkabuhayan upang makabuo ng mga nakakaintriga na proyekto. Habang ang mga clone ng Arduino ay mura, gumagamit ito ng wikang C / C ++ na hindi pamilyar sa mga bata. Gayundin, wala itong built-in na WiFi na kinakailangan para sa mga proyekto ng IoT. Sa kabilang banda, habang ang Raspberry Pi ay may WIFI at maaaring i-program ito ng mga bata gamit ang Python, ito ay isang mamahaling platform upang makontrol lamang ang ilang mga port ng GPIO upang i-on at i-off ang mga aparato. Kailangan ko ng isang bagay sa pagitan na mayroong parehong mga kakayahan sa WIFI at Python. Lumilitaw na nakita ko ang aking sagot sa MicroPython na nag-flash papunta sa isang murang board na nakabatay sa ESP8266.

Ano ang Micropython?

Ayon sa website nito, ang MicroPython ay isang payat at mahusay na pagpapatupad ng mga wika ng programa ng Python 3 na may kasamang isang maliit na subset ng pamantayang aklatan ng Python at na-optimize ito upang tumakbo sa mga microcontroller at sa pinipigilan na kapaligiran (tulad ng ESP8266). Mahalaga ang Python IDE sa isang maliit na tilad. Ang isang pangunahing pakinabang ay maaari kang lumikha ng code at baguhin ito nang mabilis gamit ang isang web-browser client na tinatawag na Webrepl. (Subukang gawin iyon sa Arduino.) Maaari mo ring makita ang data ng sensor sa real-time sa Webrepl sa halip na umasa sa pag-log ng data o isang LED screen sa Arduino.

Ano ang ESP8266?

Sa madaling sabi, isipin ito bilang isang Arduino na may built-in na kakayahan sa network. Maaari mong gamitin ang Arduino IDE upang i-program ang mga board ng ESP8266 sa C / C ++ o maaari mo itong i-flash sa NodeMCU o MicroPython. Sa proyektong ito, ilalagay ko ang MicroPython sa isang board na ESP8266.

Napagpasyahan kong makakuha ng isang WEMOS D1 na nakabatay sa ESP8266-12EX para sa simpleng proyektong ito kung saan magna-navigate ako sa isang kotseng 2WD gamit ang isang web browser. Mayroong iba pang mga board na idinisenyo para sa MicroPython ngunit nais ko ng isang mura na maaari kong itapon kung hindi nito natutugunan ang aking pamantayan. Tulad ng inaasahan, natutugunan nito ang lahat ng aking mga kinakailangan at malamang na isasama ko ang WeMos at Micropython sa mga susunod na proyekto.

Hakbang 1: Mga Bahagi

Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi
  • Wemos D1 o anumang mga board na batay sa ESP8266
  • Motor shield (Gumagamit ako ng murang L293D mula AliExpress)
  • Ang mga may hawak ng baterya para sa 4 x AA at 9V (4 x AA na baterya ay para sa mga motor at ang 9V ay para sa board ng Wemos)
  • 2WD chassis ng kotse
  • Dupont cable

Maaaring mangailangan ng isang soldering iron, isang screw driver at isang glue gun upang pagsama-samahin ang lahat.

Hakbang 2: Hardware Assembly

Hardware Assembly
Hardware Assembly
Hardware Assembly
Hardware Assembly
Hardware Assembly
Hardware Assembly

Una, tipunin ang chassis alinsunod sa tagubilin.

Pagkatapos, mainit na pandikit ang iba pang mga sangkap tulad ng ipinakita.

Ang mga wire ng motor ay dapat na solder sa mga terminal ng motor at gumamit ng mainit na pandikit upang mapalakas ang mga kasukasuan ng terminal.

Naglagay ng isang maliit na switch sa may hawak ng baterya ng 4AA. Ito ay i-on / i-off ang lakas sa kalasag ng motor.

Hakbang 3: Mga kable

Kable
Kable
Kable
Kable
Kable
Kable

Sundin ang aking diagram ng mga kable tulad ng ipinakita.

Mga Wemos sa Motor Shield:

D1 IN2

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

Motor Shield patungo sa Motor / Power:

Isang terminal -> Kaliwa Motor

B terminal -> Kanan Motor VCC -> Baterya (+) GND -> Baterya (-)

Hakbang 4: Pag-install ng MicroPython

Una, ang Wemos ay may serial / USB chip batay sa CH304G. Ito ang parehong chip na matatagpuan sa murang Arduino-clones at dapat kang mag-install ng tamang driver para sa Mac o PC. Sundin ang mga tagubilin sa site na ito upang mai-install ang driver.

Ikonekta ang Wemos sa iyong computer at kumpirmahing maaaring makita ng iyong computer ang Wemos. Sa Mac, patakbuhin ang sumusunod na utos at makikita mo ang isang aparato na tinatawag na /dev/tty.wchusbserial640.

$ ls -lt / dev / tty * | ulo

crw-rw-rw- 1 root wheel 17, 4 Mar 2 23:31 /dev/tty.wchusbserial640

Kung nasa PC ka, maaari mong gamitin ang Instructable na ito bilang isang sanggunian.

Susunod, kakailanganin mong i-set ang Python 2 o 3 sa iyong computer dahil ang flash tool, esptool.py, ay batay sa Python. Habang ang gabay ng MicroPython ay maaaring sabihin na ang tool ay gagana lamang sa Python 2.7, nagawa kong patakbuhin iyon sa Python 3 nang walang anumang mga isyu. Mag-download ng pinakabagong Python mula sa https://www.python.org at sundin ang mga tagubilin sa pag-install para sa iyong PC o Mac.

Panghuli, kakailanganin mong i-install ang MicroPython sa Wemos. Ang site ng MicroPython ay may mahusay na tutorial kung paano mag-setup ng MicroPython sa ESP8266. Sundin lamang ang mga tagubilin sa pag-install sa Pagsisimula sa MicroPython sa ESP8266.

Nasa ibaba ang mga utos na ginamit ko:

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

esptool.py v1.3 Kumokonekta…. Pagpapatakbo ng Cesanta flasher rint… Binubura ang flash (maaaring magtagal ito)… Tumanggal ng 10.5 segundo ang burado

$ 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 Kumokonekta…. Pagpapatakbo ng Cesanta flasher rint… Flash params na nakatakda sa 0x0240 Sumulat 589824 bytes sa 0x0 sa 50.8 segundo (92.8 kbit / s)… Umalis …

Ang MicroPython ay naka-install na ngayon sa iyong board!

Hakbang 5: Setup Network

Setup Network
Setup Network

Habang ang MicroPython ay naka-install na ngayon sa iyong Wemos, hindi pa ito nakakonekta sa iyong network. Kailangan mo munang paganahin ang network. Sa Mac, ipatupad ang SCREEN command upang simulan ang serial session ng session sa Wemos.

$ screen /dev/tty.wchusbserial640 115200

Kapag nakakita ka ng isang blangko na screen, pindutin ang BALIK upang makita ang isang prompt:

>>

(Tandaan: Upang lumabas, i-type ang CTRL-A CTRL- )

Ngayon, paganahin natin ang webclient access. I-type ang "import webrepl_setup" upang patakbuhin ang programa ng pag-setup. Ipasok ang E upang paganahin ang WebREPL at pagkatapos ay itakda ang password. I-reboot upang maisaaktibo ang mga pagbabago.

>> i-import ang webrepl_setup

WebREPL daemon auto-start status: hindi pinagana Gusto mo bang (E) nable o (D) isable ito na tumatakbo sa boot? (Walang laman na linya upang umalis)> E Upang paganahin ang WebREPL, dapat mong itakda ang password para dito Bagong password: xxxxx Kumpirmahin ang password: xxxxx Ang mga pagbabago ay isasaaktibo pagkatapos ng pag-reboot Gusto mo bang mag-reboot ngayon? (y / n) y

Panghuli, i-download ang Webrepl client sa iyong machine. Opsyonal ito ngunit ang client ay may kasamang iba pang mga kapaki-pakinabang na tool na maaaring gusto mong gamitin sa paglaon. Halimbawa, ang webrepl_cli.py ay isang utos na kopyahin ang mga file sa Wemos sa scp-like syntax. Gumamit ng git upang i-download ang client. (I-install ang git tool kung wala ka pa nito.)

git clone

Buksan ang iyong web browser at sa patlang ng URL, ipasok ang lokasyon ng iyong na-download na lokasyon ng file ng client ng webrepl tulad ng:

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

Dapat itong ipakita ang webrepl client sa iyong browser. Bago ka makakonekta dito, kailangan mo munang kumonekta sa WIFi Access Point nito. Kung titingnan mo ang magagamit na WIFI para sa iyong computer, makikita mo ang isang network ay nagsisimula sa MicroPython-xxxx. Kumonekta sa network na iyon. (Babala: Kapag kumonekta ka sa network na iyon, mawawala sa iyo ang iyong pag-access sa Internet.)

Bumalik sa iyong webrepl client at mag-click sa Connect. Dapat itong mag-prompt para sa password. Ipasok ang iyong Wemos password at dapat kang kumonekta.

Maligayang pagdating sa MicroPython!

Password: Nakakonekta ang WebREPL >>>

Tumatakbo pa rin ang iyong Wemos sa AccessPoint Mode. Habang OK lang ito, mas gusto ko itong tumakbo sa Station Mode kung saan kumokonekta ito sa aking WIFI sa bahay upang ma-access ito ng aking computer sa pamamagitan ng WIFI sa bahay at mayroon pa ring access sa Internet. Upang magawa iyon, kakailanganin mong lumikha ng isang file na tinatawag na boot.py na may pagsasaayos ng network at i-upload ito sa Wemos.

Narito ang isang sample na boot.py. Baguhin ang ssid at password sa iyong home WIFI network. Gayundin, nais kong bigyan ito ng isang static IP ng 192.168.0.32. Palitan ito sa magagamit na IP address ng iyong WIFI sa iyong bahay.

boot.py (maaari mong i-download ito mula sa ibaba)

import gc

import webrepl def do_connect (): import network sta_if = network. WLAN (network. STA_IF) kung hindi sta_if.isconnected (): print ('pagkonekta sa network…') 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 (' ',' ') habang hindi sta_if.isconnected (): ipasa ang print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Gumamit ng form na "Magpadala ng isang File" ng Webrepl client upang maipadala ang iyong boot.py file sa iyong mga Wemos. Pindutin ang pindutan ng pag-reset upang mag-reboot. Kung nakakonekta ka pa rin sa pamamagitan ng USB gamit ang SCREEN command, makikita mo ang:

kumonekta sa network… network config: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') Nagsimula ang WebREPL daemon sa ws: //192.168.4.1: 8266 WebREPL daemon nagsimula sa ws: //192.168.0.32: 8266 Sinimulan ang webrepl sa normal na mode ay hindi maaaring buksan ang file na 'main.py' para sa pagbabasa ng MicroPython v1.8.7-7-gb5a1a20a3 sa 2017-01-09; Module ng ESP na may ESP8266 Uri ng "tulong ()" para sa karagdagang impormasyon. >>>

Pinatutunayan nito na ang iyong Wemos ay konektado sa iyong WIFI sa bahay gamit ang ipaddress ng 192.168.0.32.

Maaari mong i-ping ang IP address na iyon upang mapatunayan.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 data bytes

64 bytes mula sa 192.168.0.32: icmp_seq = 0 ttl = 255 oras = 9.334 ms 64 bytes mula sa 192.168.0.32: icmp_seq = 1 ttl = 255 oras = 11.071 ms..

Hakbang 6: I-install ang Pangunahing Program

I-install ang Pangunahing Program
I-install ang Pangunahing Program
I-install ang Pangunahing Program
I-install ang Pangunahing Program

Panghuli, kakailanganin mong i-install ang pangunahing programa na patuloy na tatakbo sa iyong Wemos.

Bumalik sa iyong web browser at patakbuhin ang program ng webrepl client. Baguhin ang ip address sa IP address ng iyong Wemos. Sa aking kaso, ngayon ay 192.168.0.32 na. Ipasok ang iyong Wemos password at dapat na konektado ka sa Wemos.

I-upload natin ang nakalakip na pangunahing.py program. I-download ang nakalakip na file sa iyong computer. Mag-click sa Piliin ang File upang piliin ang na-download na main.py at at mag-click sa Ipadala sa aparato.

Kakailanganin mong pindutin ang pindutan ng Pahinga upang mai-load ang main.py program. Pagkatapos ng pagpindot sa pindutang I-reset, makikita mo ang:

kumonekta sa network…

network config: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

Ang WebREPL daemon ay nagsimula sa ws: //192.168.4.1: 8266 WebREPL daemon ay nagsimula sa ws: //192.168.0.32: 8266 Sinimulan ang webrepl sa normal na mode ng Pakikinig, ikonekta ang iyong browser sa…

Nangangahulugan ito na ang iyong pangunahing.py programa ay naaktibo at nakalista sa port 80.

Upang masubukan, buksan ang iyong web browser at ipasok ang

Dapat itong ipakita ang screen ng control ng kotse tulad ng ipinakita sa video. Kung ang iyong mga wire ay konektado nang maayos, ang mga pindutan ng kontrol ay magpapadala ng wastong mga signal sa iyong mga port ng GPIO upang ilipat ang kotse.

Hakbang 7: Mga Pagpapabuti sa Hinaharap

Ang mga sumusunod na dapat gawin ay nasa aking listahan ng v2:

  • Gumamit ng PWM upang makontrol ang bilis ng motor
  • Pagbutihin ang web interface. Marahil gumamit ng aREST framework. Hindi ako naniniwala na ang aREST lib ay magagamit sa MicroPython sa sandaling ito kaya maaaring kailanganin kong i-hack ito.

Salamat sa pagbabasa ng Instructable na ito. Sundan ako sa Facebook, Youtube, at Mga Instructable para sa maraming mga proyekto sa hinaharap.

Inirerekumendang: