О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр Лодки

Smartport telemetry via softserial (betaflight)

Smart port telemetry requires an inverted serial signal, but many flight controllers only include hardware inversion on the SBUS connector.  So if you want to use SmartPort telemetry on your Frsky receiver it can sometimes be a pain.  The easiest way to overcome this is to simply use soft serial which emulates the inverter via software.  This guide will show you how to do this on just about any flight controller.

In this guide we will be using the omnibus F4 V6 as the flight controller, but this article can be applied to just about any flight controller.  We have a Frsky XSR-M receiver connected to it.  And we have connected the smartport telemetry to a spare TX pad on UART1.  A diagram of this is shown below.  Lets get started.

alt
  • Assuming you are connecting it as per the diagram above, we will need to enable softserial on TX1 (since we have connected it to UART1). The first thing we need to do is to find what pin the TX1 is connected to so we can enable softserial on that pin.
  • The first thing to do is to enable the softserial feature on the configuration tab
alt
  • Now we need to tell the flight controller what pins we want to use for softserial
  • In the CLI and type resource to get a list of pins, look for TX1
alt
  • In this example, TX1 is assigned to A09. This is the case for most flight controllers, but sometimes it can be different.
  • Now we will enable softserial 1 on pin A09. In the CLI type the following command:
resource SERIAL_TX 11 A09
save
💡 Port 11 is for softserial 1, and port 12 is for softserial 2. So if you wanted to assign softserial 2 to another pin (such as UART6, or the LED pin), you could assign port 12 to the corresponding pin you got from the resource command. If you wanted to assign A09 to softserial 2, you would use the command resource SERIAL_TX 12 A09
  • Now when you go back to the ports tab in BetaFlight (after your FC reboots), you will now see a new line called SOFTSERIAL 1
Смотрите про коптеры:  Делайте захватывающие снимки с воздуха с помощью дрона с камерой Xiaomi
alt
  • Simply enable SmartPort telemetry on this port and you should now have Frsky telemetry working on your receiver.
  • If you cant get it working, you may need to try using the CLI again to turn inversion on and off using the following commands.
set tlm_halfduplex = on
set tlm_inverted = off
save
  • If off does not work, try again with tlm_inverted = on.

Thanks for reading and I hope this helps.  If you have any questions be sure to ask on our friendly forums, dronetrest.com

Пид-регуляторы

При работе с мультикоптерами, вам придется столкнуться с настройкой ПИД-регулятора, этот математический аппарат применяется почти во всех задачах стабилизации: стабилизация углов квадрокоптера в воздухе, полет и удержание позиции по GPS, удержание высоты по альтиметру.

Вы собираете мультикоптер, калибруете датчики, регуляторы, радио, все проверяете, пытаетесь взлететь, а его переворачивает даже легким ветерком. Или наоборот: он такой резкий, что внезапно срывается с места и крутит тройное сальто без разрешения. Причина все та же: параметры ПИД-регуляторов.

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

В полетный контроллер непрерывно поступают команды с земли: «крен 30 градусов», «крен -10 градусов», «крен 0 градусов (держать горизонт)»; его задача — как можно быстрее и точнее их выполнять с помощью моторов с учетом: ветра, неравномерного распределения веса квадрокоптера, неравномерного износа моторов, инерции квадрокоптера и т.п.

Уровень газа поступает из приемника в контроллер. Обозначим его throttle. Если left и right — скорости вращения левого и правого моторов, то:

left = throttle force,
right = throttle – force,

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

Если мы научимся вычислять эту величину на каждой итерации цикла обработки, значит мы сможем управлять квадрокоптером. Понятно, что force как минимум должно зависеть от текущего угла крена (roll) и желаемого угла крена (tar get_roll), который поступает с пульта управления.

Представим ситуацию: поступает команда «держать горизонт» (tar get_roll = 0), а квадрокоптер имеет крен влево:

Рис. Двухмерный квадрокоптер с креном влево.
error — разность (ошибка) между tar get_roll и roll, которую контроллер стремится минимизировать.

