Научная статья на тему 'ПРИМЕР СОЗДАНИЯ ПОЛЕТНОГО КОНТРОЛЛЕРА БЕСПИЛОТНОГО ЛЕТАТЕЛЬНОГО АППАРАТА НА БАЗЕ МК STM32'

ПРИМЕР СОЗДАНИЯ ПОЛЕТНОГО КОНТРОЛЛЕРА БЕСПИЛОТНОГО ЛЕТАТЕЛЬНОГО АППАРАТА НА БАЗЕ МК STM32 Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»

CC BY
854
159
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БПЛА / МУЛЬТИРОТОРНЫЕ СИСТЕМЫ / КВАДРОКОПТЕР / ПОЛЕТНЫЙ КОНТРОЛЛЕР

Аннотация научной статьи по электротехнике, электронной технике, информационным технологиям, автор научной работы — Бобылев Фёдор Алексеевич, Маркелов Максим Константинович

Рассматриваются основные принципы управления беспилотными летательными аппаратами (БПЛА, дронами) мультироторного типа (квадрокоптеры, гексакоптеры и т.д.), а также описана структурная схема полетного контроллера - устройства, которое отвечает за управление положением БПЛА в пространстве, навигацией, а также осуществляет контроль всех систем дрона. Приведен опыт прототипирования полетного контроллера с использованием отладочной платы на базе микроконтроллера серии STM32.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по электротехнике, электронной технике, информационным технологиям , автор научной работы — Бобылев Фёдор Алексеевич, Маркелов Максим Константинович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ПРИМЕР СОЗДАНИЯ ПОЛЕТНОГО КОНТРОЛЛЕРА БЕСПИЛОТНОГО ЛЕТАТЕЛЬНОГО АППАРАТА НА БАЗЕ МК STM32»

ТЕХНИКА, ТЕХНОЛОГИЯ, УПРАВЛЕНИЕ

УДК 623.746.-519

ПРИМЕР СОЗДАНИЯ ПОЛЕТНОГО КОНТРОЛЛЕРА БЕСПИЛОТНОГО ЛЕТАТЕЛЬНОГО АППАРАТА НА БАЗЕ МИКРОКОНТРОЛЛЕРА БТМ32

Ф. А. Бобылев1, М. К. Маркелов2

1,2Пензенский государственный университет, Пенза, Россия

1bobylev.fedia@yandex.ru 2maxkoma@yandex.ru

Аннотация. Рассматриваются основные принципы управления беспилотными летательными аппаратами (БПЛА, дронами) мультироторного типа (квадрокоптеры, гексакоптеры и т.д.), а также описана структурная схема полетного контроллера - устройства, которое отвечает за управление положением БПЛА в пространстве, навигацией, а также осуществляет контроль всех систем дрона. Приведен опыт прототипирования полетного контроллера с использованием отладочной платы на базе микроконтроллера серии STM32.

Ключевые слова: БПЛА, мультироторные системы, квадрокоптер, полетный контроллер

Для цитирования: Бобылев Ф. А., Маркелов М. К. Пример создания полетного контроллера беспилотного летательного аппарата на базе микроконтроллера STM32 // Вестник Пензенского государственного университета. 2023. № 3. С. 72-81.

Введение

Беспилотные авиационные системы прочно заняли место в жизни человечества [1]. Во многом этому поспособствовало появление так называемых мультироторных систем (квадрокоптеров и т.д.). Эти летательные аппараты являются исключительно удобными в применении: взлетают с места без разбега, не содержат сложных движущихся частей, а также не требуют сложных аэродинамических конструкций [2]. Все эти достоинства до недавнего времени перекрывал один недостаток: довольно сложный алгоритм управления, который требует достаточно больших вычислительных ресурсов.

Прорыв в области мультикоптеров стал возможным благодаря появлению сравнительно дешевых и легких, но при этом мощных микроконтроллеров. Микроконтроллер (МК) является «мозгом» любого БПЛА, а плата, на которой установлен МК и датчики, называется полетным контроллером (ПК) [3]. О том, как устроен полетный контроллер, а также об алгоритмах его работы и пойдет речь далее.

