Съдържание:

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 firebeetle esp32 rover robot 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, вместо да разчитате на регистриране на данни или LED екран в Arduino.

Какво е 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

Щит на двигателя към мотор/мощност:

Терминал -> ляв двигател

B клема -> Десен двигател VCC -> Батерия (+) GND -> Батерия (-)

Стъпка 4: Инсталиране на MicroPython

Първо, 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, се основава на Python. Въпреки че ръководството на MicroPython може да посочи, че инструментът работи само с Python 2.7, успях да го изпълня в Python 3 без никакви проблеми. Изтеглете най -новия Python от https://www.python.org и следвайте инструкциите за инсталиране за вашия компютър или Mac.

И накрая, ще трябва да инсталирате MicroPython на Wemos. Сайтът на MicroPython има отличен урок за това как да настроите MicroPython на ESP8266. Просто следвайте инструкциите за инсталиране в Първи стъпки с MicroPython на ESP8266.

По -долу са команди, които използвах:

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

esptool.py v1.3 Свързване…. Изпълнява се копчето на мигача Cesanta … Изтриване на светкавицата (това може да отнеме известно време) … Изтриването отне 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… Параметрите на светкавицата, зададени на 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-)

Сега, нека активираме достъпа до уеб клиент. Въведете „import 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 clone

Отворете уеб браузъра си и в полето URL въведете местоположението на изтегления от вас клиентски файл webrepl, като например:

файл: ///Users/xxxxx/wemos/webrepl/webrepl.html

Това трябва да покаже webrepl клиента във вашия браузър. Преди да можете да се свържете с него, първо трябва да се свържете с неговата WIFi точка за достъп. Ако погледнете наличния WIFI за вашия компютър, ще видите, че мрежата започва с MicroPython-xxxx. Свържете се с тази мрежа. (Внимание: След като се свържете с тази мрежа, ще загубите достъпа си до Интернет.)

Върнете се към вашия webrepl клиент и щракнете върху Свързване. Той трябва да поиска парола. Въведете паролата си за Wemos и трябва да се свържете.

Добре дошли в MicroPython!

Парола: WebREPL е свързан >>>

Вашият Wemos все още работи в режим на AccessPoint. Въпреки че това е наред, предпочитам да работи в режим Station, където се свързва с домашния ми WIFI, така че компютърът ми да има достъп до него чрез домашния WIFI и все още да има достъп до интернет. За да направите това, ще трябва да създадете файл с име boot.py с мрежова конфигурация и да го качите в Wemos.

Ето пример за boot.py. Променете ssid и паролата в домашната си WIFI мрежа. Също така искам да му дам статичен IP от 192.168.0.32. Променете го на наличния IP адрес на вашия домашен WIFI.

boot.py (можете да го изтеглите отдолу)

внос gc

import 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 Стартираният webrepl в нормален режим не можа да отвори файл „main.py“за четене на MicroPython v1.8.7-7-gb5a1a20a3 на 2017-01-09; ESP модул с ESP8266 Въведете „help ()“за повече информация. >>>

Това потвърждава, че вашият Wemos е свързан с домашния ви WIFI чрез ipaddress на 192.168.0.32.

Можете да пингвате този IP адрес, за да потвърдите.

$ ping 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 адреса на IP адреса на вашия Wemos. В моя случай сега е 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 списък:

  • Използвайте ШИМ за контрол на скоростта на двигателя
  • Подобрете уеб интерфейса. Може би използвайте рамка aREST. Не вярвам, че aREST lib е наличен на MicroPython в този момент, така че може да се наложи да го хакна.

Благодарим ви, че прочетохте тази инструкция. Следвайте ме във Facebook, Youtube и Instructables за още проекти в бъдеще.

Препоръчано: