Оглавление:

Блок управления квадрокоптером ArDrone 2.0 на модуле MPU6050 и ESP8266: 7 шагов
Блок управления квадрокоптером ArDrone 2.0 на модуле MPU6050 и ESP8266: 7 шагов

Видео: Блок управления квадрокоптером ArDrone 2.0 на модуле MPU6050 и ESP8266: 7 шагов

Видео: Блок управления квадрокоптером ArDrone 2.0 на модуле MPU6050 и ESP8266: 7 шагов
Видео: 2. Жужа 2.0.Программирование бортовой ArduinoNano 2024, Ноябрь
Anonim
Image
Image
Подключение ESP8266 к точке доступа Ar Drone 2.0
Подключение ESP8266 к точке доступа Ar Drone 2.0

Размеры, цена и наличие Wi-Fi позволяют сделать бюджетный блок управления квадрокоптером ArDrone 2.0 на модуле ESP8266 (цены на AliExpress, Gearbest). Для управления будем использовать модуль Gy-521 на микросхеме MPU6050 (гироскоп, акселерометр).

Попугай AR. Дрон - это радиоуправляемый квадрокоптер, то есть вертолет с четырьмя несущими винтами, размещенными на удаленных диагональных лучах. AR. Сам дрон работает под управлением операционной системы Linux, и почти любой смартфон или планшет с сенсорным экраном Android или iOS может выступать в качестве пульта дистанционного управления для квадрокоптера. Дистанция стабильного управления по Wi-Fi составляет от 25 до 100 метров и зависит от помещения и погодных условий, если полеты проходят на улице.

Шаг 1. Подключение ESP8266 к точке доступа Ar Drone 2.0

При включении AR. Drone создает точку доступа SSIS «ardrone_XX_XX». Подключение без пароля.

Попробуем подключиться к точке доступа Ar. Dron с помощью AT-команд. Подключите карту ESP8266 к com-порту компьютера через адаптер питания UART USB 3.3 В.

Откройте Arduino IDE, монитор последовательного порта и отправьте AT-команды на плату ESP (квадрокоптер должен быть включен)

Шаг 2. Связь с AR. Дрон выполняется с использованием AT-команд

Команды отправляются в AR. Drone в виде пакетов UDP или TCP;

Один пакет UDP должен содержать как минимум одну полную команду или несколько; Если пакет содержит более одной команды, для разделения команд используется символ 0x0A.

Строки кодируются как 8-битные символы ASCII;

Максимальная длина команды - 1024 символа;

Между командами существует задержка 30 мс.

Команда состоит из

AT * [имя команды] = [порядковый номер команды в виде строки] [, аргумент 1, аргумент 2…]

Список основных AT-команд для управления AR. Дрон:

AT * REF - используется для взлета, посадки, сброса и аварийной остановки;

AT * PCMD - эта команда используется для управления AR. Движение дрона;

AT * FTRIM - в горизонтальной плоскости;

AT * CONFIG-настройка AR. Параметры дрона;

AT * LED-установка светодиодной анимации на AR. Дрон;

AT * ANIM - установка анимации полета на AR. Дрон.

AT * COMWDG-команда сброса сторожевого таймера - отправляем постоянно на квадрокоптер.

Для связи используются следующие порты:

Порт 5556-UDP-отправка команд в AR. Дрон;

Порт 5554-UDP-прием пакетов данных от AR. Дрон;

Порт 5555 - поток ответов на видеопакеты от AR. Дрон;

Пакеты порта 5559-TCP для критических данных, которые нельзя потерять, обычно для настройки.

Клиент отключается от порта UDP через 2 секунды после отправки последней команды !!! - следовательно, вы должны постоянно посылать команды, если необходимо - AT * COMWDG.

Рассмотрите возможность получения навигационных данных от ARDrone (порт 5554-UDP). Пакет навигационных данных в демонстрационном режиме имеет длину 500 байт. Если что-то пойдет не так, дрон может отправить 32- и 24-байтовый пакет. Если размер пакета составляет 24 байта, это означает, что порт 5554 находится в режиме BOOTSTRAP, и вам необходимо повторно подключиться к порту, чтобы переключить его в демонстрационный режим. ARDrone может передавать данные навигации клиенту в двух формах:

сокращенно (или демонстрационный), размером 500 байт. полный.

Чтобы получить демонстрационные данные, сначала отправьте четыре байта 0x01, 0x00, 0x00, 0x00 на порт 5554, а затем отправьте команду на порт 5556

AT * CONFIG = "+ (seq ++) +", / "general: navdata_demo \", / "TRUE \", где seq - порядковый номер команды.

Структура пакета навигационных данных. В начале пакета есть 4 именованных значения:

32-битный заголовок пакета: флаги состояния вертолета 32 бита;

порядковый номер последней команды, посланной вертолету клиентом 32 бита;

флаг видения 32 бита. Далее - опция navdata Заголовок: 20-23.

Параметр navdata имеет следующие поля:

АККУМУЛЯТОР = 24; заряд аккумулятора в процентах;

PITCH = 28; угол наклона по продольной оси;

РОЛЛ = 32; угол наклона относительно поперечной оси;

YAW = 36; угол поворота относительно вертикальной оси;

ВЫСОТА = 40; рост;

VX = 44; скорость по оси x;

VY = 48; скорость оси y;

VZ = 52; скорость по оси z.

Шаг 3. Подключение дисплея Nokia 5110 к плате ESP8266

Подключение дисплея Nokia 5110 к плате ESP8266
Подключение дисплея Nokia 5110 к плате ESP8266

Подключите дисплей Nokia 5110 к модулю ESP8266 и выведите на него некоторые навигационные данные и на монитор последовательного порта.

Шаг 4. Получение навигационных данных и их отображение на дисплее Nokia5110

Получение навигационных данных и их отображение на дисплее Nokia5110
Получение навигационных данных и их отображение на дисплее Nokia5110

Загрузите (эскиз ardrone_esp8266_01. Ino) и наблюдайте за выводом навигационных данных на последовательный порт и экран дисплея.

Шаг 5: Отправка команд взлета и посадки

Теперь добавим в наш проект взлет и посадку квадрокоптера командами с пульта. Для взлета нужно отправить команду

AT * REF = [Порядковый номер], 290718208

Для посадки

AT * REF = [Порядковый номер], 290717696

Перед взлетом необходимо отправить команду на горизонтальную калибровку, иначе Ar Drone не сможет стабилизироваться во время полета.

AT * F TRIM = [Порядковый номер]

Загрузите скетч ardrone_esp8266_02.ino () на плату ESP8266, включите квадрокоптер Ar Drone 2.0 и проверьте работу кнопки. При нажатии-взлет, при следующем нажатии - посадка и т. Д.

Шаг 6: Подключение MPU6050 для управления Ardrone 2.0

Подключение MPU6050 для управления Ardrone 2.0
Подключение MPU6050 для управления Ardrone 2.0
Подключение MPU6050 для управления Ardrone 2.0
Подключение MPU6050 для управления Ardrone 2.0

Датчики для определения положения в пространстве используются для управления квадрокоптерами. Микросхема MPU6050 содержит как акселерометр, так и гироскоп на борту, а также датчик температуры. MPU6050 является основным элементом модуля Gy-531 (рис. 15.44). Помимо этой микросхемы, плата модуля содержит необходимую обвязку MPU6050, в том числе подтягивающие резисторы интерфейса I2C, а также стабилизатор напряжения 3,3 В с небольшим перепадом напряжения (при питании от 3,3 В вывод стабилизатор будет 3 ровно вольта) с конденсаторами фильтра.

Подключение к микроконтроллеру по протоколу I2C.

Шаг 7: Управление квадрокоптером с помощью MPU6050

Управление квадрокоптером с помощью MPU6050
Управление квадрокоптером с помощью MPU6050

Использование акселерометра и гироскопа позволяет определять отклонения по осям x и y, причем отклонения «превращаются» в команды для перемещения квадрокоптера по соответствующим осям. Перевод показаний, полученных с датчика, на угол отклонения.

Команда для отправки на Ar Drone для управления полетом

AT * REF = [порядковый номер], [битовое поле флага], [Roll], [Pitch], [Gaz], [Yaw]

Значения Roll и Pitch в диапазоне от -1 до 1 взяты из таблицы const int float , индекс соответствует углу отклонения, рассчитанному по данным датчика mu6050.

Загрузите скетч ardrone_esp8266_03.ino на плату ESP8266, включите квадрокоптер ar Drone 2.0 и проверьте работу пульта.

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