Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

WiDC: Wi‑Fi FPV-робот — дистанционное управление с видео в реальном времени

Компоненты и материалы

Arduino UNO ×1
ESP8266 ESP-01 (Espressif) ×1
Arduino Proto Shield ×1
DC-мотор с колесом ×1
H-мост (драйвер двигателей) ×1

Приложения и онлайн-сервисы

О проекте

Хотите использовать радиоуправляемого робота для исследования окружающей среды, доступа к труднодоступным местам, видеонаблюдения, съемки фото/видео или трансляции видео? Это руководство покажет, как собрать недорогого робота для всех этих задач!

Это улучшенная версия моего предыдущего урока (Wi-Fi Controlled FPV Rover Robot with Arduino ESP8), в которой представлен более быстрый самодельный робот. Руководство демонстрирует, как спроектировать и собрать двухколесного робота с дистанционным управлением по Wi-Fi, используя два DC-мотора, Arduino Uno и модуль ESP8266.

Управление роботом осуществляется через обычный браузер с помощью HTML-интерфейса. Android-смартфон, установленный на роботе, передает видео и аудио на панель управления.

Как и в предыдущем уроке, показано, как спроектировать и собрать недорогую раму для робота, используя только обычные инструменты (без 3D-принтера, лазерного резака или ЧПУ-станка).

Примечание: Используемые компоненты могут быть не оптимальны. Например, вместо связки Arduino + ESP8266 можно использовать NodeMCU. Raspberry Pi с камерой заменил бы смартфон и управлял бы моторами. Даже сам смартфон может стать «мозгом» робота. Однако в этом уроке выбрана доступная и простая для всех платформа Arduino Uno, так как проект основан на другом проекте — Joy Robot (Hackaday / Hackster), где использовалось то же железо для простоты. В оригинальном проекте также управлялись сервоприводы и LED-матрицы.

Связанные руководства:

Шаг 1: Инструменты

Для сборки прототипа использовались:

Некоторые инструменты не понадобятся, если вы купите готовый корпус. Можно также использовать 3D-принтер или лазерный резак, если они доступны.

Шаг 2: Механическая структура и материалы

Материалы:

Шаг 3: Электронные компоненты

Все компоненты легко найти в интернет-магазинах. Выбор компонентов обусловлен исходным проектом Joy Robot и может быть оптимизирован (например, использование другого микроконтроллера).

Шаг 4: Проектирование структуры

Сначала создавалась 3D-модель основных компонентов в Fusion 360 для определения компоновки. Модели некоторых деталей скачаны из библиотеки GrabCAD:

Компоненты размещались в плоскости для определения габаритов. Затем выбирались позиции моторов и колес для устойчивой конструкции. Основная структура состоит из трех пластин (основания и двух боковых), соединенных уголками.

Доступны файлы чертежей: base.pdf, base.svg.

Шаг 5: Изготовление и сборка структуры

1. Резка основания из акрила по чертежу: Можно использовать лазерный резак или обычные инструменты. Размеры переносятся на акрил через распечатанную на клейкой бумаге маску. Ножом по линейке делаются надрезы, затем акрил ломается по линии надреза. Кромки зашкуриваются.

2. Сверление отверстий: По меткам на маске сверлятся отверстия дрелью (или вручную острым инструментом). Маска снимается.

3. Монтаж компонентов: Детали крепятся винтами и гайками согласно 3D-модели и видео. M3 — для уголков и моторов, M2 — для электроники, 5/32″ — для переднего колеса и держателя телефона.

Доступен файл: base.pdf.

Шаг 6: Сборка электроники

Схема: Arduino Uno — главный контроллер, общается с ESP8266 по Wi-Fi. Arduino управляет DC-моторами через H-мост (до двух моторов независимо в обе стороны). Питание — Power Bank через USB порт Arduino (удобно заряжать, заменить, дает стабильные 5В).

Соединяйте компоненты по схеме. ESP8266-01 не подходит для макетной платы — подключается перемычками, но не крепится к конструкции. Используйте ProtoShield, макетную плату или собственный щит.

Доступны файлы: wiDC_Esquemático.pdf, wiDC.fzz, wiDC_bb.pdf.

Шаг 7: Код для Arduino

Установите последнюю Arduino IDE. Библиотеки не требуются. Проверьте бодрейт вашего ESP8266 и установите его в коде (по умолчанию часто 115200, но SoftwareSerial не работает на такой скорости, в коде используется 9600).

Скачайте WiDC.ino, замените XXXXX на SSID вашего роутера, YYYYY — на пароль. Подключите Arduino к USB и загрузите код.

Разбор кода:

Используется SoftwareSerial на пинах 2 (TX) и 3 (RX) для связи с ESP8266, аппаратный Serial — для отладки на компьютере.

В setup() инициализируются пины моторов, запускаются оба Serial-порта, настраивается ESP8266 AT-командами:

Функция sendData() отправляет команды, ждет ответа и выводит в Serial Monitor.

В loop() проверяются входящие данные от ESP8266. При получении сообщения +IPD, извлекается команда (первые 3 символа после ?):

Состояние удерживается до получения новой команды. Для каждого состояния задаются сигналы на пинах моторов через PWM (analogWrite) для регулировки скорости (motorSpeed = 150). Моторы работают от 3–6В, при питании 5В ШИМ позволяет менять среднее напряжение и скорость.

Доступен файл: WiDC.ino.

Шаг 8: Веб-интерфейс управления

Скачайте interface.rar, распакуйте, откройте в Firefox. Интерфейс имеет две зоны:

  1. Видео/аудио — форма для ввода IP-адреса сервера IP Webcam (Android-приложение), загрузка видео и аудио в <object> элементы.
  2. Управление — форма для ввода IP-адреса ESP8266, кнопка Test (крутит робота), клавиши стрелок для движения.

JavaScript (myscript.js + jQuery) обрабатывает нажатия клавиш: при нажатии стрелки отправляется HTTP GET запрос на IP ESP8266 с командой cm1–cm4. Функция-защелка (latch) предотвращает повторы. При отпускании клавиши через 200 мс отправляется cm5 (стоп) и сбрасывается защелка.

Android-приложение IP Webcam (Google Play) транслирует видео/аудио с камеры смартфона.

Доступен файл: interface.rar.

Шаг 9: Использование

  1. При перезагрузке Arduino автоматически подключается к Wi-Fi. Проверьте Serial Monitor — есть ли подключение и какой IP выдал роутер ESP8266.
  2. Откройте HTML-файл в браузере (Firefox), введите IP ESP8266 в поле ввода.
  3. Отключите Arduino от ПК, подключите к Power Bank. Дождитесь переподключения.
  4. Запустите IP Webcam на смартфоне на роботе. Введите IP видео/аудио в интерфейсе управления и подключитесь.
  5. При необходимости снизьте разрешение видео в приложении для уменьшения задержки.
  6. Зажимайте стрелки клавиатуры для движения робота.

Важно: Робот работает в открытом цикле — ехать строго прямо сложно (разница моторов, выравнивание вызывают накопление ошибок). Иногда ESP8266 теряет пакеты: если потеряется команда cm5, робот продолжит ехать после отпускания клавиши. Проблема известна, можете изменить логику команд для устранения.

Производственный процесс

  1. Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
  2. Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
  3. DIY USB-геймпад на Arduino: собственный высокопроизводительный контроллер
  4. Автономный линий-следующий робот на Arduino UNO
  5. Голосовой робот на Arduino Nano: Управление речью через Bluetooth
  6. MobBob: Самостоятельная сборка Arduino-робота под управлением Android-смартфона
  7. Pixel Chaser: игра на один тап с NeoPixel Ring и Arduino Nano
  8. Магнитная левитация на отталкивании с Arduino: Простая схема и DIY-руководство
  9. PiBot: Робот-пианист на Arduino для точного исполнения музыки
  10. Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)