Настройка квадрокоптера в Betaflight Configurator

Данная статья - лишь небольшая часть. Полная версия у меня на сайте: сборка и настройка. Данную часть я опубликовал здесь ради фидбека и советов более опытных пилотов. Сам я новичок и это всего лишь мой второй опыт настройки квадрика на Cleanflight/Betaflight.

Пожалуй, самой популярной прошивкой на сегодняшний день, вполне заслуженно, является Cleanflight. После её установки достоточно только настроить протокол приёмника и квадрокоптер уже может вполне сносно лететь. Для настройки используется удобная графическая оболочка Cleanflight Configurator, которая лично мне показалась намного удобнее и понятнее, чем OpenPilot GCS.
Благодаря открытому коду прошивки, у неё есть несколько ответвлений (форков). Самым интересным из них является Betaflight от человека под ником Boris B. Прошивка очень динамично развивается и некоторые её “фичи” потом переходят в “родительский” Cleanflight (например, полётный режим Airmode). Минусом Betaflight является то, что релизы выходят достаточно часто, а стабильность их не всегда высока. Кстати, эта причина на несколько недель задержала написание данной статьи. На момент завершения сборки квадрокоптера как раз вышла версия 2.8.0, которая имела пару ошибок и отличалась недружелюбными дефолтными настройками. Очень быстро появилась исправленная версия 2.8.1 RC1, но опыт работы программистом подсказал мне, что лучше подождать релиза. Я не прогадал, так как одновременно с релизом версии 2.8.1, появился и Betaflight Configurator. Можно сказать, что это новый этап в истории данной прошивки. Дело в том, что по мере своего развития Betaflight всё больше и больше отдалялся от Cleanflight и конфигуратор последнего становился всё более и более бесполезным, так как основная часть настроек всё равно делалась через консоль CLI.
Ниже я подробно опишу, как я настроил свой квадрокоптер через Betaflight Configurator.

Вкладка Setup
Сделал калибровку акселерометра.

Вкладка Ports

  • Для того, чтобы работала OSD, включил MSP для порта UART2.
  • Как я уже писал выше, ни в коем случае не отключайте MSP для порта UART1.

Вкладка Configuration
Собственно тут и производятся почти все настройки.

  • В разделе “Board and Sensor Alignment” указал, что мой ПК повёрнут на 90 градусов по оси yaw. Корректность этого параметра потом можно проверить во вкладке Setup.
  • В “Reciever Mode” выбрал RX_PPM.
  • Выбрал ONESHOT125 в качестве протокола регуляторов (почему не MULTISHOT, я писал выше).
  • Отключил “Unsynced PWM output”, опять же, потому что не использую MULTISHOT.
  • Чтобы моторы всегда вращались в заармленном состоянии, отключил MOTOR_STOP.
  • Включил опцию “Disarm motors regardless of throttle value”, так как буду делать арм моторов на отдельном канале.
  • Уменьшил значение “Minimum Throttle” до 1030. Это обороты холостого хода, подбирал субъективно.
  • Включил опцию “VBAT” для активации индикатора заряда батареи. Остальные параметры в разделе “Battery Voltage” я не менял, так как показания заряда соответствуют действительности. Если же в них есть погрешность, её можно убрать настройкой “Voltage Scale”.
  • В “Other Features” активизировал BLACKBOX, а также LED_STRIP, чтобы работала светодиодная подсветка.

Вкладка Failsafe
C failsafe всё оказалось несколько сложнее, чем мне виделось ранее. На профильных форумах иногда встречаются холивары на тему “где лучше настраивать failsafe: на приёмнике или на ПК?” На самом деле, правильно это вопрос звучит так: “где лучше настраивать failsafe: только на приёмнике или на приёмнике и на ПК?”
Настраивать failsafe на приёмнике необходимо в любом случае. По крайне мере, на Frsky D4R-II, который я использую. Дело в том, что у него есть три варианта поведения при потере сигнала от передатчика:

  • передать на ПК сигнал, имитирующий предустановленные положения стиков и переключателей (режим Pre-set Positions, именно он и описан в мануале)
  • продолжать передавать на ПК последние данные, полученные от передатчика (режим Hold Last Position)
  • прекратить передавать сигнал на ПК (режим No Pulse)

По умолчанию в Frsky D4R-II установлен режим Hold Last Position, который способствует улёту аппарата в далёкие дали. Так что если использовать failsafe только на приёмнике, надо настраивать режим Pre-set Positions. Другое дело, что failsafe активируется даже при кратковременной потере сигнала. Будет очень неприятно, если сигнал через долю секунды восстановиться, а квадрокоптер уже задизармил моторы и падает вниз. Ситуацию может улучшить настройка failsafe на ПК, так как там этот режим имеет задержку срабатывания, что служит фильтром от кратковременных потерь сигнала. Кроме того, там есть настраиваемый сценарий, согласно которому квадрокоптер будет себя вести в случае активации failsafe. Например, можно включить режим со стабилизацией и попытаться более-менее мягко сесть или вообще активизировать RTH, если он есть. Но на практике такие вещи востребованы на больших аппаратах с GPS, а на маленьких и быстрых, опытные пилоты советуют не мудрить и выключать моторы после потери сигнала. Из-за высокой скорости полётов, так будет безопаснее для окружающих.
Нюанс в том, что, если на приёмнике установлен режим Pre-set Positions или Hold Last Position, то ПК даже не узнает, что произошла потеря сигнала. Таким образом, failsafe на ПК можно использовать лишь в том случае, если на приёмнике установлен режим No Pulse. На Frsky D4R-II он устанавливается кратковременным (менее 1 сек) нажатием на кнопку failsafe при выключенном передатчике (видео-инструкция).
На вкладке Failsafe Betaflight Configurator`а я сделал следующее:

  • В разделе “Channel Fallback Settings” установил значения переключателей передатчика, которые нужно будет сымитировать. В моём случае только включил пищалку на AUX3.
  • Активизировал Failsafe Stage 2.
  • Установил задержку активации режима failsafe 1 сек (значение 10 в пункте “Guard time for stage 2 activation…”)
  • Установил время работы моторов после активации failsafe 1 сек (значение 10 в пункте Failsafe Throttle Low delay).
  • В Failsafe Procedure выбрал сценарий с падением (Drop), а не с попыткой плавного приземления (Land).

Вкладка Modes
Повесил на переключатели арминг моторов и Blackbox (AUX1), активацию полётного режима Horizon (AUX2) и включение пищалки (AUX3). Кстати, есть люди, которые настраивают арминг на два переключателя. Не знаю, насколько это востребовано, сам я ещё такого уровня дзэн не достиг.

Отдельно хочется сказать про AIRMODE. Изначально он был уникальной “фишкой” Betaflight, но в какой-то момент стал так популярен, что Boris B поделился им с авторами Cleanflight и сейчас данный режим доступен и там тоже.
Несмотря на то, что AIRMODE отображается как отдельный режим полёта - это скорее дополнительная опция, а не полноценный режим. Он позволяет квадрокоптеру удерживать заданный угол даже при минимальном газе. Именно поэтому не рекомендуется использовать AIRMODE вместе с режимами со стабилизацией. Кроме того, приземление с AIRMODE тоже процесс непростой: квадрокоптер начинает прыгать, как лягушка. Опытные пилоты предпочитают просто “ронять” квадрокоптер, выключая моторы в паре десятков сантиметров над землёй. Кстати, если у вас включена остановка моторов при нулевом газе (опция MOTOR_STOP во вкладке Configuration) и одновременно с этим работает AIRMODE, то остановки моторов не будет, так как AIRMODE имеет более высокий приоритет.
В Betaflight версии 2.8.1 появилась новая возможность: можно включить AIRMODE в фоновом режиме и тогда он активен всегда и не будет отображаться во вкладке Modes, либо, как и ранее, повесить его включение на какой-либо канал. Делается это следующими командами в CLI:</p>

    feature AIRMODE # Включить AIRMODE в фоновом режиме
    feature -AIRMODE # Выключить AIRMODE в фоновом режиме

У себя я не стал включать AIRMODE в фоновом режиме, так как использую ещё режим со стабилизацией HORIZON. Таким образом, у меня на AUX1 два полётных режима: HORIZON (для полётов со стабилизацией и посадки) и ACRO+AIRMODE.

Вкладка LED Strip
Настроил свою подсветку на отображение предупреждений, индикацию поворотов/торможения и свечение синим цветом, когда ничего из этого нет.

Вкладка Blackbox
Blackbox - это “чёрный ящик” квадрокоптера. Нужен для диагностики, более точной настройки PID, а также чтобы можно было наложить инфографику на полётное видео (как тут). Данные пишутся на внешний логгер или, если того позволяет объём памяти, на внутреннюю память ПК. Например, у Naze32 Acro её недостаточно, а у Naze32 Deluxe и SPRacingF3 Acro - хватает, хотя и не намного. При настройках по умолчанию, на 2Мб памяти можно записать данные полёта продолжительностью 3-4 минуты, что весьма мало. Усугубляет ситуацию то, что реализовать запись “по кругу”, как в автомобильных регистраторах, здесь невозможно из-за низкой скорости чтения/записи памяти. Единственный вариант - уменьшить в несколько раз скорость записи. Для диагностики такие данные уже будут малопригодны, а для видео - самое то. В этой вкладке я сделал следующее:

  • Выбрал запись на внутреннюю память (опция “On-board dataflash chip”) в разделе “Blackbox logging device”.
  • В разделе “Portion of flight loop iterations to log” выбрал 50%, что по сути уменьшает скорость записи вдвое.

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

Вкладка CLI
CLI - это консоль, через которую можно менять уже более продвинутые настройки, а также делать резервную копию всех настроек. Я сделал следующее:

    set small_angle = 180 # Включить возможность армить моторы даже в перевёрнутом состоянии
    set vbat_pid_compensation = ON # Включить компенсацию PID при разрядке батареи
    save # Сохранить настройки

Также в Betaflight есть очень полезная возможность подключения к OSD через ПК. Теперь можно запрятать эту платку подальше, не беспокоясь, что к ней может понадобиться подключиться. Для подключения к плате OSD через ПК необходимо подключить батарею к квадрокоптеру, затем набрать в CLI команду serialpassthrough с необходимыми параметрами, затем отключить (Disconnect) Betaflight от ПК и запустить MWOSD. У меня получилось с первого раза. По поводу параметров, то для Micro MinimOSD, подключенной к UART2 (мой случай) они таковы:

serialpassthrough 1 115200

На этом настройка полётного контроллера закончена.

Настройка передатчика
Передатчик (он же “пульт”) каждый пилот настраивает индивидуально: таймеры, миксы, голосовые уведомления и прочее. Единственная вещь, сделать которую крайне желательно, это проверить минимальные, средние и максимальные значения стиков управления в конфигураторе. Делается это во вкладке Reciever. Идеальные значения составляют 1000 - 1500 - 2000. В моём случае они составляли 996 - 1508 - 2020, что не очень хорошо. Во-первых, “выпадения” за пределы диапазона (значения менее 1000 и более 2000) плохи сами по себе. Во-вторых, центральное положение, отличное от 1500, будет восприниматься ПК, как лёгкое подруливание, которое он будет отрабатывать и квадрокоптер постоянно будет сносить в какую-то сторону. Словом, имеет смысл повозиться и настроить “как надо”.
Как настроить эти значения на передатчике Taranis, показано здесь. У меня Turnigy 9XR PRO, там это делается в пункте Limits. Также можно выполнить настройку через программу eePskye (вкладка Limits), но это неудобно, так как результат сразу не видно в Betaflight Configurator. Сделать это необходимо для каждого из четырёх каналов управления.
После настройки центральные значения максимально приблизились к 1500, но у меня они начали “прыгать” примерно на 5 единиц в одну или другую сторону. Не знаю, с чем это связано, вероятно, значения пульта являются пограничными для ПК и после их округления получается такой эффект. Для решения этой проблемы в Betaflight (и CleanFlight тоже) есть специальная команда, настраивающая фильтрацию подобных вещей.

set deadband = 6

Значение может быть от 0 до 32 и с его повышением чувствительность управления снижается. Управление становится более мягким. Надо понимать, что после определённого порога мягкость превратится в ватность, поэтому для себя я выбирал минимальное значение, при котором дёрганья исчезли.

На этом всё, удачных полётов! Буду рад комментариям и замечаниям.

  • 20557
Comments
nppc

Отличная статья. Особенно понравилось, что вы хорошо объяснили Failsafe. И основные “подводные камни” тоже осветили! Спасибо! Думаю, в профильных ветках должно быть теперь вопросов меньше. 😃

segaru1

Нет слов!!!Просто огромное спасибо!Все понятным и русским языком.Наконец то про fs разобрался.Ну и за поправку дребезга канала на 1500 метке спасибо,будем попробовать.

cnyx

Нюанс в том, что, если на приёмнике установлен режим Pre-set Positions или Hold Last Position, то ПК даже не узнает, что произошла потеря сигнала.

Приемники, подключенные по sbus, в самом sbus могут передавать признак наступившего FS. При этом может быть и hold last и установка запрограммированных значений в каналах.

lentyay
cnyx;bt149096

Приемники, подключенные по sbus, в самом sbus могут передавать признак наступившего FS. При этом может быть и hold last и установка запрограммированных значений в каналах.

К сожалению, у меня на всех квадриках только CPPM, для S.bus надо модуль на аппе менять, а неохота.

Jentosik86

Огромное спасибо, как раз буду на днях заканчивать сборку и начинать настройку своего мелкого. Только вот есть небольшое недоумение, у меня мозги тарот назе 32,там все выводы к регулям и к приемнику имеют по одному проводу/пину. Я понимаю к регулям это еще допустимо, а к приемнику? Как это все без земли работать будет?

lentyay

С приёмником тоже допустимо, если вы PWM использовать будете. А если PPM или S.bus - всего 3 провода.

k0der

при подключении приемника по ppm (один провод) видит все каналы, но пищалка пищит

при подключении по pwm (много проводов) видит тоолько 5 каналов, то пищалка работает штатно

в чем проблема может быть?

cnyx

при подключении приемника по ppm (один провод) видит все каналы, но пищалка пищит

Что за пищалка? Ссылку давайте.

k0der

плата стоит на Eachine Racer 250 ARF.

при pwm все норм. моде отрабатывает нормально на пищалку

Барс2

не могу установить Betaflight Configurator в гугл хроме, при загрузке пишет-- произошла ошибка и закачка прирывается,может есть ссылка на скачаный Betaflight Configurator ,спасибо.

lentyay
Барс2;bt153548

не могу установить Betaflight Configurator в гугл хроме, при загрузке пишет-- произошла ошибка и закачка прирывается,может есть ссылка на скачаный Betaflight Configurator ,спасибо.

У меня точно нет. Может это поможет.

Барс2

Алексей ,спасибо большое за помощь.

Sachko

ПОЖАЙЛУСТА Помогите по вопросу запуска движков , всё как описано настроил, а арминг не проходит. Движки 2205 2300, регули blheli 20a- перепрошил на 14,9 настроил минимум и максимум 1108 1944, аппаратура футаба т8фг приёмник pwm подключен через ардуино нано в3 по ppm к мозгам f4 racing flight controller на betaflight 3.1.6 выставлен мин и макс газ в вкладке конфигуратион мин 1108, мах 1944, во вкладке ресивер все стики двигаются, всё настроил в вкладке модес, арм и галочку поставол в конфигуратион disarm motors aux, двигателя напрямую от приёмника стартуют и крутятся правдо както неравномерно какбы с рывками но это потом разберусь поновой как я понимаю надо подключаться на емах к регулям почемуто прошитые регули всеравно не видятся через полётник в blhelisuite , но вопрос в арминге движков что не делай и арм вкл и стик направо всеровно невключаются доже вкладка не загорается в модес что арм включен??? Помоготе пожайлуста!!