CleanFlight
Admin (обсуждение | вклад) (→Описание) |
Admin (обсуждение | вклад) (→Описание) |
||
| Строка 2: | Строка 2: | ||
[[Файл: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-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]]]] | [[Файл:Cleanflight-icon 128.png|thumb|Пиктограмма [[CleanFlight]]]] | ||
| − | [[CleanFlight]] - это программное обеспечение («прошивка») для полётных контроллеров, форк [[BaseFlight]] (который, в свою очередь, основан на коде [[MultiWii]]) | + | [[CleanFlight]] - это программное обеспечение («прошивка») для полётных контроллеров, форк [[BaseFlight]] (который, в свою очередь, основан на коде [[MultiWii]]). |
CleanFlight может использоваться в мультикоптерах и самолётах самых различных конфигураций с любым количеством моторов. CleanFlight реализован на открытой архитектуре, основанной на 32-битной версии оригинального кода 8-битного [[MultiWii]]. | CleanFlight может использоваться в мультикоптерах и самолётах самых различных конфигураций с любым количеством моторов. CleanFlight реализован на открытой архитектуре, основанной на 32-битной версии оригинального кода 8-битного [[MultiWii]]. | ||
| − | Поддерживаемые полётные контроллеры: [[Naze32]], [[Flip32]] (унаследовано от [[BaseFlight]]), также добавлена поддержка [[CC3D]]. | + | Поддерживаемые полётные контроллеры: [[Naze32]], [[Flip32]] (унаследовано от [[BaseFlight]]), также добавлена поддержка [[CC3D]]. Современные полётные контроллеры: [[Seriously Pro Racing F3]], [[TauLabs Sparky]] |
Есть поддержка протокола [[iBus]] - аналога [[S.BUS]], для передачи данных о 10 каналах с приёмника в полётный контроллер в цифровом виде по одному проводу. Это даёт уменьшение задержки и количества проводов, увеличение надёжности. | Есть поддержка протокола [[iBus]] - аналога [[S.BUS]], для передачи данных о 10 каналах с приёмника в полётный контроллер в цифровом виде по одному проводу. Это даёт уменьшение задержки и количества проводов, увеличение надёжности. | ||
| + | |||
| + | == Отличия от [[Baseflight]] == | ||
| + | * Более «чистый» код (видимо это и дало название '''Clean'''Flight) благодаря применению современных методов проектирования ПО. Поэтому, в частности, проще развивать проект и добавлять новые функции. В то время как [[Baseflight]], основанный на коде [[MultiWii]], долгое время разрабатывался с нарушением подходов к «правильному» программированию. | ||
| + | * Исправлено много ошибок, добавлено много новых возможностей. | ||
| + | * По мнению разработчиков, CleanFlight более надёжен, в том числе, за счёт тщательного автоматического тестирования ПО. | ||
| + | |||
| + | === Дополнительные возможности === | ||
| + | Список возможностей [[CleanFlight]], которых нет в [[Baseflight]]. | ||
| + | * Поддержка многоцветных светодиодных RGB-лент с чипом [[WS2811]], который позволяет зажечь каждый светодиод заданным цветом, используя его адрес. Это можно использовать для подсветки на лучах коптера (помогает определять расположение коптера в пространстве), для индикации разряда аккумулятора, для индикации [[Режимы полёта CleanFlight|режимов полётов]] и т.п. | ||
| + | * Поддержка регуляторов с функцией [[Oneshot125]]. | ||
| + | * Функция Blackbox («[[Чёрный ящик в CleanFlight|Чёрный ящик]]»), записывающая все параметры полёта либо во внутреннюю flash-память контроллера, либо на SD-карточку. | ||
| + | * Поддержка дополнительных возможностей процессоров [[STM32F3]] ([[Baseflight]] поддерживает только [[STM32F1]]). | ||
| + | * Поддержка полётных контроллеров: | ||
| + | ** [[Seriously Pro Racing F3]] (процессор [[STM32F303]], подключение датчиков на шину [[I2C]], большая flash-память). | ||
| + | ** [[TauLabs Sparky]] (процессор [[STM32F303]], подключение датчиков на шину [[I2C]], на плате уже присутствуют акселерометр, гироскоп, компас и барометр). | ||
| + | ** [[CC3D|OpenPilot CC3D]] (процессор [[STM32F103]], акселерометр/гироскоп [[SPI]]. | ||
| + | ** [[CJMCU nano]]. | ||
| + | * Поддержка плат разработки: [[Port103R]], [[EUSTM32F103RC]], [[Olimexino]], [[STM32F3Discovery]]. | ||
| + | * Приём более, чем 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 и т.п. | ||
== Настройка [[Теория настройки ПИД / PID|PID]] == | == Настройка [[Теория настройки ПИД / PID|PID]] == | ||
Версия 00:21, 25 марта 2016
Содержание |
Описание
CleanFlight - это программное обеспечение («прошивка») для полётных контроллеров, форк BaseFlight (который, в свою очередь, основан на коде MultiWii). 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).
- Поддержка полётных контроллеров:
- Seriously Pro Racing F3 (процессор STM32F303, подключение датчиков на шину I2C, большая flash-память).
- TauLabs Sparky (процессор STM32F303, подключение датчиков на шину I2C, на плате уже присутствуют акселерометр, гироскоп, компас и барометр).
- OpenPilot CC3D (процессор STM32F103, акселерометр/гироскоп SPI.
- CJMCU nano.
- Поддержка плат разработки: Port103R, EUSTM32F103RC, Olimexino, STM32F3Discovery.
- Приём более, чем 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 и т.п.
Настройка PID
См. подробное описание настройки ПИДов в Betaflight/Cleanflight.
Вкратце суть:
- Начинать со стоковых или сниженных настроек.
- Сначала поднимается P до начала осцилляций, находится максимальная точка, затем немного понижается до момента, когда осцилляции уйдут, но коптер будет отзывчив, стабилен на ветру и при подгазовках.
- Коэффициент I настраивается по принципу: если при спусках коптер раскачивает, и заданный угол со временем уплывает - нужно поднять значение, если медленная раскачка проявляется при добавлении газа - уменьшать.
- Значение D следует подбирать на основе того, как ведёт себя коптер по окончании поворота. Сделайте флип, или просто резкий поворот и смотрите на окончание маневра. Если коптер "пролетает" нужную точку а потом возвращается в неё, следует добавить D, пока не получится идеальной реакции. Если коптер слишком вялый и медленно завершает маневры - следует снизить. После повышения D можно попробовать вернуться в п.2 и уточнить значение P.
- Если при резкой подгазовке появляются осцилляции, но в висении и спокойном полёте такого нет - стоит добавить TPA. Точка начала подбирается чуть ниже уровня газа, с которого начинается дёрганье, коэффициент подстраивается экспериментально, чтобы при большом уровне газа не было осцилляций, но сохранялась стабильность.
См. также общую теорию настройки PID-регулятора.
FAQ
Что такое Quaternion-based DCM IMU
Более "правильный" способ вычисления (и представления) ориентации коптера в пространстве, основанный на кватернионах. По идее должно повысить точность (особенно в "крайних" случаях). [1]
Ссылки
- Скачать свежую прошивку (CleanFlight на гитхабе)
- Оригинальная документация на гитхабе (англ.), Краткая аннотация
- Инструкция по установке прошивки CleanFlight на контроллер Naze32 и настройке. (англ.)
- Официальный сайт
- Форк от CleanFlight на гитхабе
См. также
- BlackBox - «чёрный ящик» в прошивке CleanFlight для удобной настройки PID.
- BaseFlight
- BetaFlight
- Harakiri