© Бобылев Ф. А., Маркелов М. К., 2023

Основная часть

В процессе полета БПЛА необходимо решать множество задач, вот основные из

них:

- реакция на команды управления, подаваемые оператором;

- поддержание заданного направления и положения в пространстве, высоты;

- определение географических координат БПЛА;

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

Все эти задачи решает полетный контроллер на основании показаний следующих датчиков: гироскоп, акселерометр, барометр, ОРБ-модуль, компас, датчик тока, датчик напряжения и проч. [3].

Теперь стоит поговорить подробнее о выполнении каждой из этих задач в отдельности.

Определение положения в пространстве и угловых перемещений, реакция на управляющие воздействия

Данная задача решается при помощи электронного гироскопа/акселерометра. Первоначально на микроконтроллере реализуются алгоритмы фильтрации данных с датчика (например, фильтр Калмана). Далее эти данные направляются в устройство, называемое «пропорционально-интегрально-дифференциальный (ПИД) регулятор». Он также выполняется в виде программного алгоритма. Его обобщенная структурная схема изображена на рис. 1.

Рис. 1. Структурная схема ПИД-регулятора

В случае с БПЛА входным сигналом заданной величины, «уставкой», будут команды оператора, принятые приемником и поданные на вход микроконтроллера, а в качестве обратной связи используется гироскоп/акселерометр. Сам регулятор состоит из трех блоков: пропорционального, интегрирующего и дифференцирующего [4].

Первый блок, пропорциональный, отвечает за непосредственно устранение рассогласования между сигналом датчика и управляющим сигналом. Однако, один такой блок

не справится с удержанием положения БПЛА, так как возникнут колебания в окрестности искомого положения. На их устранение и направлены два других блока.

Интегрирующий блок введен с целью прогноза и последующего устранения будущих ошибок. Он подавляет те самые колебания БПЛА, которые возникают при работе пропорционального блока, тем самым мы получаем плавный и предсказуемый полет.

Дифференцирующий блок предназначен для компенсации влияния задержек сигнала в цепи обратной связи, а также для увеличения помехоустойчивости.

Аналогичный принцип управления используется в системе удержания высоты, только вместо гироскопа/акселерометра используется барометрический датчик. Он считывает атмосферное давление, которое с каждыми 12 метрами набора высоты падает на 1 мм рт. ст. Погрешность удержания высоты при этом не превышает одного метра.

Для управления БПЛА применяют аппаратуру дистанционного управления (ДУ) частотой 2,4 ГГц, сети Wi-Fi или телеметрию протокола MAVLINK. Наибольшее распространение имеют системы с аппаратурой ДУ ввиду самой высокой дальности действия и малых задержек сигнала.

Система ДУ содержит передатчик (пульт), а также приемник. Пример изображен на рис. 2.

Для управления БПЛА минимально необходимо пять каналов: крен, тангаж, рысканье, газ и переключение режимов. Их подача, а также подача других команд в полетный контроллер возможна тремя способами:

1. Широтно-импульсная модуляция (ШИМ).

Значения управляющего канала задаются шириной импульса. Главный недостаток этого способа - на каждый канал необходим отдельный провод.

2. Передача последовательности ШИМ-импульсов.

Сигналы всех каналов передаются за один период друг за другом. Это позволяет сократить число проводов, однако ведет к задержкам управления. Кроме того, таким образом нельзя передать больше шести каналов.

3. Протоколы SBUS и ШШ.

В сущности, эти протоколы являются вариантом UART-интерфейса. В настоящее время являются самыми популярными протоколами ввиду низкой задержки, малого (1) числа проводов, большого числа передаваемых команд, а также хорошей помехозащищенности.

Передача сигналов управления

Рис. 2. Система дистанционного управления (2,4 ГГц)

Помимо передачи сигналов с приемника, существуют также различные протоколы управления регуляторами оборотов двигателей:

