Wi-Fi машинка с пультом управления на M5Stack.

Последнее время увлёкся программированием ESP32, ESP8266 на MicroPython, разрабатываю различные проекты. Кроме этого, делаю уроки по программированию ESP32, ESP8266 на MicroPython. И, чтобы закрепить свои знания на практике, решил сделать Wi-Fi машинку с пультом управления на базе M5Stack, конечно же, всё запрограммировав на MicroPython. И для тех, у кого нет M5Stack написал программу для ПК, которая позволяет управлять машинкой.


Если вы считаете данный проект интересным, пожалуйста, поделитесь им, чтобы он мог охватить больше людей, кому это может быть интересно. Спасибо!

Что понадобится для сборки Wi-Fi машинки с пультом управления.

В проекте я буду использовать L293D Shield для платы NodeMCU. Но это у моего шилда не работает драйвер. Это распространённая проблема. По идее L293D Shield можно использовать в проекте без внешнего драйвера, но я буду использовать дополнительный драйвер L298n.

Что понадобится для сборки Wi-Fi машинки с пультом управления.

Что понадобится для проекта:

  • NodeMCU
  • драйвер L298n
  • Робо платфорам.
  • 2 бокса под аккумуляторы формата 16850
  • 2 аккумулятора 16850.

При сборке с рабочим L293D Shield понадобятся следующие материалы.

Если вам повезло, и драйвер на шилде работает как нужно, можно обойтись без внешнего драйвера. В таком случае вам понадобятся:

  • NodeMCU
  • L293D Shield
  • Робо платфорам.
  • 2 бокса под аккумуляторы формата 16850
  • 2 аккумулятора 16850.

Пульт для Wi-Fi машинки.

Пульт для Wi-Fi машинки.

Пульт реализовал на M5Stack Core2. Данное устройство сделано на микроконтроллере ESP32, имеет сенсорный дисплей и аккумулятор для автономной работы. Этот набор свойств пригодится при создании пульта для нашей машинки. Более подробное описание M5Stack Core2 читайте тут.

Запрограммировать пульт можно в среде UIFlow или на MicroPython. Внизу статьи вы можете скачать прошивку пульта управления для UIFlow и MicroPython.

Запрограммировать пульт можно в среде UIFlow или на MicroPython.

Для того чтобы пульт заработал, нужно указать IP- адрес машинки в прошивке. Как узнать IP машинки расскажу далее.

Программируем M5Stack Core2 в Visual Studio Code.

Для удобства программирования M5Stack Core2 на MicroPython я использую редактор Visual Studio Code. Для его настройки нужно установить расширение «vscode-m5stack-mpy».

Для удобства программирования M5Stack Core2 на MicroPython я использую редактор Visual Studio Code.

Внизу программы появится надпись «Add M5Stack», при нажатии на которую откроется выбор порта, к которому подключено устройство.

Внизу программы появится надпись «Add M5Stack», при нажатии на которую откроется выбор порта

Выбираем порт и нажимаем кнопку «Ок».

Выбираем порт и нажимаем кнопку «Ок».

В проводнике появится устройство со всеми доступными файлами на нём. Сейчас можно приступать к написанию программы.

В проводнике появится устройство со всеми доступными файлами на нём.

Дизайн можно сделать в UIFlow, скопировав полученный код. А остальной код написать на MicroPython в Visual Studio Code.

Дизайн можно сделать в UIFlow, скопировав полученный код. А остальной код написать на MicroPython в Visual Studio Code.

Сохраняем программу и проверяем, как всё работает. После этого можно приступить к сборке машинки.

Схема подключения Wi-Fi машинки на ESP8266.

Если вы планируете использовать внешний драйвер, например L298n, подключить электронику в таком случае нужно по схеме, приведённой ниже.

Схема подключения Wi-Fi машинки на ESP8266.

А при использовании L293D Shield схема подключения будет выглядеть вот таким образом.

А при использовании L293D Shield схема подключения будет выглядеть вот таким образом.

Как видим, с Shield подключение проще и меньше проводов, но, как я уже говорил, данные шилды бывают бракованные и драйвер не работает. Обратите на это внимание!

Так как программа будет написана на MicroPython, её можно установить и на ESP32, прописав правильно пины подключения. Схему отдельно рисовать не буду. Надеюсь, что смысл понятен и вы без проблем при необходимости всё подключите.

Программа для Wi-Fi машины на MicroPython.

Скачать код Wi-Fi машины на MicroPython можно внизу статьи в разделе «Файлы для скачивания».

Чтобы загрузить код на ESP8266, нужно установить прошивку для вашей платы. А также установить Thonny Python IDE. Подробнее как это сделать, можно узнать в уроке MicroPython Windows. Установка и настройка IDE.

Скачать код Wi-Fi машины на MicroPython

В коде нужно указать логин и пароль для подключения к вашей Wi-Fi сети. После чего загружаем код на ESP8266. Чтобы программа запускалась при следующей подаче питания на устройство, нужно сохранить её под именем «main.py». Почему именно так и как это устроено рассказываю в уроке № 2.

После загрузки кода, в терминале вы увидите IP- адрес вашей машинки.

После загрузки кода, в терминале вы увидите IP- адрес вашей машинки. Его нужно указать в программе для пульта управления.


