Mündəricat:
- Addım 1: hissələr
- Addım 2: Avadanlıq Montajı
- Addım 3: Kabel çəkmə
- Addım 4: MicroPython Quraşdırması
- Addım 5: Şəbəkə qurun
- Addım 6: Əsas Proqramı Qurun
- Addım 7: Gələcək Təkmilləşdirmələr
Video: WEMOS D1 (ESP-8266EX) əsasında hazırlanmış MicroPython IoT Rover: 7 addım (şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
** Yeniləmə: V2 üçün yeni bir video açdım.
Gənc uşaqlar üçün Robototexnika seminarlarına ev sahibliyi edirəm və həmişə maraqlı layihələr qurmaq üçün iqtisadi platformalar axtarıram. Arduino klonları ucuz olsa da, uşaqların tanımadığı C/C ++ dilindən istifadə edir. Ayrıca, IoT layihələri üçün zəruri olan daxili WiFi yoxdur. Digər tərəfdən, Raspberry Pi -də WIFI olsa da və uşaqlar Python istifadə edərək proqramlaşdıra bilsələr də, cihazları yandırıb söndürmək üçün bir neçə GPIO portunu idarə etmək hələ də bahalı bir platformadır. Aralarında WIFI və Python imkanlarına sahib bir şeyə ehtiyacım var. Cavabımı MicroPython-da ucuz bir ESP8266 əsaslı lövhəyə yuvarlandığını gördüm.
Micropython nədir?
Veb saytına görə, MicroPython, Python standart kitabxanasının kiçik bir alt qrupunu ehtiva edən Python 3 proqramlaşdırma dillərinin arıq və səmərəli bir tətbiqidir və mikro nəzarətçilərdə və məhdud mühitdə (ESP8266 kimi) çalışmaq üçün optimallaşdırılmışdır. Əsasən bir çipdəki Python IDE -dir. Bir böyük fayda, Webrepl adlı bir veb brauzer müştərisini istifadə edərək kod yarada və dərhal dəyişə bilərsiniz. (Bunu Arduinoda etməyə çalışın.) Arduinoda məlumat girişinə və ya LED ekrana güvənmək əvəzinə Webrepl-də real vaxt rejimində sensor məlumatlarını görə bilərsiniz.
ESP8266 nədir?
Bir sözlə, daxili şəbəkə qabiliyyətinə malik bir Arduino kimi düşünün. ESP8266 lövhələrini C/C ++ proqramlaşdırmaq üçün Arduino IDE -dən istifadə edə bilərsiniz və ya NodeMCU və ya MicroPython ilə yandıra bilərsiniz. Bu layihədə, MicroPython'u bir ESP8266 lövhəsinə yandıracağam.
Veb brauzerindən istifadə edərək 2WD avtomobili gəzəcəyim bu sadə layihə üçün ESP8266-12EX-ə əsaslanan WEMOS D1 almağa qərar verdim. MicroPython üçün hazırlanmış digər lövhələr var, amma meyarlarımı yerinə yetirməsə ata biləcəyim ucuz bir şey istədim. Gözlənildiyi kimi, bütün tələblərimə cavab verdi və çox güman ki, gələcək layihələrə WeMos və Micropython daxil edəcəyəm.
Addım 1: hissələr
- Wemos D1 və ya hər hansı bir ESP8266 əsaslı lövhə
- Motor qalxanı (AliExpress -dən ucuz L293D istifadə edirəm)
- 4 x AA və 9V üçün batareya tutacaqları (4 x AA batareyaları mühərriklər üçün, 9V isə Wemos lövhəsi üçündür)
- 2WD avtomobil şassisi
- Dupont kabelləri
Hər şeyi bir araya gətirmək üçün bir lehimləmə dəmirinə, tornavidaya və yapışqan tabancasına ehtiyac ola bilər.
Addım 2: Avadanlıq Montajı
Əvvəlcə təlimatlara uyğun olaraq şassi yığın.
Sonra göstərildiyi kimi digər komponentləri isti yapışdırın.
Motor telləri motor terminallarına lehimlənməli və terminal birləşmələrini gücləndirmək üçün isti yapışqan istifadə edilməlidir.
4AA batareya tutacağına kiçik bir keçid yapışdırıldı. Bu, motor qalxanının gücünü açacaq/söndürəcək.
Addım 3: Kabel çəkmə
Göstərildiyi kimi bağlama sxemimi izləyin.
Motor Qalxanına Wemos:
D1 IN2
D2 IN1 D3 IN4 ** atla D4 D5 IN3 GND -> GND
Motor Qalxanı Motora/Gücə:
Terminal -> Sol Motor
B terminali -> Sağ Motorlu VCC -> Batareya (+) GND -> Batareya (-)
Addım 4: MicroPython Quraşdırması
Birincisi, Wemos, CH304G əsaslı bir serial/USB çipinə malikdir. Bu ucuz Arduino klonlarında olan eyni çipdir və Mac və ya PC üçün uyğun bir sürücü quraşdırmalısınız. Sürücü qurmaq üçün bu saytdakı təlimatları izləyin.
Wemos'u kompüterinizə qoşun və kompüterinizin Wemos'u aşkar edə biləcəyini təsdiq edin. Mac -da aşağıdakı əmri işlədin və /dev/tty.wchusbserial640 adlı bir cihaz görəcəksiniz.
$ ls -lt /dev /tty* | baş
crw-rw-rw- 1 kök təkər 17, 4 Mar 2 23:31 /dev/tty.wchusbserial640
PC -də olsanız, bu Təlimatçını istinad olaraq istifadə edə bilərsiniz.
Bundan sonra, esptool.py adlı flash vasitəsi Pythona əsaslandığından kompüterinizdə Python 2 və ya 3 qurmalısınız. MicroPython bələdçisi, alətin yalnız Python 2.7 ilə işlədiyini söyləsə də, bunu Python 3 -də heç bir problem olmadan işlədə bildim. Ən son Python proqramını https://www.python.org saytından yükləyin və PC və ya Mac üçün quraşdırma təlimatlarına əməl edin.
Nəhayət, Wemos -da MicroPython quraşdırmalısınız. MicroPython saytında, ESP8266 -da MicroPython -un necə qurulacağına dair əla bir dərs var. ESP8266 -da MicroPython ilə işə başlamağınızdakı quraşdırma təlimatlarına əməl edin.
Aşağıda istifadə etdiyim əmrlər:
$ esptool.py --port /dev/tty.wchusbserial640 erase_flash
esptool.py v1.3 Qoşulur…. Cesanta flaşör kötüyü işlədilir… Flaşın silinməsi (bir az vaxt ala bilər)… Silmə 10.5 saniyə çəkdi
$ 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 Qoşulur…. Cesanta flasher stubunu işə salmaq… Flaş parametrləri 0x0240 olaraq təyin olundu 50.8 saniyədə (92.8 kbit/s) 0x0 -da 589824 bayt yazdı … Ayrılır…
MicroPython artıq lövhənizdə quraşdırılıb!
Addım 5: Şəbəkə qurun
MicroPython indi Wemos -da quraşdırılsa da, hələ şəbəkənizə qoşulmayıb. Əvvəlcə şəbəkəni aktivləşdirməlisiniz. Mac -da, serial terminal seansını Wemos -a başlamaq üçün SCREEN əmrini yerinə yetirin.
$ ekran /dev/tty.wchusbserial640 115200
Boş bir ekran gördüyünüz zaman bir sorğu görmək üçün RETURN vurun:
>>
(Qeyd: Çıxmaq üçün CTRL-A CTRL- / yazın)
İndi veb müştəri girişini aktiv edək. Quraşdırma proqramını işə salmaq üçün "import webrepl_setup" yazın. WebREPL -i aktivləşdirmək üçün E daxil edin və sonra parol təyin edin. Dəyişiklikləri aktivləşdirmək üçün yenidən başladın.
>> idxal webrepl_setup
WebREPL daemon avtomatik başlanğıc statusu: deaktivdir (E) işə salmaq və ya (D) açılışda işləməsini istəyərsinizmi? (Çıxmaq üçün boş xətt)> E WebREPL -i aktiv etmək üçün bunun üçün parol təyin etməlisiniz Yeni parol: xxxxx Şifrəni təsdiq edin: xxxxx Yenidən başladıqdan sonra dəyişikliklər aktiv olacaq İndi yenidən başlatmaq istərdinizmi? (y/n) y
Nəhayət, Webrepl müştərisini maşınınıza yükləyin. Bu isteğe bağlıdır, lakin müştəri daha sonra istifadə etmək istəyə biləcəyiniz digər faydalı vasitələrlə gəlir. Məsələn, webrepl_cli.py, sənədləri scp kimi sintaksisdə Wemos-a kopyalamaq üçün əmrdir. Müştərini yükləmək üçün git istifadə edin. (Hələ yoxsa git alətini quraşdırın.)
git klonu
Veb brauzerinizi açın və URL sahəsinə endirdiyiniz webrepl müştəri faylının yerini daxil edin:
fayl: ///Users/xxxxx/wemos/webrepl/webrepl.html
Bu, webrepl müştərisini brauzerinizdə göstərməlidir. Bağlanmadan əvvəl əvvəlcə WIFi Giriş Nöqtəsinə qoşulmalısınız. Kompüteriniz üçün mövcud WIFI-ə baxsanız, MicroPython-xxxx ilə başlayan bir şəbəkə görəcəksiniz. Həmin şəbəkəyə qoşulun. (Xəbərdarlıq: Bu şəbəkəyə qoşulduqdan sonra İnternetə çıxışınızı itirəcəksiniz.)
Webrepl müştərinizə qayıdın və Bağlan düyməsini basın. Şifrə istəməlidir. Wemos şifrənizi daxil edin və qoşulmalısınız.
MicroPython -a xoş gəldiniz!
Şifrə: WebREPL qoşuldu >>>
Wemosunuz hələ də AccessPoint rejimində işləyir. Bu yaxşı olsa da, ev WIFI -yə qoşulduğu stansiya rejimində işləməyi üstün tuturam ki, kompüterim ona ev WIFI vasitəsilə daxil olsun və hələ də İnternetə çıxışı olsun. Bunu etmək üçün şəbəkə konfiqurasiyasına malik boot.py adlı bir fayl yaratmalı və Wemos -a yükləməlisiniz.
Budur boot.py nümunəsi. Ssid və şifrənizi ev WIFI şəbəkəsinə dəyişdirin. Ayrıca, 192.168.0.32 statik bir IP vermək istəyirəm. Evdəki WIFI -nin mövcud IP ünvanına dəyişdirin.
boot.py (aşağıdan yükləyə bilərsiniz)
idxal gc
import webrepl def do_connect (): idxal şəbəkəsi sta_if = network. WLAN (network. STA_IF) sta_if.isconnected deyilsə (): çap et ('şəbəkəyə qoşulur…') sta_if.active (Doğru) sta_if.ifconfig (('192.168. 0.32 ',' 255.255.255.0 ',' 192.168.0.1 ',' 192.168.0.1 ')) sta_if.connect (' ',' ') sta_if.isconnected deyil (): keçid çapı (' şəbəkə konfiqurasiyası: ', sta_if).ifconfig ()) do_connect () webrepl.start () gc.collect ()
Boot.py faylınızı Wemos -a göndərmək üçün Webrepl müştərisinin "Fayl göndər" formasından istifadə edin. Yenidən başlatmaq üçün sıfırlama düyməsini basın. Hələ də SCREEN əmrindən istifadə edərək USB ilə əlaqə qurursanız, görəcəksiniz:
şəbəkəyə qoşulur… şəbəkə konfiqurasiyası: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL daemonu ws -də başladı: //192.168.4.1: 8266 WebREPL daemonu ws -də başladı: //192.168.0.32: 8266 Normal rejimdə başlayan webrepl, 2017-01-09 tarixlərində MicroPython v1.8.7-7-gb5a1a20a3 oxumaq üçün 'main.py' faylını aça bilmədi; ESP8266 ilə ESP modulu Ətraflı məlumat üçün "help ()" yazın. >>>
Bu, Wemos -un ev WIFI -nə 192.168.0.32 ünvanını istifadə edərək qoşulduğunu təsdiqləyir.
Doğrulamaq üçün həmin IP ünvanına ping yaza bilərsiniz.
$ ping 192.168.0.32
PING 192.168.0.32 (192.168.0.32): 56 məlumat baytı
192.168.0.32 -dən 64 bayt: icmp_seq = 0 ttl = 255 zaman = 9.334 ms 192.168.0.32 -dən 64 bayt: icmp_seq = 1 ttl = 255 zaman = 11.071 ms..
Addım 6: Əsas Proqramı Qurun
Nəhayət, Wemos -da işləməyə davam edəcək əsas proqramı qurmalısınız.
Veb brauzerinizə qayıdın və webrepl müştəri proqramını işə salın. IP ünvanını Wemos -un IP ünvanına dəyişin. Mənim vəziyyətimdə indi 192.168.0.32 -dir. Wemos şifrənizi daxil edin və indi Wemos -a qoşulmalısınız.
Əlavə edilmiş main.py proqramını yükləyək. Əlavə edilmiş faylı kompüterinizə yükləyin. Yüklənmiş main.py faylını seçmək üçün Fayl Seç düyməsini basın və Cihaza göndərildi düyməsini basın.
Main.py proqramını yükləmək üçün İstirahət düyməsini basmalısınız. Sıfırlama düyməsini basdıqdan sonra görəcəksiniz:
şəbəkəyə qoşulur…
şəbəkə konfiqurasiyası: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')
WebREPL daemon ws: //192.168.4.1: 8266 -da başladı WebREPL daemonu ws: //192.168.0.32: 8266 -da başladı webrepl normal rejimdə başladı Dinləyirəm, brauzerinizi bağlayın…
Bu, main.py proqramınızın aktiv olduğu və 80 porta daxil olduğu deməkdir.
Test etmək üçün veb brauzerinizi açın və https:// daxil edin
Bu, videoda göstərildiyi kimi avtomobilin idarəetmə ekranını göstərməlidir. Telleriniz düzgün bir şəkildə bağlandıqda, idarəetmə düymələri avtomobili hərəkət etdirmək üçün GPIO portlarınıza düzgün siqnallar göndərəcək.
Addım 7: Gələcək Təkmilləşdirmələr
Aşağıdakı işlər v2 siyahımdadır:
- Motor sürətini idarə etmək üçün PWM istifadə edin
- Veb interfeysini təkmilləşdirin. Bəlkə də aREST çərçivəsindən istifadə edin. MicroPython -da aREST lib -in mövcud olduğuna inanmıram, buna görə də onu sındırmalı ola bilərəm.
Bu Təlimatı oxuduğunuz üçün təşəkkür edirəm. Gələcəkdə daha çox layihə üçün məni Facebook, Youtube və Instructables -da izləyin.
Tövsiyə:
Altimetr (Hündürlük Ölçer) Atmosfer Təzyiqi əsasında: 7 addım (şəkillərlə)
Altimetr (hündürlük ölçən) Atmosfer Təzyiqinə əsaslanaraq: [Redaktə edin]; Əl ilə bazal yüksəklik girişi ilə 6 -cı addımdakı 2 -ci versiyaya baxın.Bu, Arduino Nano və Bosch BMP180 atmosfer təzyiqi sensoru əsasında qurulmuş bir Altimetr (Yüksəklik Ölçən) quruluş təsviridir. Dizaynı sadədir, lakin ölçüləri
Evdə hazırlanmış Əl Konsolu: 12 Adım (Şəkillərlə birlikdə)
Evdə hazır Əl Konsolu: Raspberry Pi 3 və Retropie emulyasiya proqramı ilə öz DIY GameBoyunuzu necə yaratacağınıza dair addım -addım bələdçimə xoş gəldiniz. ya da elektrik
Arduino əsasında Robot Qolu ilə Əlverişli Vizyon Həll: 19 Addım (Şəkillərlə birlikdə)
Arduino -ya əsaslanan Robot Qolu ilə Əlverişli Vizyon Həll: Maşın görmə qabiliyyətindən bəhs edərkən həmişə bizim üçün əlçatmaz hiss olunur. Hər kəs üçün çox asan olacaq açıq mənbəli bir görmə demosu hazırladıq. Bu videoda, OpenMV kamerası ilə, qırmızı kubun harada olmasından asılı olmayaraq, robot
Yenidən işlənmiş noutbuk batareyalarından hazırlanmış 280Wh 4S 10P Li-ion Batareya: 6 addım (şəkillərlə birlikdə)
Yenidən işlənmiş noutbuk batareyalarından hazırlanan 280Wh 4S 10P Li-ion Batareya: Son bir il ərzində noutbuk batareyalarını toplayıram və içərisində olan 18650 hüceyrələri emal edir və çeşidləyirəm. Noutbukum indi qocalır, 2dn gen i7 ilə güc yeyir, buna görə də bu cihazı götürsəm də, yolda şarj etmək üçün bir şeyə ehtiyacım var idi
CMOS EPROM-dan hazırlanmış yaddaş kartı: 6 addım (şəkillərlə birlikdə)
CMOS EPROM-dan hazırlanan Yaddaş Kartı: Mənim hazırladığım təlimat, bir çox layihə və ölçü üçün əlverişli olacaq böyük bir yaddaş tutumu yaratmağa kömək edəcək. Yaddaş kartı çox istifadə üçün uyğundur və flash kartlara və digərlərinə nisbətən daha realdır