Оглавление:

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 шагов (с изображениями)
Видео: ESP 8266 EX Wi-fi modul z Ciny 2024, Ноябрь
Anonim
Image
Image
MicroPython IoT Rover на базе WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover на базе WEMOS D1 (ESP-8266EX)

** Обновление: я выложил новое видео для v2 с копьем **

Я провожу семинары по робототехнике для маленьких детей и всегда ищу экономичные платформы для создания интересных проектов. Хотя клоны Arduino дешевы, они используют язык C / C ++, с которым дети не знакомы. Кроме того, у него нет встроенного Wi-Fi, который необходим для проектов IoT. С другой стороны, хотя у Raspberry Pi есть Wi-Fi, и дети могут программировать его с помощью Python, это все еще дорогая платформа, позволяющая просто управлять несколькими портами GPIO для включения и выключения устройств. Мне нужно что-то среднее между WIFI и Python. Похоже, что я нашел свой ответ в MicroPython, записанном на дешевую плату на базе ESP8266.

Что такое Micropython?

Согласно его веб-сайту, MicroPython - это экономичная и эффективная реализация языков программирования Python 3, которая включает небольшое подмножество стандартной библиотеки Python и оптимизирована для работы на микроконтроллерах и в ограниченной среде (например, ESP8266). По сути, это Python IDE на чипе. Одним из основных преимуществ является то, что вы можете создавать код и изменять его на лету с помощью клиента веб-браузера под названием Webrepl. (Попробуйте сделать это в Arduino.) Вы также можете видеть данные датчиков в реальном времени в Webrepl вместо того, чтобы полагаться на регистрацию данных или светодиодный экран в 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 и 9 В (4 батарейки AA для двигателей и 9 В для платы 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 или ПК. Следуйте инструкциям на этом сайте, чтобы установить драйвер.

Подключите 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 кбит / с)… Уход…

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 Изменения будут активированы после перезагрузки. Перезагрузиться сейчас? (г / н) г

Наконец, загрузите клиент 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. Хотя это нормально, я предпочитаю, чтобы он работал в режиме станции, где он подключается к моему домашнему Wi-Fi, чтобы мой компьютер мог получить к нему доступ через домашний Wi-Fi и по-прежнему иметь доступ в Интернет. Для этого вам нужно создать файл с именем boot.py с конфигурацией сети и загрузить его в Wemos.

Вот пример boot.py. Измените ssid и пароль на свою домашнюю сеть Wi-Fi. Кроме того, я хочу дать ему статический 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 от 09.01.2017; Модуль ESP с ESP8266 Введите «help ()» для получения дополнительной информации. >>>

Это подтверждает, что ваш Wemos подключен к домашнему Wi-Fi с использованием IP-адреса 192.168.0.32.

Вы можете проверить связь с этим 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 time = 9,334 мс 64 байта из 192.168.0.32: icmp_seq = 1 ttl = 255 time = 11,071 мс..

Шаг 6: Установите основную программу

Установить основную программу
Установить основную программу
Установить основную программу
Установить основную программу

Наконец, вам необходимо установить основную программу, которая будет продолжать работать на вашем Wemos.

Вернитесь в свой веб-браузер и запустите клиентскую программу webrepl. Измените IP-адрес на IP-адрес вашего Wemos. В моем случае это 192.168.0.32. Введите свой пароль Wemos, и теперь вы должны быть подключены к Wemos.

Загрузим прилагаемую программу main.py. Загрузите прикрепленный файл на свой компьютер. Нажмите «Выбрать файл», чтобы выбрать загруженный файл main.py, а затем нажмите «Отправлено на устройство».

Вам нужно будет нажать кнопку Rest, чтобы загрузить программу main.py. После нажатия кнопки Reset вы увидите:

подключение к сети…

конфигурация сети: ('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 есть следующие дела:

  • Используйте ШИМ для управления скоростью двигателя
  • Улучшить веб-интерфейс. Возможно использовать REST framework. Я не верю, что на данный момент на MicroPython доступна библиотека REST, поэтому мне, возможно, придется ее взломать.

Спасибо, что прочитали это руководство. Следуйте за мной на Facebook, Youtube и Instructables, чтобы увидеть больше проектов в будущем.

Рекомендуемые: