Სარჩევი:

MicroPython IoT Rover დაფუძნებული WEMOS D1 (ESP-8266EX): 7 ნაბიჯი (სურათებით)
MicroPython IoT Rover დაფუძნებული WEMOS D1 (ESP-8266EX): 7 ნაბიჯი (სურათებით)

ვიდეო: MicroPython IoT Rover დაფუძნებული WEMOS D1 (ESP-8266EX): 7 ნაბიჯი (სურათებით)

ვიდეო: MicroPython IoT Rover დაფუძნებული WEMOS D1 (ESP-8266EX): 7 ნაბიჯი (სურათებით)
ვიდეო: 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– სთვის lance **

მე ვატარებ რობოტიკის სემინარებს მცირეწლოვანი ბავშვებისთვის და მე ყოველთვის ვეძებ ეკონომიკურ პლატფორმებს საინტერესო პროექტების შესაქმნელად. მიუხედავად იმისა, რომ Arduino კლონები იაფია, ის იყენებს C/C ++ ენას, რომელსაც ბავშვები არ იცნობენ. ასევე, მას არ აქვს ჩაშენებული WiFi, რაც აუცილებელია IoT პროექტებისთვის. მეორეს მხრივ, სანამ Raspberry Pi– ს აქვს WIFI და ბავშვებს შეუძლიათ მისი დაპროგრამება Python– ის გამოყენებით, ის მაინც ძვირადღირებული პლატფორმაა, რომელიც აკონტროლებს რამდენიმე GPIO პორტს მოწყობილობების ჩართვისა და გამორთვისთვის. მე მჭირდება რაღაც შუალედში, რომელსაც აქვს როგორც WIFI, ასევე პითონის შესაძლებლობები. როგორც ჩანს, მე ვიპოვე ჩემი პასუხი MicroPython– ში, რომელიც დაბლა მოხვდა იაფფასიან ESP8266 დაფუძნებულ დაფაზე.

რა არის მიკროპითონი?

მისი ვებგვერდის თანახმად, MicroPython არის Python 3 პროგრამირების ენების სუსტი და ეფექტური დანერგვა, რომელიც მოიცავს პითონის სტანდარტული ბიბლიოთეკის მცირე ქვეჯგუფს და ის ოპტიმიზირებულია მიკროკონტროლერებზე და შეზღუდულ გარემოში (მაგალითად, ESP8266). ეს არსებითად პითონის IDE ჩიპზეა. ერთი მთავარი უპირატესობა ის არის, რომ თქვენ შეგიძლიათ შექმნათ კოდი და შეცვალოთ იგი ვებ ბრაუზერის კლიენტის გამოყენებით, სახელწოდებით Webrepl. (ეცადე ამის გაკეთება არდუინოში.) თქვენ ასევე შეგიძლიათ ნახოთ სენსორის მონაცემები რეალურ დროში Webrepl– ზე, იმის ნაცვლად, რომ დაეყრდნოთ მონაცემების ჟურნალს ან არდუინოში LED ეკრანს.

რა არის ESP8266?

მოკლედ, წარმოიდგინეთ, როგორც Arduino, ჩაშენებული ქსელის შესაძლებლობებით. თქვენ შეგიძლიათ გამოიყენოთ Arduino IDE ESP8266 დაფების დასაპროგრამებლად C/C ++ - ში, ან შეგიძლიათ აანთოთ იგი NodeMCU ან 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 მანქანის შასი
  • დიუპონის კაბელები

შეიძლება დაგჭირდეს გამაგრილებელი რკინა, ხრახნიანი მანქანა და წებოვანი იარაღი, რომ ყველაფერი ერთად ააწყო.

ნაბიჯი 2: აპარატურის შეკრება

აპარატურის შეკრება
აპარატურის შეკრება
აპარატურის შეკრება
აპარატურის შეკრება
აპარატურის შეკრება
აპარატურის შეკრება

პირველი, შეიკრიბეთ შასი ინსტრუქციის მიხედვით.

შემდეგ, ცხელი წებო სხვა კომპონენტები, როგორც ნაჩვენებია.

საავტომობილო მავთულები უნდა იყოს გაბმული საავტომობილო ტერმინალებზე და გამოიყენეთ ცხელი წებო ტერმინალის სახსრების გასაძლიერებლად.

დაურთეთ პატარა გადამრთველი 4AA ბატარეის დამჭერზე. ეს ჩართავს/გამორთავს ძრავის ფარს.

ნაბიჯი 3: გაყვანილობა

გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა

დაიცავით ჩემი გაყვანილობის დიაგრამა, როგორც ნაჩვენებია.

ვამო საავტომობილო ფარს:

D1 IN2

D2 IN1 D3 IN4 ** გამოტოვეთ D4 D5 IN3 GND -> GND

საავტომობილო ფარი საავტომობილო/სიმძლავრეზე:

ტერმინალი -> მარცხენა ძრავა

B ტერმინალი -> მარჯვენა ძრავის VCC -> ბატარეა (+) GND -> ბატარეა (-)

ნაბიჯი 4: მიკროპითონის დაყენება

პირველ რიგში, Wemos– ს აქვს სერიული/USB ჩიპი, რომელიც დაფუძნებულია CH304G– ზე. ეს არის იგივე ჩიპი, რომელიც ნაპოვნია იაფ Arduino- კლონებში და თქვენ უნდა დააინსტალიროთ შესაბამისი დრაივერი Mac ან PC– სთვის. დრაივერის დაყენების მიზნით მიჰყევით ამ საიტის მითითებებს.

შეაერთეთ Wemos თქვენს კომპიუტერთან და დაადასტურეთ, რომ თქვენს კომპიუტერს შეუძლია აღმოაჩინოს Wemos. Mac– ზე გაუშვით შემდეგი ბრძანება და ნახავთ მოწყობილობას სახელწოდებით /dev/tty.wchusbserial640.

$ ls -lt /dev /tty* | თავი

crw-rw-rw- 1 ძირი ბორბალი 17, 4 მარტი 2 23:31 /dev/tty.wchusbserial640

თუ კომპიუტერზე ხართ, შეგიძლიათ გამოიყენოთ ეს ინსტრუქცია, როგორც მითითება.

შემდეგი, თქვენ უნდა დააყენოთ Python 2 ან 3 თქვენს კომპიუტერში, რადგან ფლეშ ინსტრუმენტი, esptool.py, დაფუძნებულია პითონზე. მიუხედავად იმისა, რომ MicroPython– ის სახელმძღვანელოში შეიძლება ნათქვამი იყოს, რომ ინსტრუმენტი მუშაობს მხოლოდ Python 2.7– ით, მე შემეძლო ამის გაშვება Python 3– ში ყოველგვარი პრობლემის გარეშე. ჩამოტვირთეთ უახლესი პითონი https://www.python.org– დან და მიჰყევით ინსტალაციის ინსტრუქციას თქვენი კომპიუტერის ან Mac– ისთვის.

დაბოლოს, თქვენ უნდა დააინსტალიროთ MicroPython Wemos– ზე. MicroPython საიტს აქვს შესანიშნავი გაკვეთილი, თუ როგორ უნდა დააყენოთ MicroPython ESP8266– ზე. უბრალოდ მიჰყევით ინსტალაციის ინსტრუქციას MicropPython– ით დაწყების შესახებ ESP8266– ზე.

ქვემოთ მოცემულია ბრძანებები, რომლებიც მე გამოვიყენე:

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

esptool.py v1.3 დაკავშირება…. გაშვებული Cesanta flasher stub… წაშლა ფლეშ (ამას შეიძლება გარკვეული დრო დასჭირდეს)… წაშლას დასჭირდა 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… Flash params მითითებული 0x0240 დაწერა 589824 ბაიტი 0x0 50.8 წამში (92.8 kbit/s)… გასვლა…

MicroPython არის დაინსტალირებული თქვენს დაფაზე!

ნაბიჯი 5: ქსელის დაყენება

ქსელის დაყენება
ქსელის დაყენება

მიუხედავად იმისა, რომ MicroPython არის დაინსტალირებული თქვენს Wemos– ზე, ის ჯერ არ არის დაკავშირებული თქვენს ქსელთან. თქვენ ჯერ უნდა ჩართოთ ქსელი. Mac– ზე, შეასრულეთ SCREEN ბრძანება, რათა დაიწყოთ სერიული ტერმინალური სესია Wemos– ზე.

$ screen /dev/tty.wchusbserial640 115200

როდესაც ხედავთ ცარიელ ეკრანს, დააჭირეთ ღილაკს RETURN მოთხოვნის სანახავად:

>>

(შენიშვნა: გასასვლელად ჩაწერეთ CTRL-A CTRL-)

მოდით, გავააქტიუროთ ვებ კლიენტის წვდომა. ჩაწერეთ "იმპორტი webrepl_setup" დაყენების პროგრამის გასაშვებად. შეიყვანეთ E WebREPL- ის გასააქტიურებლად და შემდეგ დააყენეთ პაროლი. გადატვირთეთ ცვლილებების გასააქტიურებლად.

>> იმპორტი webrepl_setup

WebREPL დემონის ავტომატური გაშვების სტატუსი: გამორთული გსურთ (E) ჩართოთ ან (D) გამოსაყენებლად ის ჩატვირთვისას? (ცარიელი ხაზი გასასვლელად)> E WebREPL- ის გასააქტიურებლად, თქვენ უნდა დააყენოთ მისი პაროლი ახალი პაროლი: xxxxx დაადასტურეთ პაროლი: 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– ით. დაუკავშირდით იმ ქსელს. (გაფრთხილება: მას შემდეგ რაც დაუკავშირდებით ამ ქსელს, თქვენ დაკარგავთ ინტერნეტთან წვდომას.)

დაუბრუნდით თქვენს webrepl კლიენტს და დააწკაპუნეთ დაკავშირებაზე. მან უნდა მოითხოვოს პაროლი. შეიყვანეთ თქვენი Wemos პაროლი და უნდა დაუკავშიროთ.

კეთილი იყოს თქვენი მობრძანება მიკროპითონში!

პაროლი: WebREPL დაკავშირებულია >>>

თქვენი Wemos კვლავ მუშაობს AccessPoint რეჟიმში. მიუხედავად იმისა, რომ ეს ნორმალურია, მე მირჩევნია ის იმუშაოს სადგურის რეჟიმში, სადაც ის უკავშირდება ჩემს სახლის WIFI- ს, რათა ჩემს კომპიუტერს შეეძლოს მასზე წვდომა სახლის WIFI საშუალებით და მაინც აქვს ინტერნეტი. ამისათვის თქვენ უნდა შექმნათ ფაილი სახელწოდებით boot.py ქსელის კონფიგურაციით და ატვირთოთ იგი Wemos– ში.

აქ არის მაგალითი boot.py. შეცვალეთ ssid და პაროლი თქვენი სახლის WIFI ქსელში. ასევე, მინდა მივცე მას სტატიკური IP 192.168.0.32. შეცვალეთ იგი თქვენი სახლის WIFI– ის ხელმისაწვდომი IP მისამართით.

boot.py (შეგიძლიათ გადმოწეროთ ქვემოდან)

იმპორტი გ.კ

იმპორტირება webrepl def do_connect (): ქსელის იმპორტი sta_if = network. WLAN (network. STA_IF) თუ არა sta_if.cisconnected (): 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 დამატებითი ინფორმაციისთვის ჩაწერეთ "help ()". >>>

ეს ადასტურებს, რომ თქვენი 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 ms..

ნაბიჯი 6: დააინსტალირეთ ძირითადი პროგრამა

დააინსტალირეთ მთავარი პროგრამა
დააინსტალირეთ მთავარი პროგრამა
დააინსტალირეთ მთავარი პროგრამა
დააინსტალირეთ მთავარი პროგრამა

დაბოლოს, თქვენ უნდა დააინსტალიროთ ძირითადი პროგრამა, რომელიც გააგრძელებს მუშაობას თქვენს Wemos– ზე.

დაუბრუნდით თქვენს ბრაუზერს და გაუშვით webrepl კლიენტის პროგრამა. შეცვალეთ IP მისამართი თქვენი Wemos– ის IP მისამართზე. ჩემს შემთხვევაში, ეს არის 192.168.0.32. შეიყვანეთ თქვენი Wemos პაროლი და ახლა თქვენ უნდა იყოთ დაკავშირებული Wemos– თან.

ატვირთეთ თანდართული main.py პროგრამა. ჩამოტვირთეთ თანდართული ფაილი თქვენს კომპიუტერში. დააწკაპუნეთ არჩევა ფაილზე, რომ აირჩიოთ გადმოწერილი main.py და დააწკაპუნეთ გაგზავნილი მოწყობილობაზე.

თქვენ უნდა დააჭიროთ დანარჩენი ღილაკს main.py პროგრამის ჩასატვირთად. გადატვირთვის ღილაკზე დაჭერის შემდეგ ნახავთ:

ქსელთან დაკავშირება…

ქსელის კონფიგურაცია: ('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– ზე ამ მომენტში, ასე რომ შეიძლება მომიწიოს მისი გატეხვა.

გმადლობთ, რომ კითხულობთ ამ ინსტრუქციას. გამომყევით ფეისბუქზე, იუთუბზე და ინსტრუქციებზე მომავალში სხვა პროექტებისთვის.

გირჩევთ: