Часть 0. Сборка квадрокоптера с нуля на базе Raspberry Pi и полётного контроллера Navio2, с настройкой Ardupilot
Внимание! Перевод статьи 2018 года.
Этот урок — пошаговый конспект по сборке квадрокоптера с нуля на базе Raspberry Pi 3 Model B и полётного контроллера Navio2, с настройкой Ardupilot, подключением наземной станции управления, калибровками, автономными миссиями, анализом логов и примером реализации избегания препятствий. В конце — практические задачи с решениями и чек‑лист самопроверки.
Главная мысль: собирайте и настраивайте систему последовательно — “железо → питание → соединения → сеть → Ardupilot → калибровки → тест без пропеллеров → первый полёт”. Пример команды, с которой начинается программная часть: sudo emlidtool ardupilot.
Содержание
- 1. Цели урока
- 2. Что это за проект: Ardupilot + Navio2 + Raspberry Pi
- 3. Компоненты и выбор железа
- 4. Сборка и проводка: питание, ESC, моторы, шины
- 5. Настройка Raspberry Pi и Ardupilot
- 6. Полёты, калибровки, миссии, логи, избегание препятствий
- 7. Практика: типовые задачи (с решениями)
- 8. Чек‑лист самопроверки знаний
1. Цели урока
- Понять, из каких узлов состоит квадрокоптер на базе Navio2 и Raspberry Pi и как эти узлы связаны.
- Собрать аппаратную часть: питание, PDB, ESC, моторы, приёмник, телеметрия, антенна ГНСС.
- Записать образ системы, поднять сеть, подключиться по SSH, включить и запустить Ardupilot.
- Подключить наземную станцию управления, выполнить калибровки, настроить режимы полёта и базовые параметры.
- Выполнить автономную миссию, ручной полёт, выгрузить и проанализировать DataFlash‑логи.
- Понять логику и ограничения системы избегания препятствий и варианты реализации.
2. Что это за проект: Ardupilot + Navio2 + Raspberry Pi
Ardupilot — это широко используемое программное обеспечение с открытым исходным кодом для автопилота беспилотных транспортных средств, способное выполнять множество функций. Документация и различные источники предоставили нам базовые знания о настройках и использовании отдельных компонентов дрона, однако ни один из них не предоставил подробного руководства о том, как собрать их вместе для создания аппаратной части дрона с пошаговыми инструкциями по настройке и сборке компонентов с нуля, а также всеми необходимыми конфигурациями и настройками.
Данная статья написана с целью объединения всей разрозненной информации в единое целое, чтобы предоставить пошаговое руководство от начала до конца о том, как построить и собрать квадрокоптер с нуля, а также как выполнить все необходимые конфигурации и настройки с использованием полётного контроллера Navio2 Ardupilot. Другие полётные контроллеры от APM или других производителей также могут частично опираться на данное руководство.
Примечание для начинающих: Важно понимать, что сборка дрона — это комплексный процесс, требующий внимательности, аккуратности и соблюдения техники безопасности. Все работы с пайкой, электрическими компонентами и аккумуляторами должны выполняться с соблюдением мер предосторожности.
Исходное оглавление статьи
- Полётный контроллер Navio2 от Emlid
- Raspberry Pi 3 Model B
- Рама дрона
- Моторы 2216/950KV
- Регулятор оборотов электродвигателя (ESC)
- Пропеллеры
- Приёмник ГНСС с антенной
- Передатчик (пульт управления)
- Приёмник сигнала
- Карта MicroSD
- Литий-полимерный (Li-Po) аккумулятор
- Звуковой сигнализатор разряда (BB Alarm)
- Модуль питания (Power Module)
- Телеметрия
- Соотношение тяги к весу
- Настройка оборудования Navio2
- Сборка аппаратной части дрона
- Запись операционной системы на карту MicroSD
- Настройка Wi‑Fi‑сети Raspberry Pi
- Подключение к Raspberry Pi с ноутбука через SSH с использованием PuTTY
- Настройка Ardupilot
- Подключение к наземной станции управления (GCS)
- Калибровка полёта в Mission Planner (MP)
- Изменение режима полёта в Mission Planner в соответствии с каналом радиопередатчика
- Установка кнопки выключения на RPi3
- Выполнение автономной миссии
- Ручное управление полётом
- Анализ журнала данных полёта (Data Flash Log Analysis)
- Реализация системы избегания препятствий
Частая путаница и границы
3. Компоненты и выбор железа
Полётный контроллер Navio2 от Emlid
Основная функция полётного контроллера — обеспечение управления регуляторами оборотов (ESC) для направления частоты вращения моторов на основе входных сигналов с передатчика.
Navio2 Emlid Flight Controller

Одно из преимуществ использования полётного контроллера Navio2 заключается в том, что большинство компонентов уже встроено в устройство, поэтому нам не нужно приобретать их отдельно и выполнять интеграцию самостоятельно.
Компоненты, входящие в состав полётного контроллера Navio2:
- Двойной блок инерциальных измерений (IMU) — содержит акселерометры и гироскопы для определения ориентации и ускорения дрона в пространстве.
- Барометры — измеряют высоту с точностью до 10 см.
- Приёмник ГНСС — отслеживает спутники со всего мира (GPS, GLONASS, Galileo, BeiDou).
- Компас (магнитометр) — определяет направление курса относительно магнитного севера.
- Порты расширения — предназначены для подключения дополнительных датчиков и радио‑телеметрии.
- Со‑процессор радиосвязи — принимает входные сигналы PPM или SBUS от приёмника и выводит 14 каналов ШИМ (PWM) для управления моторами и сервоприводами на сервисных шинах.
Официальный сайт для приобретения полётного контроллера Navio2: https://emlid.com/navio/
Raspberry Pi 3 Model B
Raspberry Pi — это микрокомпьютер размером со среднюю кредитную карту, предназначенный для обработки данных. Благодаря контактам общего назначения (GPIO), Raspberry Pi обладает высокой вычислительной мощностью, достаточной для выполнения функций управления дроном.

Из 40 расширенных контактов GPIO плата Navio2 использует 37 из них для управления полётом, оставляя свободными только 3 контакта:
- GPIO 17 (контакт 11)
- GPIO 18 (контакт 12)
- GPIO 26 (контакт 37)
Эти свободные контакты можно использовать для подключения дополнительных компонентов, например, кнопки выключения или внешних датчиков.
рама дрона
Рама составляет корпус квадрокоптера и включает в себя:
- Лучи
- Шасси
- Крепления
- Плату распределения питания (PDB)
- Защиту пропеллеров
Выбор рамы типа «Х» обусловлен следующими преимуществами:
- Хорошая симметрия конструкции
- Простота дизайна
- Большая гибкость в настройке
- Подходит для резких наклонов и манёвров

Выбранная рама имеет размер 485 мм (расстояние между центрами противоположных моторов по диагонали).
Размер рамы должен соответствовать размерам аккумуляторов, пропеллеров и моторов, как показано в таблице ниже:
| Размер рамы (мм) | Размер пропеллера (дюймы) | Размер мотора | Скорость мотора (KV) | Размер Li‑Po (мА·ч) |
|---|---|---|---|---|
| 120 и менее | 3 | 1104-1105 | 4000+ | 80-800 (1S/2S) |
| 150-160 | 3-4 | 1306-1407 | 3000+ | 600-900 (2S/3S) |
| 180 | 4 | 1806-2204 | 2600+ | 1000-1300 (3S/4S) |
| 210 | 5 | 2204-2206 | 2300-2700 | 1000-1300 (3S/4S) |
| 250 | 6 | 2204-2208 | 2000-2300 | 1300-1800 (3S/4S) |
| 330-350 | 7-8 | 2208-2212 | 1500-1600 | 2200-3200 (3S/4S) |
| 450-500 | 9-12 | 2212-2216 | 800-1000 | 3300+ (3S-5S) |
Компоненты рамы квадрокоптера:
- (a) Защита пропеллеров
- (b) Плата распределения питания (PDB)
- (c) Лучи ротора и центральная крестовина
- (d) Держатель аккумулятора или подвеса
- (e) Углеродное шасси
Моторы 2216/950KV

Выбор типа мотора зависит от размера пропеллеров или дрона. Большие пропеллеры должны приводиться в движение роторами с меньшей частотой вращения из-за более высокого аэродинамического сопротивления.
Расшифровка маркировки мотора:
- 2216 — указывает на размер статора: диаметр 22 мм, высота 16 мм
- 950KV — означает, что мотор развивает 950 оборотов в минуту на каждый вольт подаваемого напряжения
Пример расчёта: При подключении к аккумулятору 3S (11.1 В) мотор 950KV будет развивать примерно \( 950 \times 11.1 \approx 10545 \) об/мин без нагрузки.
Рекомендации:
- Приобретите несколько запасных колпачков моторов (propeller caps). Колпачок удерживает пропеллер на валу мотора и может легко открутиться, если не затянут должным образом (настоятельно рекомендуется затягивать его полностью с помощью гаечного ключа).
- Потеря колпачка особенно проблематична на травянистых участках. Если колпачок отлетел, обычно он находится недалеко от квадрокоптера — ищите в непосредственной близости.
4. Сборка и проводка: питание, ESC, моторы, шины
Что входит в сборку
В этом блоке собраны обязательные аппаратные элементы силовой установки и связи, а также практические правила монтажа: выбор и подключение электронных регуляторов скорости, подбор и балансировка пропеллеров, установка приёмника глобальной навигационной спутниковой системы и стойки для антенны, радиопередатчик и приёмник, карта microSD, литий‑полимерный аккумулятор, звуковой сигнализатор разряда, модуль питания и радио‑телеметрия. В конце — расчёт соотношения тяги к весу как проверка “взлетит ли аппарат с запасом”.
Электронный регулятор скорости (ESC)
Электронный регулятор скорости (ESC) подаёт ток для привода ротора на основе выходного сигнала с сервисной шины полётного контроллера.
Классификация ESC осуществляется по максимальному току, который они могут пропускать. Поэтому выбор ESC должен быть таким, чтобы номинал ESC составлял от 1.2 до 1.5 раза от максимального тока мотора.
Пример расчёта: Поскольку выбранный мотор потребляет максимум 15 А, ESC на 20 А для каждого ротора будет достаточно без риска перегрева или выхода из строя.
Формула: запас по току для ESC
Оптимально держать отношение номинала ESC к максимальному току мотора в диапазоне 1.2–1.5.
\[ \frac{I_{\text{ESC}}}{I_{\text{motor,max}}} = \frac{20}{15} = 1.333 \]
Пропеллеры
Пропеллеры должны подбираться с учётом требуемой надёжности и в соответствии со скоростью мотора.
Материалы пропеллеров:
- Углеродное волокно — более высокое качество, но может не оправдать стоимость. Даже карбоновые пропеллеры ломаются при ударах.
- Пластиковые/нейлоновые пропеллеры — более гибкие и менее хрупкие. Они также менее жёсткие при сопротивлении воздуху, что может быть лучше для снижения вероятности перегрева моторов на больших дронах.
Выбор размера: При относительно большой раме 485 мм (580 мм с учётом защиты пропеллеров) выбрана более низкая скорость ротора — 950 KV, и соответственно больший размер пропеллера — 12 дюймов (30.48 см).
Балансировка пропеллеров
Пропеллеры балансируются на балансировочном станке с использованием дополнительных кусочков изоленты для обеспечения равной массы обоих лопастей. Это минимизирует вибрации, которые могут возникнуть из-за несбалансированных пропеллеров.
Процедура балансировки:
- Установите пропеллер на балансировочный станок.
- Выключите вентилятор (чтобы исключить влияние воздушных потоков).
- Наклейте изоленту на конец более лёгкой лопасти.
- Перемещайте ленту вдоль лопасти, чтобы найти точку идеального баланса.
- Повторите при необходимости.

Сбалансированные пропеллеры
Приёмник ГНСС с антенной
Глобальная навигационная спутниковая система (ГНСС) — это встроенный в Navio2 приёмник сигналов от спутников (GPS и других систем).
Требования к установке антенны:
- Антенна должна быть поднята высоко над полётным контроллером.
- Это необходимо для избежания магнитных помех от компонентов, которые могут привести к сбоям GPS или неточности приёма спутниковых сигналов.
Комплектация:
- Стойка для GPS — на неё монтируется антенна.
- Микрокоаксиальный разъём (MCX) — соединяет антенну с приёмником ГНСС на полётном контроллере.
- Микрокоаксиальный разъём обычно поставляется в комплекте с антенной, но стойку для GPS необходимо приобретать отдельно или распечатать на 3D‑принтере.
Передатчик (пульт управления)
Высококачественный передатчик необходим для обеспечения надёжного управления летающим аппаратом. Это критически важно, так как нарушение связи может привести к серьёзным последствиям.
Выбранная модель: Radiolink AT10II
Это один из самых продвинутых передатчиков компании, предлагающий гибридный протокол радиосвязи:
- DSSS — Direct Sequence Spread Spectrum.
- FHSS — Frequency Hopping Spread Spectrum.
Эти протоколы обеспечивают устойчивую связь с приёмником, который затем передаёт сигнал на полётный контроллер через одножильный кабель SBUS (Serial Bus).
Питание передатчика:
- Может работать от небольшого аккумулятора Li‑Po на 2200 мА·ч, поставляемого производителем.
- Это экономит расходы на замену батарей.
Приёмник сигнала

Настоятельно рекомендуется использовать пару приёмопередатчиков, приёмник которых может общаться с Navio2 через протокол SBUS.
Модель: R12DS
Приёмник принимает сигналы от передатчика и передаёт их на полётный контроллер через протокол связи SBUS.
Преимущества SBUS:
- Новый однопроводной протокол связи (экономит много проводов).
- Поддерживается платой Navio2.
- Один сигнальный провод передаёт все значения радио со всех 12 каналов от приёмника на полётный контроллер.
Подключение:
Navio2 имеет встроенный декодер для расшифровки входных значений SBUS RC перед передачей их в Ardupilot.
Для подключения приёмника к полётному контроллеру потребуются три перемычки «мама‑мама» для соединения:
- Сигнального контакта.
- Положительного контакта (+).
- Отрицательного контакта (земля, GND).
Линии SBUS от приёмника подключаются к соответствующим контактам на сервисной шине полётного контроллера Navio2.
Карта MicroSD

Подобно тому, как компьютеру требуется жёсткий диск (HDD) или современный твердотельный накопитель (SSD) для хранения данных, Raspberry Pi использует карту MicroSD, на которую устанавливается операционная система (Raspbian).
На карте хранятся:
- Критически важные файлы системы.
- Данные о подключении (IP‑адреса).
- Структуры каталогов с кодом для различных функций.
- Журналы полётов и конфигурационные файлы.
Литий‑полимерный (Li‑Po) аккумулятор
Литий‑полимерные аккумуляторы обладают одним из самых высоких соотношений мощности к весу, что делает их одним из лучших вариантов для питания БПЛА.
Требования к эксплуатации:
- За аккумуляторами Li‑Po необходимо тщательно ухаживать.
- Обязательно контролируйте напряжение, чтобы каждая ячейка оставалась не ниже 3.0 В (для безопасности — 3.4 В) перед повторной зарядкой.
- Разряд ниже 3.0 В на ячейку может привести к необратимому повреждению аккумулятора.
Характеристики выбранного аккумулятора:
- Ёмкость: 5200 мА·ч.
- Рейтинг разряда: 25С.
Формула: максимальный ток разряда
\[ I_{\max} = C \times \text{Ah} = 25 \times 5.2 = 130 \text{ A} \]
Этот выбор согласуется с характеристиками ESC и аккумулятора:
- Номинал каждого ESC: 20 А.
- Максимальный ток от аккумулятора для квадрокоптера с 4 моторами: 80 А.
- Ситуации с полным газом встречаются редко, поэтому 130 А от аккумулятора с рейтингом 25С более чем достаточно.
Подбор размера аккумулятора Li‑Po
Размер аккумулятора должен подбираться с учётом размера квадрокоптера для оптимальной продолжительности полёта:
- Если большой дрон питается относительно маленьким аккумулятором — время полёта будет ограничено.
- Если маленький дрон питается большим аккумулятором вне оптимального диапазона — аккумулятор разряжается быстрее из-за лишнего веса.
| Размер квадрокоптера (мм) | Размер аккумулятора Li‑Po (мА·ч) | Количество ячеек (S) |
|---|---|---|
| Мини‑квад (80‑800) | 80‑800 | 1 или 2 |
| 180 | 1000‑1300 | 3 или 4 |
| 210 | 1000‑1300 | 3 или 4 |
| 250 | 1300‑1800 | 3 |
| 280‑290 | 1500‑3300 | 4 |
| 330‑360 | 2200‑3200 | 4 |
| 400 | 3200‑3300 | 4 |
| 450 | 3300 | 4 |
| 500 | 3300‑5000 | 4 |
| 540 | 5000‑5200 | 4 |
| 550‑750 | 5000‑8000 | 4, 5 или 6 |
| 800 и более | 8000‑30000 | 6 |
Тип разъёма: Используется аккумулятор с Т‑образным разъёмом. При выборе этого типа разъёма зарядное устройство и разъём модуля питания также должны иметь соответствующий Т‑образный разъём.
Звуковой сигнализатор разряда (BB Alarm)

Для защиты аккумулятора Li‑Po от возможности глубокого разряда используется звуковой сигнализатор (BB Alarm) — громкое предупреждение, которое срабатывает, когда напряжение любой ячейки аккумулятора падает ниже установленных значений.
Принцип работы:
- Сигнализатор постоянно контролирует напряжение аккумулятора.
- При падении напряжения любой ячейки ниже порогового значения (обычно 3.2–3.4 В) срабатывает громкий звуковой сигнал.
- Это даёт пилоту время безопасно посадить дрон до необратимого повреждения аккумулятора.
Модуль питания (Power Module)

Поскольку один и тот же аккумулятор Li‑Po питает как Raspberry Pi, так и моторы, модуль питания регулирует напряжение для каждого компонента в соответствии с их оптимальными требованиями.
Функции модуля питания:
- Разделяет ток от аккумулятора между:
- Платой распределения питания (для ESC).
- Портом питания на полётном контроллере Navio2.
Выбор модуля: Модуль питания должен быть тщательно подобран так, чтобы разъём соответствовал разъёму аккумулятора. Если аккумулятор имеет Т‑образный разъём, модуль питания также должен иметь Т‑образный разъём.
Телеметрия

Радио‑телеметрия состоит из двух модулей:
- Наземный модуль (Ground Module) с разъёмом USB — подключается к наземной станции управления (ноутбуку).
- Воздушный модуль (Air Module) с разъёмом UART — подключается к полётному контроллеру Navio2.
Назначение наземной станции (GCS):
- Планирование маршрута полёта.
- Мониторинг данных полёта в реальном времени.
Альтернативная схема подключения:
Если последовательные линии порта UART необходимо использовать для других целей (например, для избегания препятствий) или если контакт GPIO 17 порта UART используется для установки кнопки выключения, воздушный модуль телеметрии можно поменять местами с наземным модулем:
- Наземный модуль с USB‑разъёмом подключается к Raspberry Pi 3.
- Воздушный модуль с UART требует дополнительного конвертера USB‑TTL CP2102 для связи с компьютером через драйвер моста Silicon Labs CP210X USB‑UART (можно скачать онлайн).
Соотношение тяги к весу
Расчёт соотношения тяги к весу квадрокоптера необходим для обеспечения возможности взлёта и стабильного полёта с желаемой полезной нагрузкой.
Расчёт «незагруженного» веса квадрокоптера
| Компонент | Количество | Масса на единицу (г) | Общая масса (г) |
|---|---|---|---|
| Рама типа «Х» | 1 | 460 | 460 |
| Аккумулятор 3S (11.1 В) | 1 | 420 | 420 |
| Мотор | 4 | 52 | 208 |
| Raspberry Pi | 1 | 45 | 45 |
| Navio2 | 1 | 23 | 23 |
| ESC | 4 | 14 | 56 |
| Воздушный модуль телеметрии | 1 | 12 | 12 |
| Звуковой сигнализатор (BB Alarm) | 1 | 11 | 11 |
| Защита пропеллеров | 4 | 11 | 44 |
| Пропеллеры | 4 | 8 | 32 |
| Модуль питания и кабели | 1 | 25 | 25 |
| Итого | 1336 г |
Общая масса квадрокоптера без полезной нагрузки: около 1.336 кг.
Формула: целевая тяга “с запасом”
\[ T_{\text{total trust}} \approx 2 \times W \]
Здесь \(W\) — общий вес квадрокоптера, а правило “х 2” — практическая рекомендация для уверенного управления и запаса по манёврам.
Расчёт создаваемой тяги
Тяга квадрокоптера может быть рассчитана из уравнения эквивалентной массы тяги:
\[ m = \frac{T}{g} = \frac{\sqrt[3]{\pi^2 \cdot D^2 \cdot \rho \cdot P^2}}{g} \]
Где \(T\) — тяга (Н), \(D\) — диаметр пропеллера (м), \(\rho\) — плотность воздуха (1.225 кг/м\(^3\)), \(P\) — мощность ротора (Вт), \(m\) — эквивалентная масса тяги, \(g\) — 9.81 м/с\(^2\).
Поскольку расчёт может быть сложным, можно воспользоваться данными из спецификации мотора, предоставленной поставщиком.
Испытания пропеллеров
Datasheet
| Тип пропеллера | Напряжение (В) | Тяга (г) | Ток (А) | Мощность (Вт) | Отношение тяга/мощность (г/Вт) | Температура (°C) |
|---|---|---|---|---|---|---|
| 1238 (углекомпозитный) | 11.1 | 300 | 2.2 | 24.42 | 12.285 | 60 |
| 1238 (углекомпозитный) | 11.1 | 400 | 3.4 | 37.74 | 10.599 | 60 |
| 1238 (углекомпозитный) | 11.1 | 500 | 5.0 | 55.50 | 9.009 | 60 |
| 1238 (углекомпозитный) | 11.1 | 600 | 6.3 | 69.93 | 8.580 | 60 |
| 1238 (углекомпозитный) | 11.1 | 700 | 8.0 | 88.80 | 7.883 | 60 |
| 1238 (углекомпозитный) | 11.1 | 800 | 9.9 | 109.89 | 7.280 | 60 |
| 1238 (углекомпозитный) | 11.1 | 900 | 12.1 | 134.31 | 6.701 | 60 |
| 1238 (углекомпозитный) | 11.1 | 1000 | 14.6 | 162.06 | 6.171 | 60 |
| 1238 (углекомпозитный) | 11.1 | 1110 | 18.0 | 199.80 | 5.556 | 60 |
| 11×4.7 | 11.1 | 300 | 2.4 | 26.64 | 11.261 | 55 |
| 11×4.7 | 11.1 | 400 | 3.6 | 39.96 | 10.010 | 55 |
| 11×4.7 | 11.1 | 500 | 5.2 | 57.72 | 8.663 | 55 |
| 11×4.7 | 11.1 | 600 | 6.6 | 73.26 | 8.190 | 55 |
| 11×4.7 | 11.1 | 700 | 8.5 | 94.35 | 7.419 | 55 |
| 11×4.7 | 11.1 | 800 | 10.4 | 115.44 | 6.930 | 55 |
| 11×4.7 | 11.1 | 900 | 12.7 | 140.97 | 6.384 | 55 |
| 11×4.7 | 11.1 | 1000 | 14.9 | 165.39 | 6.046 | 55 |
Технические данные мотора
| Параметр | Значение |
|---|---|
| Бренд / производитель | YH |
| Модель двигателя | 2216-KV950 |
| KV (об/мин/В) | 950 |
| Максимальный ток (Imax) | 15 A |
| Максимальная мощность (Pmax) | 280 Вт |
| Внешний диаметр | 27.7 мм |
| Высота корпуса | 24.2 мм |
| Масса | 52 г |
Тягу каждого мотора также можно получить напрямую из спецификации. Эквивалентная масса тяги составляет 1110 г при максимальном токе 18 А на каждый ротор.
Формула (): суммарная эквивалентная масса тяги
\[ m_{\text{total}} = 4 \times 1.11 \approx 4.44 \text{ кг} \]
Соотношение тяги к мощности уменьшается по мере роста мощности, так как мощность растёт быстрее при более высоком газе. Минимальное значение составляет 5.55 г/Вт при максимальном газе.
Формула (): итоговое соотношение тяги к весу
\[ \text{Ratio} = \frac{4.44}{1.34} \approx 3.4 \]
Типичные ошибки при сборке
Ошибка: пайка без проверки полярности и замыканий
После пайки силовых линий на PDB не проверяют, что “плюс” и “минус” не замкнуты, и что все “плюсы” действительно объединены.
Ошибка: использование несбалансированных пропеллеров
Пропеллеры ставят “из коробки” без балансировки.
Ошибка: слишком слабый ESC по току
Подбирают ESC “впритык” по току, без запаса 1.2–1.5 от максимального тока мотора.
Ошибка: неправильная установка антенны ГНСС
Антенну размещают слишком низко или рядом с источниками магнитных помех.
5. Настройка Raspberry Pi и Ardupilot
Что настраиваем
В этом разделе собраны шаги программной настройки и подключения: подготовка аппаратной связки Navio2 + Raspberry Pi, запись операционной системы на карту MicroSD, настройка сети (Ethernet или Wi‑Fi), подключение по SSH с помощью PuTTY, установка и включение Ardupilot через emlidtool, а также одноразовая настройка параметров связи для подключения к наземной станции управления (GCS) через UDP или телеметрию.
Настройка оборудования Navio2
Первый шаг — настройка Raspberry Pi 3 для работы с Ardupilot.
- Плата расширения Navio2 устанавливается поверх Raspberry Pi 3.
- Винты фиксируют две платы вместе для надёжного соединения.
- Navio2 вместе с Raspberry Pi 3 будет выполнять функцию полётного контроллера (FC) для собранного квадрокоптера.
Дополнительно:
- Распечатана 3D‑модель держателя, через которую полётный контроллер будет закреплён на раму квадрокоптера.
- Две части держателя соединяются через 8 амортизирующих шариков (демпферы).
- Ссылка на компоненты в файле «Drone BOM List» также включает эти амортизаторы.
Документация по настройке оборудования Navio2: ССЫЛКА
Ссылки на файлы для 3D‑печати держателя:
- Верхняя часть: https://github.com/emlid/hardware/blob/master/VibroNavio2top_rev_A.STL
- Нижняя часть: https://github.com/emlid/hardware/blob/master/VibroNavio2bot_rev_A.STL
Установка амортизирующих шариков

- Используйте тонкие инструменты (например, маленький шестигранный ключ), чтобы протолкнуть концы шарика так, чтобы они зафиксировались в шейках отверстий между двумя напечатанными частями.
- Убедитесь, что части правильно ориентированы, как показано на рисунке.
- Повторите для остальных 7 шариков (по 2 в каждом углу).
Затем прикрепите заднюю часть Raspberry Pi к верхней поверхности напечатанного держателя (той, что имеет большую площадь поверхности) с помощью предоставленных винтов.
Drone Hardware Setups: сборка аппаратной части дрона
После настройки связки Raspberry Pi и платы расширения Navio2 отложите полётный контроллер с держателем и перейдите к настройке рамы. Можно сначала собрать раму для ознакомления, но затем ее обычно приходится частично разбирать для пайки моторов и электронных регуляторов скорости.
Подготовка платы распределения питания

- Найдите на плате распределения питания поверхность с круглыми медными контактами, помеченными знаками «+» и «–», предназначенными для пайки компонентов.
- Используйте мультиметр в режиме проверки целостности цепи, чтобы убедиться, что все положительные контакты соединены между собой, и то же самое для отрицательных контактов.
- Если вы используете паяльную поверхность, обращённую вверх, убедитесь, что при пайке кабелей они не будут перекрывать отверстия для винтов, соединяющих верхний центральный крестовой разъём.
Пайка соединений
- Найдите подходящие положительные и заземляющие контакты на плате распределения питания для пайки:
- модуля питания;
- всех четырёх электронных регуляторов скорости по углам платы распределения питания.
- Все четыре электронных регулятора скорости и моторы одинаковы и могут быть подключены к любому углу — не имеет значения, какой из них куда подключать.
- Припаяйте красные провода к положительным контактам на плате.
- Припаяйте чёрные провода к отрицательным контактам на плате.
- Центральный провод (обычно) — это сигнальный кабель, который будет подключён к полётному контроллеру.
Проверки перед подачей питания
# 1) Нет короткого замыкания между «+» и «−» (проверить мультиметром)
# 2) Все «+» прозваниваются между собой, все «−» прозваниваются между собой
# 3) Провода держатся механически: пайка не «холодная», провод не отрывается при лёгком натяжении
Сборка рамы
- Соберите верхний центральный крестовой разъём с лучами квадрокоптера с помощью шестигранных ключей подходящего размера.
- Соедините полученную конструкцию с платой распределения питания.
- Отрегулируйте проводку электронных регуляторов скорости так, чтобы она не перекрывала точки соединения и не попадала под винты.
Установка полётного контроллера
- Закрепите держатель с Raspberry Pi и Navio2 на центральном крестовом разъёме с помощью толстой двусторонней ленты.
Установка моторов
- Установите мотор на конце каждого луча квадрокоптера вместе с защитой пропеллеров (опционально).
- Расположите трёхфазные провода так, чтобы они были направлены от мотора к центру рамы, параллельно каждому лучу квадрокоптера.
- Надёжно закрепите моторы предоставленными винтами.
Пайка разъёмов моторов и изоляция
Если моторы не имеют готовых пулевых разъёмов:
- Используйте тонкогубцы для фиксации "пулевого" разъёма (во время пайки он может быть очень горячим).
- Расплавьте припой в цилиндрическое отверстие разъёма.
- До затвердевания припоя вставьте залуженный провод от мотора в "пулевой" разъём.
- Удерживайте несколько секунд до полного затвердевания припоя.
- Проверьте прочность соединения, приложив усилие.
Изоляция:
- Если есть термоусадочные трубки — наденьте их на открытый металл и усадите теплом.
- В противном случае используйте электроизоляционную ленту.
Крепление электронных регуляторов скорости
- Закрепите каждый электронный регулятор скорости на верхней (или нижней) поверхности каждого луча квадрокоптера с помощью кабельных стяжек.
- На данном этапе подключите трёхфазные провода бесщёточных двигателей постоянного тока к трём выходам электронных регуляторов скорости.
Проверка направления вращения моторов
Когда вы впервые вооружите квадрокоптер (после выполнения всех последующих шагов), сняв все пропеллеры, убедитесь, что направление вращения каждого мотора соответствует следующему:
| Позиция мотора | Направление вращения |
|---|---|
| Передний правый | Против часовой стрелки |
| Задний левый | Против часовой стрелки |
| Передний левый | По часовой стрелке |
| Задний правый | По часовой стрелке |

Подключение электронных регуляторов скорости к сервисной шине полётного контроллера
Подключите электронные регуляторы скорости к сервисным шинам полётного контроллера согласно схеме производителя: https://docs.emlid.com/navio2/hardware-setup/
Текущее состояние:
- Положительные и отрицательные входы электронных регуляторов скорости припаяны к плате распределения питания.
- Центральный сигнальный кабель каждого электронного регулятора скорости должен быть подключён к сервисной шине.
Важно: продумайте подключение каждого электронного регулятора скорости.
Слева на сервисной шине контроллера Navio2:
- левый пин — линия связи последовательной шины (рассмотрим ниже);
- второй, третий, четвёртый и пятый пины — предназначены для первого, второго, третьего и четвёртого электронного регулятора скорости соответственно.
Подключение сигнальных проводов и питание по сервисной шине
Сигнальные провода электронного регулятора скорости обычно включают: фактический сигнальный провод, провод питания (+) и провод земли (-).
Для электронных регуляторов скорости со встроенным питанием бортовой электроники (три провода по центру):
- подключите провод питания только у одного электронного регулятора скорости (первого или любого одного);
- для остальных электронных регуляторов скорости провод питания обрезается и изолируется (обрезайте только провод питания).
Для электронных регуляторов скорости без встроенного питания(два провода по центру):
- ничего не нужно обрезать или добавлять.
Подключение приёмника к полётному контроллеру
Для подключения приёмника к полётному контроллеру потребуются три перемычки «мама‑мама» для соединения проводов сигнала, питания и земли линии последовательной шины.
Первый (левый) столбец пинов сервисной шины контроллера, помеченный как «PPM/SB», предоставляет контакты сигнала, положительного и отрицательного полюсов питания для связи последовательной шины на первой, второй и третьей строке соответственно.
Подключение телеметрии и антенны глобальной навигационной спутниковой системы
После соединения и монтажа ESC, моторов, силового модуля и приемника на раму квадрокоптера у нас остаются модуль телеметрии, GPS-антенна и аккумулятор.
Модуль телеметрии
Модуль телеметрии поставляется в паре — один воздушный модуль и другой наземный модуль. Воздушный модуль обычно поставляется с микроразъемом UART для подключения к порту UART navio2, как показано ниже, тогда как наземный модуль оснащен разъемом USB для подключения к компьютеру.
(Пропустите следующий раздел, если вы подключаете его обычным способом.) В противном случае, вы можете поменять местами воздушный и заземляющий модуль, подключив заземляющий модуль (с разъемом USB) к Raspberry Pi, а воздушный модуль (с разъемом UART) к вашему компьютеру (ПК). Последнему потребуется дополнительный преобразователь USB-TTL CP2102 для того, чтобы воздушный модуль можно было подключить к COM-порту вашего ПК. Соединение воздушного модуля с преобразователем потребует пайки или возможности соединения через разъемы, как показано на рисунке ниже.

При подключении контактов 5 В и заземления (GND) светодиоды на воздушном модуле начнут мигать, обозначая подачу питания. Убедитесь, что вывод RX конвертера был подключен к TX воздушного модуля телеметрии, а вывод TX конвертера был подключен к RX воздушного модуля. Завершение соединения будет сопровождаться постоянным свечением светодиода, когда воздушный и наземный модуль начинают обмениваются данными друг с другом. Это не означает, что телеметрия обязательно должна работать с точки зрения передачи данных для GCS. Для этого необходимо выполнить незначительные настройки через RPi3, войдя в ОС микрокомпьютера.
В файле «etc/default/arducopter» была обновлена конфигурация подключения, позволяющая это сделать. Подробности об этом показаны на последующих этапах, когда вы перейдете к настройке в разделе «Подключение к наземной станции управления (GCS)».
Антенна глобальной навигационной спутниковой системы
Стойка для антенны — это место, на которое монтируется антенна, а другой конец подключается к приёмнику через микрокоаксиальный разъём.

Подключение аккумулятора и индикация
- Аккумулятор надёжно закрепляется под держателем аккумулятора с помощью стяжки.
- Аккумулятор подключается к модулю питания.
- Один из выходов модуля питания подсоединен к плате распределения питания.
- Другой выход — микро‑разъём — подключается к порту питания на полётном контроллере.
При подключении аккумулятора вы подаёте питание на:
- Raspberry Pi;
- Navio2;
- приёмник;
- телеметрию.
Индикация:
- на Navio2 будут мигать светодиоды, цвет которых указывает на различные состояния;
- на модуле телеметрии мигающий светодиод станет постоянным при установлении связи;
- на приёмнике будут индикаторы питания.
Общая схема соединений квадрокоптера
Блочная системная архитектура ⇓

Запись операционной системы на карту MicroSD
Карта MicroSD, которая будет использоваться в качестве хранилища для микрокомпьютера Raspberry Pi 3, должна иметь установленную операционную систему Raspbian.
Выбор карты:
- Рекомендуемый объём: 16 ГБ или 32 ГБ.
- Класс скорости: 10 или выше.
Шаги по записи ОС:
- Посетите документацию разработчика Navio2: https://docs.emlid.com/navio2/configuring-raspberry-pi/
- Скачайте образ ОС на свой компьютер.
- Запомните, где вы сохранили файл — этот архив будет «записан» на карту MicroSD.
- Скачайте и установите программу Etcher с сайта: https://etcher.io/
- Распакуйте и запустите файл Etcher на вашем ПК.

- Подключите новую или отформатированную карту MicroSD к ПК с помощью подходящего кард‑ридера или адаптера.
- Обычно Etcher автоматически выбирает карту MicroSD в качестве устройства для записи. В противном случае измените устройство на вашу карту MicroSD перед выбором образа ОС.
- Выберите файл образа ОС (архив) из места загрузки.

- Нажмите кнопку «Flash», когда она станет активной.
Примечание: Процесс записи может быть несовместим с некоторыми ПК — в таком случае попробуйте использовать другой компьютер.
После записи
- Образ ОС от Ardupilot — это простая система без графического интерфейса, удобная в использовании.
- Ваша карта MicroSD теперь разбита на разделы для использования с полётным контроллером Navio2.
- Если вы захотите отформатировать карту (в случае повреждения после записи или после нескольких загрузок), не забудьте удалить разделы после форматирования.
- Для управления разделами можно использовать программы, такие как AOMEI Partition Manager.
После «записи» ваша карта MicroSD может быть вставлена в Raspberry Pi 3, после чего можно приступать к настройке сети и последующему подключению к ноутбуку через SSH с использованием PuTTY.
Настройка Wi‑Fi‑сети Raspberry Pi
Для подключения к Raspberry Pi с ноутбука через SSH необходимо, чтобы оба устройства были подключены к одной локальной сети — либо по беспроводной связи (Wi‑Fi), либо по кабелю (Ethernet).
Подключение через Ethernet (LAN‑кабель)
- Подключите и Raspberry Pi, и ноутбук к одному порту LAN‑кабеля.
- Для этого потребуется разветвитель LAN‑порта на два кабеля.
- Один кабель подключается к ноутбуку, другой — к Raspberry Pi.

Настройка беспроводного подключения (Wi‑Fi)
Если вы используете Ethernet‑кабель, пропустите шаги Wi‑Fi и переходите к подключению по SSH. В противном случае требуется настройка сети. Поскольку этот шаг предназначен для включения SSH‑подключения к Raspberry Pi с ноутбука, до этого момента вы можете войти в Raspberry Pi только с использованием внешнего HDMI‑монитора и клавиатуры.
Вход в систему через монитор
- Подключите Raspberry Pi к HDMI‑монитору.
- Подайте питание на Raspberry Pi: через кабель microUSB или через аккумулятор Li‑Po через модуль питания.
- При использовании аккумулятора всегда подключайте звуковой сигнализатор (BB Alarm) для контроля напряжения и избежания необратимого повреждения при падении напряжения ниже 3 В на ячейку.
- В командной строке введите имя пользователя и пароль по умолчанию. Имя пользователя по умолчанию — «pi», а пароль — «raspberry». Пароль может не отображаться, но в любом случае нажимайте Enter для каждой введенной команды.

В тот момент, когда вы войдете в ОС, вас встретит страница следующего содержания:

Настройка конфигурации сети
Далее выполните редактирование файла конфигурации Wi‑Fi:
sudo nano /boot/wpa_supplicant.conf
- Нажмите Enter для открытия файла настройки параметров Wi‑Fi.
- Введите имя сети и пароль, к которой будут подключаться и Raspberry Pi 3, и ваш ноутбук:
- Заполните имя сети между кавычками в строке
ssidкак"НАЗВАНИЕ_СЕТИ". - Введите пароль вашей сети в строке
psk. - Если ваша локальная сеть не защищена паролем, оставьте
pskпустым.
- Заполните имя сети между кавычками в строке

- Нажмите Ctrl+X для выхода.
- Нажмите клавишу Y, затем Enter для сохранения изменений.
- Перезагрузите систему командой:
sudo reboot
Альтернативный способ редактирования (без монитора)
- Извлеките карту MicroSD из Raspberry Pi.
- Подключите её к ноутбуку или ПК.
- Найдите текстовый файл
wpa_supplicant.confи отредактируйте настройкиssidиpsk. - Откройте файл подходящей программой, например WordPad.
- Сохраните файл после редактирования.
После перезагрузки устройства ваш Raspberry Pi сможет автоматически подключаться к настроенной сети Wi‑Fi при загрузке (хотя подключение может занять некоторое время).
Использование точки доступа с мобильного телефона или ПК аналогично использованию обычного Wi‑Fi.

Вы можете отслеживать подключённые устройства с телефона или компьютера. Если подключение не удаётся:
- Перезапустите Raspberry Pi 3.
- Проверьте настройки конфигурации сети (имя и пароль чувствительны к регистру, не должно быть лишних пробелов).
- Подождите, пока оба устройства подключатся и отобразятся в списке.
Подключение к Raspberry Pi по SSH с использованием PuTTY
PuTTY — это одна из программ‑эмуляторов сетевого терминала, позволяющая войти в Raspberry Pi с вашего ноутбука.
Примечание: Если вы не хотите подключаться к Raspberry Pi через ноутбук, это потребует подключения монитора и клавиатуры каждый раз при выполнении настроек. В этом случае вам не нужно выполнять настройку сети и не требуется подключение к интернету. Просто выполняйте настройки через монитор.
Установка PuTTY
- Скачайте PuTTY по ссылке: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
- Следуйте шагам установки.
- Найдите приложение PuTTY в меню ПК и запустите его.
Настройка подключения
- В поле «Host Name (or IP address)» введите:
navio.local. - Убедитесь, что порт установлен на значение по умолчанию: 22.
- Нажмите кнопку «Open».

Решение проблем с подключением
- Если появляется ошибка «Local host does not exist», перезапустите PuTTY и попробуйте несколько раз.
- Если проблема сохраняется, отключите питание от Raspberry Pi и снова подключите его (перезагрузите).
- Повторяйте действия, пока PuTTY не запустится и не появится предупреждающее сообщение; разрешите подключение, нажав «Yes».
Вход в систему
- Имя пользователя по умолчанию:
pi. - Пароль по умолчанию:
raspberry.
Полная документация: https://docs.emlid.com/navio2/ardupilot/installation-and-running/
Настройка Ardupilot
Если вы питаете Raspberry Pi от аккумулятора через модуль питания, который также питает ваши ESC, регуляторы будут непрерывно пищать до завершения калибровки оборудования. Если звук раздражает, можно запитать плату через кабель microUSB. Однако на следующем этапе это не рекомендуется, так как использование кабеля microUSB создаст физические трудности при процессе калибровки. Переключитесь на питание от аккумулятора на этапе калибровки полёта — это упростит процесс.
Настройка Ardupilot через emlidtool
После установления соединения ввод имени пользователя «pi» и пароля «raspberry», по умолчанию, откроет тот же простой интерфейс. Как уже упоминалось, вы можете подключиться к этому интерфейсу либо через SSH на своем ноутбуке (где вам необходимо подключить ноутбук и RPi к одной и той же локальной сети), либо напрямую подключив монитор.
Для настройки Ardupilot выберите тип дрона, версию и плату через команду:
sudo emlidtool ardupilot
Примечание: Используйте щелчок правой кнопкой мыши (не Ctrl‑C и Ctrl‑V) для копирования и вставки, затем нажмите Enter для выполнения команды.

Далее выполните выборы в интерфейсе:
- Следуйте выбору типа транспортного средства: Copter.
- Выберите версию Ardupilot.
- Выберите тип рамы: Arducopter.
- Выберите, хотите ли вы запускать Ardupilot при загрузке: Enable.
- Запустите Arducopter и нажмите Apply.
- Нажмите клавишу
qдля выхода.
Проверка автозапуска
Чтобы проверить, запустится ли ardupilot при загрузке Raspberry Pi, введите команду:
systemctl is-enabled arducopter
Перезагрузка настроек
Изменение настроек дрона требует перезагрузки и перезапуска через команды (одна за другой):
sudo systemctl stop arducopter
sudo systemctl daemon-reload
sudo systemctl start arducopter
Или, менее предпочтительно, прямая перезагрузка:
sudo reboot
Подключение к наземной станции управления (нсу)/ (GCS)
Наземная станция управления (Ground Control Station, GCS) — это ваш ноутбук с программным обеспечением, таким как Mission Planner, используемым для мониторинга полёта в реальном времени.
Способы подключения:
- Через локальную сеть (UDP‑соединение):
- Полезно для простых задач: предполётная проверка, постполётный анализ или извлечение данных полёта.
- Для мониторинга полёта рекомендуется использовать телеметрию, так как она более надёжна и проще в подключении.
- Через пару модулей телеметрии (рекомендуется).
Одноразовая настройка конфигурации
Для обоих способов требуется одноразовая настройка конфигурации для связи с наземной станцией.
sudo nano /etc/default/arducopter
Настройка для UDP‑подключения (через локальную сеть)
Если наземная станция будет подключаться к Arducopter через UDP, укажите IP‑адрес сети и стандартную скорость передачи данных UDP: 14550.

Получение сетевого адреса:
- Откройте «Центр управления сетями и общим доступом».
- Выберите общую локальную сеть, к которой подключены и Raspberry Pi, и ваш ноутбук.
- Адрес НСУ берётся из показанного в окне детализации сетевых настроек адреса IPv4.

Подробно:
Пример замены строки TELEM1
Замените сетевой адрес на актуальный адрес вашей локальной сети:
# было:
TELEM1="-A udp:10.122.12.111:14550"
# стало (пример):
TELEM1="-A udp:192.168.43.94:14550"
Настройка для подключения через телеметрию
- Раскомментируйте строку с
TELEM2, удалив символ#:TELEM2="-C /dev/ttyAMA0" - Если используется модуль телеметрии с USB, добавьте строку
TELEM3, заменивAMAнаUSB:TELEM3="-D /dev/ttyUSB0" - Нажмите Ctrl+X для выхода.
- Нажмите Y, затем Enter для сохранения изменений.
- Перезагрузите Raspberry Pi:
sudo reboot
TELEM1 → TELEM3, можно устанавливать любой из упомянутых типов подключения без необходимости повторного изменения настроек в этом файле.
Установка Mission Planner
Скачайте последнюю версию Mission Planner: http://ardupilot.org/planner/docs/common-install-mission-planner.html
Подключение через локальную сеть (UDP)

- Выберите в правом верхнем углу подключение UDP.
- Нажмите кнопку «Connect».
- Скорость передачи данных отобразится автоматически, и параметры будут загружены.
- Изменения значений данных полёта в Mission Planner будут сигнализировать об успешном подключении.
/etc/default/arducopter. Проверьте IPv4‑адрес в «Центре управления сетями и общим доступом».Подключение через модуль телеметрии
- Подключите воздушный модуль к порту UART на Navio2.
- Подключите наземный модуль к ноутбуку через USB.
- Дождитесь, пока светодиоды на обоих модулях перестанут мигать (будут гореть постоянно).
- В Mission Planner перейдите: Initial Setup > Optional Hardware > Sik Radio.
- Нажмите «Load settings» и дождитесь автоматической загрузки параметров.
- Сохраните настройки.
- Выберите COM‑порт (например, COM4) и нажмите «Connect».
Телеметрическое соединение обычно требует больше времени для загрузки параметров. В случае большой задежки повторите попытку после перезагрузки RPi.
Типичные ошибки в настройке
Ошибка: редактирование не того файла Wi‑Fi
Настройки сети меняют в другом месте или сохраняют файл с неправильной кодировкой/форматом, из‑за чего Raspberry Pi не подключается к Wi‑Fi.
/boot/wpa_supplicant.conf, и что ssid/psk введены без лишних пробелов и с учётом регистра.Ошибка: забыли включить автозапуск Arducopter
Ardupilot настроили через emlidtool, но не включили запуск при старте или не перезапустили сервис после изменений.
systemctl is-enabled arducopter и выполните последовательность stop → daemon-reload → start.Ошибка: Mission Planner “не коннектится” из‑за изменившегося IP
UDP‑подключение настраивалось один раз, а потом сеть/роутер выдал другой IPv4‑адрес, и строка TELEM1 стала неверной.
Ошибка: перепутали порты при телеметрии (TX/RX)
При использовании UART‑линий путают направление: RX должен идти на TX и наоборот.
6. Полёты, калибровки, миссии, логи, избегание препятствий
Что делаем после установки Ardupilot
После того как Raspberry Pi и программное обеспечение автопилота настроены, следующий обязательный этап — подключение к наземной станции управления и калибровки в Mission Planner: выбор типа рамы, калибровка акселерометра, калибровка магнитометра, калибровка радиоканалов, калибровка электронных регуляторов скорости и моторов, настройка аварийных режимов, настройка режимов полёта, а затем — безопасные тесты (первый запуск только без пропеллеров), ручной полёт, автономная миссия, выгрузка и анализ журналов полёта, и при необходимости — реализация избегания препятствий.
Калибровка полёта в Mission Planner
Если питание Raspberry Pi подаётся через модуль питания от аккумулятора, а не через кабель microUSB, электронные регуляторы скорости могут непрерывно пищать, сигнализируя, что процедура настройки ещё не завершена и электронный регулятор скорости не распознаёт полётный контроллер. Только после завершения всех калибровок писк прекращается.
Калибровка полёта — критически важный и обязательный шаг, который необходимо выполнить перед тем, как квадрокоптер сможет быть активирован для полёта. Для начала подключите Mission Planner наземной станции управления к дрону — либо через соединение по протоколу пользовательских датаграмм, либо через пару модулей телеметрии.
Шаг 1: выбор типа рамы
- Перейдите на вкладку Initial Setup > Mandatory Hardware > Frame type.
- Выберите тип рамы квадрокоптера — Х‑рама (X‑frame).

Шаг 2: калибровка акселерометра
- Положите дрон на ровную поверхность и нажмите Calibrate Accel.
- Держите дрон неподвижно при записи уровня.
- Выполните калибровку для разных ориентаций, которые просит Mission Planner: на ровной поверхности, на правом боку, на левом боку, носом вверх, носом вниз, на спине.

Шаг 3: калибровка магнитометра
Калибровка магнитометра крайне необходима для точного определения курса квадрокоптера и выполняется перемещением квадрокоптера так, чтобы охватить все направления трёхосевых плоскостей.
- Нажмите кнопку Start.
- Перемещайте квадрокоптер в разных ориентациях, пока полоса прогресса не завершится.
- В конце появится сообщение о завершении и предложение перезапустить.
Особенности Navio2: в полётном контроллере встроено два магнитометра. Если используются оба, оба должны быть откалиброваны. Если прогресс калибровки одного из магнитометров постоянно перезапускается, можно снять отметку с проблемного магнитометра и использовать второй.
После завершения калибровки нажмите Ctrl+F, чтобы открыть «temp», и перезагрузите pixhawk, как показано ниже.

Критерий успешной калибровки: значения смещения предпочтительно должны быть менее 150 по всем направлениям; если больше — повторите калибровку, убрав рядом металлические предметы.
Отключение проверки магнитометра при невозможности арма (опционально)
- Перейдите на вкладку Configuring > Standard Params.
- Нажмите Find и найдите параметр
arm checks. - Снимите отметку All, затем выберите все компоненты кроме магнитометра.
- Нажмите Write для сохранения.
Внимание: делайте это только после того, как убедились, что проблема не связана с реальной опасностью (например, сильные помехи рядом с силовой проводкой).
Шаг 4: калибровка радиоуправления

Калибровка радио проводится для того, чтобы полетный контроллер (FC) знал диапазон ШИМ, который каждый канал радиосигнала передает от передатчика к приемнику, прежде чем FC сможет преобразовать их в действия по управлению полетом. Для начала калибровки нажмите кнопку «Calibrate Radio». Затем перемещайте левый и правый стики передатчика во всех направлениях, проверяя, что каждый из них реагирует на правильный канал. Левый стик управляет рысканием (влево и вправо) и газом (вверх и вниз), а правый стик управляет креном (влево и вправо) и наклоном (вверх и вниз). Подведите каждый стик к двум крайним положениям, чтобы записать полный диапазон их значений ШИМ. Когда стик доведен до предела, красные маркеры, указывающие диапазон ШИМ радио, раздвинутся в сторону. Если канал правильно не реагирует на изменение положения стика, необходимо внести изменения в настройки передатчика. Ранее передатчик позволял вносить изменения во все каналы, кроме первых четырех, которые фиксированы для стиков:
- Channel 1: Roll / крен
- Channel 2: Pitch / тангаж
- Channel 3: Throttle / газ
- Channel 4: Yaw / рыскание

Примечание. Убедитесь, что в качестве объекта управления в передатчике выбран коптер / copter, а не другие типы дронов.
- Нажмите кнопку Calibrate Radio.
- Перемещайте левый и правый стики во всех направлениях, доводя их до крайних положений.
- Проверьте, что каналы реагируют ожидаемо: левый стик — рыскание и газ, правый — крен и тангаж.

Если направление ответа какого-либо радиоканала инвертировано, поменяйте направление сигнала канала либо путем настройки передатчика, либо в Mission Planner.

Если направление канала инвертировано: инвертируйте канал в настройках передатчика или в Mission Planner.
Шаг 5: калибровка электронных регуляторов скорости
(не требуется при использовании протокола Dshot)
Чтобы выполнить калибровку ESC, нажмите кнопку Calibrate ESC в Mission Planner.
- Полностью выдвинув стик газа передатчика (левый стик) вверх, перезапустите полетный контроллер (отключив и включив батарею).
- Через некоторое время, опустите стик газа вниз.
- Калибровка ESC завершится после того, как прекратится длинный звуковой сигнал. Если звуковой сигнал не прекращается, прекратите калибровку и перезапустите квадрокоптер в обычном режиме с минимальным значением газа.
Калибровка ESC выполняется каждый раз при первом подключении к источнику питания и сопровождается длинными звуковыми сигналами. Светодиод FC при этом моргает синим цветом.
Если звуковой сигнал продолжается бесконечно: отмените калибровку и перезапустите квадрокоптер обычным способом с минимальным газом.
Шаг 6: аварийный режим (failsafe)
Рекомендуется настроить аварийный режим на случай низкого напряжения и потери радиосвязи, чтобы квадрокоптер мог безопасно выполнить автоматический возврат к точке запуска (RTL). Альтернативно (и проще в бытовом применении) можно использовать звуковой сигнализатор разряда аккумулятора: установить порог 3.2–3.4 В на ячейку и осуществлять ручную посадку при срабатывании.
Радиосвязь — важнейший компонент, выход из строя которого может привести к тому, что ваш квадрокоптер будет потерян. Не используйте компоненты, которые могут создавать помехи частоте радиоканала, и всегда проверяйте напряжение и работоспособность передатчика. Защитите свой квадрокоптер, установив отказоустойчивую систему радиосвязи, благодаря которой он будет возвращаться к месту запуска (RTL) при потере радиосвязи.
Важно: квадрокоптер может быть активирован только после завершения всех проверок безопасности, которые включают ранее описанные калибровки.
Изменение режима полёта в Mission Planner в соответствии с каналом радиопередатчика
Основные каналы (каналы 1–4) фиксированы для функций крена, тангажа, газа и рыскания. Вспомогательные каналы можно переназначать.

Все, что нам нужно сделать, это изменить переключатель канала на конкретный физический переключатель, которым мы будем осуществлять управление.
В Mission Planner настройка режимов полёта обычно использует стандартный канал 5.
- Подключите наземную станцию управления к квадрокоптеру.
- Перейдите: Configuring > Flight Modes (для версии 1.3.56).
- Назначьте режимы полёта на диапазоны широтно‑импульсной модуляции канала 5.
- На передатчике назначьте канал 5 на трёхпозиционный переключатель, если он есть.
- Проверьте в Mission Planner поле Current Mode, что режимы реально переключаются.
Наш трехпозиционный переключатель на канале 5 включает режим полета 1 (когда положение переключателя находится внизу), режим полета 4 (когда положение переключателя среднее) и режим полета 6 (когда положение переключателя вверху). В Mission Planner, режимы выбираются из раскрывающегося списка. Т.е. в нашем случае, выбрая режимы полета 1, 4 и 6 мы активируем переключателем режимы Stabilize (нижнее положение), Altitude Hold (Среднее) и Loiter (Верхнее).
Если ваш радиопередатчик оснащен только двухпозиционными переключателями, используйте наиболее важные для вас режимы. Рекомендуется «Стабилизация» (базовый режим) и «Удержание высоты» / Altitude Hold (важно, если вы пока не умеете уверенно управлять газом).
Посадить квадрокоптер не менее сложная процедура, и вы, возможно, захотите задействовать и этот режим. Настройте режим Land на другом канале. Просто перейдите в раздел «Configuring» > «Extended Tuning».
Важно. Сравните настройки вашего радиопередатчика с настройками в Mission Planner.
| Режим | Канал (настраивается в Mission Planner) | Переключатель (настраивается на передатчике) |
|---|---|---|
| Посадка (Land) | 8 (в Extended Tuning) | Двухпозиционный переключатель |
| Стабилизация (Stabilize) | 5 (в Flight Modes) | Трёхпозиционный переключатель |
| Удержание высоты (AltHold) | 5 (в Flight Modes) | Трёхпозиционный переключатель |
| Удержание позиции (Loiter) | 5 (в Flight Modes) | Трёхпозиционный переключатель |
| Автономный режим | 7 (в Extended Tuning) | Двухпозиционный переключатель |
Некоторые радиопередатчики допускают логическое управление переключателями для управления одним каналом. Это означает, что для управления, скажем, каналом 5 можно использовать логику второго переключателя (включен / выключен) для получения большего количества выходов. Пример показан ниже для лучшей иллюстрации. Эту настройку можно выполнить на вашем радиопередатчике (если он имеет эту функцию). Потратьте немного времени, чтобы разобраться, как выполнить настройку.

Однако не рекомендуется использовать логический переключатель, если вы в себе пока уверены, поскольку это может легко вызвать путаницу из-за сложности переключения и может быть опасным в периоды паники. На всякий случай всегда используйте один трехпозиционный переключатель и делайте на своих радиопередатчиках четкие метки для различных режимов, которые будут включаться разными переключателями. Это поможет вам немедленно реагировать на экстренные ситуации, например, посадить квадрокоптер или отключить неисправный режим, вместо того, чтобы вспоминать, каким переключателем управлять в том или ином случае.

После того, как режимы полета установлены как на вашем передатчике, так в Mission Planner (подключенном к вашему дрону), вам больше не потребуется подключение к Mission Planner для начала полета. Убедитесь, что вы разбираетесь в режимах, в которые собираетесь переключиться!
| Режим полёта | Функции |
|---|---|
| Stabilise (Стабилизация) | Позволяет вручную управлять аппаратом с авто-выравниванием по крену и тангажу. Для удержания высоты требуется постоянно корректировать газ. |
| Alt Hold (Удержание высоты) | Коптер удерживает постоянную высоту, при этом доступны управление креном, тангажом и рысканьем. Если газ находится в «мертвой зоне» 40–60%, высота сохраняется; снижение/набор происходит только при выходе значения газа из этой зоны. «Мёртвая зона» настраивается в пределах 0–400; значение 100 означает ±10% вокруг середины газа. |
| Loiter (Зависание/удержание точки) | Удерживает позицию, курс и высоту. Движения стиков могут временно прерывать удержание, но после отпускания стиков коптер остановится и снова будет удерживать. Управление высотой — как в Alt Hold. Требуются минимальные вибрации, исправный компас и уверенный GPS‑фикс. |
| Return to Launch (RTL) (Возврат домой) | При включении RTL коптер возвращается и зависает над домашней точкой. Сначала поднимается до RTL_ALT (по умолчанию 15 м) или сохраняет высоту, если она уже выше 15 м, затем летит к месту старта. Домашняя точка — место, где коптер был «armed» (взведён). |
| Auto (Авто, по миссии) | Коптер выполняет заранее запрограммированную миссию, сохранённую в автопилоте. Скрипт состоит из навигационных команд (waypoints/точек маршрута). Миссия должна завершаться RTL или LAND, иначе потребуется перейти на ручное управление. Скорость (WPNAV_SPEED) настраивается. |
| Acro Mode (Акро) | Полезен для аэробатики и самый сложный в освоении. Стики управляют угловой скоростью коптера. При отпускании стиков сохраняется последняя ориентация (коптер не выравнивается). |
| Auto Tune (Автонастройка) | В Alt Hold коптер «дёргается» по крену и тангажу для автоматической настройки PID. Можно настроить сочетание осей (AUTOTUNE_AXES) и «агрессивность» настройки (AUTOTUNE_AGGR). Рекомендуется выполнять настройку там, где «дёргания» были бы направлены перпендикулярны направлению ветра. |
| Brake (Торможение) | Останавливает коптер максимально быстро, используя GPS‑фикс. После включения коптер не принимает команды от пилота. |
| Circle (Круг) | Коптер, направляя нос к центру, летает по кругу вокруг точки с радиусом CIRCLE_RADIUS (в сантиметрах). Значение 0 полезно для панорамной съёмки. Скорость настраивается параметром CIRCLE_RATE. Ручное управление креном и тангажом недоступно; можно управлять только газом (высотой) и рысканьем. |
| Drift (Дрифт) | Позволяет летать «как самолёт» со встроенными автоматическими согласованными разворотами. Газ управляется вручную, как в Stabilise. |
| Guided Mode (Управляемый/наведение) | Позволяет вести коптер через наземную станцию (GCS) по телеметрии. По прибытии в заданную точку коптер зависает и ждёт следующих команд. Для использования рекомендуется взлететь в Stabilise и переключиться в Loiter на разумной высоте. |
| Land (Посадка) | Снижает коптер со скоростью 150 см/с выше 10 м и 50 см/с ниже 10 м. Если газ в минимуме, по касании земли коптер деактивируется. Скорость посадки можно настроить (вкладка конфигурации/список параметров). Крен и тангаж при посадке контролируются с GPS‑фиксом. |
| Position Hold (Удержание позиции) | Похож на Loiter: удерживает позицию, курс и высоту, но стики напрямую задают угол наклона коптера, что ощущается более «естественно». |
| Sports (Спорт) | «Стабилизация с управлением по скоростям (rate controlled)» плюс удержание высоты. Когда стики отпущены, аппарат сохраняет текущую ориентацию. Максимальный угол наклона (ANGLE_MAX) настраивается. |
| Throw (Бросок) | Рискованный режим: позволяет запустить коптер в воздухе после броска по траектории. Требуется GPS; команды от пилота не принимаются. |
| Follow Me (GCS enabled) (Следуй за мной) | Коптер следует за пилотом при наличии телеметрии и наземной станции. Работает на базе Loiter после взлёта на безопасную высоту. |
| Simple / Super Simple (Простой / Супер‑простой) | Позволяют управлять движением «с точки зрения пилота» независимо от того, куда направлен нос коптера. Simple — управление относительно курса коптера в момент взлёта. Super Simple — управление относительно направления от домашней точки (то есть точки arm/местоположения пилота при взведении). |
| Smart RTL (Умный RTL) | Новая функция, похожая на RTL: коптер возвращается к месту arm. Он записывает участок ручного полёта до текущей точки, «вырезает» круги/петли, избегает препятствий и строит более чистый и эффективный маршрут возврата. |
Установка кнопки выключения на Raspberry Pi 3
Для корректного выключения системы используется команда sudo halt. Правильное выключение микрокомпьютера Raspberry Pi может быть так же важно, как и правильное выключение любого домашнего персонального компьютера. Выключение можно выполнить только после связи с ОС Raspberry Pi либо через правильное соединение непосредственно используя клавиатуру или мышь и монитор, либо через безопасную оболочку (SSH) используя PuTTY. Принудительное выключение путем отключения питания может в конечном итоге привести к повреждению SD-карты.
Raspberry Pi начнет загружаться, как только получит питание от аккумулятора. Однако возникают некоторые проблемы, когда дело доходит до его правильного отключения.
Для целей отключения используется один из свободных портов GPIO Raspberry Pi, который остается не занятым логикой контроллера полета Navio2, и к которому подключается выключатель Raspberry Pi. Можно использовать только 3 свободных порта GPIO: GPIO 17 (контакт 11), GPIO18 (контакт 12) и GPIO 26 (контакт 37). Идея состоит в том, чтобы написать программу, которая будет запускаться при загрузке Raspberry Pi и которая, всякий раз, когда GPIO 17 (контакт 11) будет замыкаться на землю (с помощью мгновенного нажатия кнопки), будет запускать команду на автоматическое выключение Raspberry Pi.
Свободные контакты, которые не используются платой Navio2:
- Контакт ввода‑вывода общего назначения 17 (контакт 11).
- Контакт ввода‑вывода общего назначения 18 (контакт 12).
- Контакт ввода‑вывода общего назначения 26 (контакт 37).
Пример добавления кнопки выключения на Raspberry Pi, можно посмотреть в видео (англ.).
Это очень просто и легко для каждого.
Пример минимального скрипта на Python для выключения по кнопке
Это пример логики “кнопка замыкает контакт ввода‑вывода общего назначения 17 на землю — выполняется выключение”. Скрипт должен запускаться автоматически при старте системы (например, через systemd).
import os
import time
try:
import RPi.GPIO as GPIO
except ImportError:
raise SystemExit("Библиотека RPi.GPIO не установлена.")
PIN = 17 # контакт ввода-вывода общего назначения 17, физический контакт 11
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def shutdown():
os.system("sudo halt")
try:
while True:
if GPIO.input(PIN) == GPIO.LOW:
time.sleep(0.2)
if GPIO.input(PIN) == GPIO.LOW:
shutdown()
break
time.sleep(0.05)
finally:
GPIO.cleanup()
Выполнение автономной миссии
Примечание: Если это первый раз, когда вы активируете квадрокоптер, сначала ознакомьтесь с ручным управлением и выполните все калибровки.
Подготовка к тесту
- Найдите широкое и свободное открытое поле с минимальными препятствиями.
- Возьмите с собой ноутбук с Mission Planner, дрон и необходимое оборудование.
- Подключите модули телеметрии и дождитесь стабильной индикации связи (постоянно светящиеся светодиоды).
- Нажмите кнопку «Connect» в Mission Planner после установления связи.
Планирование миссии
- В Планировщике миссий перейдите на вкладку «Режим полета». Используйте мышь, чтобы легче перемещаться по карте. Колесо прокрутки мыши можно использовать для увеличения и уменьшения масштаба карты, а затем перетаскивать карту левой кнопкой мыши для интерактивной навигации в любом направлении.
- Всплывающее диалоговое окно спросит, хотите ли вы установить текущую координату вашего дрона в качестве домашнего местоположения (точку взлета вашего дрона). Нажмите «Да», чтобы сделать это. При этом значок квадрокоптера (местоположение вашего дрона) на карте сольется со значком «
H» (домашнее местоположение) на карте. - Если антенна GPS правильно подключена к разъему MCX на контроллере полета (см. настройку компонента), автоматически загрузится Google карта, на которой в данный момент находится ваш дрон. Обратите внимание, что кнопка «Home» (значок «H») загружается как текущее местоположение вашего дрона (значок квадрокоптера), т. е. значок «H» должен совпадать со значком квадрокоптера. В противном случае для этого нажмите "Home location / «Домашнее местоположение», как показано ниже.
Затем на карте выполните планирование пути (миссии), щелкая точки маршрута (WP - way point), через которые вы хотите, чтобы ваш дрон следовал, как показано ниже, одну WP за другой.

Во время планирования пути автоматически создается таблица WayPoint. Таблица WP содержит координаты местоположения каждой из выбранных WP и команды, которые мы хотим, чтобы дрон выполнял на конкретных WP. Переместите курсор на линию, разделяющую карту и таблицу, и потяните вниз, чтобы увеличить карту по отношению к таблице.
Чтобы позволить дрону выполнить полную миссию, добавьте еще один WP над первой строкой в таблице WP и измените команду для новой первой точуки на "TakeOff" / «Взлет». Чтобы добавить WP, щелкните строку, ниже которой вы хотите последовательно вставить WP, а затем нажмите "Add below" / «Добавить ниже». Новый WP будет добавлен. Нажмите стрелку ВВЕРХ или ВНИЗ, чтобы поменять последовательность WP. Переместите WP «TakeOff» наверх. Затем добавьте в самом конце таблицы еще одну новую точку WP и установите для новой последней команды WP значение "Land" / «Земля». Пример таблицы WP показан ниже.
Чтобы удалить WP, нажмите «X», и вся строка будет удалена.

Убедитесь, что ваш дрон не заденет какие-либо объекты, деревья, столбы и т. д., которые находятся вблизи запланированного пути, и вообще избегайте планирования WP близко к подобным объектам. Установите подходящие значения желаемых высот. Хорошая практика планирования высот, чтобы автономный полет имел просвет над препятствиями не менее 5 метров.
На панели Action, показанной ниже, есть 4 важных действия:
- сохранение файла в архив
Save WP File - загрузка файла из архива
Load WP File - чтение настроек из Mission Planner полетным контроллером
Read WPs - запись настроек маршрута в Mission Planner
Write WPs
Любые таблицы WP, созданные в Mission Planner, можно сохранить на вашем компьютере в виде текстового файла (файл WP), чтобы их можно было просто загружать в Mission Planner, когда вы захотите повторить миссию.
Чтобы загрузить сохраненный файл WP, нажмите кнопку «Load WP File», перейдите туда, где вы сохранили файл WP, и откройте его. Таблица WP будет загружена в ваш Mission Planner. Дважды проверьте, действительно ли загруженная миссия является той, которую вы собираетесь выполнить.
Нажмите кнопку «Write WPs», чтобы сохранить таблицу WP в Mission Planner. После этого нажмите «Read WPs», чтобы отправить файл WP в полетный контроллер, чтобы дрон следовал по маршруту. Для этого необходимо, чтобы дрон был подключен к НСУ через модуль телеметрии. После «Чтения» / "Read WPs" Mission Planner еще раз спросит, хотите ли вы установить исходное местоположение (место запуска) / Home location (Launch location) по текущим координатам загруженного дрона. Нажмите «Нет», чтобы сохранить файл WP. Выполните чтение несколько раз, чтобы убедиться, что маршрут реально заведен в квадрокоптер.
Когда выполнение команды Read завершится, взведите (ARM) дрон с пульта управления: при нулевом газе переведите левый стик газа полностью вправо и удерживайте. Дрон должен быть установлен так, как было указано ранее, чтобы загруженные координаты совпадали с точкой Home Location (при необходимости нажмите кнопку Home Location, чтобы совместить их, если на карте они отображаются в разных местах).
Дрон не армится в режимах Autonomous или Land. Перед армом сначала переключитесь в режим Stabilise. Подробности переключения режимов см. в разделе “change the flight mode on the Mission Planner”.
Сразу после взведения включите режим Autonomous, затем слегка и плавно прибавьте газ, чтобы запустить автономный полёт. Дрон автоматически взлетит на выбранную высоту, после чего начнёт движение к первой и последующим точкам маршрута (WP).
Скорость, с которой дрон будет лететь между точками маршрута (WP), можно задать в Full Parameter List. Найдите и измените параметр WPNAV_SPEED. Проще сделать это на вкладке Config/Tuning → Extended Tuning (как показано ниже). Значение Speed 400.000 означает, что дрон настроен на горизонтальную скорость 4 м/с. Если вы не уверены в точности GPS, установите скорость меньше 3 м/с. Скорость посадки также очень важна. Land speed можно задать в полном списке параметров, найдя и изменив LAND_SPEED. Скорость посадки — это вертикальная скорость финального касания (в момент, когда дрон почти касается земли). Рекомендуется выставить её как можно ниже — например 10 см/с. Вертикальная скорость снижения (до этапа финального касания) задаётся параметром WPNAV_SPEED_DN в полном списке параметров / Full Parameter List. Если вы не уверены в настройках или есть ошибки измерения барометра, установите скорость снижения также до 10 см/с. Это тоже удобнее менять на вкладке Extended Tuning, где параметр Speed Dn на рисунке ниже означает, что квадрокоптер будет снижаться со скоростью 1,5 м/с, прежде чем уменьшит её до скорости финального касания, заданной в LAND_SPEED. Не забудьте нажать кнопку Write Params, чтобы сохранить изменения.
Отключить автономный режим во время полёта может быть непросто. Если вы новичок и у вас мало опыта, лучше этого не делать. Тем не менее, такая необходимость может возникнуть при ошибках в полёте — например, если дрон летит слишком медленно, вы понимаете, что выбрали точку маршрута (WP), на которой возможен контакт с препятствиями, или вы не задали посадку (Land) в последней точке либо в подходящем месте и т.п. Не переключайтесь в режим Land, так как дрон может упасть. Перед переключением в режим Stabilise поднимите газ выше среднего положения. Будьте готовы взять управление газом на себя, чтобы дрон не начал резко падать. Отведите его в безопасное место и только затем выполняйте посадку. Если у вас на аппаратуре заранее настроен режим Loiter, включите его, чтобы забрать управление из auto-mode: в Loiter управлять проще, так как он включает удержание высоты (Altitude Hold). После завершения маршрута дрон приземлится в последней точке WP, и газ автоматически отключится, как только он коснётся земли. Если этого не произошло, опустите газ полностью вниз и включите режим Stabilise, затем вручную деактивируйте (disarm) дрон. Дизарм выполняется так: при нулевом газе переведите стик газа полностью влево и удерживайте.
Ручное управление полётом
Убедитесь, что вы выполнили все калибровки и настройки на предыдущих шагах. Также проверьте, что на передатчике и в Mission Planner заранее настроены и доступны основные необходимые режимы, такие как Stabilise, Altitude Hold и Land.
- Поставьте квадрокоптер на ровную поверхность в просторном открытом месте, затем подключите аккумулятор.
- Дождитесь, пока не прекратится длинный звуковой сигнал.
- Взведите (ARM) квадрокоптер, переведя стик газа при нулевом газе полностью вправо. Если вы взводите квадрокоптер впервые, необходимо убедиться, что направления вращения моторов правильные. Взведите аппарат со снятыми пропеллерами, затем аккуратно проверьте пальцем направление вращения каждого мотора. Если направление неверное — поменяйте местами любые два провода (bullet-коннектора) между соответствующим ESC и мотором.

