CleanFlight

Материал из Multicopter Wiki
(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «Cleanflight это форк Baseflight, который основан на MultiWii.»)
 
(Отмена правки 10507 участника 193.93.231.231 (обсуждение))
 
(не показаны 39 промежуточных версий 5 участников)
Строка 1: Строка 1:
[[Cleanflight]] это форк [[Baseflight]], который основан на [[MultiWii]].
+
== Описание ==
 +
[[Файл:Cleanflight-logo-light-wide-1-240px.jpg|thumb|Логотип [[CleanFlight]] ([http://multicopterwiki.ru/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:Cleanflight-logo-light-wide-1-240px-transparent.png PNG])]]
 +
[[Файл:Cleanflight-icon 128.png|thumb|Пиктограмма [[CleanFlight Configurator]]]]
 +
[[CleanFlight]] - это программное обеспечение («прошивка») для полётных контроллеров, ответвление (форк) от [[BaseFlight]] (который основан на коде [[MultiWii]]). В свою очередь, благодаря открытому коду CleanFlight, у этой прошивки есть несколько форков, самым интересный из которых - [[BetaFlight]] от человека под ником [[Boris B]].
 +
 
 +
Пожалуй, самая популярная на середину 2016 года прошивка для [[FPV-миникоптеры|гоночных мини-коптеров]]. После её установки достаточно только настроить протокол приёмника и квадрокоптер уже может вполне сносно лететь. Для настройки используется графическая оболочка [[CleanFlight Configurator]], работающая как приложение в браузере Chrome.
 +
 
 +
CleanFlight может использоваться в мультикоптерах и самолётах самых различных конфигураций с любым количеством моторов. CleanFlight реализован на открытой архитектуре, основанной на 32-битной версии оригинального кода 8-битного [[MultiWii]].
 +
 
 +
Поддерживаемые полётные контроллеры: [[Naze32]], [[Flip32]] (унаследовано от [[BaseFlight]]), также добавлена поддержка [[CC3D]]. Современные полётные контроллеры: [[Seriously Pro Racing F3]], [[TauLabs Sparky]]
 +
 
 +
Есть поддержка протокола [[iBus]] - аналога [[S.BUS]], для передачи данных о 10 каналах с приёмника в полётный контроллер в цифровом виде по одному проводу. Это даёт уменьшение задержки и количества проводов, увеличение надёжности.
 +
 
 +
== Отличия от [[Baseflight]] ==
 +
* Более «чистый» код (видимо это и дало название '''Clean'''Flight) благодаря применению современных методов проектирования ПО. Поэтому, в частности, проще развивать проект и добавлять новые функции. В то время как [[Baseflight]], основанный на коде [[MultiWii]], долгое время разрабатывался с нарушением подходов к «правильному» программированию.
 +
* Исправлено много ошибок, добавлено много новых возможностей.
 +
* По мнению разработчиков, CleanFlight более надёжен, в том числе, за счёт тщательного автоматического тестирования ПО.
 +
 
 +
=== Дополнительные возможности ===
 +
Список возможностей [[CleanFlight]], которых нет в [[Baseflight]].
 +
* Поддержка многоцветных светодиодных RGB-лент с чипом [[WS2811]], который позволяет зажечь каждый светодиод заданным цветом, используя его адрес. Это можно использовать для подсветки на лучах коптера (помогает определять расположение коптера в пространстве), для индикации разряда аккумулятора, для индикации [[Режимы полёта CleanFlight|режимов полётов]] и т.п.
 +
* Поддержка регуляторов с функцией [[Oneshot125]].
 +
* Функция [[BlackBox]] («чёрный ящик»), записывающая все параметры полёта либо во внутреннюю flash-память контроллера, либо на SD-карточку.
 +
* Поддержка дополнительных возможностей процессоров серии [[STM32F3]] ([[Baseflight]] поддерживает только серию [[STM32F1]]).
 +
* Приём более, чем 8 каналов радиоуправления (например, при подключении к приёмнику [http://rcsearch.ru/wiki/FrSky_X4RSB FrSky X4RSB] по шине [[SBus]] - 16 каналов).
 +
* Возможность использования переключателя режимов на пульте управления с любым количеством позиций путём гибкого задания диапазонов управляющего сигнала. (В [[Baseflight]] можно использовать только 3-позиционный переключатель, а в [[MultiWii]] - либо 3 либо 6).
 +
* Новый [[Теория_настройки_ПИД_(PID)|PID]]-контроллер '''Lux''' (вдобавок к оригинальному из [[MultiWii]]), во внутренних вычислениях оперирующий числами с плавающей запятой и устойчивый к изменению времени выполнения цикла вычислений (учитывающий его в интегральных вычислениях). Возможность [[Настройка ПИДов в Betaflight/Cleanflight|регулировать ПИД-параметры]] во время полёта.
 +
* Возможность одновременного подключения Bluetooth-модуля и [[OSD]].
 +
* Улучшенная обработка входных сигналов [[PWM]] и [[PPM]], а также определение [http://rcsearch.ru/wiki/Fail_Safe FailSafe].
 +
* Телеметрия:
 +
** Улучшенная работа с телеметрией FrSky.
 +
** Телеметрия [[LTM]].
 +
** Телеметрия [[Smartport]].
 +
** Телеметрия [[Graupner HoTT]].
 +
** Возможность использования нескольких каналов телеметрии.
 +
* Поддержка [http://rcsearch.ru/wiki/Fail_Safe FailSafe] при подключении приёмников [[Graupner]] по [[PPM]].
 +
* Возможность получения [[RSSI]] [[PWM]]-сигналов через [[ADC]] (проверено с приёмниками [http://rcsearch.ru/wiki/FrSky_D4R-II FrSky D4R-II] and [http://rcsearch.ru/wiki/FrSky_X8R X8R]).
 +
* Возможность подключения жидкокристаллических OLED-дисплеев для вывода на них такой информации, как напряжение батареи, текущий профиль, версию, информацию от датчиков, сигналы радиоуправления и т.п.
 +
* Возможность смены рейтов (Rate) во время полёта.
 +
* Гибкая настройка последовательных портов для подключения различного оборудования: приёмников радиоуправления по [[PPM]], телеметрии, GPS и т.п.
 +
 
 +
== Список поддерживаемых контроллеров ==
 +
<htmlet>adsense300x250</htmlet>
 +
В целом CleanFlight поддерживает контроллеры на основе процессоров серий [[STM32F303]] и более ранней [[STM32F103]]. Ядро написано с максимальной абстракцией от «железа» для возможностьи портировать CleanFlight на контроллеры с другими процессорами.
 +
 
 +
Чтобы получить все возможности Cleanflight, рекомендуется использовать контроллеры на основе процессора [[STM32 F3]] с flash-памятью не менее 256Кб. Меньшее количество памяти могут ограничить количество функций.
 +
 
 +
Платы с пометкой Revo и Quantum имеют процессор [[STM32 F4]], для них требуется другая прошивка.
 +
 
 +
Все контроллеры имеют свои плюсы и минусы. При выборе важно проверить, имеет ли плата достаточное количество последовательных портов и контактов ввода/вывода для оборудования, которое вы хотите использовать, и что их можно использовать одновременно. На некоторых платах это взаимоисключающие возможности.
 +
 
 +
=== Рекомендованные полётные контроллеры ===
 +
* [[Seriously Pro Racing F3]] (процессор [[STM32F303]], подключение датчиков на шину [[I2C]], большая flash-память).
 +
* [[Seriously Pro Racing F3 Mini]]
 +
* [[TBS Colibri Race]]
 +
* [[AlienWii F3]]
 +
* [[TauLabs Sparky]] (процессор [[STM32F303]], подключение датчиков на шину [[I2C]], на плате уже присутствуют акселерометр, гироскоп, компас и барометр).
 +
 
 +
=== Поддерживаемые контроллеры предыдущего поколения ===
 +
* [[CC3D|OpenPilot CC3D]] (процессор [[STM32F103]], акселерометр/гироскоп [[SPI]]).
 +
* [[CJMCU nano]]
 +
* [[AlienWii32]]
 +
* [[Flip32+]]
 +
* [[AbuseMark Naze32]]
 +
* [[RMRC Dodo]]
 +
 
 +
=== Платы разработки ===
 +
* [[Port103R]]
 +
* [[EUSTM32F103RC]]
 +
* [[Olimexino]]
 +
* [[STM32F3Discovery]]
 +
 
 +
== Настройка ==
 +
=== [[Арминг]] двумя переключателями ===
 +
[[Файл:CFconf.png|thumb|]]
 +
У [[Арминг#Арминг переключателем|арминга переключателем]] есть как преимущества, так и недостатки. Но полётный контроллер с прошивкой CleanFlight позволяет эффективно решить все проблемы.
 +
 
 +
Особенности арминга двумя переключателями:
 +
* обеспечивается двойная защита от несанкционированного арминга (коптер заармится только если оба переключателя включены).
 +
* при посадке коптера легко дизармить его в нескольких сантиметрах от земли: перед посадкой, находясь на любых комфортных высоте и расстоянии, нужно выключить один из переключателей, а на минимальной высоте непосредственно перед посадкой - выключить второй или просто убрать газ в 0, а перед тем, как взять коптер в руки - в любом случае выключить оба переключателя.
 +
* если случайно задеть один из переключателей, то, хотя и будет послан сигнал выключения режима ARM, но коптер будет продолжать лететь до тех пор, пока газ не будет убран в 0.
 +
* для дизарма коптера в экстренном случае (не зависимо от ручки газа) нужно просто выключить их оба одним движением - ладонью.
 +
 
 +
Порядок настройки:
 +
 
 +
1. Настроить два переключателя на пульте управления. Один должен действовать на канал газа: в выключенном положении канал газа всегда -100%, во включенном - канал газа как обычно зависит от положения стика газа; другой - просто передавать на отдельный канал -100% или +100%. К примеру, в [http://rcsearch.ru/wiki/Turnigy_9x Turnigy_9x]] это могут быть переключатели Throttle Cut (далее по тексту - Thr) и Rudder D/R (далее - Rud).
 +
 
 +
2. В настройках коптера параметр выключить disarm_kill_switch:
 +
set disarm_kill_switch = OFF
 +
save
 +
 
 +
В итоге, два переключателя работают следующим образом:
 +
* Thr и Rud выключены - коптер задизармен, канал газа в нуле независимо от положения ручки газа (режим ARM не активен)
 +
* Thr или Rud включен - коптер задизармен, но канал газа теперь реагирует на ручку газа (режим ARM не активен)
 +
* Thr и Rud оба включены - коптер заармлен (режим ARM активирован)
 +
 
 +
=== Настройка [[Теория настройки ПИД / PID|PID]] ===
 +
<htmlet>adsense300x250</htmlet>
 +
См. [[Настройка ПИДов в Betaflight/Cleanflight|подробное описание настройки ПИДов в Betaflight/Cleanflight]].
 +
 
 +
Вкратце суть:
 +
# Начинать со стоковых или сниженных настроек.
 +
# Сначала поднимается '''P''' до начала осцилляций, находится максимальная точка, затем немного понижается до момента, когда осцилляции уйдут, но коптер будет отзывчив, стабилен на ветру и при подгазовках.
 +
# Коэффициент '''I''' настраивается по принципу: если при спусках коптер раскачивает, и заданный угол со временем уплывает - нужно поднять значение, если медленная раскачка проявляется при добавлении газа - уменьшать.
 +
# Значение '''D''' следует подбирать на основе того, как ведёт себя коптер по окончании поворота. Сделайте флип, или просто резкий поворот и смотрите на окончание маневра. Если коптер "пролетает" нужную точку а потом возвращается в неё, следует добавить '''D''', пока не получится идеальной реакции. Если коптер слишком вялый и медленно завершает маневры - следует снизить. После повышения D можно попробовать вернуться в п.2 и уточнить значение '''P'''.
 +
# Если при резкой подгазовке появляются осцилляции, но в висении и спокойном полёте такого нет - стоит добавить '''TPA'''. Точка начала подбирается чуть ниже уровня газа, с которого начинается дёрганье, коэффициент подстраивается экспериментально, чтобы при большом уровне газа не было осцилляций, но сохранялась стабильность.
 +
 
 +
См. также [[Теория настройки ПИД / PID|общую теорию настройки PID-регулятора]].
 +
 
 +
== FAQ ==
 +
=== Что такое Quaternion-based DCM IMU ===
 +
Более "правильный" способ вычисления (и представления) ориентации коптера в пространстве, основанный на кватернионах. По идее должно повысить точность (особенно в "крайних" случаях). [https://github.com/borisbstyle/betaflight/pull/23]
 +
=== Как включить SBUS в Cleanflight ===
 +
См. статью: http://rcsearch.ru/live/blog/multicopter/351.html
 +
 
 +
{{Cleanflight: как сохранить все настройки в файл}}
 +
 
 +
== Ссылки ==
 +
* [https://github.com/cleanflight/cleanflight/releases/latest Скачать свежую прошивку]
 +
* [https://github.com/cleanflight/cleanflight/releases Список всех прошивок]
 +
* [https://github.com/cleanflight/cleanflight/tree/master/docs Оригинальная документация] на гитхабе ''(англ.)'', [https://github.com/cleanflight/cleanflight/tree/master Краткая аннотация]
 +
* [http://blog.oscarliang.net/cleanflight-naze32-setup/ Инструкция по установке прошивки CleanFlight] на контроллер [[Naze32]] и настройке. ''(англ.)''
 +
* [http://cleanflight.com/ Официальный сайт]
 +
* [https://github.com/cleanflight/ CleanFlight на гитхабе]
 +
* [[CleanFlight Configurator]] - программное обеспечение для настройки полётных контроллеров, работающих на прошивке [[CleanFlight]].
 +
* [[BlackBox]] - «чёрный ящик» в прошивке [[CleanFlight]] для удобной настройки [[Теория настройки ПИД / PID|PID]].
 +
* [https://www.iforce2d.net/mixercalc/ Калькулятор миксов] для [[MultiWii]]/[[Cleanflight]]/[[Baseflight]]
 +
 
 +
== См. также ==
 +
* [https://github.com/hydra/cleanflight Форк от CleanFlight] на гитхабе
 +
* [[BaseFlight]]
 +
* [[BetaFlight]]
 +
* [[Harakiri]]

Текущая версия на 09:38, 25 марта 2021

Содержание

Описание [править]

Логотип CleanFlight (PNG)
Пиктограмма CleanFlight Configurator

CleanFlight - это программное обеспечение («прошивка») для полётных контроллеров, ответвление (форк) от BaseFlight (который основан на коде MultiWii). В свою очередь, благодаря открытому коду CleanFlight, у этой прошивки есть несколько форков, самым интересный из которых - BetaFlight от человека под ником Boris B.

Пожалуй, самая популярная на середину 2016 года прошивка для гоночных мини-коптеров. После её установки достаточно только настроить протокол приёмника и квадрокоптер уже может вполне сносно лететь. Для настройки используется графическая оболочка CleanFlight Configurator, работающая как приложение в браузере Chrome.

CleanFlight может использоваться в мультикоптерах и самолётах самых различных конфигураций с любым количеством моторов. CleanFlight реализован на открытой архитектуре, основанной на 32-битной версии оригинального кода 8-битного MultiWii.

Поддерживаемые полётные контроллеры: Naze32, Flip32 (унаследовано от BaseFlight), также добавлена поддержка CC3D. Современные полётные контроллеры: Seriously Pro Racing F3, TauLabs Sparky

Есть поддержка протокола iBus - аналога S.BUS, для передачи данных о 10 каналах с приёмника в полётный контроллер в цифровом виде по одному проводу. Это даёт уменьшение задержки и количества проводов, увеличение надёжности.

Отличия от Baseflight [править]

  • Более «чистый» код (видимо это и дало название CleanFlight) благодаря применению современных методов проектирования ПО. Поэтому, в частности, проще развивать проект и добавлять новые функции. В то время как Baseflight, основанный на коде MultiWii, долгое время разрабатывался с нарушением подходов к «правильному» программированию.
  • Исправлено много ошибок, добавлено много новых возможностей.
  • По мнению разработчиков, CleanFlight более надёжен, в том числе, за счёт тщательного автоматического тестирования ПО.

Дополнительные возможности [править]

Список возможностей CleanFlight, которых нет в Baseflight.

  • Поддержка многоцветных светодиодных RGB-лент с чипом WS2811, который позволяет зажечь каждый светодиод заданным цветом, используя его адрес. Это можно использовать для подсветки на лучах коптера (помогает определять расположение коптера в пространстве), для индикации разряда аккумулятора, для индикации режимов полётов и т.п.
  • Поддержка регуляторов с функцией Oneshot125.
  • Функция BlackBox («чёрный ящик»), записывающая все параметры полёта либо во внутреннюю flash-память контроллера, либо на SD-карточку.
  • Поддержка дополнительных возможностей процессоров серии STM32F3 (Baseflight поддерживает только серию STM32F1).
  • Приём более, чем 8 каналов радиоуправления (например, при подключении к приёмнику FrSky X4RSB по шине SBus - 16 каналов).
  • Возможность использования переключателя режимов на пульте управления с любым количеством позиций путём гибкого задания диапазонов управляющего сигнала. (В Baseflight можно использовать только 3-позиционный переключатель, а в MultiWii - либо 3 либо 6).
  • Новый PID-контроллер Lux (вдобавок к оригинальному из MultiWii), во внутренних вычислениях оперирующий числами с плавающей запятой и устойчивый к изменению времени выполнения цикла вычислений (учитывающий его в интегральных вычислениях). Возможность регулировать ПИД-параметры во время полёта.
  • Возможность одновременного подключения Bluetooth-модуля и OSD.
  • Улучшенная обработка входных сигналов PWM и PPM, а также определение FailSafe.
  • Телеметрия:
    • Улучшенная работа с телеметрией FrSky.
    • Телеметрия LTM.
    • Телеметрия Smartport.
    • Телеметрия Graupner HoTT.
    • Возможность использования нескольких каналов телеметрии.
  • Поддержка FailSafe при подключении приёмников Graupner по PPM.
  • Возможность получения RSSI PWM-сигналов через ADC (проверено с приёмниками FrSky D4R-II and X8R).
  • Возможность подключения жидкокристаллических OLED-дисплеев для вывода на них такой информации, как напряжение батареи, текущий профиль, версию, информацию от датчиков, сигналы радиоуправления и т.п.
  • Возможность смены рейтов (Rate) во время полёта.
  • Гибкая настройка последовательных портов для подключения различного оборудования: приёмников радиоуправления по PPM, телеметрии, GPS и т.п.

Список поддерживаемых контроллеров [править]

В целом CleanFlight поддерживает контроллеры на основе процессоров серий STM32F303 и более ранней STM32F103. Ядро написано с максимальной абстракцией от «железа» для возможностьи портировать CleanFlight на контроллеры с другими процессорами.

Чтобы получить все возможности Cleanflight, рекомендуется использовать контроллеры на основе процессора STM32 F3 с flash-памятью не менее 256Кб. Меньшее количество памяти могут ограничить количество функций.

Платы с пометкой Revo и Quantum имеют процессор STM32 F4, для них требуется другая прошивка.

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

Рекомендованные полётные контроллеры [править]

Поддерживаемые контроллеры предыдущего поколения [править]

Платы разработки [править]

Настройка [править]

Арминг двумя переключателями [править]

CFconf.png

У арминга переключателем есть как преимущества, так и недостатки. Но полётный контроллер с прошивкой CleanFlight позволяет эффективно решить все проблемы.

Особенности арминга двумя переключателями:

  • обеспечивается двойная защита от несанкционированного арминга (коптер заармится только если оба переключателя включены).
  • при посадке коптера легко дизармить его в нескольких сантиметрах от земли: перед посадкой, находясь на любых комфортных высоте и расстоянии, нужно выключить один из переключателей, а на минимальной высоте непосредственно перед посадкой - выключить второй или просто убрать газ в 0, а перед тем, как взять коптер в руки - в любом случае выключить оба переключателя.
  • если случайно задеть один из переключателей, то, хотя и будет послан сигнал выключения режима ARM, но коптер будет продолжать лететь до тех пор, пока газ не будет убран в 0.
  • для дизарма коптера в экстренном случае (не зависимо от ручки газа) нужно просто выключить их оба одним движением - ладонью.

Порядок настройки:

1. Настроить два переключателя на пульте управления. Один должен действовать на канал газа: в выключенном положении канал газа всегда -100%, во включенном - канал газа как обычно зависит от положения стика газа; другой - просто передавать на отдельный канал -100% или +100%. К примеру, в Turnigy_9x] это могут быть переключатели Throttle Cut (далее по тексту - Thr) и Rudder D/R (далее - Rud).

2. В настройках коптера параметр выключить disarm_kill_switch:

set disarm_kill_switch = OFF
save

В итоге, два переключателя работают следующим образом:

  • Thr и Rud выключены - коптер задизармен, канал газа в нуле независимо от положения ручки газа (режим ARM не активен)
  • Thr или Rud включен - коптер задизармен, но канал газа теперь реагирует на ручку газа (режим ARM не активен)
  • Thr и Rud оба включены - коптер заармлен (режим ARM активирован)

Настройка PID [править]

См. подробное описание настройки ПИДов в Betaflight/Cleanflight.

Вкратце суть:

  1. Начинать со стоковых или сниженных настроек.
  2. Сначала поднимается P до начала осцилляций, находится максимальная точка, затем немного понижается до момента, когда осцилляции уйдут, но коптер будет отзывчив, стабилен на ветру и при подгазовках.
  3. Коэффициент I настраивается по принципу: если при спусках коптер раскачивает, и заданный угол со временем уплывает - нужно поднять значение, если медленная раскачка проявляется при добавлении газа - уменьшать.
  4. Значение D следует подбирать на основе того, как ведёт себя коптер по окончании поворота. Сделайте флип, или просто резкий поворот и смотрите на окончание маневра. Если коптер "пролетает" нужную точку а потом возвращается в неё, следует добавить D, пока не получится идеальной реакции. Если коптер слишком вялый и медленно завершает маневры - следует снизить. После повышения D можно попробовать вернуться в п.2 и уточнить значение P.
  5. Если при резкой подгазовке появляются осцилляции, но в висении и спокойном полёте такого нет - стоит добавить TPA. Точка начала подбирается чуть ниже уровня газа, с которого начинается дёрганье, коэффициент подстраивается экспериментально, чтобы при большом уровне газа не было осцилляций, но сохранялась стабильность.

См. также общую теорию настройки PID-регулятора.

FAQ [править]

Что такое Quaternion-based DCM IMU [править]

Более "правильный" способ вычисления (и представления) ориентации коптера в пространстве, основанный на кватернионах. По идее должно повысить точность (особенно в "крайних" случаях). [1]

Как включить SBUS в Cleanflight [править]

См. статью: http://rcsearch.ru/live/blog/multicopter/351.html

Как сохранить все настройки в файл [править]

Можно ВСЕ настройки сохранить в конфиг-файл, чтобы по-быстрому накатить их при необходимости.

Более того, при установке новой версии прошивки (Cleanflight или Betaflight), настройки всегда лучше затирать (FULL CHIP ERASE) и потом накатывать по новой.

Если используется только один профиль, то достаточно в терминалке (вкладка CLI) выполнить команду:

dump

Чтобы сохранить данные из всех профилей, следует использовать такую последовательность команд:

profile 0
dump
profile 1
dump profile
dump rates
profile 2
dump profile
dump rates
profile 0

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

Ссылки [править]

См. также [править]

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты
Группа ВКонтакте