Чем больше разность между желаемым углом крена и текущим, тем сильнее должна быть реакция, тем быстрее левый мотор должен закрутиться относительно правого. Если это записать с использованием наших обозначений:

force = P * error

P — коэффициент пропорциональности. Чем он больше, тем сильнее будет реакция, тем резче квадрокоптер будет реагировать на отклонение от требуемого угла крена. Эта интуитивно понятная и простая формула описывает работу пропорционального регулятора. Чем сильнее квадрокоптер отклонился от требуемого положения, тем сильнее надо пытаться его вернуть. К сожалению, эту формулу придется усложнить. Главная причина — перерегулирование.

За несколько десятков миллисекунд (несколько итераций цикла обработки) под воздействием пропорционального регулятора квадрокоптер вернется в требуемое (в данном случае горизонтальное) положение. Все это время ошибка error и усилие force будут иметь один и тот же знак, хоть и становиться все меньше по модулю.

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

По этой причине в пропорциональный регулятор нужно добавить еще одно слагаемое, которое будет тормозить вращение квадрокоптера и препятствовать перерегулированию (переваливанию в противоположную сторону) —имитация трения в вязкой среде: чем быстрее поворачивается квадрокоптер, тем сильнее надо пытаться его остановить, конечно, в разумных пределах. Скорость вращения (скорость изменения ошибки ) обозначим как spin, тогда:

force = P * error   D * spin

D — настраиваемый коэффициент: чем он больше, тем сильнее останавливающее усилие.

Скорость изменения любой величины — производная этой величины по времени:

И вот пропорциональный регулятор превращается в пропорционально-дифференциальный (пропорциональное слагаемое и дифференциальное):

Ошибку error вычислить легко, ведь на каждой итерации мы знаем roll и tar get_roll; P и D — настраиваемые перед запуском параметры. Для вычисления производной (скорости изменения error) необходимо хранить предыдущее значение error, знать текущее значение error и знать время, которое прошло между измерениями (период регулирования). И вот она — физика шестого класса школы (скорость = расстояние / время):

dt — период регулирования; error previous — значение ошибки с предыдущей итерации цикла регуляции. Кстати, эта формула — простейший способ численного дифференцирования, и он нам здесь вполне подойдет.

Теперь у нас есть пропорционально-дифференциальный регулятор в плоском «бикоптере», но осталась еще одна проблема. Пусть левый край будет весить чуть больше правого, или, что то же самое, левый мотор работает чуть хуже правого. Квадрокоптер чуть наклонен влево и не поворачивается обратно: дифференциальное слагаемое равно нулю, а пропорциональное слагаемое хоть и принимает положительное значение, но его не хватает, чтобы вернуть квадрокоптер в горизонтальное положение, ведь левый край весит чуть больше правого. Как следствие — квадрокоптер будет все время тянуть влево.

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

Как же это поможет? Если пропорционального слагаемого не достаточно, чтобы исправить маленькую ошибку, но она все равно есть — постепенно, со временем, набирает силы интегральное слагаемое, увеличивая реакцию force и квадрокоптер принимает требуемый угол крена.

Тут есть нюанс. Предположим error равна 1 градусу, цикл регулирования — 0.1с. Тогда за одну секунду сумма ошибок примет значение 10 градусов. А если цикл обработки — 0.01с, то сумма наберет аж 100 градусов. Чтобы за одно и тоже время интегральное слагаемое набирало одно и тоже значение при разных периодах регулирования, полученную сумму будем умножать на сам период регулирования.

Эта формула — не что иное, как численный интеграл по времени функции error в интервале от нуля до текущего момента. Именно поэтому слагаемое называется интегральным:

где T — текущий момент времени.

Пришло время записать окончательную формулу пропорционально-интергрально-дифференциального регулятора:

где I — один из настраиваемых параметров, которых теперь трое: P,I,D.
ПИД регуляторы – важная часть полётного контроллера, без их использования квадрокоптер летал бы непредсказуемо. Они настраиваются индивидуально для каждого квадрокоптера.

Полетный контроллер на ардуино? на stm32f104! руководство по сборке.

«В настоящее время рядом с нами их (азербайджанцев) проживает человек 150-200, и каждый месяц еще появляется человек десять… Мы боимся за жизнь своих детей и внуков… Мы обращались и к местной власти, и в милицию, но там нам сказали, что выселить их может лишь миграционная служба. Но, наверное, пока не грянет гром, как у нас обычно бывает, ничего не произойдет… Просим принять срочные меры к гражданам Азербайджана, которые проживают у нас в селе, пока не случилась трагедия. Они угрожают нашим жизням и жизням наших детей и внуков».

Связь

Радиоуправление (RC)

Управление посредством радиосвязи обычно включает в себя RC передатчик/RC transmitter (в беспилотном хобби — радиоаппаратура управления/пульт) и RC приёмник (RC receiver). Для взаимодействия с БПЛА пользователю потребуется как минимум четырёх (и более) канальный RC передатчик. По умолчанию первые четыре канала связаны с:

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

Все остальные имеющиеся каналы могут быть задействованы для таких действий как:

  • Арминг (Arming или Arm)/Дизарминг (Disarming или Disarm) — постановка/снятие с охраны моторов.
  • Управление подвесом (панорамирование вверх/вниз, вращение по часовой стрелке/против часовой стрелки, зуммирование)
  • Смена режимов полёта (ACRO/ANGLE и т.д.)
  • Активировать/Задействовать полезную нагрузку (парашют, зуммер или другое устройство)
  • Любое другое применение

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

Большинство пользователей (пилотов БПЛА) предпочитают именно ручное управление, это ещё раз доказывает, что пилотирование при помощи аппаратуры управления по прежнему является выбором номер один. Сам по себе RC приёмник просто передаёт поступающие от RC передатчика значения, а значит не может управлять беспилотником. RC приёмник должен быть подключен к контроллеру полёта, который в свою очередь должен быть запрограммирован для приёма RC сигналов. На рынке очень мало полётных контроллеров, которые принимают входящие радиокоманды от приёмника на прямую, а большинство ПК даже обеспечивают питание приёмника от одного из контактных выводов. Дополнительные соображения при выборе пульта дистанционного управления включают в себя:

  • Не все RC передатчики могут обеспечить полный диапазон RC сигналов от 500мс до 2500мс; некоторые искусственно ограничивают этот диапазон, так как большинство используемых RC предназначены для радиоуправляемых автомобилей, самолётов и вертолётов.
  • Дальность/Макс. воздушный радиус действия (измеряется в футах или метрах) RC-системы практически никогда не предоставляются производителями, поскольку на этот параметр влияют множество факторов, таких как помехи, температура, влажность, заряд батареи и другие.
  • Некоторые RC-системы имеют приёмник, который также имеет встроенный передатчик для передачи данных от датчика (например, GPS-координат), которые в последствии будут отображаться на ЖК-дисплее RC передатчика.

Bluetooth

Bluetooth и более поздние продукты BLE (Bluetooth Low Energy) изначально предназначались для передачи данных между устройствами без заморочек сопряжения или согласования частот. Некоторые имеющиеся на рынке контроллеры полёта могут отправлять и получать данные по беспроводной связи через соединение Bluetooth, что упрощает поиск неисправностей в полевых условиях.

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

Wi-Fi

Управление по Wi-Fi обычно достигается посредством Wi-Fi роутера, компьютера (в том числе ноутбук, десктоп, планшет) или смартфон. Wi-Fi в состоянии справится как с передачей данных, так и с передачей видеопотока, но одновременно с этим эту технологию сложнее настроить/реализовать. Как и для всех Wi-Fi устройств, расстояние удаления ограничено Wi-Fi передатчиком.

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

Радиочастота (RF или РЧ)

Радиочастотное (РЧ) управление в этом контексте относится к беспроводной передаче данных с компьютера или микроконтроллера на летательный аппарат с использованием РЧ передатчика/Приёмника (или двухполосного приёмопередатчика). Использование обычного радиочастотного блока, подключенного к компьютеру, позволяет осуществлять двухполосную связь на большие расстояния с высокой «плотностью» данных (обычно в последовательном формате).

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

Смартфон

Хоть это и не тип связи, самого вопроса, как управлять дроном используя смартфон, достаточно, чтобы уделить ему отдельный раздел. Современные смартфоны это по сути мощные компьютеры, которые по случайному совпадению могут также совершать телефонные звонки. Почти все смартфоны имеют встроенный модуль Bluetooth, а также модуль WiFi, каждый из которых используется для управления дроном и/или получения данных и/или видео.

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

Инфракрасное излучение (Infrared (IR))

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

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

Сенсоры

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

  • Акселерометр: Как следует из названия, акселерометры измеряют линейное ускорение по трем осям (назовём их: X, Y и Z). Обычно измеряется в «G (на рус. Же)». Стандартное (нормальное) значение, составляет g = 9.80665 м/с². Для определения положения, выход акселерометра может быть интегрирован дважды, правда из-за потерь на выходе объект может быть подвержен дрейфу. Самой значимой характеристикой трёхосевых акселерометров является то, что они регистрируют гравитацию, и как таковые, могут знать, в каком направлении «спуск». Это играет главную роль в обеспечении стабильности многороторного БЛА. Акселерометр должен быть установлен на контроллере полёта так, чтобы линейные оси совпадали с основными осями беспилотника.

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

  • Гироскоп: Гироскоп измеряет скорость изменения углов по трём угловым осям (назовём их: альфа, бета и гамма). Обычно измеряется в градусах в секунду. Обратите внимание, что гироскоп не измеряет абсолютные углы напрямую, но вы можете выполнить итерацию, чтобы получить угол, который, как и у акселерометра, способствует дрейфу. Выход реального гироскопа имеет тенденцию быть аналоговым или I2C, но в большинстве случаев вам не нужно беспокоиться об этом, так как все поступающие данные обрабатываются кодом контроллера полёта. Гироскоп должен быть установлен так, чтобы его оси вращения совпадали с осями БПЛА.

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

  • Инерционный измерительный блок (IMU): IMU — по сути, это небольшая плата, которая содержит как акселерометр, так и гироскоп (обычно многоосевые). Большинство из них включают трёхосевой акселерометр и трёхосевой гироскоп, другие могут включать дополнительные сенсоры, например трёхосевой магнитометр, обеспечивающий в общей сложности 9 осей измерения.

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

  • Компас/Магнитометр: Электронный магнитный компас способный определять магнитное поле Земли и использовать эти данные для определения направления компаса беспилотника (относительно северного магнитного полюса). Этот сенсор почти всегда присутствует, если система имеет GPS вход и доступно от одной до трех осей.

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

  • Давление/Барометр: Так как атмосферное давление изменяется по мере удаления от уровня моря, можно использовать сенсор давления, чтобы получить довольно точные показания высоты БПЛА. Для расчёта максимально точной высоты, большинство контроллеров полёта получают данные одновременно от сенсора давления и спутниковой системы навигации (GPS). При сборке обратите внимание, что предпочтительнее, чтобы отверстие в корпусе барометра было накрыто куском поролона, это уменьшить отрицательное влияние ветра на чип.

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

  • Расстояние: Датчики расстояния все чаще используются на беспилотниках, поскольку GPS-координаты и датчики давления не могут рассказать вам, насколько далеко вы находитесь от земли (холма, горы или здания), либо столкнётесь ли вы с объектом или нет. Датчик расстояния, обращенный вниз, может быть основан на ультразвуковой, лазерной или лидарной технологии (ИК-сенсоры могут испытывать проблемы в работе при солнечном свете). Датчики расстояния редко входят в стандартный комплект полётного контроллера.

О полетном контроллере MultiWii (коптеры, самолеты и вертолеты) / Хабр

Оцените статью
Радиокоптер.ру
Добавить комментарий