Конкурс инструкций

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

По желанию меняем название точки доступа и её пароль в начале файла вот тут:

const char *ssid = "car-esp8266";//название Wi-Fi точки доступа const char *password = "password";//пароль Wi-Fi точки доступа

Подключаем ESP8266 NodeMCU через USB к компьютеру и нажимаем кнопку Залить (Upload).

Сбор машинки

Схему подключения можно посмотреть здесь:

Непосредственно перед сборкой я приклеил небольшие детали LEGO к моторам клеевым пистолетом и припаял провода к L298N.

Теперь, используя вашу фантазию, собираем уникальную машинку!

Вот что получилось:

Первое подключение

После включения вашей машинки в списке сетей должна появиться ваша точка доступа.

При первом подключении к точке доступа я выставляю ip для этой сети вручную.

Configure: Manual IP: 192.168.4.100 Subnet mask: 255.255.255.0 Router: 192.168.4.1

Первый заезд!

На этом все! Желаю удачи в ваших творческих начинаниях!

0
2 комментария
8b0008384e034ed

Круто!

Ответить
Развернуть ветку
Vovchik

Я в JavaScript не силен можете закоментировать что за что отвечает в скрипте

Ответить
Развернуть ветку
-1 комментариев
Раскрывать всегда