- PWM (ШИМ) - самый простой и самый старый из существующих протоколов, используется в самых дешевых дронах. Используются импульсы прямоугольной формы частотой 400 Гц. От длительности этих импульсов напрямую зависят частота вращения и тяга двигателей;

- Oneshot 42/l25/Multishot - это более высокоскоростные версии обычного ШИМ.

Все эти протоколы являются аналоговыми, это снижает точность управления и

приводит к необходимости частой калибровки регуляторов;

- этих недостатков лишены протоколы Dsh0t600/l200. Помимо точности и скорости, они позволяют контроллеру считывать частоту вращения двигателей напрямую, а это очень сильно повышает точность и скорость отклика дрона на управляющие воздействия. Еще одна полезная функция данного протокола - реверс двигателей, который позволяет совершать различные эволюции дрона в полете, а также стартовать из перевернутого положения.

Схема сборки

В ходе анализа разнообразных конструкций полетных контроллеров, приведенных в различных источниках, например [5], было решено вначале собрать его простой вариант на готовых модулях.

Результатом проделанной работы стал полетный контроллер, собранный на базе микроконтроллера STM32F411CEU6, встроенного в удобную отладочную плату, а также модуля гироскопа/акселерометра MPU6050. Ниже, на рис. 3, представлена упрощенная схема подключения.

Рис. 3. Упрощенная схема полетного контроллера

Сигнал SBUS c приемника перед подачей на контроллер должен быть инвертирован. Для этого устанавливаем каскад с ОЭ на транзисторе КТ-315. Также он выполняет функцию согласования уровней логики, так как с приемника выходит логический сигнал амплитудой 5 В, а контроллеру требуется значение данного напряжения, равное 3,3 В.

Для полета дрона достаточно иметь гироскоп/акселерометр. Поэтому изначально контроллер был собран только с этим датчиком.

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

В собранный контроллер была загружена прошивка Betaflight версии 4.2.3. Она содержит в себе все алгоритмы, необходимые для полета квадрокоптера [6]. Однако, поми-

мо этого, необходимо сконфигурировать всю периферию полетного контроллера (ПК). Для этого необходимо ввести команды, о которых пойдет речь далее.

На рис. 4 изображен блок присвоения входов и выходов ПК. Он необходим, чтобы контроллер «знал», где находятся моторы, куда придет сигнал управления и откуда считывать данные гироскопа.

resource BEEPER 1 А14 resource MOTOR 1 BB7 resource MOTOR 2 B06 resource MOTOR 3 BBS resource MOTOR 4 B04 resource MOTOR 5 BB3 resource MOTOR 6 A1S resource PPM 1 ДЭЗ resource LEDSTRIP 1 А0В resource SERIAL_TX 1 A09 resource SERIAL_TX 2 A02 resource SERIAL_TX 11 B01 resource SERIAL_RX 1 A10 resource SERIAL_RX 2 A03 resource SERIAL_RX 11 AB8 resource I2C_SCL 1 BOS resource I2CSDA 1 BB9 resource LED 1 C13 resource SPI_5CK 1 AOS resource SPI_5CK 2 B13 resource SPI_MISO 1 A06 resource SPI_MISO 2 B14 resource SPI_MOSI 1 A07 resource SPI_MOSI 2 BIS resource ADC_BATT 1 B00 resource 5DCARD_C5 1 B12 resource PINIO 1 C14 resource PINIO 2 CIS resource GYROEXTI 1 BIO resource GYROCS 1 A04

Рис. 4. Присвоение входов и выходов ПК к портам МК

Далее необходимо настроить таймеры (рис. 5). Это нужно для того, чтобы формировать ШИМ-сигнал, используемый для управления регуляторами оборотов двигателей.

timer В 04 AF2

# pin BS4: : TIM3 CHI (AF2)

timer BBS AF2

# pin BBS: : TIM3 CH2 (AF2)

timer BB6 AF2

# pin BB6: : TIM4 CHI (AF2)

timer BB7 AF2

# pin BB7: : TIM4 CH2 (AF2)

timer BB3 AF1

# pin B03: : TIM2 CH2 (AF1)

timer A1S AF1

# pin A1S: : TIM2 CHI (AF1)

timer ABB API

# pin А0В: : TIM2 CHI (AF1)

timer A03 AF1

# pin A03: : TIM1 CHI (AF1)

timer BBl AF1

# pin BB1: : TIM1 CH3PJ (AF1)

Рис. 5. Настройка таймеров

Далее следует блок настройки датчиков (рис. 6). Здесь указаны тип гироскопа, тип интерфейса, наличие других датчиков и т.д.

set acc_harcfcjare = MPU6050

set serialrxjtrovider = IBUS set blackbox_device = SDCARD set dshotburst = AUTO set current_meter = NONE set beeper_inversion = OKI

set sdcard_mode = SPI

set gyro_2_bustype = GYROAUTO

set pinio_box = 40,41,0,0 Рис. 6. Настройка датчиков

Еще один блок (рис. 7) - блок настройки прямого доступа к памяти (DMA). Он нужен, чтобы данные с периферии могли поступать в память в обход процессора, что значительно повышает производительность.

# ADC 1: DHA2 Stream 4 Channel 0

# pin В04: DMA1 Stream 4 Channel 5

# pin B05: DMA1 Stream 5 Channel 5

# pin B06: DMA1 Stream 0 Channel 2

# pin B07: DMA1 Stream 3 Channel 2

# pin B03: DMA1 Stream 6 Channel 3

# pin A15: QMA1 Stream 5 Channel 3

# pin A00: DMA1 Stream 5 Channel 3

# pin A03: DMA2 Stream 6 Channel 0

# pin B01: DMA2 Stream 6 Channel 0

Рис. 7. Настройка DMA

Все настройки производятся при помощи специального конфигуратора. Его главное окно изображено на рис. 8.

BETAFLICHT I h O.OOV(USBJ ^ J^ OrcyrciEye; («у 9

ПрошиБха 4.22 BTFL А Ф Гиро Аксел Обновить Отключить

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Target: STM32F411 эксперта прошивку

2022-11-180153039 - Arming выключен Показать недавние действия

fi' Порты О Конфигурация cd Питание и Батарея Ф Failsafe

Предустановки dl PID настройки ¿j Приёмник 2 Режимы

fit Корректирование в полёте ш Сервоприводы А Моторы М Видеопередатчик Щ LED лента -А- Датчики

tst Дотирование через кабель

Чёрный ящик О Командная строка

Калибровать Акселерометр

Сбросить Настройки Активировать загрузчик / DFU

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

Покрутите ыультикогттер по крайней мере на 360 градусов по ее

и вращения, у Вас есть 30 секунд для л

Сбросить настройки до заводских

Перезагрузить в режим загрузчика / DFU.

Рис. 8. Главное окно конфигуратора

Здесь можно отслеживать работу всех датчиков, исправность периферии и т.д. Например, сигнал с гироскопа интерпретируется в изображение дрона, которое показывает текущее положение гироскопа в пространстве. Также в этом окне производится калибровка гироскопа/акселерометра.

Все первоначальные настройки вводятся через командную строку (СО) (рис. 9).

Система Порты О Конфигурация га Питание и Батарея ф Failsafe \ Предустановки ¡Ь PI D настройки щ Приёмник 2 Режимы

{it Корректирование в полёте

■я Сервоприводы

4 Моторы

(<г>) Видеопередатчик

ft LED лента

■А- Датчики

КЁЗ Легирование через кабель Чёрный ЯЩИК

Прим.: Выход из вкладки CLI или нажатие Отключить i

изменения будут потеряны.

Предупреждение: Некоторые команды в CLI могут п[

тный контроллер. С последней прошивкой игатели. И может привести к и* запуску, ei

:го перезагрузку л сохраненнь ta батарея. Поэтому настоятель

Рис. 9. Командная строка

78

Режимы работы двигателей и протокол управления ими задаются во вкладке «моторы» (рис. 10).

Рис. 10. Вкладка настройки двигателей

Здесь указаны нумерация моторов, протокол управления (в нашем случае PWM), а также можно вручную запустить и откалибровать регулятор каждого двигателя.

Настроить тип приемника и проверить сигналы управления можно во вкладке «приемник» (рис. 11).

Рис. 11. Вкладка «приемник»

И, наконец, вкладка важнейших для полета настроек - настройки PID. Ее вид приведен на рис. 12. Здесь задаются коэффициенты усиления для пропорционального, интегрирующего и дифференцирующего блоков ПИД-регулятора. От них напрямую зависит, как будет вести себя в полете дрон.

Рис. 12. Настройки PID

Процедура настройки ПИД-коэффициентов

В подавляющем большинстве случаев коэффициенты подбираются экспериментально, путем проведения испытательных полетов.

Важно! Перед настройкой ПИД нужно откалибровать регуляторы двигателей!

Первым подлежит настройке коэффициент P. От его стандартного значения нужно делать небольшую прибавку, пока дрон не станет ровно держаться в воздухе, без колебаний. При слишком низком значении дрон будет раскачиваться и даже переворачиваться. При слишком высоком - будут не заметные глазу высокочастотные осцилляции, которые приводят к износу и перегреву двигателей, а также к повышенным вибрациям.

Шаг изменения коэффициента при настройке - около 5 % за каждый полет.

Интегральный и дифференциальный коэффициенты лучше оставить по умолчанию. Однако для устранения колебаний можно слегка увеличить значение D.

В результате настроек дрон должен легко удерживать горизонтальное положение, особенно при подъеме и спуске, а также послушно и точно реагировать на управляющие воздействия с пульта.

Заключение

В современном мире очень широкое применение нашли БПЛА мультироторного типа. Средства и алгоритмы управления становятся все более совершенными, что позволяет наиболее эффективно реализовывать преимущества мультикоптеров: простоту кон-

струкции и маневренность. В ходе работы был создан прототип полетного контроллера для четырехвинтового БПЛА на базе широко распространенного микроконтроллера STM32F411. В дальнейшем планируются исследование возможности адаптирования данного решения под отечественную элементную базу, а также написание собственного алгоритма управления для полетного контроллера.

Список литературы

1. Леонов А. С., Гришкин Д. А., Калашников В. С. [и др.]. Перспективы развития в России беспилотных летательных аппаратов // Труды Международного симпозиума Надежность и качество. 2022. Т. 2. С. 195-198.

2. Жиделев А. Р., Скляров А. А. Квадрокоптер как вид беспилотных летательных аппаратов // Вестник современных исследований. 2018. № 53. С. 435-436.

3. Никифоров С. М., Вертегел В. В., Савинов В. В., Симонов И. А. Особенности разработки аппаратной части полетного контроллера БПЛА // Современные проблемы радиоэлектроники и телекоммуникаций. 2019. № 2. С. 53.

4. Коновалов Г. Ф. Радиоавтоматика : учебник. М. : Высш. шк., 2003. 335 с.

5. Маркелов М. К., Ишков А. С., Новичков Д. А., Борисов Н. А. Пример реализации радиоэлектронной системы беспилотного летательного аппарата // Вестник Пензенского государственного университета. 2022. № 4. С. 96-102.

6. Гортинский А. А., Мельник Г. И. Разработка модели квадрокоптера // Новые технологии в учебном процессе и производства : материалы XVI межвуз. науч.-техн. конф. (г. Рязань, 17-19 апреля 2018 г.) / под ред. А. А. Платонова, А. А. Бакулиной. Рязань : ИП Жуков В. Ю., 2018. С. 443-446.

Информация об авторах Бобылев Фёдор Алексеевич, студент, Пензенский государственный университет.

Маркелов Максим Константинович, старший преподаватель кафедры «Радиотехника и радиоэлектронные системы», Пензенский государственный университет.

Авторы заявляют об отсутствии конфликта интересов.

i Надоели баннеры? Вы всегда можете отключить рекламу.