RC-машинка из ESP8266 NodeMCU и LEGO
Создаем управляемую модель на основе микроконтроллера с Wi-Fi модулем.
Собрав, как и положено взрослому мужчине, внушительную коллекцию LEGO, я задумался над тем, как извлечь из неё ещё больше положительных эмоций. Выяснилось, что в результате соединения разноцветных деталей и любви к программированию может получиться очень интересный проект. Если вы разделяете оба этих увлечения, приглашаю вас создать мечту детства – управляемую модель LEGO-автомобиля!
Погнали!
ESP8266 NodeMCU – плата для разработки на базе чипа ESP8266, который представляет собой UART-WiFi модуль с ультранизким потреблением. Сам чип проектировался для интернета вещей, а данная плата позволяет упростить разработку, поскольку на ней уже реализовано подключение по USB, установлен стабилизатор напряжения питания и все выводы чипа разведены на гребёнки со стандартным шагом 2.54 мм, что позволяет вставить его в макетную плату и создать прототип. Кроме того, плата поставляется с прошивкой NodeMCU, благодаря чему можно программировать её с помощью Arduino IDE. (https://radioprog.ru/shop/merch/59)
Как это работает
На ESP8266 NodeMCU мы поднимаем точку доступа Wi-Fi, HTTP-сервер и WebSocket сервер. Подключаемся к точке Wi-Fi со смартфона. HTTP-сервер отдает нам HTML-страничку с JavaScript, который сразу подключается к WebSocket серверу. Мы касаемся экрана, и JavaScript отправляет координаты прикосновения к экрану WebSocket серверу. Когда вы прикасаетесь к верхней части экрана, машинка знает, что нужно ехать вперед. Это относится и к другим направлениям.
Материалы:
- ESP8266 NodeMCU;
- mini L298N;
- макетная плата;
- 4 мотора TT 130 с редуктором и колесами;
- провода;
- powerbank;
- переходник USB -> microUSB;
- USB-шнур с возможностью подключения к макетной плате;
- конструктор LEGO.
Настройка рабочей среды Arduino Studio
Добавление платы ESP8266 NodeMCU в Arduino IDE
Качаем Arduino IDE с официального сайта: https://www.arduino.cc/en/Main/Software
Во вкладке Настройки (Preferences) -> Дополнительные ссылки для менеджера плат (Additional boards manager URLs) вставляем ссылку http://arduino.esp8266.com/staging/package_esp8266com_index.json
Затем выбираем Инструменты (Tools) -> Платы (Boards) -> Менеджер плат (Boards Manager).
В поле поиска Менеджера плат наберите ESP, затем выберите ESP8266 by ESP8266 Community и нажмите кнопку Установка.
Установите Инструменты (Tools) -> Платы (Boards) -> ESP8266 Boards -> NodeMCU 1.0.
Добавление необходимых библиотек
Необходимо скачать ZIP-архив библиотек:
- https://github.com/me-no-dev/ESPAsyncWebServer
- https://github.com/bblanchon/ArduinoJson
Загрузите их в Arduino IDE: Скетч (Scetch) -> Добавить библиотеку (Include library) -> добавить ZIP-библиотеку (add ZIP library).
Прошивка контроллера
Создаем новый проект в Arduino IDE: Файл (File) -> Новый (New).
Сохраняем новый проект с именем "esp8266-car": Файл (File) -> Сохранить (Save).
Вставляем в Arduino IDE код отсюда: https://raw.githubusercontent.com/mrsuh/car-esp8266/master/main.ino
По желанию меняем название точки доступа и её пароль в начале файла вот тут:
Подключаем ESP8266 NodeMCU через USB к компьютеру и нажимаем кнопку Залить (Upload).
Сбор машинки
Схему подключения можно посмотреть здесь:
Непосредственно перед сборкой я приклеил небольшие детали LEGO к моторам клеевым пистолетом и припаял провода к L298N.
Теперь, используя вашу фантазию, собираем уникальную машинку!
Вот что получилось:
Первое подключение
После включения вашей машинки в списке сетей должна появиться ваша точка доступа.
При первом подключении к точке доступа я выставляю ip для этой сети вручную.
Первый заезд!
На этом все! Желаю удачи в ваших творческих начинаниях!