Часть 1. Аппаратное обеспечение и настройка. Полное руководство по настройке ArduPilot.
Нулевая подготовка коптера под ArduCopter: от коробки до первого зависания
Вы собрали (или собираете) коптер и хотите поднять его на ArduPilot. Эта статья — пошаговый маршрут от голого железа до момента, когда аппарат отрывается от земли на несколько секунд, висит, садится, а вы получаете чистый лог для дальнейшей работы.
Ниже нет тюнинга PID и фильтров — только «скучная база», на которой всё держится. Одна перепутанная распиновка или непроверенный мотор способны превратить первый взлёт в последний.
Место в серии. Это первая часть цикла «снизу вверх»: база → фильтры/гироскоп → rate‑PID → attitude → удержание высоты → Loiter → навигация по точкам. Каждый следующий шаг опирается на предыдущий, поэтому перескакивать — плохая идея.
Содержание
- 1. Безопасный стенд — правила, которые работают всегда
- 2. Железо: что нужно и на что смотреть
- 3. Проводка и порты: подключаем без сюрпризов
- 4. Прошивка и первое подключение к Mission Planner
- 5. Обязательные настройки и калибровки
- 6. Моторы, ESC и DSHOT — самая критичная проверка
- 7. Режимы, Failsafe и логирование
- 8. Первый ховер‑тест
- 9. Диагностика: симптом → причина → решение
- 10. Чек‑лист перед выездом в поле
1. Безопасный стенд — правила, которые работают всегда
Прежде чем включать что‑либо, договоримся о пяти правилах. Они звучат очевидно — до первого раза, когда спасают палец или плату.
| # | Правило | Почему |
|---|---|---|
| 1 | Мотор‑тесты — только без пропеллеров. Всегда. Даже «на секунду». | Пропеллер на оборотах — это нож. Снять пропы занимает 30 секунд, пришить палец — дольше. |
| 2 | Первое включение после пайки/перепиновки — через smoke stopper (токоограничитель). | Короткое замыкание при неправильной распиновке выжигает FC мгновенно. Smoke stopper даёт шанс заметить проблему до дыма. |
| 3 | Сначала USB, потом батарея. | По USB вы увидите ошибки конфигурации без риска подать силовое напряжение на что‑то не то. |
| 4 | Pre‑Arm проверки не отключать «потому что мешают». | Они мешают ровно до момента, когда спасают коптер. Если проверка не пускает — разберитесь в причине, а не глушите её. |
| 5 | В непонятной ситуации — сначала снять батарею, потом думать. | Любые действия при поданном силовом питании и работающих моторах — это лотерея. |
2. Железо: что нужно и на что смотреть
Минимальный комплект
- Рама (в примере — 8″, но подход универсален).
- Полётный контроллер (FC). Главное — наличие прошивки ArduPilot под конкретный target. Пример: Matek H743.
- ESC 4‑в‑1 (стек 30×30 или 20×20 — зависит от рамы).
- GPS с интегрированным компасом (например, модуль на M10). Компас — не опция, а необходимость.
- Приёмник (ExpressLRS, Crossfire, FrSky — любой совместимый).
- Видеосистема (цифра или аналог — на ваш выбор).
Оборудование для сборки
Почему ArduCopter настаивает на GPS + компас
В режиме Stabilize (стабилизация) коптер может «как‑то летать» без точного курса. Но стоит включить Loiter (зависание по координатам) или RTL (возврат домой), и автопилоту нужно знать две вещи: где я и куда смотрю. GPS даёт координаты, компас — направление. Без компаса (или с зашумлённым компасом) коптер начинает «плыть» по курсу, делать странные развороты, и вы получаете «необъяснимое поведение», которое на самом деле объясняется одним словом: помехи.
Что проверить перед покупкой
Проверка 1: совместимость FC ↔ прошивка
Зайдите на firmware.ardupilot.org, найдите свой target (полётный контроллер / «автопилот»).
- Есть ли сборка Copter?
- Есть ли вариант с bootloader?
- Понимаете ли вы сценарий восстановления, если новая прошивка «не подошла»?
Проверка 2: GPS‑модуль
GPS по UART, компас по I2C — типичная схема комбинированных модулей.
- Питание 5V стабильное, общий
GNDкорректный. - Длина проводов и место установки (чем дальше от силовых кабелей — тем лучше).
Типичные ошибки
Ошибка: GPS без компаса — «потому что на FPV так привыкли»
Для ArduCopter, особенно в навигационных режимах, отсутствие компаса часто приводит к сюрпризам: нестабильный курс, странная работа Loiter/RTL.
Ошибка: питание видеоблока напрямую от батареи без проверки напряжения
Полностью заряженный 6S — это 25,2 В. Если Air Unit рассчитан на 25 В максимум, вы рискуете. Проверяйте максимальное допустимое напряжение устройства.
3. Проводка и порты: подключаем без сюрпризов
FC ↔ ESC: самое опасное место
Если FC и ESC не из одного стека, их распиновки могут не совпадать. Одинаковый разъём не означает одинаковый порядок пинов. Подать напряжение батареи на сигнальный пин — верный способ убить контроллер за долю секунды.
Пример когда распиновки на FC и ESC не совпадают
UART‑подключения: одно универсальное правило
TX — «передаю», RX — «принимаю». То, что устройство передаёт, контроллер должен принять, и наоборот. Для I2C (компас): SCL → SCL, SDA → SDA — тут без «креста».
; UART-подключение (крест-накрест)
DEVICE_TX → FC_RX
DEVICE_RX → FC_TX
; I2C для компаса (без креста)
GPS_SCL → FC_SCL
GPS_SDA → FC_SDA
; Питание
GND → GND
+5V → +5V
4V5), подключайте GPS и приёмник к ним. Тогда вся электроника поднимается от USB‑кабеля, и для настройки не нужно каждый раз цеплять аккумулятор.Схема подключения GPS/компаса
Подключение приёмника к отдельному UART
Подключение Air Unit (UART + питание от BEC с проверкой напряжения)
Как перепиновать JST, если провода не совпали
Пошагово
- Сверьте pinout обеих плат. Отметьте, какие провода нужно поменять местами.
- Тонким пинцетом слегка приподнимите пластиковый фиксатор контакта в разъёме. Не выгибайте до упора — сломается.
- Вытяните провод.
- Повторите для второго провода.
- Вставьте провода в правильном порядке до щелчка.
- Верните фиксатор на место.
- Ещё раз сверьте с даташитом.
Процесс перепиновки JST: поднять фиксатор, вынуть провод
Ловушка: UART на плате ≠ SERIALx в параметрах
То, что на плате контроллера подписано как UART2 - в ArduPilot называется SERIAL3. И наоборот. Нумерация почти никогда не совпадает напрямую — она зависит от конкретного target.
SERIALx. Держите её как единственный "источник истины". Если модуль «не видится» в Mission Planner — первым делом проверяйте - на тот ли SERIALx назначен протокол.; Пример карты портов (заполните под свой FC)
; Физический порт → SERIALx → Устройство → Протокол
; USB → SERIAL0 → Mission Planner → MAVLink2
; UART2 → SERIAL1 → Приёмник → RCIN
; UART3 → SERIAL2 → GPS → GPS
; UART6 → SERIAL5 → Air Unit → DisplayPort
Типичные ошибки при проводке
Ошибка: «разъёмы одинаковые — значит можно просто воткнуть»
Совпадение коннекторов не означает совпадение распиновки. Иногда производители разводят питание/сигналы по‑разному. Итог — подача высокого напряжения туда, где его быть не должно.
Ошибка: питание GPS/приёмника только от батареи
Настройка становится неудобной: для каждой мелочи нужен аккумулятор. Если есть USB‑питание на отдельной шине — используйте его.
4. Прошивка и первое подключение к Mission Planner
Если FC пришёл с чужой прошивкой (Betaflight, iNav, пустой), нужно залить ArduPilot вручную. Общий подход: скачать нужный файл (вариант с bootloader), записать через STM32CubeProgrammer, проверить подключение через Mission Planner.
Сайт с прошивками, выбор Copter
Пошаговая процедура
- Скачайте прошивку с firmware.ardupilot.org → Copter → ваш target. Берите вариант с bootloader (
_with_bl).
- Установите STM32CubeProgrammer.
- Переведите FC в boot‑режим: зажмите кнопку
BOOT, подключите USB, отпустите кнопку.
- В CubeProgrammer выберите подключение USB, обновите список портов, нажмите Connect.
- Выполните Full chip erase (полная очистка).
- Укажите файл прошивки, отметьте
Verify programmingиRun after programming. Нажмите Start programming и дождитесь завершения.
- Переподключите USB (power cycle), чтобы контроллер стартовал в обычном режиме.
Проверка: откройте Mission Planner, выберите порт Auto, нажмите Connect. Если видите подключение по MAVLink и загрузку параметров — прошивка на месте.
Типичные ошибки при прошивке
Ошибка: не тот файл (без bootloader / не тот target)
Контроллер не стартует или стартует некорректно. Обновления будут сложнее. Всегда сверяйте target и берите вариант «с bootloader».
Ошибка: забыли, что Full erase стирает всё
На чистом старте — не страшно. Но после часов настройки это болезненно. В дальнейшем делайте бэкап параметров перед полным стиранием.
5. Обязательные настройки и калибровки
Всё, что ниже, делается в Mission Planner через Setup → Mandatory Hardware или Config → Full Parameter List.
5.1. Frame Type
Setup → Mandatory Hardware → Frame Type. Выберите класс (Quad / Hexa / Octa) и геометрию (X, V, H…). Для стандартного квадрокоптера — Quad, X.
Геометрия определяет микшер моторов. Если выбрать неправильно, автопилот будет компенсировать наклон не теми моторами — и вы увидите это уже на взлёте.
Выбор Frame Type (класс и тип: X)
5.2. Initial Tune Parameters
Задайте стартовые параметры: размер пропеллеров (дюймы), количество банок батареи, напряжение полной/пустой банки. Если Mission Planner предлагает «suggested settings» — включите.
Экран сам рассчитывает и записывает стартовые параметры (имена ниже — как они выглядят в Full Parameter List):
MOT_THST_EXPO— экспонента тяги по кривой газ→тяга (рассчитывается по диаметру пропеллера);MOT_BAT_VOLT_MAX/MOT_BAT_VOLT_MIN— рабочее окно напряжения батареи (по числу банок и напряжению банки);BATT_LOW_VOLT,BATT_CRT_VOLT,BATT_ARM_VOLT— пороги батареи для failsafe;INS_GYRO_FILTER,INS_ACCEL_FILTER— стартовые частоты среза фильтров;ATC_ACCEL_P/R/Y_MAXи фильтры контуровATC_RAT_*_FLTD/FLTT— стартовые лимиты ускорений и фильтрация PID.
; Пример итога для 8" пропов и 6S (значения MP рассчитает сам):
MOT_THST_EXPO = 0.56
MOT_BAT_VOLT_MAX = 25.2 ; 6 x 4,2 В
MOT_BAT_VOLT_MIN = 19.8 ; 6 x 3,3 В
ATC_THR_MIX_MAN = 0.5, затем PSC_ACCZ_P = MOT_THST_HOVER и PSC_ACCZ_I = 2 × MOT_THST_HOVER — это стартовая точка для настройки вертикального контура (см. часть 4).5.3. Ориентация платы (AHRS_ORIENTATION)
Если контроллер установлен не стрелкой вперёд, найдите AHRS_ORIENTATION в Config → Full Parameter List и выставьте нужное значение. Стрелкой вперёд = 0. Разворот на 180° по roll = 8.
AHRS_ORIENTATION и установка значения ориентации
5.4. Калибровка акселерометра
Setup → Mandatory Hardware → Accel Calibration.
- Calibrate Accel — калибровка по шести положениям. Следуйте текстовым подсказкам (прямо, влево, вправо, нос вниз, нос вверх, вверх ногами). Картинок‑самолётиков не будет — только надписи.
- Перезагрузите контроллер.
- Calibrate Level — поставьте коптер на действительно ровную поверхность, не трогайте, нажмите кнопку.
Accel Calibration (Calibrate Accel → Reboot → Calibrate Level)
5.5. Калибровка компаса
Setup → Mandatory Hardware → Compass → Start. Прокрутите коптер на 360° во всех ориентациях, пока калибровка не завершится. Перезагрузите контроллер. Картинок‑самолётиков не будет.
5.6. Калибровка радио
Привяжите приёмник к аппаратуре стандартным способом. В Mission Planner проверьте каналы: центр около 1500, минимум ниже 1000, максимум выше 2000.
Экран каналов: проверка 1500 / 1000 / 2000
RC2_REVERSED = 1.5.7. Serial Ports
Настройте протоколы для каждого порта в соответствии с вашей картой портов.
Важно:
SERIAL0(USB) — НЕ ТРОГАТЬ, если не понимаете, зачем. Это ваш канал связи с Mission Planner. Любой другой порт, на котором уже поднят MAVLink (обычно телеметрический UART), тоже не переназначайте «на глаз» — сначала обновите карту портов.
; Пример для карты портов из раздела 3 (номера сверяйте со своим FC)
SERIAL0_PROTOCOL = 2 ; USB -> MAVLink2 — не трогать
SERIAL1_PROTOCOL = 23 ; UART2 -> приёмник (RCIN)
SERIAL2_PROTOCOL = 5 ; UART3 -> GPS
SERIAL2_BAUD = 57 ; 57600
SERIAL5_PROTOCOL = 42 ; UART6 -> DisplayPort (Air Unit)
SERIAL5_BAUD = 115 ; 115200
6. Моторы, ESC и DSHOT — самая критичная проверка
Это место, где ошибки приводят к крашу сразу при взлёте. Не спешите.
6.1. Параметры моторов в ArduPilot
Если вы привыкли к Betaflight, терминология будет другой. Вот «переводчик»:
| Что настраиваем | Как иногда называют | Параметр ArduPilot (Copter) |
|---|---|---|
| Протокол ESC (PWM / DShot…) | ESC_PROTOCOL |
MOT_PWM_TYPE (например, DShot300/600) |
| Мин/макс PWM | PWM_MIN / PWM_MAX |
MOT_PWM_MIN / MOT_PWM_MAX |
| Вращение после арминга (газ = 0) | SPIN_WHEN_ARMED |
MOT_SPIN_ARM |
| Минимальная тяга в полёте | SPIN_MIN |
MOT_SPIN_MIN |
| Калибровка ESC | ESC calibration | Для DShot обычно не нужна. Не нажимайте кнопку без понимания. |
Вкладка ESC calibration — «не нажимать Calibrate ESCs»
6.2. Servo Outputs: назначение выходов
Выходы серв 1–4 назначьте как Motor 1–4. На этом этапе порядок может быть любым — вы исправите его после motor test.
6.3. Motor Test: порядок и направление
Процедура: «выписать на бумагу»
- Оставьте назначение 1→1, 2→2, 3→3, 4→4.
- Запустите тест мотора A (Motor 1). Запишите, какой физический мотор крутится (например, «правый передний»).
- Повторите для моторов B, C, D.
- Сравните с диаграммой вашей рамы. Переназначьте Motor# так, чтобы всё совпало.
- Проверьте направление вращения каждого мотора. Где нужно — включите
Reverse.
Неверный порядок или направление = стабилизация работает «наоборот» = опрокидывание на взлёте. Это самая частая причина краша нового коптера.
6.4. Настройка spin по deadzone
У каждой связки мотор + ESC есть «мёртвая зона» — диапазон команд, в котором мотор ещё не крутится стабильно. Если MOT_SPIN_ARM попадает в эту зону, моторы «подвисают» при армировании — дёргаются, стартуют рывками.
- В Motor Test плавно поднимайте значение с нуля.
- Найдите точку, где мотор начинает крутиться уверенно (без рывков и остановок). Это верхняя граница deadzone.
- Установите
MOT_SPIN_ARMчуть выше этой точки (например, +2%). - Установите
MOT_SPIN_MINещё немного выше (например, ещё +3%).
MOT_IDLE_SEC: пауза после армирования, дающая ESC завершить внутренний старт. Если моторы «подхватывают» неровно даже выше deadzone — попробуйте 1–2 секунды. Сами параметры моторов (MOT_SPIN_ARM, MOT_SPIN_MIN, MOT_PWM_TYPE) в 4.7 не менялись.7. Режимы, Failsafe и логирование
7.1. Flight Modes
Настройте режимы через Setup → Flight Modes. Для трёхпозиционного переключателя хорошая стартовая комбинация: Stabilize / AltHold / Loiter. Если канал режимов не тот, что нужен, измените FLT_MODE_CH.
7.2. Failsafe
Failsafe — не опция, а обязательная часть подготовки. Это ваша «подушка безопасности», и она должна быть настроена до первого взлёта.
Что настроить:
- Radio failsafe — что делает коптер при потере связи. Рекомендация: RTL (возврат и посадка). Задайте порог PWM (
FS_THR_VALUE), ниже которого срабатывает failsafe. - Battery failsafe — порог низкого напряжения и таймер. С токовым датчиком можно использовать порог по mAh, но подходите к расчёту аккуратно.
ARMING_CHECK переименован в ARMING_SKIPCHK (смысл тот же — маска проверок, которые разрешено пропускать; 0 = проверять всё). Старые «рецепты» вида «отключи проверку через ARMING_CHECK» к 4.7 неприменимы по имени.- Знаю, что произойдёт при потере связи (Radio failsafe).
- Знаю, что произойдёт при низком напряжении (Battery failsafe).
- Home задан, GPS ловит спутники, компас адекватен.
7.3. Логирование и подготовка к FFT
Перед тюнингом фильтров нужно, чтобы логи писались в формате, пригодном для анализа вибраций и частот.
| Параметр | Значение | Зачем |
|---|---|---|
INS_FAST_SAMPLE |
1 |
Быстрое сэмплирование (для H7/F7) |
INS_GYRO_RATE |
1 (2 кГц) |
Хорошая стартовая частота гироскопа |
INS_LOG_BAT_OPT |
5 |
Pre/post filter + sensor rate logging |
| FFT: выбор IMU | IMU1 | Один IMU для FFT, чтобы не перегружать лог |
| Raw IMU | Выключить | Иначе FFT может работать некорректно |
raw IMU, иначе FFT может не работать корректно. Настройки логов лучше делать сразу «как нужно» для всей серии тюнинга.7.4. (Опционально) Проверка помех компаса под нагрузкой
Если хотите оценить, насколько силовая часть «засвечивает» компас:
- Поставьте пропеллеры перевёрнутыми (тяга вниз, коптер прижимается к земле).
- Зафиксируйте коптер ремнями. Не руками. Не ногами.
- Плавно поднимите газ до ~50–75% на 5–10 секунд.
- Оцените график помех компаса.
8. Первый ховер‑тест
Цель — не «полетать», а убедиться, что база работает, и получить первый чистый лог.
Условия
- Режим: Stabilize.
- Место: открытая площадка, без людей поблизости.
- Высота: 0,5–1,5 м.
- Длительность: 3–10 секунд.
- Действия стиками: минимальные, без резких движений.
Порядок
- Arm.
- Плавно поднять газ — коптер отрывается от земли.
- Несколько секунд висения.
- Плавная посадка.
- Disarm.
- Скачать лог.
Если что-то не так
- Сильные колебания → сразу посадка, разбор по базовым настройкам (ориентация, моторы, frame type).
- Pitch «перевёрнут» →
RC2_REVERSED = 1, повторить. - Не армится → прочитать Pre‑Arm сообщение, устранить причину.
; Если pitch (канал 2) оказался «перевёрнутым»:
RC2_REVERSED = 1
↑ К оглавлению9. Диагностика: симптом → причина → решение
| Симптом | Вероятные причины | Что делать |
|---|---|---|
| Флип на взлёте | Неверный порядок моторов; неверное направление вращения; неверный Frame Type; неверная ориентация FC. | Не трогать PID. Вернуться к базе: AHRS_ORIENTATION → Frame Type → Motor Test → направление → пропы. |
| Не армится | Не пройдена Pre‑Arm проверка (компас / гиро / радио / GPS…). | Прочитать текст сообщения. Устранить причину. Не отключать проверку «наугад». |
| GPS / OSD / приёмник «не работает» | Протокол назначен не на тот SERIALx; перепутаны TX/RX; неверный baud rate. |
Сверить карту портов → проверить TX↔RX → проверить SERIALx_PROTOCOL и SERIALx_BAUD. |
| Моторы дёргаются при армировании | MOT_SPIN_ARM попадает в deadzone ESC. |
Найти deadzone через Motor Test, поднять MOT_SPIN_ARM выше. |
| Компас не калибруется | Помехи от силовых проводов, магнитов, металла рядом. | Вынести компас дальше от источников помех, повторить калибровку. |
| Коптер «плывёт» по курсу в Loiter | Помехи компаса; компас не откалиброван; компас отсутствует. | Проверить калибровку, проверить помехи под нагрузкой, убедиться что компас вообще есть. |
10. Чек‑лист перед выездом в поле
Отметьте только то, что вы действительно сделали и проверили, а не «вроде бы да».
| ✓ | Навык / действие | Критерий |
|---|---|---|
| Железо | Комплект полный (FC / ESC / GPS+компас / RX). Компас установлен далеко от силовых проводов. | |
| Распиновки | Сверил pinout FC ↔ ESC перед первым включением. Разъёмы совпадают или перепинованы. | |
| UART‑подключения | Карта портов составлена. TX→RX, RX→TX — проверено для каждого устройства. | |
| Прошивка | FC прошит нужным target (с bootloader). Mission Planner подключается, параметры читаются. | |
| Ориентация платы | AHRS_ORIENTATION выставлен. Покачал коптер в руках — горизонт в MP совпадает с реальностью. |
|
| Калибровки | Accel (6 положений) → перезагрузка → Level (ровная поверхность) → Compass — всё пройдено. | |
| Радио | Приёмник привязан. Каналы в MP: центр ~1500, мин <1000, макс >2000. Инверсия pitch исправлена (если нужно). | |
| Serial Ports | Протоколы назначены на правильные SERIALx. USB MAVLink не тронут. |
|
| ESC / DSHOT | MOT_PWM_TYPE выставлен. MOT_SPIN_ARM и MOT_SPIN_MIN настроены по deadzone. ESC calibration для DShot не запускалась. |
|
| Motor Test | Пропы сняты. Порядок моторов соответствует диаграмме. Направление вращения проверено и исправлено. | |
| Режимы | Stabilize доступен одним щелчком. Flight Modes настроены. | |
| Failsafe | Radio failsafe → RTL. Battery failsafe → пороги заданы. Понимаю, что произойдёт в каждом случае. | |
| Логирование | INS_FAST_SAMPLE, INS_GYRO_RATE, FFT‑параметры выставлены. Raw IMU выключен. |
|
| Первый ховер | Stabilize, открытая площадка, 0,5–1,5 м, 3–10 секунд, лог скачан. |

























