3D режим | Betaflight
Эта статья описывает настройку 3D‑режима на мультикоптере: что делает FEATURE 3D, какие шаги легко упустить, и как избежать инцидентов при первом запуске. В конце есть практический раздел по тюнингу ESC и чек‑лист самопроверки. Источники: пост Hwurzburg и связанный pull request в репозитории Cleanflight.
В 3D‑режиме контроллер полета работает с двунаправленными ESC: центр стика газа это нулевая тяга, внизу полный "минус", вверху полный "плюс". Арминг только переключателем, все проверки сначала на столе без пропеллеров.
Содержание
1. Цели урока
- Понять принцип работы 3D‑режима с двунаправленными ESC и нулем тяги по центру стика.
- Настроить FEATURE 3D через GUI или CLI, включая обязательные параметры.
- Подготовить ESC к двунаправленному режиму: BLHeli, Kiss 24A, SimonK.
- Разобраться с особенностями DShot в 3D и избежать ловушек конфигуратора.
- Провести стенд‑тесты и базовый тюнинг BLHeli_S, не допуская инцидентов.
2. Что такое 3D‑режим и почему это рискованно
При включенном FEATURE 3D контроллер полета работает с двунаправленными ESC и позволяет мотору вращаться в обе стороны, создавая положительную или отрицательную тягу. Центр стика газа соответствует нулевой тяге. Нижнее положение стика дает полный "минус", верхнее полное "плюс".
Источники
- Пост Hwurzburg: https://github.com/cleanflight/cleanflight/issues/1032
- Pull request с той же информацией: https://github.com/cleanflight/cleanflight/pull/1034
Типовые риски и почему нужны стенд‑тесты
3. Подготовка и безопасность
Три шага подготовки
- Приобретите мультикоптер и установите ESC с реверсом и пропеллеры, поддерживающие двунаправленный режим.
- Изучите документацию и выполните настройку. Полностью проверьте все на стенде без пропов. В 3D вероятность пользовательской ошибки выше.
- Практикуйтесь и получайте удовольствие, но только после корректных стенд‑проверок.
Правила арминга и дизарминга
- Арминг только переключателем. Настраивается во вкладке Modes. Опции motor_stop и stick‑arming в 3D не работают.
- Арминг возможен только при
центре стика газа(плюс‑минус 3d_deadband_throttle) и активном переключателе арминга. - После арминга моторы сразу крутятся на 3d_deadband_low или 3d_deadband_high, в зависимости от того, с какой стороны вы вошли в мертвую зону относительно mid_rc.
- Отключение переключателя арминга немедленно останавливает моторы, если включен disarm_kill_switch (по умолчанию включен).
Пропеллеры для 3D
Рекомендуются специальные 3D‑пропы, чтобы получить сопоставимую мощность в перевернутом и обычном полете.
Типичные ошибки
Ошибка: попытка армить не в центре газа
В 3D арминг произойдет только при центре стика газа. Если стик не в центре или 3d_deadband_throttle слишком узкий, арминг будет блокироваться.
Ошибка: motor_stop и stick‑arming
Эти режимы в 3D не поддерживаются и приводят к непредсказуемому поведению на земле.
4. Включение FEATURE 3D и настройка ESC
Включение FEATURE 3D (GUI и CLI)
- Через GUI: отметьте галочку FEATURE 3D на странице конфигурации.
- Через CLI: выполните команду включения фичи и сохраните.
# Пример через CLI (названия команд зависят от прошивки):
feature 3d
save
Общие требования к ESC
- Переведите ESC в двунаправленный режим. Конкретные шаги смотрите в мануале к вашему ESC.
- Перед калибровкой ESC задайте max_throttle и min_command.
- Проверьте правильность вращения каждого мотора. При необходимости поменяйте порядок фаз или настройку направления в GUI ESC.
BLHeli ESC
- В BLHeli GUI установите режим norm / reverse / bidirectional на слайдере.
max pwmв GUI ESC установите равным максимуму по каналу газа (обычно 2000 us),min pwmравным минимуму (обычно 1000 us),midpointпосередине (обычно 1500 us).- ESC не будет подавать сигнал на мотор, если вход равен
midpointплюс‑минус небольшойdeadband.
Kiss 24A ESC
Обучение хода газа:
- Подключите ESC к приемнику или FC. Установите сигнал газа на максимум.
- Подключите LiPo. Звуковой сигнал подтвердит вход в режим программирования.
- Убавьте газ до минимума (обычно 1000 us) и дождитесь перезапуска ESC (сигнал high‑low‑high). Ход газа обучен.
Активация 3D:
- Отключите питание. Поставьте сигнал на максимум. Снова подайте питание, дождитесь сигнала.
- Установите газ в середину и дождитесь перезапуска ESC (high‑low‑high). 3D активен. Далее ESC стартует только из середины хода газа.
- Отключение 3D: переобучите ход газа заново.
SimonK ESC
- Для 3D прошивку SimonK нужно пересобрать с включенной опцией реверса.
RC_PULS_REVERSE = 1
RC_CALIBRATION = 0 # рекомендуется отключить калибровку стиком
По умолчанию MID_RC_PULS устанавливается посередине между STOP_RC_PULS (1060) и FULL_RC_PULS (1860), то есть 1460. Эти значения можно менять, но дефолты обычно работают хорошо.
MID_RC_PULS = (STOP_RC_PULS + FULL_RC_PULS) / 2
Наиболее простой способ прошивки: KKFlash tool или Chrome‑приложение RapidFlash, которые упрощают сборку для Atmel MCU.
Типичные ошибки
Калибровка ESC до установки max_throttle и min_command
Сначала задайте границы в FC, затем калибруйте ESC. Иначе диапазоны не совпадут.
Неверное направление моторов после перехода на 3D
В 3D направление критично. Проверьте каждую ось. Для некоторых ESC направление в 3D может отличаться от 2D.
5. Обязательные параметры CLI для 3D
Описание ключевых параметров
- 3d_deadband_high: нижняя граница положительной тяги от FC к ESC при арминге. Верхняя граница положительной тяги это max_throttle. Диапазон между 3d_deadband_high и max_throttle это весь положительный ход.
- 3d_deadband_low: нижняя граница отрицательной тяги от FC к ESC при арминге. Верхняя граница отрицательной тяги это min_command. Диапазон между 3d_deadband_low и min_command это весь отрицательный ход.
- 3d_deadband_throttle: диапазон стика вокруг mid_rc, в котором допускается арминг. Внутри этой зоны FC высылает либо 3d_deadband_high, либо 3d_deadband_low, в зависимости от того, сверху или снизу вы вошли в зону.
- 3d_neutral: значение вывода FC к ESC в дизарме. Аналог min_command для 3D. Обычно имеет смысл выставить failsafe_throttle равным 3d_neutral.
- failsafe_throttle: значение вывода FC к ESC при срабатывании failsafe. Для остановки моторов в 3D установите равно 3d_neutral.
- max_throttle: максимальный вывод FC к ESC. После изменения обязательно перекалибруйте ESC.
- min_command: минимальный вывод FC к ESC. После изменения обязательно перекалибруйте ESC.
Примеры настройки
# Примеры, числа ориентировочные:
set max_throttle = 2000
set min_command = 1000
# Симметрия вокруг середины (обычно mid_rc = 1500):
set 3d_deadband_high = 1520
set 3d_deadband_low = 1480
set 3d_deadband_throttle = 50
# Нейтраль и фейлсейф:
set 3d_neutral = 1500
set failsafe_throttle = 1500
save
Типичные ошибки
Несимметричные deadband вокруг mid_rc
Если 3d_deadband_high и 3d_deadband_low неравноудалены от mid_rc, скорости в "плюсе" и "минусе" будут отличаться при центре стика.
failsafe_throttle не равен 3d_neutral
В фейлсейфе моторы могут продолжать вращение. В 3D задайте одинаковые значения, чтобы гарантированно остановить моторы.
6. DShot и 3D: особенности и подводные камни
Статус и поведение в конфигураторе
- По состоянию на 2017‑01‑01 3D с DShot работает и требовал дополнительного налета для подтверждения стабильности.
- Калибровка для DShot не нужна, так как это цифровой протокол (сообщение от 2017‑04‑30).
- Опасный момент: при активном 3D и переходе во вкладку Motors, снятие галочки "I understand the risks..." заставляет FC послать 1500 us в ESC, что запустит моторы вперед в DShot.
Тестируй Всегда без пропов на стенде.
BLHeliS: направления вращения
Замечено, что при переходе на DShot моторы могут крутиться в другом направлении по сравнению с Oneshot/PWM. Обязательно перепроверьте направления. Возможно, часть моторов придется поставить в Bidirectional, а часть в Bidirectional reverse.
Шкала значений в DShot 3D
- Нижняя часть шкалы инвертирована относительно стандартного 3D.
- Полный отрицательный в DShot 3D это 1499, минимальный отрицательный 1000.
- Положительный минимум 1501, максимум 2000. Положительные значения требовали подтверждения, ориентируйтесь на показания конфигуратора.
- Idle Percent управляет скоростью холостого хода в обеих направлениях.
Типичные ошибки
Забыли пересмотреть направление моторов после перехода на DShot
В 3D любая ошибка направления критична. Проверьте на стенде каждое плечо.
Ожидание, что калибровка DShot нужна, как у PWM
Для DShot калибровка не выполняется. Не пытайтесь "обучать" диапазоны как в PWM/Oneshot.
7. Практика: тюнинг BLHeli_S и стенд‑тесты
Протокол тестирования 10 шагов
Безопасность прежде всего
Очки, фиксация квадра в тисках или в руке, ось от себя. Airmode отключен. Контроль температуры моторов. Записывайте результаты каждого шага.
- Запустите все моторы в правильных направлениях, включите 3D на FC. Пока оставьте дефолтные настройки BLHeli_S, кроме направления.
- Установите idle так, чтобы моторы не затыкались в обе стороны при легком касании. Это как в 2D, но нужно для обоих направлений.
- Включите brake on stop.
- Поставьте пропеллеры и защиту. Лучше использовать те, с которыми планируется полет, или самые тяжелые из планируемых.
- Отключите Airmode и аналоги.
- Меняйте timing и выберите вариант с самым плавным реверсом. Проверьте все: Low, Med/Low, Med, Med/High, High. Подтвердите выбор сравнением туда‑обратно.
- Меняйте startup power и найдите самый плавный реверс. Часто лучше работает более высокий startup power и быстрее выходит из десинка.
- Снова проверьте idle. Если реверс все еще хромает, чуть поднимите.
- Дотюньте PID (если еще не), проверьте висение и отсутствие перегрева моторов.
- Полетный тест и оценка реверса в воздухе. Если плохо, вернитесь к шагу 4, возможно с более легкими пропами.
Если один мотор сильно отстает
Поменяйте моторы местами и посмотрите, уедет ли проблема за мотором. Если да, это мотор. Если нет, проблема в ESC на этой лапе. Иногда помогает переставить "колокол" или заменить мотор на запасной.
8. Чек‑лист самопроверки знаний
Отметьте пункты, которые действительно понимаете и можете повторить на практике.
| +/- | Навык | Проверка |
|---|---|---|
| Принцип 3D | Могу объяснить, как двунаправленные ESC дают плюс и минус тягу, и почему центр газа это ноль | |
| Арминг в 3D | Могу настроить арминг только переключателем и объяснить, почему stick‑arming недоступен | |
| Deadband и mid_rc | Могу симметрично настроить 3d_deadband_high и 3d_deadband_low вокруг mid_rc | |
| Failsafe | Могу выставить failsafe_throttle равным 3d_neutral для остановки моторов в аварии | |
| BLHeli и Kiss 24A | Знаю, как включить двунаправленный режим и обучить ход газа, а также риски для Kiss 24A | |
| SimonK 3D | Могу собрать прошивку с RC_PULS_REVERSE=1 и отключенной RC_CALIBRATION | |
| DShot 3D | Знаю, что калибровка не нужна, 1500 us в Motors запускает моторы, и в DShot 3D нижняя часть шкалы инвертирована | |
| Idle и реверс | Могу выставить idle и startup power так, чтобы реверс был плавным и без десинков | |
| Безопасность | Могу выполнить полный стенд‑протокол без пропов и объяснить, почему это критично |