Если квадрокоптер не взводится (не ARM), подключите дрон к Mission Planner, чтобы увидеть, какая именно проверка pre-arm блокирует взведение. Например, если слишком большое смещение компаса (compass offset), необходимо заново откалибровать магнитометр. Компоненты pre-arm check можно выборочно отключать: зайдите на вкладку Configuring → Standard Params, нажмите Find и выполните поиск по arm checks. Снимите галочку All, затем по отдельности включите все проверки, кроме проблемных, и нажмите Write Params для сохранения. Делайте это только после того, как убедитесь, что отключение неисправных/проблемных проверок не приведёт к аварии.

После взведения (ARM) квадрокоптера, то есть когда моторы вращаются на минимальных оборотах, плавно и медленно увеличивайте газ, пока не увидите, что дрон начинает приподниматься. Добавьте тяги, чтобы помочь ему оторваться от земли и набрать высоту. На нужной высоте переключитесь в режим Altitude Hold, чтобы удерживать высоту.
Переключитесь в режим Loiter, если хотите, чтобы дрон оставался в текущей GPS-точке, сохраняя при этом ту же высоту. При переключении в эти режимы дрон должен сохранять последнюю высоту. Если он падает или снижается, вы всё равно можете добавить газ, чтобы контролировать полёт.
Если вы не планируете использовать режим Altitude Hold, убедитесь, что уверенно умеете контролировать высоту вручную: постоянно добавляйте газ, когда дрон снижается, и убирайте газ, когда он поднимается, одновременно управляя тангажом (pitch), креном (roll) и рысканьем (yaw) квадрокоптера.
Начинать горизонтальное перемещение можно после того, как дрон находится в воздухе и имеет достаточный запас по высоте над землёй. Дрон перемещается за счёт вращения вокруг трёх осей:
- Крен (Roll) — наклон влево и наклон вправо (см. схему управления на передатчике)
- Тангаж (Pitch) — наклон носом вниз и наклон носом вверх
- Рысканье (Yaw) — поворот влево (против часовой стрелки) и поворот вправо (по часовой стрелке)
Анализ журнала данных полёта
Послеполётный анализ даёт полную информацию о полёте: высота по барометру, GPS-координаты, приём спутников, напряжение аккумулятора, реакции и фактическое положение (attitude), заданное положение (desired attitude), радиосвязь, скорость, ток моторов, а также 3D-визуализацию траектории и режимов полёта.
Чтобы загрузить DataFlash log через Mission Planner, не подключайтесь к дрону по радиотелеметрии. Вместо этого нужно установить UDP‑подключение, подключив оба устройства (RPi3 и ноутбук) к одной LAN‑сети, и выполнить необходимую настройку сети, как указывалось ранее.
Откройте вкладку DataFlash Logs (как показано ниже) → Download DataFlash Log via Mavlink → выберите файлы логов нужных полётов (ориентируясь на точные дату и время) → Download selected files. Загруженные лог‑файлы будут сохранены на вашем ПК.

Загруженные бинарные файлы логов можно открыть в Mission Planner для анализа без подключения к дрону. Просто нажмите “Review a Log”, затем выберите и откройте нужный файл, ориентируясь на записанные дату и время полёта.

При попытке просмотреть логи вы автоматически перейдёте в папку, где они сохранены. Если нет, их можно найти по пути:
C:\Users\Username\Mission Planner\logs\QUADROTOR\1
Дважды щёлкните по выбранному бинарному файлу лога, чтобы открыть flash log. В flash‑логах среди наиболее популярных и полезных параметров можно выделить:

| Attitude (ориентация) |
|
| BARO | Alt: высота по барометру |
| ThO | Output Throttle value: выходное значение газа (команда газа, формируемая контроллером) |
| GPS |
|
| IMU |
|
| RCIN | Input radio channel value: входные значения каналов радиоуправления |
| RCOUT | C1/C2/C3/C4: ток моторов 1–4 (как указано в логе) |
| VIBE | Vibe X/Y/Z: вибрации по осям X/Y/Z |
Чтобы построить график нужного параметра, просто поставьте галочку напротив него в правой нижней панели — соответствующий график будет сгенерирован. Перед анализом нового параметра рекомендуется снять галочки с не относящихся к делу параметров, чтобы корректно сбросился масштаб графика.
Чтобы увеличить размер графика, наведите курсор на двойную пунктирную линию и перетащите её вниз, расширяя область графика (за счёт пространства под ним).
Если нужно сохранить график, нажмите правой кнопкой мыши и выберите “save image as”. Ещё проще — используйте Snipping Tool, чтобы вырезать и сохранить/скопировать нужную область. Ссылка на загрузку Snipping Tool:
https://snipping-tool-plus-plus.en.softonic.com/download
Для работы требуется Java. Скачать Java можно здесь:
https://www.java.com/en/
Полётные данные полезны для поиска причин аварий, неисправностей или невозможности выполнения отдельных функций. Например, если квадрокоптер постоянно теряет высоту в режиме Altitude Hold, посмотрите данные барометра, чтобы проверить, корректно ли он измеряет высоту.
Другие примеры анализа данных

Высота по барометру и скорость по GPS для обеспечения стабильной скорости в среднем 3 метра/с.

HDOP
HDOP (Horizontal Dilution of Precision) — это показатель геометрической точности GPS по горизонтали (в плоскости широта/долгота). Он отражает, насколько удачно расположены спутники на небе: при хорошей геометрии ошибка меньше, при плохой — больше. Единиц измерения у HDOP нет.
| DOP (значение) | Оценка | Описание точности GPS |
|---|---|---|
| < 1 | Ideal | Для задач, требующих максимально возможной точности в любое время. |
| 1–2 | Excellent | На этом уровне доверия координаты достаточно точны для всех задач, кроме самых чувствительных к ошибкам. |
| 2–5 | Good | Минимально приемлемый уровень для принятия рабочих/деловых решений. Координаты можно использовать для надёжных подсказок навигации по маршруту. |
| 5–10 | Moderate | Координаты можно использовать для расчётов, но качество фикса ещё можно улучшить. Рекомендуется более открытый обзор неба. |
| 10–20 | Fair | Низкий уровень доверия. Координаты следует отбросить или использовать только для очень грубой оценки текущего местоположения. |
| > 20 | Poor | Измерения могут быть неточны вплоть до ~300 м (пример: 50 DOP × 6 м) даже при устройстве с точностью 6 м; такие данные следует игнорировать. |
График широтных координат на протяжении всего полета автономной миссии

График продольных координат на протяжении всего полета второй миссии

Сравнение с координатами автономной миссии из таблицы WP

График потребления тока двигателем
Вместе со скачанными бинарными лог‑файлами сохраняется и KMZ‑файл полёта. KMZ‑файлы можно открыть с помощью программы Google Earth Pro. Перейдите на ПК по пути:
C:\Users\Username\Mission Planner\logs\QUADROTOR\1
и откройте KMZ‑файл в Google Earth Pro.
В Google Earth Pro вы сможете анализировать полёт в 3D (вплоть до режима Street View).

Реальная траектория полета, по которой следовал квадрокоптер, из KMZ файла миссии.

Трехмерное изображение траекторий полета второй миссии в режиме просмотра улиц.
Просмотр 3D‑изображения в режиме Street View возможен с помощью Google Earth Pro. Разные участки траектории различаются в зависимости от переключения режимов полёта, как показано на левой панели выше. Траектории можно выборочно отключать в списке на левой панели: если снять галочку с режима, соответствующий участок исчезнет с 3D‑карты, и останутся только отмеченные траектории.
На схеме выше зелёная линия — это первый круг траектории в режиме Auto, по которому летел квадрокоптер, а накладывающаяся фиолетовая линия — второй круг, тоже в режиме Auto.
Измерить горизонтальную дистанцию по траектории можно с помощью инструмента Ruler (линейка) в программе.
Реализация системы избегания препятствий
Система избегания препятствий (APM) в нашем случае поддерживает обход препятствий максимум в двух направлениях. С использованием высокопроизводительного сонара LV‑MaxSonar‑EZ0 от Maxbotix квадрокоптер способен обнаруживать препятствия на расстоянии до 6,45 м. Этот дорогой датчик EZ0 используется только для обнаружения объектов над квадрокоптером, чтобы избежать столкновений при взлёте или наборе высоты.
Подключение MaxSonar к полётному контроллеру Navio2 выполняется через выводы АЦП (ADC): как показано ниже, с FC на сонар подключаются питание (voltage), земля (ground) и аналоговый сигнал (analog pin).
Для физического подключения необходима микро-гребёнка (micro-header pin) под 6‑пиновый ADC‑разъём, используемый в Navio2. Эти штырьковые разъёмы также подходят и для других портов Navio2, если количество пинов совпадает.
Для стабилизации питания в моменты высокого потребления тока к линии питания параллельно добавлен конденсатор 100 мкФ. Также резистор 100 Ω подключён последовательно, чтобы скорректировать уровень логической «1» в состоянии простоя (idle). В совокупности такая схема обеспечивает стабильные и повторяемые показания датчика MaxSonar.
В Mission Planner на вкладке “Full Parameter List” выполнены настройки для включения дальномера (rangefinder) и задания направления, в котором он должен работать. Ориентация rangefinder установлена в значение 24 (направление UP, вверх), а параметр пина дальномера установлен в 5 при подключении к ADC 3 на Navio2, как показано ниже. Остальные необходимые параметры в списке также приведены — найдите их с помощью функции “Find”.

Ориентация и установка пинов дальномера⇑
![]()
Указываем, что Sonar не является логометрическим датчиком ⇑

Выбирается Тип дальномера ⇑
![]()
Указано максимальное и минимальное расстояние обнаружения сонара ⇑
![]()
Выбирается тип используемого датчика приближения ⇑
Данные датчика в реальном времени при первоначальной настройке не отображались на вкладке Rangefinder для всех ориентаций, кроме Down (значения 25). Однако они отображались в круговом радаре (radius radar), который открывается кнопкой Proximity в меню Tuning, вызываемом сочетанием клавиш Ctrl+F.
Обратите внимание: двумерный радар (2D) не будет показывать дистанцию, если ориентация датчика установлена вверх (Up) или вниз (Down).

Окно радара для обнаружения объектов
После того как работоспособность сонара была подтверждена (через наблюдение в окне радара и проверку показаний на разных расстояниях), квадрокоптер можно считать готовым к полётам с обходом препятствий.
Датчик установлен в соответствии с заданной ориентацией; при этом важно убедиться, что никакие элементы самого квадрокоптера (например, проводка или стойка GPS) не попадают на пути прохождения ультразвуковых «пингов». Квадрокоптер взводится (ARM), после чего для работы обхода препятствий переключается только в режим Guided или Altitude Hold.
У существующей системы обхода препятствий есть ряд недостатков. Среди них высокая стоимость ультразвуковых датчиков, ограничения по режимам обхода препятствий, и направлениям, по которым он может срабатывать.
Есть решение с использованием ультразвуковых датчиков HC‑SR04; пример показан на его YouTube‑канале:
https://www.youtube.com/watch?v=kmpxkKq3zNA
Как показано на схеме ниже, пять недорогих датчиков HC‑SR04 используются для обнаружения препятствий спереди, справа, сзади, слева и снизу. Микроконтроллер Arduino выступает в роли процессора: он принимает данные с датчиков и формирует соответствующие реакции. Выбран Arduino Nano из‑за компактности и относительно малого веса. Ниже полная принципиальная схема.

В этот раз система подключена к полётному контроллеру (FC) через последовательный порт UART. Питание 5V и GND замыкают цепь питания для Arduino Nano, при этом вывод TX полётного контроллера подключается к выводу RX Arduino Nano. Аналогично, вывод RX полётного контроллера подключается к TX Arduino.
Изначально UART‑порт использовался для «воздушного» модуля телеметрии, чтобы обеспечивать связь с «наземным» модулем на станции управления (GCS). Чтобы освободить UART под систему обхода препятствий, потребовались небольшая доработка и дополнительный компонент.
Приём заключается в том, чтобы поменять местами наземный и воздушный модули телеметрии: теперь наземный модуль подключается к FC через USB‑порт, а воздушный модуль подключается к GCS / НСУ.
Необходимые точки подключения были аккуратно и надёжно пропаяны на медной плате. Для упрощения соединений использовались джамперы, а для установки ультразвуковых датчиков в каждом направлении были припаяны гнездовые штырьковые разъёмы (female header pins), как показано ниже. Также, для повышения стабильности показаний каждого датчика, снова были добавлены конденсаторы и резисторы.

Программная часть системы обхода препятствий была разработана в Arduino Software (IDE). Для измерения расстояния использовалась библиотека NewPing, которая позволяет получать «сырые» данные датчиков напрямую в сантиметрах. Чтобы повысить общую стабильность показаний, брали усреднённое значение из 5 измерений каждого датчика.
Было отмечено, что для сонара нередка ситуация, когда он выдаёт нулевую дистанцию. Это происходит, когда объект находится вне диапазона обнаружения, либо при неопределённости по направлению. Чтобы такие ошибки не искажали среднее значение, усреднение выполняли только если из 5 измерений минимум 4 — ненулевые; иначе результат отбрасывался.
Реакции по тангажу (pitch) и крену (roll) можно реализовать, отправляя MAVLink‑пакеты, содержащие сигналы для override (переопределения) текущих значений roll и pitch. По логам DataFlash видно, что при стабильном висении входные значения каналов RC для pitch и roll находятся примерно около 1500. Когда квадрокоптер наклоняется носом вниз, значение в канале pitch падает ниже 1500, а при наклоне носом вверх — поднимается выше 1500. Аналогично, при наклоне вправо значение в канале roll становится выше 1500, а при наклоне влево — ниже 1500.

Эта информация критически важна, потому что MAVLink‑сообщения, отправляемые с микроконтроллера Arduino на полётный контроллер (FC), будут перезаписывать (override) значения соответствующих радиоканалов. Код Arduino был написан так, что величина изменения roll/pitch растёт по мере уменьшения минимальной обнаруженной дистанции.
Override крена и тангажа в зависимости от расстояния до объекта
| Дистанция, см | Roll/Pitch override |
|---|---|
| < 40 | 1700 / 1300 |
| < 50 | 1590 / 1410 |
| < 90 | 1550 / 1450 |
| < 150 | 1525 / 1475 |
При этом реакции не запускаются сразу же, как только выполнен критерий из таблицы выше. Должны одновременно выполняться и другие условия — чтобы вмешательство происходило только при необходимости и когда это безопасно.
-
Условие по высоте (датчик “down”)
Квадрокоптер начинает обход препятствий (в любых режимах полёта) только когда нижний ультразвуковой датчик (“down”) показывает высоту выше заданного порога. Это стабилизирует взлёт: ненужный наклон в этот момент может привести к касанию земли частями квадрокоптера. Только убедившись, что есть достаточный клиренс для выполнения наклона по pitch/roll, система обхода берёт управление. -
Условие “близко” (near)
Дистанция, измеренная конкретным датчиком, должна быть «близкой», то есть меньше заданного значения, например 100 см. В данном контексте «близко» определено как ненулевое значение (на случай, если препятствие слишком далеко и датчик выдаёт 0) и при этом меньше 100 см. -
Согласование по одной оси (проверка свободного направления манёвра)
Датчики на одной оси должны подтверждать, что направление, в которое будет выполняться уклонение, свободно от препятствий. Иными словами, если разница между дистанцией по переднему датчику и по заднему датчику не превышает заданный безопасный порог, квадрокоптер не будет наклоняться назад, даже если препятствие спереди формально удовлетворяет первым двум условиям.
Во время загрузки скетча (sketch) в Arduino Nano выводы TX и RX должны быть отсоединены от линий связи Arduino ↔ FC. Мигающие светодиоды на Arduino означают определённый обмен данными между двумя устройствами. Например, Arduino запрограммирована принимать на вход RX heartbeat‑сигнал от FC каждую секунду. В обратном направлении вывод TX Arduino отправляет на FC override‑сигналы каждый раз, когда выполняются условия для запуска заданной реакции.
Когда все условия выполнены, Arduino отправляет MAVLink‑сообщение RC override с новыми значениями RollOut и PitchOut (обычной функцией отправки по UART). Поскольку программа работает в цикле, как только препятствие удаляется от соответствующего датчика, реакция должна прекратиться и значения должны вернуться к исходным (нулевой наклон), то есть примерно к 1500.
Испытания системы обхода препятствий проводились, зафиксировав квадрокоптер с четырёх сторон внутри прямоугольной конструкции из ПВХ‑труб, собранной как показано ниже.
Типичные ошибки при калибровке и полётах
Ошибка: попытка взлёта до завершения всех калибровок
Пользователь пропускает калибровку акселерометра, магнитометра или радиоканалов и пытается вооружить квадрокоптер.
Ошибка: калибровка магнитометра рядом с металлом и силовой проводкой
Калибровку выполняют рядом с автомобилем, металлическими конструкциями, инструментами или плотной силовой проводкой.
Ошибка: неверное направление вращения моторов
После сборки не проверяют направление вращения каждого мотора и ставят пропеллеры, не выполнив тест.
Ошибка: прерывание автономного режима неправильным переключением
В стрессовой ситуации переключаются в режим посадки на высоте и квадрокоптер начинает резкое снижение.
7. Практика: типовые задачи (с решениями)
Ниже — практические задачи по теме сборки и настройки квадрокоптера на базе Navio2 и Ardupilot. Решения приведены сразу, единообразно, как требует шаблон.
Блок задач: расчёты и подбор
Задача 1: Рассчитать обороты мотора без нагрузки для аккумулятора 3S
Мотор 950KV, аккумулятор 3S с номинальным напряжением 11.1 В. Найдите оценку оборотов в минуту без нагрузки.
\[ n \approx KV \cdot U = 950 \cdot 11.1 \approx 10545 \ \text{об/мин} \]
Задача 2: Проверить запас по току для ESC
Максимальный ток мотора 15 А, выбран ESC 20 А. Проверьте, попадает ли отношение в рекомендуемый диапазон 1.2–1.5.
\[ \frac{I_{\text{ESC}}}{I_{\text{motor,max}}}=\frac{20}{15}=1.333 \]
Значение 1.333 находится в диапазоне 1.2–1.5, запас по току считается корректным.
Задача 3: Рассчитать максимальный ток разряда Li‑Po по рейтингу 25C
Ёмкость 5200 мА·ч (5.2 А·ч), рейтинг 25C. Найдите максимальный ток.
\[ I_{\max} = C \cdot \text{Ah} = 25 \cdot 5.2 = 130 \ \text{A} \]
Задача 4: Оценить соотношение тяги к весу
“Незагруженная” масса квадрокоптера 1.34 кг, эквивалентная масса тяги 4.44 кг. Найдите отношение.
\[ \text{Ratio}=\frac{4.44}{1.34}\approx 3.4 \]
Соотношение 3.4 — с хорошим запасом (в любительских сборках обычно стремятся к значению не ниже 2.0).
Блок задач: конфиги и команды
Задача 5: Включить и настроить Ardupilot через emlidtool
Напишите команду, которая запускает мастер настройки Ardupilot на системе Navio2.
sudo emlidtool ardupilot
Дальше выберите: Copter → версия → Arducopter → Enable автозапуск → Apply.
Задача 6: Проверить, включён ли автозапуск Arducopter
systemctl is-enabled arducopter
Задача 7: Перезапустить сервис Arducopter после изменения конфигурации
sudo systemctl stop arducopter
sudo systemctl daemon-reload
sudo systemctl start arducopter
Задача 8: Настроить UDP‑вывод телеметрии на адрес GCS
Нужно прописать строку TELEM1 в /etc/default/arducopter, заменив IP на адрес вашего ноутбука в локальной сети, порт 14550.
sudo nano /etc/default/arducopter
# пример строки:
TELEM1="-A udp:192.168.43.94:14550"
Блок задач: диагностика и безопасность
Задача 9: Что делать, если мотор вращается не в ту сторону
На одном луче мотор крутится в неправильном направлении. Как исправить аппаратно?
Решение: поменяйте местами любые два из трёх фазных проводов между этим мотором и его ESC — направление вращения изменится.
Задача 10: Диагностика “не могу подключиться по SSH: navio.local не находится”
PuTTY показывает ошибку, что локальный хост не существует. Дайте короткий алгоритм проверки.
- Убедиться, что ноутбук и Raspberry Pi подключены к одной и той же сети (Wi‑Fi или Ethernet).
- Перезагрузить Raspberry Pi (отключить/подключить питание или
sudo rebootпри доступе). - Проверить файл
/boot/wpa_supplicant.conf: правильностьssidиpsk, отсутствие лишних пробелов, учёт регистра. - Попробовать временно использовать точку доступа телефона и проверить список подключённых устройств.
Задача 11: Что проверять после пайки PDB
Вы припаяли силовые провода модулю питания и четырём ESC к плате распределения питания. Какие проверки сделать перед подключением аккумулятора?
- Проверить мультиметром отсутствие короткого замыкания между «+» и «−».
- Проверить целостность: все «плюсы» между собой соединены, все «минусы» между собой соединены.
- Проверить механическую прочность пайки (слегка потянуть за провода).
- Проверить, что пайка и проводка не мешают винтам и не могут перетереться о края.
8. Чек‑лист самопроверки знаний
Отметьте пункты, которые вы действительно понимаете и можете применить без подсказок.
| ✓ | Навык | Проверка |
|---|---|---|
| Архитектура системы | Могу объяснить роли Raspberry Pi, Navio2, ESC, моторов, приёмника, телеметрии и ГНСС. | |
| Питание и безопасность Li‑Po | Могу назвать безопасные пороги по напряжению на ячейку и объяснить, зачем нужен BB Alarm. | |
| Подбор ESC | Могу подобрать ESC по току с запасом 1.2–1.5 от максимального тока мотора. | |
| Балансировка пропеллеров | Могу описать процедуру балансировки и объяснить, как вибрации влияют на IMU. | |
| Настройка сети Raspberry Pi | Могу настроить подключение по Wi‑Fi через /boot/wpa_supplicant.conf или выбрать Ethernet‑схему. |
|
| Подключение по SSH | Могу подключиться в PuTTY к navio.local и устранить типовую ошибку “host does not exist”. |
|
| Установка и запуск Ardupilot | Могу настроить Ardupilot через sudo emlidtool ardupilot и проверить автозапуск сервиса. |
|
| Подключение к GCS | Могу настроить UDP‑вывод на порт 14550 или подключение через телеметрию и Mission Planner. | |
| Калибровки | Могу выполнить калибровку акселерометра, магнитометра, радиоканалов и ESC в Mission Planner. | |
| Режимы полёта | Могу назначить режимы на каналы (например, канал 5) и проверить фактический режим по Current Mode. | |
| Автономная миссия | Могу создать маршрут с командами взлёта и посадки, записать миссию и настроить скорость. | |
| Логи | Могу скачать DataFlash‑логи и объяснить, какие параметры искать при проблемах с высотой, GPS и вибрациями. |






























