Оглавление:

Беспроводное управление сервоприводами RC через UDP: 3 шага
Беспроводное управление сервоприводами RC через UDP: 3 шага

Видео: Беспроводное управление сервоприводами RC через UDP: 3 шага

Видео: Беспроводное управление сервоприводами RC через UDP: 3 шага
Видео: Arduino - дистанционное управление яркостью света и сервоприводом на nRF24L01 2024, Ноябрь
Anonim
Image
Image
Аппаратное обеспечение
Аппаратное обеспечение

В этом проекте я хочу использовать свой iPhone для управления сервоприводами RC. Я буду использовать акселерометр для управления двумя сервоприводами через UDP-соединение. Это проект Proof Of Concept для проверки того, что соединение между iPhone и периферийным устройством может достигать высокой скорости обновления (выше, чем BLE) с использованием UDP.

Шаг 1: Список деталей

Аппаратное обеспечение

  • Плата ESP8266 (Wemos D1 mini pro)
  • Два RC сервопривода
  • Блок питания USB в качестве источника питания
  • Некоторые перемычки
  • IPhone или iPad с iOS12
  • Mac для сборки проекта

Программное обеспечение

  • Arduino IDE с установленным ядром ESP8266 Arduino: Руководство по установке
  • Xcode 10:
  • Эскиз Arduino можно найти здесь
  • Исходный код приложения для iPhone на Swift находится здесь.

Шаг 2: Оборудование

Аппаратное обеспечение
Аппаратное обеспечение

Аппаратная настройка очень проста. Я использую выходы D1 (шаг) и D2 (крен) на ESP8266 для управления сервоприводами RC соответственно. Плата питается от пауэрбанка USB. Сервоприводы RC получают питание от контактов 5v и GND на плате.

Шаг 3: Программное обеспечение

Приложение управления для iPhone написано на Swift, которое подключается к плате контроллера ESP8266 по беспроводной сети и управляет сервоприводами тангажа и крена на основе данных движения iPhone. Плата контроллера создает точку доступа Wi-Fi и прослушивает восходящие UDP-пакеты, которые содержат информацию о положении сервопривода в виде потока байтов со следующим общим форматом:

Сервоиндекс | Позиция MSB | Позиция LSB

Индекс сервопривода равен 1 для тангажа или 2 для крена. Положение сервопривода рассчитывается из градусов наклона телефона по x, y и преобразуется в микросекунды между 1000 и 2000. Частота обновления составляет 20 миллисекунд.

Приложение использует новый Network.framework для установления UDP-соединения, поэтому работает только на iOS 12 и выше.

Это POC-приложение, демонстрирующее, насколько легко использовать UDP-соединение в iOS 12. Для простоты UDP-пакеты отправляются отдельно для шага и вращения.

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