Բովանդակություն:

MicroPython IoT Rover ՝ հիմնված WEMOS D1 (ESP-8266EX) վրա ՝ 7 քայլ (նկարներով)
MicroPython IoT Rover ՝ հիմնված WEMOS D1 (ESP-8266EX) վրա ՝ 7 քայլ (նկարներով)

Video: MicroPython IoT Rover ՝ հիմնված WEMOS D1 (ESP-8266EX) վրա ՝ 7 քայլ (նկարներով)

Video: MicroPython IoT Rover ՝ հիմնված WEMOS D1 (ESP-8266EX) վրա ՝ 7 քայլ (նկարներով)
Video: MicroPython IoT Rover Based on WeMos D1 (ESP-8266EX) 2024, Հուլիսի
Anonim
Image
Image
MicroPython IoT Rover հիմնված WEMOS D1 (ESP-8266EX) վրա
MicroPython IoT Rover հիմնված WEMOS D1 (ESP-8266EX) վրա

** Թարմացում. Ես տեղադրեցի նոր տեսանյութ v2- ի համար ՝ նիզակով **

Ես անցկացնում եմ ռոբոտաշինության սեմինարներ փոքր երեխաների համար և միշտ փնտրում եմ տնտեսական հարթակներ `հետաքրքիր նախագծեր կառուցելու համար: Թեև Arduino- ի կլոններն էժան են, այն օգտագործում է C/C ++ լեզուն, որին երեխաները ծանոթ չեն: Բացի այդ, այն չունի ներկառուցված WiFi, որը պարտադիր է IoT նախագծերի համար: Մյուս կողմից, մինչ Raspberry Pi- ն ունի WIFI, և երեխաները կարող են այն ծրագրավորել Python- ի միջոցով, այն դեռ թանկարժեք հարթակ է ՝ սարքերը միացնելու և անջատելու համար պարզապես GPIO- ի մի քանի նավահանգիստների վերահսկման համար: Ինձ պետք է մի բան, որն ունի և՛ WIFI, և՛ Python հնարավորություններ: Կարծես թե ես գտա, որ իմ պատասխանը MicroPython- ով փչեց էժան ESP8266- ի վրա հիմնված տախտակի վրա:

Ի՞նչ է Micropython- ը:

Ըստ իր վեբ կայքի ՝ MicroPython- ը Python 3 ծրագրավորման լեզուների նիհար և արդյունավետ իրականացում է, որը ներառում է Python ստանդարտ գրադարանի փոքր ենթաբազմություն և օպտիմիզացված է միկրոկոնտրոլերների վրա աշխատելու և սահմանափակ միջավայրում (օրինակ ՝ ESP8266): Դա էապես Python IDE է չիպի վրա: Մեկ հիմնական առավելությունն այն է, որ դուք կարող եք ստեղծել ծածկագիր և փոխել այն արագ ՝ օգտագործելով Webrepl կոչվող վեբ դիտարկիչի հաճախորդը: (Փորձեք դա անել Arduino- ում:) Կարող եք նաև իրական ժամանակում տեսնել սենսորային տվյալները Webrepl- ում ՝ տվյալների ապամոնտաժման կամ Arduino- ում LED էկրանին ապավինելու փոխարեն:

Ի՞նչ է ESP8266- ը:

Մի խոսքով, պատկերացրեք այն որպես Arduino ՝ ներկառուցված ցանցային հնարավորություններով: Դուք կարող եք օգտագործել Arduino IDE- ն ՝ ESP8266 տախտակները ծրագրավորելու համար C/C ++ համակարգով կամ կարող եք այն լուսավորել NodeMCU- ով կամ MicroPython- ով: Այս նախագծում ես MicroPython- ը կփայլեմ ESP8266 տախտակի վրա:

Ես որոշեցի ձեռք բերել WEMOS D1, որը հիմնված է ESP8266-12EX- ի վրա, այս պարզ նախագծի համար, որտեղ ես նավարկելու եմ 2WD մեքենայով ՝ օգտագործելով վեբ դիտարկիչ: Կան այլ տախտակներ, որոնք նախատեսված են MicroPython- ի համար, բայց ես ուզում էի ինչ -որ էժան բան, որը կարող էի գցել, եթե այն չհամապատասխաներ իմ չափանիշներին: Ինչպես և սպասվում էր, այն բավարարեց իմ բոլոր պահանջները, և, ամենայն հավանականությամբ, ես կներառեմ WeMos- ը և Micropython- ը ապագա նախագծերում:

Քայլ 1: Մասեր

Մասեր
Մասեր
Մասեր
Մասեր
Մասեր
Մասեր
Մասեր
Մասեր
  • Wemos D1 կամ ցանկացած ESP8266 տախտակ
  • Շարժիչային վահան (ես օգտագործում եմ էժան L293D AliExpress- ից)
  • 4 x AA և 9V մարտկոցների մարտկոցներ (4 x AA մարտկոցներ շարժիչների համար են, իսկ 9V ՝ Wemos տախտակի համար)
  • 2WD մեքենայի շասսի
  • Dupont մալուխներ

Ամեն ինչ միացնելու համար կարող է անհրաժեշտ լինել զոդման սարք, պտուտակահան և սոսինձ ատրճանակ:

Քայլ 2: Սարքավորման հավաքում

Սարքավորումների հավաքում
Սարքավորումների հավաքում
Սարքավորումների հավաքում
Սարքավորումների հավաքում
Սարքավորումների հավաքում
Սարքավորումների հավաքում

Նախ, հավաքեք շասսին ըստ հրահանգի:

Այնուհետեւ, տաք սոսինձ այլ բաղադրիչներ, ինչպես ցույց է տրված:

Շարժիչային լարերը պետք է կպցվեն շարժիչի տերմինալներին և տաք սոսինձ օգտագործեն տերմինալային միացումներն ամրացնելու համար:

Փոքր անջատիչ ամրացրեք 4AA մարտկոցի պահոցին: Սա միացնելու/անջատելու է շարժիչի վահանը:

Քայլ 3: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր

Հետևեք իմ էլեկտրագծերի գծապատկերին, ինչպես ցույց է տրված:

Wemos դեպի Motor Shield:

D1 IN2

D2 IN1 D3 IN4 ** բաց թողնել D4 D5 IN3 GND -> GND

Motor Shield to Motor/Power:

Տերմինալ -> Ձախ շարժիչ

B տերմինալ -> Right Motor VCC -> Մարտկոց (+) GND -> Մարտկոց (-)

Քայլ 4: MicroPython- ի տեղադրում

Նախ, Wemos- ն ունի սերիական/USB չիպ, որը հիմնված է CH304G- ի վրա: Սա նույն չիպն է, որը հայտնաբերվել է էժան Arduino-clones- ում և դուք պետք է տեղադրեք համապատասխան վարորդ Mac- ի կամ PC- ի համար: Վարորդը տեղադրելու համար հետևեք այս կայքի հրահանգներին:

Միացրեք Wemos- ը ձեր համակարգչին և հաստատեք, որ ձեր համակարգիչը կարող է հայտնաբերել Wemos- ը: Mac- ում գործարկեք հետևյալ հրամանը և կտեսնեք մի սարք, որը կոչվում է /dev/tty.wchusbserial640:

$ ls -lt /dev /tty* | գլուխ

crw-rw-rw- 1 արմատային անիվ 17, 4 մարտի 2 23:31 /dev/tty.wchusbserial640

Եթե համակարգչում եք, կարող եք օգտագործել այս Instructable- ը որպես տեղեկանք:

Հաջորդը, դուք պետք է ձեր համակարգչում տեղադրեք Python 2 կամ 3, քանի որ ֆլեշ գործիքը ՝ esptool.py- ն, հիմնված է Python- ի վրա: Թեև MicroPython- ի ուղեցույցը կարող է նշել, որ գործիքը աշխատում է միայն Python 2.7 -ի հետ, բայց ես կարողացա դա Python 3 -ում գործարկել առանց որևէ խնդիրների: Ներբեռնեք վերջին Python- ը https://www.python.org կայքից և հետևեք ձեր համակարգչի կամ Mac- ի տեղադրման հրահանգներին:

Վերջապես, դուք պետք է տեղադրեք MicroPython- ը Wemos- ում: MicroPython կայքը ունի հիանալի ձեռնարկ, թե ինչպես տեղադրել MicroPython- ը ESP8266- ում: Պարզապես հետևեք տեղադրման հրահանգներին ՝ ESP8266- ով MicroPython- ով սկսելու համար:

Ստորև բերված են հրամաններ, որոնք ես օգտագործել եմ.

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

esptool.py v1.3 Միացում…. Վազում է Cesanta լուսաշող կոճղը … Ֆլեշի ջնջում (սա կարող է որոշ ժամանակ տևել)… raseնջումը տևեց 10.5 վայրկյան

$ 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 Միացում…. Cesanta flasher stub- ի գործարկում … Ֆլեշ պարամետրերը, որոնք դրված են 0x0240- ի վրա, գրել է 589824 բայթ 0x0- ով 50.8 վայրկյանում (92,8 կբիթ/վ)… Մեկնում…

MicroPython- ն այժմ տեղադրված է ձեր տախտակին:

Քայլ 5: Կարգավորել ցանցը

Կարգավորեք ցանցը
Կարգավորեք ցանցը

Մինչ MicroPython- ն այժմ տեղադրված է ձեր Wemos- ում, այն դեռ միացված չէ ձեր ցանցին: Նախ պետք է միացնել ցանցը: Mac- ում կատարեք SCREEN հրամանը ՝ Wemos- ի սերիական տերմինալի նիստը սկսելու համար:

$ screen /dev/tty.wchusbserial640 115200

Երբ դատարկ էկրան եք տեսնում, սեղմեք RETURN ՝ հուշում տեսնելու համար.

>>

(Նշում. Դուրս գալու համար մուտքագրեք CTRL-A CTRL-)

Այժմ, եկեք միացնենք վեբ -հաճախորդների մուտքը: Տեղադրման ծրագիրը գործարկելու համար մուտքագրեք «ներմուծել webrepl_setup»: Մուտքագրեք E ՝ WebREPL- ը միացնելու համար, այնուհետև գաղտնաբառ սահմանելու համար: Վերագործարկեք ՝ փոփոխություններն ակտիվացնելու համար:

>> ներմուծել webrepl_setup

WebREPL դևերի ինքնագործման կարգավիճակը. (Դուրս գալու համար դատարկ տող)> E WebREPL- ը միացնելու համար պետք է դրա համար գաղտնաբառ սահմանել: Նոր գաղտնաբառ. Xxxxx Հաստատել գաղտնաբառը. (y/n) y

Վերջապես, ներբեռնեք Webrepl հաճախորդը ձեր համակարգչին: Սա պարտադիր չէ, բայց հաճախորդը գալիս է այլ օգտակար գործիքներով, որոնք կարող եք հետագայում օգտագործել: Օրինակ, webrepl_cli.py- ն ֆայլ է Wemos- ում scp- ի նման շարահյուսությամբ պատճենելու հրաման: Օգտագործեք git ՝ հաճախորդը ներբեռնելու համար: (Տեղադրեք git գործիքը, եթե այն դեռ չունեք):

git կլոն

Բացեք ձեր վեբ դիտարկիչը և URL դաշտում մուտքագրեք ձեր ներբեռնված webrepl հաճախորդի ֆայլի գտնվելու վայրը, ինչպիսիք են ՝

ֆայլ: ///Users/xxxxx/wemos/webrepl/webrepl.html

Սա պետք է ցուցադրի webrepl հաճախորդը ձեր դիտարկիչում: Նախքան դրան միանալը, նախ պետք է միանալ դրա WIFi մուտքի կետին: Եթե նայեք ձեր համակարգչի համար առկա WIFI- ին, կտեսնեք, որ ցանցը սկսվում է MicroPython-xxxx- ով: Միացեք այդ ցանցին: (Arnգուշացում. Երբ միանաք այդ ցանցին, դուք կկորցնեք ձեր ինտերնետ հասանելիությունը):

Վերադարձեք ձեր webrepl հաճախորդին և կտտացրեք Միացեք: Այն պետք է հուշի գաղտնաբառ: Մուտքագրեք ձեր Wemos գաղտնաբառը և պետք է միանաք:

Բարի գալուստ MicroPython:

Գաղտնաբառ ՝ WebREPL- ը միացված է >>>

Ձեր Wemos- ը դեռ աշխատում է AccessPoint ռեժիմում: Թեև դա նորմալ է, ես նախընտրում եմ, որ այն աշխատի կայանի ռեժիմում, որտեղ այն միանում է իմ տան WIFI- ին, որպեսզի իմ համակարգիչը կարողանա մուտք գործել դրան WIFI- ի միջոցով և դեռ ինտերնետ ունենալ: Դա անելու համար դուք պետք է ստեղծեք boot.py անունով ֆայլ ՝ ցանցի կազմաձևով և վերբեռնեք այն Wemos- ում:

Ահա boot.py- ի օրինակ: Փոխեք ssid- ը և գաղտնաբառը ձեր տան WIFI ցանցին: Բացի այդ, ես ուզում եմ դրան տալ 192.168.0.32 ստատիկ IP: Փոխեք այն ձեր տան WIFI- ի հասանելի IP հասցեով:

boot.py (կարող եք ներբեռնել ներքևից)

ներմուծել gc

ներմուծել webrepl def do_connect (). ներմուծել ցանց sta_if = network. WLAN (network. STA_IF) եթե ոչ sta_if.isconnected (): print ('ցանցին միանալը …') 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 (' ',' ') մինչդեռ sta_if.isconnected (): pass print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Օգտագործեք Webrepl հաճախորդի «Ուղարկել ֆայլ» ձևը ՝ ձեր boot.py ֆայլը ձեր Wemos- ին ուղարկելու համար: Վերագործարկելու համար սեղմեք «Վերականգնել» կոճակը: Եթե դուք դեռ միացված եք USB- ի միջոցով ՝ օգտագործելով SCREEN հրամանը, կտեսնեք.

ցանցին միանալը … ցանցի կազմաձևում. ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL դևոն սկսվեց ws: //192.168.4.1: 8266 WebREPL դևոն սկսված ws: //192.168.0.32: 8266 Սովորական ռեժիմում գործարկված վեբ-որոնումը չի կարող բացել «main.py» ֆայլը MicroPython v1.8.7-7-gb5a1a20a3 կարդալու համար 2017-01-09; ESP մոդուլ ESP8266- ով Լրացուցիչ տեղեկությունների համար մուտքագրեք «օգնություն ()»: >>>

Սա հաստատում է, որ ձեր Wemos- ը միացված է ձեր տան WIFI- ին ՝ օգտագործելով 192.168.0.32 -ի ipaddress հասցեն:

Դուք կարող եք պինգ անել այդ IP հասցեին ՝ վավերացնելու համար:

պինգ $ 192.168.0.32

PING 192.168.0.32 (192.168.0.32) ՝ 56 տվյալների բայթ

64 բայթ 192.168.0.32 -ից ՝ icmp_seq = 0 ttl = 255 անգամ = 9.334 ms 64 բայթ 192.168.0.32 -ից ՝ icmp_seq = 1 ttl = 255 անգամ = 11.071 մվ..

Քայլ 6: Տեղադրեք հիմնական ծրագիրը

Տեղադրեք հիմնական ծրագիրը
Տեղադրեք հիմնական ծրագիրը
Տեղադրեք հիմնական ծրագիրը
Տեղադրեք հիմնական ծրագիրը

Վերջապես, դուք պետք է տեղադրեք հիմնական ծրագիրը, որը կշարունակի գործել ձեր Wemos- ում:

Վերադարձեք ձեր վեբ դիտարկիչ և գործարկեք webrepl հաճախորդի ծրագիրը: Փոխեք IP հասցեն ձեր Wemos- ի IP հասցեին: Իմ դեպքում, այժմ 192.168.0.32 է: Մուտքագրեք ձեր Wemos գաղտնաբառը և այժմ պետք է միացված լինեք Wemos- ին:

Եկեք վերբեռնենք կցված main.py ծրագիրը: Ներբեռնեք կցված ֆայլը ձեր համակարգչում: Կտտացրեք Ընտրեք ֆայլ ՝ ներբեռնված main.py- ն ընտրելու համար և կտտացրեք Ուղարկված սարքին:

Main.py ծրագիրը բեռնելու համար հարկավոր է սեղմել Rest կոճակը: Վերականգնել կոճակը սեղմելուց հետո կտեսնեք.

միանում է ցանցին…

ցանցի կազմաձևում ՝ ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

WebREPL դևը սկսվեց ws: //192.168.4.1: 8266 WebREPL դևը սկսվեց ws: //192.168.0.32: 8266 Webrepl- ը սկսեց նորմալ ռեժիմով Լսելը, ձեր դիտարկիչը միացրեք…

Սա նշանակում է, որ ձեր main.py ծրագիրը ակտիվացված է և նշվում է 80 -րդ նավահանգստում:

Փորձարկելու համար բացեք ձեր վեբ դիտարկիչը և մուտքագրեք

Սա պետք է ցուցադրի մեքենայի կառավարման էկրանը, ինչպես ցույց է տրված տեսանյութում: Եթե ձեր լարերը միացված են ճիշտ, կառավարման կոճակները համապատասխան ազդանշաններ կուղարկեն ձեր GPIO նավահանգիստներին ՝ մեքենան տեղափոխելու համար:

Քայլ 7: Ապագա բարելավումներ

Հետևյալ անելիքները իմ v2 ցուցակում են.

  • Օգտագործեք PWM ՝ շարժիչի արագությունը վերահսկելու համար
  • Բարելավել վեբ ինտերֆեյսը: Միգուցե օգտագործեք aREST շրջանակ: Չեմ հավատում, որ այս պահին aREST lib- ը հասանելի է MicroPython- ում, որպեսզի գուցե ստիպված լինեմ կոտրել այն:

Շնորհակալություն այս Ուղեցույցը կարդալու համար: Հետևեք ինձ Facebook- ում, Youtube- ում և Instructables- ում `ապագայում ավելի շատ նախագծերի համար:

Խորհուրդ ենք տալիս: