Проекты*

Полётный контроллер для мультироторных систем

Работа победителя открытой городской научно-практической конференции «Инженеры будущего» в секции «Интеллектуальные робототехнические системы, беспилотные аппараты» среди работ учащихся 10−11 классов

Направление работы: Моделирование, Инженерия, Автоматика
Авторы работы: ГБОУ Бауманская инженерная школа № 1580
Предметы: Информатика
Классы: 10 класс
Мероприятия: Открытая городская научно-практическая конференция «Инженеры будущего» 18−20 апреля 2019 года

Цель

Сделать унифицированный полётный контроллер, поддерживающий актуальные протоколы и системы навигации; имеющим относительно небольшую стоимость и возможность подгонять прошивку под себя (для профессионалов, рядовые пользователи смогут настраивать дрон через компьютер или мобильное приложение).

Задачи

  • Собрать мультикоптер для знакомства и проведения испытаний.
  • Изучить механику полёта, стабилизации и навигации.
  • Собрать отладочную плату, включающую в себя акселерометр, гироскоп и основной процессор.
  • Написать программное обеспечение с возможностью настройки и калибровки устройства через UART.

Описание

Сборка квадрокоптера.

Рама копия tbs, оригинальные складные, алюминиевые лучи, моторы sunnysky 2212 920КВ, регуляторы оборотов на 30 ампер. Запчасти были выбраны из расчёта на большую грузоподъёмность, дабы в процессе разработки контроллера была возможность экспериментировать с большим количеством датчиков за один раз.

Сборка отладочной платы.

Первая версия сделана на популярной отладочной плате Arduino Nano (ATMega328P). Гироскоп (MPU6050) установлен на шилд, также на шилде присутствуют колодки для подключения моторов и приёмника радиоуправления.

Алгоритмы общения по всем протоколам пришлось описывать самостоятельно. Также некоторые встроенные в компилятор функции пришлось заменить командами низкого уровня.

Каналы радиоуправления.

Для считывания можно использовать analogRead, но маленькая разрядность (10 бит) и маленькая скорость работы, заставили заменить её на аппаратное прерывание.

При изменениях сигнала на пинах, к которым подключён приёмник, считываем сигнал. Если сигнал был высокий, то засекаем время срабатывания. Если низким, то обновляем значение с приёмника.

PID-регулятор.

Сначала считается значение ошибки. Далее высчитывается интегрирующая составляющая. Если она выходит за пределы, чтобы не потерять управление, надо её ограничить. Далее высчитывается само значение для оси и проверяется, не вышло ли оно за пределы. Операция проводится трижды для каждой оси (крен, тангаж, рысканье). Рассчитав значения для каждой оси, можно отправлять эти значения на моторы. Схема квадрокоптера построена так, что каждый мотор отвечает за вращение по 3 осям.

Получение данных с гироскопа.

Для общения с гироскопом использовалась только библиотека i2c шины.

Инструкция по эксплуатации устройства.

 

  • Подключение: подключить моторы и каналы приёмника регулятора в соответствующие пины устройства. Установить контроллер на дрон USB-портом вперёд.
  • Первая настройка: ВСЕ НАСТРОЙКИ СОХРАНЯЮТСЯ В ЭНЕРГОНЕЗАВИСИМУЮ ПАМЯТЬ. Пройти простую пошаговую калибровку, на любом устройстве, поддерживающем командную строку.
  • Перед каждым полётом: включить сначала аппаратуру управления, затем подать питание на полётный контроллер. При каждом полёте проходит калибровка датчиков (светодиод моргает быстро), эту функцию можно отключить в первичных настройках. Если при включении светодиод моргает в режиме SOS (3 длинных − 3 коротких), стоит пройти заново все пункты.

Результат

  • Есть платформа для разработки в лице x-квадрокоптера.
  • Полностью функционирующая первая версия контроллера c гироскопом и Bluetooth на борту. На чипе ATMega328P.
  • Наработки по коду для перехода на STM32.

Оснащение и оборудование

  • Микроконтроллер ATMega328P.
  • Гироскоп MPU6050.

Перспективы использования результатов работы

  • Замена AtMega328P на более мощный и современный микроконтроллер STM32F746.
  • Сделать полётный контроллер унифицированным, научить его общаться не только с примитивными датчиками (GPS, дальномер, барометр), но и с более продвинутыми и полезными. К примеру, лидар или система RTK.
  • Добавить поддержку не только коптеров, но самолётов и конвертопланов.

Награды/достижения

Межрайонный этап Московского конкурса проектов – победитель.