В связи с тем, что в среде разработки UIFlow можно указать GET запрос только текстом. Без возможности использовать переменные. IP машинки придётся указывать в каждом запросе. Соответственно, нужно будет прописать ваш IP 8 раз.

В связи с тем, что в среде разработки UIFlow можно указать GET запрос только текстом

В программе на MicroPython гораздо всё проще. Указать URL нужно только в переменной "url_car".


Программа управления Wi-Fi машинкой с компьютера.

Так как M5Stack Core2 есть не у каждого, я решил написать программу для компьютера. Чтобы проверить работоспособность Wi-Fi машинки смог каждый желающий. В программе нужно также указать IP машинки в переменной url_car = "192.168.1.10".

Программа управления Wi-Fi машинкой с компьютера.

Так как это моя первая программ на Python для ПК, она не отличается красивым интерфейсом. Также я не успел её запаковать в исполняемый файл .exe. Возможно, добавлю его к статье, поэтому не забудьте добавить сайт в закладки.

Программа управления Wi-Fi машинкой с компьютера.

Запустить программу можно из файла «Car_PC_test.py». НО нужно установить Python 3 и все необходимые модули. Для создания интерфейса я использовал модули «kivy» и «kivymd».

Запустить программу можно из файла «Car_PC_test.py».

В программе PyCharm зависимости устанавливать очень легко. При подсвечивании библиотеки красным цветом наводим на неё курсор мыши, после чего появляется надпись о том, что нужно установить зависимость. Кликаем по ссылке, и модуль устанавливается самостоятельно, без ввода команд через терминал. С помощью PyCharm можно запустить программу, нажав правой кнопкой мыши на файл с кодом и выбрать «Run Car_PC_test.py».

С помощью PyCharm можно запустить программу, нажав правой кнопкой мыши на файл с кодом и выбрать «Run Car_PC_test.py»

Также вы можете всё сделать через терминал. Как установить модули «kivy» и «kivymd» написано на официальном сайте. Для запуска файла открываем терминал в папке с файлом «Car_PC_test.py». Для этого кликам правой кнопкой мыши и выбираем «Открыть окно команд».

Для этого кликам правой кнопкой мыши и выбираем «Открыть окно команд».

Вводим команду «python Car_PC_test.py», где Car_PC_test — это имя файла Python.

Вводим команду «python Car_PC_test.py», где Car_PC_test — это имя файла Python.

Программа запустится, и вы сможете управлять машинкой с ПК.

Программа запустится, и вы сможете управлять машинкой с ПК.

Пример управления машинкой с пульта управления.

Пришло время проверить проделанную работу. Включаем машинку. На дисплее пульта в правом нижнем углу есть надпись, которая указывает процент зарядки аккумулятора.

На дисплее пульта в правом нижнем углу есть надпись, которая указывает процент зарядки аккумулятора.

А также на дисплее располагаются 4 большие кнопки, которые помогают управлять машинкой. Функционал достаточно простой. Машинка едет, пока нажата кнопка «Вперёд». При отпускании кнопки машинка останавливается.

 Функционал достаточно простой. Машинка едет, пока нажата кнопка «Вперёд». При отпускании кнопки машинка останавливается.

Если нажать поворот, машинка поворачивается до тех пор, пока мы удерживаем кнопку. Если отпустить, то машинка останавливается. Аналогичным образом работают и остальные кнопки пульта.

Если нажать поворот, машинка поворачивается до тех пор, пока мы удерживаем кнопку.

Управлять достаточно комфортно. У меня ребёнок играл машинкой несколько дней, не выпуская пульт из рук. Так же его друзья, когда приходили в гости, оценили Wi-Fi машинку.

Управление машинкой с ПК.

Пульт управления 5х5 см. Это гораздо удобнее, чем управление с компьютера. Но данная программа пригодится для тестирования, если у вас нет в наличии M5Stack Core2. А я на данном примере начал изучать написание программ для ПК на Python, хотя используемые библиотеки подходят и для создания мобильных приложений, но это уже совсем другая история.

Управление машинкой с ПК.


Понравился проект Wi-Fi машинка с пультом управления на M5Stack? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Скачать код Wi-Fi машины на MicroPython Скачать код Wi-Fi машины на MicroPython .py2 Kb 509 Скачать
Скачать код пульта машины на MicroPython Скачать код пульта машины на MicroPython .py3 Kb 435 Скачать
Программа управления Wi-Fi машинкой с компьютера Программа управления Wi-Fi машинкой с компьютера.py4 Kb 487 Скачать

Комментарии

Ваше Имя*

Admin

Admin (27 февраля, 2022 в 20:42)
Управляемая машина имеет полный привод и передние поворотные колеса. Т.е. 1 мотор приводит в движение задние колеса, 1 мотор передние, 1
поворачивает передние колеса. Подскажите, пожалуйста, как лучше
подключить три мотора и возможно ли это в данной схеме?
Я не понимаю. зачем третий мотор? 

Никита

Гость: Никита (7 февраля, 2022 в 15:11)

Управляемая машина имеет полный привод и передние поворотные колеса. Т.е. 1 мотор приводит в движение задние колеса, 1 мотор передние, 1 поворачивает передние колеса. Подскажите, пожалуйста, как лучше подключить три мотора и возможно ли это в данной схеме?


Разработка проектов