Перейти к содержимому
20
Конфигурация рамы и ориентация контроллера

Конфигурация рамы и ориентация контроллера

Mission Planner для технического персонала · Урок 9 из 43 · Модуль 2. Ввод аппарата в эксплуатацию

Геометрия аппарата, назначение выходов и ориентация платы. Ошибка на этом шаге приводит к опрокидыванию в первые полсекунды полёта.

Неверный FRAME_TYPE — самая частая причина краша при первом взлёте. Проверка через Motor Test занимает десять секунд и снимает этот риск.

Содержание

1. Цели урока

После этого урока вы будете понимать:

  • как задаются FRAME_CLASS и FRAME_TYPE для мультироторов и почему после них нужна перезагрузка;
  • что буквы на кнопках Motor Test — это порядок обхода, а не номера моторов;
  • как проверить порядок и направление вращения моторов и что делать при несовпадении;
  • как настраиваются выходы для самолётов, VTOL и наземных аппаратов;
  • что делает AHRS_ORIENTATION и почему его задают до калибровок.
↑ К оглавлению

2. Конфигурация рамы для мультироторов

Геометрию мультиротора полностью определяют два параметра. FRAME_CLASS задаёт, сколько моторов и как они скомпонованы, FRAME_TYPE — как они расположены относительно носа. Из этой пары автопилот строит матрицу микширования: сколько тяги добавить каждому мотору, чтобы получить нужный момент по крену, тангажу и рысканию.

Экран Frame Type

SETUP → Mandatory Hardware → Frame Type.

frame_type_81eea.png

Верхний ряд Frame Class — класс рамы, ниже Frame Type — вариант компоновки. Выбранный класс подсвечен серым. Обратите внимание на подписи в правой части: «X and H are NOT interchangeable the prop rotation changes» и «This is the Y6B and prop rotation changes from the old Y6A»

Экран — это графическая надстройка над двумя параметрами. Щелчок по картинке класса записывает FRAME_CLASS, щелчок по радиокнопке типа — FRAME_TYPE. Ничего третьего экран не пишет.

Не все комбинации нарисованы: На экране показаны только распространённые схемы. Классы для скриптовых матриц, 6DoF и часть экзотических типов (Y4, X8 co-rotating, NYT) задаются только числом через список параметров. Если нужной картинки на экране нет — это не значит, что прошивка такую раму не поддерживает.

Значения FRAME_CLASS

Полный список для ArduCopter 4.6.x и 4.7 (параметр не переименовывался):

ЗначениеКласс рамы
0 Undefined — не задано, аппарат не заармится
1 Quad — 4 мотора
2 Hexa — 6 моторов
3 Octa — 8 моторов в одной плоскости
4 OctaQuad — 8 моторов попарно (соосные пары на четырёх лучах)
5 Y6 — 6 моторов на трёх лучах
6 Heli — вертолёт классической схемы
7 Tri — 3 мотора с сервоприводом наклона хвостового
8 SingleCopter
9 CoaxCopter
10 BiCopter — 2 мотора с наклоном
11 Heli_Dual — вертолёт продольной или соосной схемы
12 DodecaHexa — 12 моторов попарно на шести лучах
13 HeliQuad
14 Deca — 10 моторов
15 Scripting Matrix — матрица микширования задаётся Lua-скриптом
16 6DoF Scripting
17 Dynamic Scripting Matrix
Сверяйтесь со списком, а не с памятью: Нумерация классов не образует «логического» ряда: 10 — это BiCopter, а не Single/Coax, 12 — DodecaHexa, 14 — Deca. Единственный достоверный источник — колонка Options в CONFIG → Full Parameter List для вашей версии прошивки, потому что в новых версиях в конец списка добавляют новые классы.

Значения FRAME_TYPE

Список зависит от класса: для Tri и классических вертолётов FRAME_TYPE не используется вообще.

ЗначениеТипКомментарий
0 Plus Луч смотрит вперёд по оси аппарата
1 X Самый распространённый вариант: нос между лучами
2 V Несимметричная V-компоновка
3 H Не взаимозаменяем с X: отличается направлением вращения винтов
4 V-Tail  
5 A-Tail  
6 PlusRev Plus с обратным направлением вращения моторов
10 Y6B Направление вращения отличается от старой схемы Y6A
11 Y6F Схема FireFlyY6
12 BetaFlightX Порядок моторов как в BetaFlight
13 DJIX Порядок моторов как у DJI
14 ClockwiseX Нумерация по часовой стрелке
15 I Только для Octa (H, положенная набок)
18 BetaFlightXReversed BetaFlightX с обратным вращением
19 Y4 Четырёхмоторная схема Y4
Зачем столько вариантов X: BetaFlightX, DJIX, ClockwiseX и обычный X — это одна и та же геометрия рамы с разной нумерацией моторов и разным направлением вращения. Они существуют, чтобы не перепаивать сигнальные провода при переносе автопилота на готовую раму от другого производителя. Если моторы отзываются «вразнобой», часто достаточно сменить X на один из этих вариантов, а не менять проводку.

Те же параметры в списке параметров

CONFIG → Full Parameter List, в поле Search введите FRAME_:

frame_parameters_5b17c.png

Колонка Options показывает допустимые значения для подключённой прошивки — это надёжнее любой таблицы в учебнике. На снимке FRAME_CLASS = 5 (Y6) при значении по умолчанию 1, FRAME_TYPE = 0 (Plus)

Оба параметра требуют перезагрузки: Матрица микширования строится один раз при старте прошивки. Изменение FRAME_CLASS или FRAME_TYPE вступает в силу только после перезагрузки автопилота — до неё Motor Test будет отрабатывать старую компоновку. Записали параметр (Write Params) — перезагрузите плату и убедитесь, что в строке Class на экране Motor Test отображается ожидаемый класс.
Неверный FRAME_TYPE — самая частая причина краша при первом взлёте: При неправильном типе рамы автопилот подаёт корректирующие воздействия не на те моторы. Обратная связь превращается в положительную: аппарат опрокидывается в первые полсекунды после отрыва, обычно с рывком по крену или рысканию. Перед первым полётом обязательно проверьте нумерацию и направление вращения через Motor Test.
↑ К оглавлению

3. Проверка через Motor Test

SETUP → Optional Hardware → Motor Test.

motor_test_b7e40.png

Экран Motor Test для Y6 в компоновке Plus. Строки Class и Type подтверждают, какую раму прошивка считает текущей, а подписи справа от кнопок дают готовое соответствие «кнопка → номер мотора и направление»

Снимите винты: Motor Test запускает моторы. Всегда снимайте пропеллеры перед этой процедурой. Даже на 5 % газа винт наносит серьёзные травмы. Аппарат при этом должен стоять на земле и быть придержан — на экране об этом прямо написано: «PLEASE HOLD DOWN YOUR UAV».

Что означают буквы на кнопках

Это место путают чаще всего. Кнопки подписаны буквами A, B, C… — и это не номера моторов. Буква — это порядковый номер обхода: моторы проверяются по кругу по часовой стрелке, начиная с переднего правого. Какому физическому выходу соответствует каждая буква, зависит от класса и типа рамы, поэтому Mission Planner подписывает соответствие прямо на экране.

На снимке выше для Y6/Plus видно:

КнопкаMotor Number (выход автопилота)Вращение
Test motor A 5 CW — по часовой стрелке
Test motor B 1 CCW — против часовой
Test motor C 6 CCW
Test motor D 4 CW
Test motor E 2 CW
Test motor F 3 CCW

Для сравнения — самая массовая схема, квадрокоптер X:

КнопкаMotor NumberВращениеПоложение на раме
A 1 CCW Передний правый
B 4 CW Задний правый
C 2 CCW Задний левый
D 3 CW Передний левый

scale_1200_01aa6.png

Квадрокоптер X, вид сверху, нос вверх. Синие цифры в кружках — номера выходов автопилота (Motor Number), красные буквы — порядок обхода в Motor Test. Хорошо видно правило: диагональные моторы вращаются в одну сторону, соседние — в противоположные

Правило для самопроверки: В любой корректной схеме мультиротора моторы на одной диагонали крутятся в одну сторону, а соседние — в разные. Суммарный реактивный момент при этом равен нулю, и аппарат не разворачивает по рысканию на висении. Если у вас два соседних мотора крутятся одинаково — ошибка либо в схеме подключения, либо в FRAME_TYPE.
Ссылка на официальные диаграммы: «Please click here to see your motor numbers» — открывает раздел Motor Order Diagrams документации ArduPilot с картинками для всех классов и типов рам. Это первоисточник, с которым и следует сверяться.

Порядок проверки

  1. Снимите винты. Проверьте, что аппарат стоит устойчиво и придержан.
  2. Подайте питание на силовую часть: Motor Test управляет регуляторами, поэтому одного USB недостаточно — нужна батарея (или лабораторный источник).
  3. Убедитесь, что в строках Class и Type отображается ожидаемая рама. Если нет — параметры записаны, но плата не перезагружалась.
  4. Установите Throttle 5–10 % и Duration 2 секунды. Больше не нужно: задача — увидеть, какой мотор дёрнулся и куда крутится.
  5. Нажимайте Test motor A, затем B, C… по очереди.
  6. После каждого нажатия фиксируйте: какой физический мотор отозвался и в какую сторону он крутится.
  7. Сверьте полученную последовательность с подписями на экране и с диаграммой ArduPilot. Моторы должны отзываться по кругу по часовой стрелке, начиная с переднего правого.
  8. Кнопка Test all in Sequence прогоняет тот же обход автоматически — удобно для финальной проверки, когда порядок уже подтверждён вручную.
  9. Кнопка Test all motors запускает все моторы одновременно, Stop all motors — немедленно останавливает. Аварийная остановка — именно Stop all motors.
Что уходит на борт: Кнопка отправляет команду MAV_CMD_DO_MOTOR_TEST с номером по порядку обхода, типом газа «проценты», значением из поля Throttle % и длительностью из поля Duration. Максимальная длительность, которую примет прошивка, — 600 секунд; всё, что больше, обрезается. По истечении времени моторы останавливаются сами, даже если связь с наземной станцией пропала.

Кнопки Spin Arm и Spin Min

Две зелёные кнопки справа — это не часть проверки рамы, а быстрый способ настроить два важных параметра холостого хода прямо из этого экрана.

КнопкаПараметрСмысл
Set Motor Spin Arm MOT_SPIN_ARM Минимальный выход после армирования: моторы уже крутятся, но тяги не создают. Служит подтверждением «аппарат готов»
Set Motor Spin Min MOT_SPIN_MIN Точка, с которой начинается тяга. Должен быть выше MOT_SPIN_ARM

Методика подбора: постепенно увеличивайте Throttle % и жмите Test motor A, пока мотор не начнёт уверенно и без задержек стартовать. Затем нажмите соответствующую зелёную кнопку — Mission Planner предложит записать это значение с небольшим запасом (для Spin Arm — найденный процент плюс 2 %, для Spin Min — плюс 3 %).

Оба параметра хранятся не в процентах, а долей от полного диапазона выхода, то есть числом от 0 до 1. Mission Planner делает пересчёт сам:

\( \mathrm{MOT\_SPIN\_ARM} = \dfrac{P}{100} \), где \( P \) — введённый процент. Например, 6 % \( \Rightarrow \) 0,06.

Ограничение программы: Если в поле Throttle % стоит 20 или больше, обе кнопки откажут с сообщением «Throttle percent above 20, too high». Это защита: холостой ход выше 20 % от диапазона означает неверно откалиброванные регуляторы, а не «тугие» моторы.

Почему Motor Test отказывает

Прошивка проверяет несколько условий и при отказе присылает сообщение в DATA → Messages. Расшифровка:

СообщениеПричинаЧто делать
Motor Test: Board initialising Прошивка ещё не завершила инициализацию Подождать несколько секунд после подачи питания
Motor Test: vehicle not landed Прошивка считает, что аппарат в воздухе Поставить аппарат на землю; в SITL — убедиться, что предыдущий полёт завершён посадкой
Motor Test: RC not calibrated Не пройдена калибровка радиоаппаратуры Выполнить Radio Calibration (урок 11) — это следующий обязательный шаг
Motor Test: Safety switch Нажат предохранительный выключатель Нажать и удерживать кнопку safety до постоянного свечения, либо BRD_SAFETY_DEFLT = 0
Motor Test: Motor Emergency Stopped Активен аварийный стоп с канала RCx_OPTION = 31 Вернуть тумблер аварийного стопа в исходное положение
Command was denied by the autopilot Прошивка отклонила команду целиком Смотреть DATA → Messages — там будет одно из сообщений выше
Экран может быть заблокирован: Если в прошивке нет ни FRAME_TYPE, ни Q_FRAME_TYPE, ни FRAME (например, вы подключены к ArduPlane без QuadPlane), Mission Planner делает весь экран Motor Test неактивным. Для Rover и Boat количество кнопок всегда равно четырём независимо от параметров.

Исправление ошибок подключения

Мотор крутится не в ту сторону. Для обычных ESC с тремя фазными проводами поменяйте местами любые два из трёх. Для DShot и BLHeli направление меняется без пайки: бит соответствующего канала в маске SERVO_BLH_RVMASK (бит 0 — выход 1, бит 1 — выход 2 и так далее) либо переключение через конфигуратор BLHeli. Параметр требует перезагрузки.

Моторы отзываются не в том порядке. Возможные причины по убыванию вероятности:

  • сигнальные провода надеты на выходы автопилота не в том порядке — проверьте физически;
  • выбран не тот FRAME_TYPE: рама собрана по схеме BetaFlight или DJI, а в параметре стоит обычный X;
  • изменено назначение выходов: моторы 1–8 соответствуют SERVOn_FUNCTION = 33…40, моторы 9–12 — значениям 82…85.
Правьте параметр, а не проводку: Если порядок моторов не совпал, сначала посмотрите, нет ли готового FRAME_TYPE под вашу схему (BetaFlightX, DJIX, ClockwiseX), и только потом беритесь за перепайку. В крайнем случае выходы можно переназначить через SERVOn_FUNCTION, но этот способ труднее отследить при последующем обслуживании — обязательно зафиксируйте изменение в документации на аппарат.
↑ К оглавлению

4. Конфигурация для самолётов

Для ArduPlane геометрия задаётся не одним параметром, а назначением функций выходам. Параметра FRAME_CLASS для самолётной части не существует: прошивка узнаёт схему аппарата по тому, какие функции вы назначили.

Назначение функций выходам

SETUP → Mandatory Hardware → Servo Output или CONFIG → Full Parameter List с поиском SERVO1_:

servon_function_3c8bd.png

Группа параметров одного выхода. SERVO1_FUNCTION = 4 — Aileron: значение выбирается из выпадающего списка в колонке Options. Рядом — предельные и нейтральное положения (MIN, MAX, TRIM в микросекундах) и флаг реверса SERVO1_REVERSED

СхемаКак настраивается
Классическая (элероны, руль высоты, руль направления) SERVOn_FUNCTION: 4 — Aileron, 19 — Elevator, 21 — Rudder, 70 — Throttle
Flying wing / дельта SERVOn_FUNCTION = 77 и 78 (Elevon Left/Right), микширование выполняет автопилот
V-tail SERVOn_FUNCTION = 79 и 80 (VTail Left/Right)
QuadPlane Основные поверхности + Q_ENABLE = 1, Q_FRAME_CLASS, Q_FRAME_TYPE, подъёмные моторы на функциях 33–40
Микшируйте в автопилоте, а не в передатчике: Для дельты и V-хвоста соблазнительно оставить микширование в аппаратуре. Не делайте так: автопилот должен управлять поверхностями напрямую, иначе в автоматических режимах он будет отдавать команды в уже смикшированный канал и получать не тот результат. В передатчике все микшеры отключаются, каналы идут «сырыми».

Три сопутствующих параметра каждого выхода видны на снимке и настраиваются вместе с функцией: SERVOn_MIN и SERVOn_MAX ограничивают ход поверхности, SERVOn_TRIM задаёт нейтраль, SERVOn_REVERSED = 1 меняет направление отклонения. Направление проверяют на земле: отклоняете аппарат по крену вправо — правый элерон должен идти вверх.

QuadPlane

QuadPlane — это две прошивки в одной: При Q_ENABLE = 1 в ArduPlane появляется полный набор мультироторных контуров с префиксом Q_. По сути вы настраиваете два аппарата: самолётную часть (TECS, L1/NPFG) и мультироторную (Q_A_RAT_*, Q_P_*). Тюнинг ведётся раздельно: сначала висение в режиме QHOVER, затем горизонтальный полёт в FBWA. Значение Q_ENABLE = 2 дополнительно включает вертикальный взлёт при старте миссии в режиме AUTO. Параметр требует перезагрузки.

Набор допустимых значений Q_FRAME_CLASS уже, чем у FRAME_CLASS в ArduCopter: 1 — Quad, 2 — Hexa, 3 — Octa, 4 — OctaQuad, 5 — Y6, 7 — Tri, 10 — Single/Dual, 12 — DodecaHexa, 14 — Deca, 15 и 17 — скриптовые матрицы. Вертолётных классов здесь нет.

↑ К оглавлению

5. Конфигурация для наземных аппаратов

Для Rover ключевой параметр — FRAME_CLASS, но список значений у него свой, не совпадающий с ArduCopter:

technobee_0826_5f042.jpg

ЗначениеТип
0 Undefined
1 Rover — колёсная машина с раздельным управлением газом и рулём
2 Boat — катер
3 Balance Bot — двухколёсный балансирующий робот

Тип рулевого управления задаётся назначением функций выходам:

  • Ackermann (автомобильная схема): SERVO1_FUNCTION = 26 (GroundSteering), SERVO3_FUNCTION = 70 (Throttle);
  • Skid steering (танковая схема, поворот разностью скоростей): SERVO1_FUNCTION = 73 (ThrottleLeft), SERVO3_FUNCTION = 74 (ThrottleRight).

Экран Motor Test работает и для Rover, но кнопок всегда четыре независимо от реального числа приводов — Mission Planner не разбирает компоновку наземных аппаратов.

↑ К оглавлению

6. Ориентация платы

Параметр AHRS_ORIENTATION описывает, как полётный контроллер установлен относительно аппарата. Значение 0 (None) означает: стрелка на плате смотрит вперёд, плата установлена горизонтально компонентами вверх. Прошивка разворачивает показания IMU и внутреннего компаса в систему координат аппарата.

Значения AHRS_ORIENTATION

Доступны все повороты, кратные 45°. Наиболее употребительные:

ЗначениеНазваниеОписание
0 None Штатная установка: стрелка вперёд, компонентами вверх
1 Yaw45 Повёрнута на 45° по часовой стрелке (вид сверху)
2 Yaw90 Повёрнута на 90° по часовой стрелке
4 Yaw180 Развёрнута назад
6 Yaw270 Повёрнута на 270° по часовой (то же, что 90° против)
8 Roll180 Перевёрнута вверх ногами, стрелка по-прежнему вперёд
10 Yaw90Roll180 Перевёрнута и повёрнута на 90°
12 Pitch180 Перевёрнута через нос
14 Yaw270Roll180 Перевёрнута и повёрнута на 270°
16 Roll90 Поставлена на бок
24 Pitch90 Поставлена вертикально, «носом вверх»
101 / 102 Custom 1 / Custom 2 Произвольный угол через CUST_ROT1_ROLL/PIT/YAW или CUST_ROT2_*
Как читать названия: Составные имена перечисляют повороты в том порядке, в котором они применяются. Yaw90Roll180 — сначала рыскание 90°, затем крен 180°. Порядок важен: Roll180Yaw90 дал бы другой результат, поэтому в списке параметров имена приведены строго в порядке применения. Всего в прошивке 4.7 определено 44 стандартных ориентации (0–43) плюс пользовательские.
Ориентация — до калибровки: AHRS_ORIENTATION задаётся до калибровки акселерометра. Калибровка определяет смещения в системе координат, уже развёрнутой согласно этому параметру. Если изменить ориентацию после, записанные смещения станут бессмысленными, и калибровку придётся повторять целиком. Параметр вступает в силу после перезагрузки.

Ориентация компаса

Ориентация внешнего компаса задаётся отдельно: COMPASS_ORIENT для первого, COMPASS_ORIENT2 и COMPASS_ORIENT3 для второго и третьего. Набор значений тот же, что у AHRS_ORIENTATION.

  • COMPASS_ORIENT игнорируется, если компас не помечен как внешний (COMPASS_EXTERNAL). Для внутренних компасов действует AHRS_ORIENTATION — задавать ориентацию дважды не нужно.
  • Проверка правильности в северном полушарии: наклон носом вниз должен увеличивать MagX, наклон правым боком вниз — MagY, переворот вверх ногами — уменьшать MagZ. В южном полушарии знаки противоположны.
Автоопределение ориентации компаса: Прошивка умеет проверять ориентацию сама по завершении калибровки — за это отвечает COMPASS_AUTO_ROT: 0 — выключено, 1 — только проверить и сообщить, 2 — проверить и исправить автоматически для внешних компасов, 3 — то же с распознаванием поворотов на 45°. Не путайте с галочкой Automatic Declination на экране калибровки: она относится к магнитному склонению, а не к ориентации датчика.
↑ К оглавлению

7. Практика

Задания выполняются в симуляторе SITL и не требуют реального аппарата. Выполните их до перехода к следующему уроку.

Задание 9.1. Смена класса рамы и её последствия

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • Запустите SITL с ArduCopter, дождитесь загрузки параметров и откройте SETUP → Optional Hardware → Motor Test. Запишите, сколько кнопок Test motor показано и что написано в строках Class и Type.
  • В CONFIG → Full Parameter List найдите FRAME_CLASS, поставьте 2 (Hexa), нажмите Write Params. Вернитесь на экран Motor Test без перезагрузки и убедитесь, что число кнопок не изменилось.
  • Перезагрузите SITL, снова откройте Motor Test. Кнопок должно стать шесть. Это практическое подтверждение флага RebootRequired у параметра.
  • Выпишите соответствие «кнопка → Motor Number → вращение» для Hexa X и сравните с диаграммой из документации ArduPilot.
  • Верните FRAME_CLASS = 1 и FRAME_TYPE = 1.

Задание 9.2. Порядок обхода для разных типов рамы

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • При FRAME_CLASS = 1 последовательно установите FRAME_TYPE = 1 (X), затем 13 (DJIX), затем 14 (ClockwiseX), каждый раз перезагружая SITL.
  • Для каждого варианта выпишите таблицу «кнопка → Motor Number → вращение» с экрана Motor Test.
  • Ответьте письменно: геометрия рамы во всех трёх случаях одинакова — что именно меняется и в какой ситуации это избавляет от перепайки?
  • Проверьте на всех трёх таблицах правило диагоналей: моторы на одной диагонали вращаются в одну сторону.

Задание 9.3. Ориентация платы и горизонт

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • На стоящем аппарате запомните показания крена и тангажа в HUD (должны быть около нуля).
  • Установите AHRS_ORIENTATION = 8 (Roll180), перезагрузите SITL и посмотрите на HUD. Объясните, почему горизонт перевернулся, хотя аппарат в симуляторе не двигался.
  • Установите AHRS_ORIENTATION = 2 (Yaw90), перезагрузите и сравните курс в HUD с прежним значением. На сколько градусов он сместился?
  • Верните AHRS_ORIENTATION = 0 и убедитесь, что показания вернулись к исходным.
  • Сделайте вывод: почему изменение этого параметра после калибровки акселерометра требует её повторения?

Задание 9.4. Самолётные выходы

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • Запустите SITL с ArduPlane. В CONFIG → Full Parameter List найдите по маске SERVO1_SERVO4_ текущие значения SERVOn_FUNCTION и выпишите, какая функция назначена каждому выходу по умолчанию.
  • Переведите аппарат в схему «летающее крыло»: назначьте двум выходам функции 77 и 78, уберите отдельные элероны и руль высоты.
  • Установите Q_ENABLE = 1, перезагрузите SITL и оцените, на сколько выросло общее число параметров. Найдите пять групп с префиксом Q_ и объясните, какому контуру управления каждая соответствует.
  • Верните исходные значения.
↑ К оглавлению

8. Проверьте себя

Сформулируйте ответ своими словами, прежде чем сверяться со справочником ответов.

  1. Какие два параметра полностью определяют геометрию мультиротора и как проверить их корректность без взлёта?
  2. Что означает Q_ENABLE = 1 и какие два независимых набора настроек это порождает?
  3. Почему AHRS_ORIENTATION необходимо задавать до калибровки акселерометра?
↑ К оглавлению

9. Чек-лист самопроверки

Урок освоен, если каждый пункт выполнен на практике:

  • FRAME_CLASS и FRAME_TYPE сверены с колонкой Options в списке параметров, плата перезагружена
  • Строки Class и Type на экране Motor Test показывают ожидаемую раму
  • Motor Test пройден со снятыми винтами, порядок отклика моторов совпал с подписями на экране
  • Направление вращения каждого мотора соответствует диаграмме, правило диагоналей выполняется
  • Понятно, что буквы на кнопках — порядок обхода, а не номера выходов
  • AHRS_ORIENTATION задан до калибровки акселерометра
  • Для внешнего компаса задан COMPASS_ORIENT, для внутреннего он не требуется
Результат: все пункты выполнены — переходите к следующему уроку.
↑ К оглавлению

10. Что дальше

↑ К оглавлению
  • мод. : Вторник, 25 августа 2026
Конфигурация рамы и ориентация контроллера