Микшер / Mixer (Betaflight Advanced)
Betaflight поддерживает несколько встроенных конфигураций микширования, а также пользовательское микширование. Конфигурации микшера определяют, как сервоприводы и моторы взаимодействуют для управления летательным аппаратом.
Конфигурация
Чтобы использовать встроенную конфигурацию микширования, воспользуйтесь Приложением Betaflight. Оно включает изображения типов микшеров для помощи в правильном подключении.
Вы также можете использовать Командный Интерфейс (CLI) для установки типа микшера:
- Используйте
mixer list, чтобы увидеть список поддерживаемых микшеров. - Выберите микшер. Например, чтобы выбрать TRI, используйте
mixer TRI. - Вы должны использовать команду
save, чтобы сохранить изменения.
Поддерживаемые типы микшеров
зависит от применяемого полетного контроллера
| Название | Описание | Моторы | Сервоприводы |
|---|---|---|---|
| TRI | Трикоптер | M1-M3 | S1 |
| QUADP | Квадрокоптер-Плюс (Plus) | M1-M4 | Нет |
| QUADX | Квадрокоптер-X | M1-M4 | Нет |
| BI | Бикоптер (левый/правый) | M1-M2 | S1, S2 |
| GIMBAL | Управление камерной подвеской (гимбалом) | N/A | S1, S2 |
| Y6 | Y6-коптер | M1-M6 | Нет |
| HEX6 | Гексакоптер-Плюс (Plus) | M1-M6 | Нет |
| FLYING_WING | Летающее крыло; элевонное управление | M1 | S1, S2 |
| Y4 | Y4-коптер | M1-M4 | Нет |
| HEX6X | Гексакоптер-X | M1-M6 | Нет |
| OCTOX8 | Октокоптер-X (один над другим) | M1-M8 | Нет |
| OCTOFLATP | Октокоптер-ПлоскийПлюс (Flat Plus) | M1-M8 | Нет |
| OCTOFLATX | Октокоптер-ПлоскийX (Flat X) | M1-M8 | Нет |
| AIRPLANE | Самолет; управление по 2 осям, Руль, Элерон/Высота | M1 | S1, S2, S3, S4 |
| HELI_120_CCPM | Вертолет с возможностью 3D | M1 | S1, S2, S3, S4 |
| HELI_90_DEG | |||
| VTAIL4 | Квадрокоптер с V-образным хвостом | M1-M4 | N/A |
| HEX6H | Гексакоптер-H | M1-M6 | Нет |
| PPM_TO_SERVO | |||
| DUALCOPTER | Двухвинтовой коптер (дукоптер) | M1-M2 | S1, S2 |
| SINGLECOPTER | Классический вертолет | M1 | S1 |
| ATAIL4 | Квадрокоптер с A-образным хвостом | M1-M4 | N/A |
| CUSTOM | Пользовательский | ||
| CUSTOM AIRPLANE | Пользовательский самолет | M1-M2 | S1-S8 |
| CUSTOM TRICOPTER | Пользовательский трикоптер |
Примечание:
В прошивке 2025.12 модель микшера CUSTOM AIRPLANE теперь требует как минимум один мотор.
Конфигурация сервоприводов
Команда CLI servo определяет настройки для выходов сервоприводов. Команда CLI mixer smix управляет тем, как микшер сопоставляет внутренние данные полетного контроллера (входной сигнал с пульта, выход стабилизации PID, пересылка каналов и т.д.) с выходами сервоприводов.
Проброс каналов (Channel Forwarding)
Проброс каналов позволяет перенаправлять AUX-каналы на сервоприводы через PWM-выходы. Активируйте эту функцию в Приложении Betaflight (вкладка "Features") или через CLI с помощью feature CHANNEL_FORWARDING.
cli servo
servo <min> <max> <middle> <angleMin> <angleMax> <rate> <forwardFromChannel>
- <min>, <max> - ограничивают ход сервопривода, в микросекундах (мкс).
- <middle> - среднее значение, когда пересылка не активна; значение от микшера сервоприводов добавляется к этому.
- <angleMin>, <angleMax> - не используются.
- <rate> - коэффициент масштабирования для значения от микшера сервоприводов или входа гимбала, от -100% до 100%.
- <forwardFromChannel> - использовать значение RC-канала в качестве опорного вместо <middle>. Сервопривод будет следовать за заданным RC-каналом, с возможной коррекцией от микшера сервоприводов. Ограничения <min>, <max> все еще применяются.
Фильтрация сервоприводов
Для сервоприводов можно включить фильтр низких частот. Это может быть полезно, например, для избежания структурных резонансов в конструкции аппарата.
Конфигурация
В настоящее время это можно настроить только через CLI:
- Используйте
set servo_lowpass_freq = nnnдля выбора частоты среза. Допустимые значения от 10 Гц до 400 Гц, используется фильтр второго порядка. - Используйте
set servo_lowpass_enable = ONдля включения фильтрации.
Настройка (Тюнинг)
Один из методов настройки частоты среза фильтра следующий:
- Убедитесь, что ваш аппарат может свободно двигаться хотя бы в некоторой степени по проблемной оси. Например, если у вас возникают колебания по рысканью на трикоптере, убедитесь, что коптер подвешен так, чтобы он мог вращаться влево-вправо хотя бы немного. Подвес вблизи ЦТ (центра тяжести) был бы идеален. Альтернативно, вы можете просто летать и вызывать проблемное состояние, которое пытаетесь устранить, хотя настройка будет более утомительной.
- Легко ударьте по концу аппарата вдоль исследуемой оси. Также можно использовать прямое управление сервоприводом для его движения. В примере с трикоптером, ударьте сбоку по концу хвостовой балки или инициируйте рыскание с помощью аппаратуры управления.
- Если ваш аппарат колеблется в течение нескольких секунд или даже продолжает колебаться бесконечно, то частоту среза фильтра следует уменьшить. Уменьшите значение
servo_lowpass_freqвдвое от текущего и повторите предыдущий шаг. - Если колебания затухают примерно в течение секунды или больше не возникают, то настройка завершена. Не забудьте выполнить
save.
Пользовательское микширование моторов
Пользовательское микширование моторов позволяет полностью настроить конфигурацию моторов. Каждый мотор должен быть определен с помощью пользовательской таблицы микширования для этого мотора. Смесь должна отражать, насколько близко каждый мотор находится к ЦТ (Центру Тяжести) полетного контроллера. Мотор, расположенный ближе к ЦТ полетного контроллера, должен будет пройти меньшее расстояние, чем мотор, расположенный дальше.
Шаги для настройки пользовательского микшера в CLI:
- Используйте
mixer custom, чтобы включить пользовательское микширование. - Используйте
mmix reset, чтобы стереть любую существующую пользовательскую смесь. - Опционально используйте
mmix load <name>, чтобы начать с одного из доступных микшеров. - Введите команду
mmixдля каждого мотора.
Команда mmix имеет следующий синтаксис:
mmix n THROTTLE ROLL PITCH YAW
| Параметр таблицы микширования | Определение |
|---|---|
| n | Порядковый номер мотора |
| THROTTLE | Показывает, какая часть газа смешивается для этого мотора. Все значения в текущих конфигурациях установлены на 1.0 (полное смешение газа), но могут использоваться другие ненулевые значения. Неиспользуемые устанавливаются в 0.0. |
| ROLL | Показывает, какое влияние на крен имеет этот мотор. Принимает значения в диапазоне от -1.0 до 1.0. |
| PITCH | Показывает влияние этого мотора на тангаж. Также принимает значения в диапазоне от -1.0 до 1.0. |
| YAW | Показывает направление вращения мотора относительно полетного контроллера. 1.0 = против часовой (CCW), -1.0 = по часовой (CW). |
Примечание: Команда mmix может показывать смесь моторов, которая не активна; пользовательские смеси моторов активны только для моделей, которые используют пользовательские микшеры.
Примечание: Вы должны настроить каждый номер мотора, начиная с 0. Ваша команда будет проигнорирована, если не было команды mmix для предыдущего номера мотора (микшер останавливается на первом значении THROTTLE, равном нулю). См. пример 5.
Пользовательское микширование сервоприводов
Пользовательские правила микширования могут быть применены к каждому сервоприводу. Правила применяются в порядке их определения.
smix
Выводит текущий микшер сервоприводов.
Примечание: Команда smix может показывать смесь сервоприводов, которая не активна; пользовательские смеси сервоприводов активны только для моделей, которые используют пользовательские микшеры.
smix reset
Стирает пользовательский микшер. Реверс сервоприводов в ТЕКУЩЕМ профиле ТОЛЬКО также стирается.
smix load <name>
Загружает сервоприводную часть заданной конфигурации (<name> из списка микшеров).
smix <rule> <servo> <source> <rate> <speed> <min> <max> <box>
- <rule> - индекс правила, используется в основном для ведения учета. Правила применяются в этом порядке, но в текущем коде порядок не влияет на результат.
- <servo>
Только некоторые каналыid Сервопривод / Канал 0 GIMBAL PITCH (Гимбал Тангаж) 1 GIMBAL ROLL (Гимбал Крен) 2 ELEVATOR / SINGLECOPTER_4 (Руль высоты) 3 FLAPPERON 1 (LEFT) / SINGLECOPTER_1 (Элерон-закрылок 1 (Левый)) 4 FLAPPERON 2 (RIGHT) / BICOPTER_LEFT / DUALCOPTER_LEFT / SINGLECOPTER_2 (Элерон-закрылок 2 (Правый)) 5 RUDDER / BICOPTER_RIGHT / DUALCOPTER_RIGHT / SINGLECOPTER_3 (Руль направления) 6 THROTTLE (Только на основе выхода первого мотора) 7 FLAPS (Закрылки) <servo>подключены к выходу, в зависимости от режима. Для пользовательских режимов:- RUDDER для
CUSTOM_TRI - ELEVATOR ... FLAPS для
CUSTOM_AIRPLANE - нет сервоприводов для
CUSTOM - Обработка GIMBAL жестко прописана в коде, правило
mmixигнорируется.
- RUDDER для
- <source>
Стабилизированный ROLL/PITCH/YAW берется напрямую из команды RC, когда включен режим PASSTHRU.id Входные источники 0 Стабилизированный ROLL (Крен) 1 Стабилизированный PITCH (Тангаж) 2 Стабилизированный YAW (Рыскание) 3 Стабилизированный THROTTLE (Газ) (ТОЛЬКО выход первого мотора) 4 RC ROLL (Крен с пульта) 5 RC PITCH (Тангаж с пульта) 6 RC YAW (Рыскание с пульта) 7 RC THROTTLE (Газ с пульта) 8 RC AUX 1 9 RC AUX 2 10 RC AUX 3 11 RC AUX 4 12 GIMBAL PITCH (Тангаж гимбала) 13 GIMBAL ROLL (Крен гимбала) - <rate> - используется для масштабирования
<source>, допускается от -100% до 100%. Примечание: может быть применен реверс сервопривода, см. ниже. Нулевое значение<rate>завершит таблицуsmix. - <speed> - ограничит скорость изменения
<source>, если значение не равно нулю. Эта скорость учитывается для каждого правила, так что вы можете ограничить только некоторые источники. Значение - максимальное изменение значения за цикл (1 мс при конфигурации по умолчанию). - <min> <max> - Значение в процентах от полного диапазона сервопривода. Для симметричных ограничений сервопривода (равное расстояние между серединой и мин/макс), 0% - это минимум сервопривода, 50% - центр сервопривода, 100% - максимальное положение сервопривода. Когда среднее положение асимметрично, пределы 0% и 100% будут смещены.
- <box> - правило будет применено только когда
<box>равен нулю или соответствующий режим SERVOx включен.
smix reverse
Выводит текущую конфигурацию реверса сервоприводов.
smix reverse <servo> <source> r|n
Каждый <source> может быть реверсирован (r) или установлен в нормальный режим (n) для заданного <servo>. Это почти эквивалентно использованию отрицательного <rate> в заданном правиле, но ограничения <min>, <max> применяются к значению до реверса. smix reverse работает и для не-пользовательских микшеров тоже.
- например, при использовании микшера TRI для реверса хвостового сервопривода на трикоптере используйте:
smix reverse 5 2 r
т.е. при микшировании сервопривода руля направления (слот 5) используя источник "Стабилизированный YAW" (2), изменить направление на реверсивное (r).
smix reverse - это настройка для каждого профиля. Поэтому убедитесь, что вы настраиваете его для ваших профилей по мере необходимости.
Примеры
Пример 1: Настройка моторов по схеме KK2.0
Вот пример квадрокоптера в конфигурации X, но моторы подключены по схеме нумерации платы KK.
Расположение моторов KK2.0
1CW 2CCW
\ /
KK
/ \
4CCW 3CW
- Используйте
mixer custom - Используйте
mmix reset - Используйте
mmix 0 1.0, 1.0, -1.0, -1.0для переднего левого мотора. Это говорит полетному контроллеру, что используется мотор №1, он создает положительный крен, отрицательный тангаж и вращается по часовой (CW). - Используйте
mmix 1 1.0, -1.0, -1.0, 1.0для переднего правого мотора. Он все еще создает отрицательный тангаж, но, в отличие от переднего левого, он создает отрицательный крен и вращается против часовой (CCW). - Используйте
mmix 2 1.0, -1.0, 1.0, -1.0для заднего правого мотора. Он имеет отрицательный крен, создает положительный тангаж при увеличении скорости и вращается по часовой (CW). - Используйте
mmix 3 1.0, 1.0, 1.0, 1.0для заднего левого мотора. Увеличение скорости мотора создает положительный крен, положительный тангаж и вращается против часовой (CCW).
Пример 2: HEX-U коптер
Вот пример U-образного гексакоптера.
HEX6-U
.4........3. ............ .5...FC...2. ............ ...6....1...
| Команда | Крен | Тангаж | Рыскание |
|---|---|---|---|
mmix 0 1.0, -0.5, 1.0, -1.0 |
наполовину отрицательный | полный положительный | CW |
mmix 1 1.0, -1.0, 0.0, 1.0 |
полный отрицательный | нет | CCW |
mmix 2 1.0, -1.0, -1.0, -1.0 |
полный отрицательный | полный отрицательный | CW |
mmix 3 1.0, 1.0, -1.0, 1.0 |
полный положительный | полный отрицательный | CCW |
mmix 4 1.0, 1.0, 0.0, -1.0 |
полный положительный | нет | CW |
mmix 5 1.0, 0.5, 1.0, 1.0 |
наполовину положительный | полный положительный | CCW |
Пример 3: Пользовательский трикоптер
mixer CUSTOMTRI mmix reset mmix 0 1.000 0.000 1.333 0.000 mmix 1 1.000 -1.000 -0.667 0.000 mmix 2 1.000 1.000 -0.667 0.000 smix reset smix 0 5 2 100 0 0 100 0 profile 0 smix reverse 5 2 r profile 1 smix reverse 5 2 r profile 2 smix reverse 5 2 r
Пример 4: Пользовательский самолет с дифференциальной тягой
Вот пример пользовательского двухмоторного самолета с дифференциальной тягой. Моторы используют выходы 1–2; сервоприводы используют выходы, указанные в таблице [Слот сервопривода] выше. Настройки ниже устанавливают влияние моторов на рыскание в 0.3; увеличьте или уменьшите это значение для большей или меньшей дифференциальной тяги.
Примечание: Вы можете просмотреть выходы моторов и сервоприводов на вкладке "Motors" в Приложении Betaflight.
| Пин | Выход |
|---|---|
| 1 | Левый двигатель |
| 2 | Правый двигатель |
| 3 | Тангаж / Руль высоты |
| 4 | Крен / Элерон |
| 5 | Крен / Элерон |
| 6 | Рыскание / Руль направления |
| 7 | [ПУСТО] |
| 8 | [ПУСТО] |
mixer CUSTOMAIRPLANE mmix reset mmix 0 1.0 0.0 0.0 0.3 # Левый двигатель mmix 1 1.0 0.0 0.0 -0.3 # Правый двигатель smix reset # Правило Сервопривод Источник Rate Speed Min Max Box smix 0 3 0 100 0 0 100 0 # Крен / Элерон smix 1 4 0 100 0 0 100 0 # Крен / Элерон smix 2 5 2 100 0 0 100 0 # Рыскание / Руль направления smix 3 2 1 100 0 0 100 0 # Тангаж / Руль высоты
Пример 5: Использование выходов моторов 0,1,2,4, потому что ваш выход 3 сломан
Чтобы это работало, вы должны создать фиктивный mmix для мотора 3. Мы делаем это, просто указывая, что он имеет 0 влияние на рыскание, крен и тангаж.
mixer custom mmix reset mmix 0 1.0, -1.0, 1.0, -1.0 mmix 1 1.0, -1.0, -1.0, 1.0 mmix 2 1.0, 1.0, 1.0, 1.0 mmix 3 1.0, 0.0, 0.0, 0.0 mmix 4 1.0, 1.0, -1.0, -1.0 save

