Перейти к содержимому
Часть 0.  Сборка квадрокоптера с нуля на базе Raspberry Pi и полётного контроллера Navio2, с настройкой Ardupilot

Часть 0. Сборка квадрокоптера с нуля на базе Raspberry Pi и полётного контроллера Navio2, с настройкой Ardupilot

24 апреля 2026
Технику БПЛА | Хобби

Внимание! Перевод статьи 2018 года. 

Этот урок — пошаговый конспект по сборке квадрокоптера с нуля на базе Raspberry Pi 3 Model B и полётного контроллера Navio2, с настройкой Ardupilot, подключением наземной станции управления, калибровками, автономными миссиями, анализом логов и примером реализации избегания препятствий. В конце — практические задачи с решениями и чек‑лист самопроверки.

Главная мысль: собирайте и настраивайте систему последовательно — “железо → питание → соединения → сеть → Ardupilot → калибровки → тест без пропеллеров → первый полёт”. Пример команды, с которой начинается программная часть: sudo emlidtool ardupilot.

Содержание

1. Цели урока

  • Понять, из каких узлов состоит квадрокоптер на базе Navio2 и Raspberry Pi и как эти узлы связаны.
  • Собрать аппаратную часть: питание, PDB, ESC, моторы, приёмник, телеметрия, антенна ГНСС.
  • Записать образ системы, поднять сеть, подключиться по SSH, включить и запустить Ardupilot.
  • Подключить наземную станцию управления, выполнить калибровки, настроить режимы полёта и базовые параметры.
  • Выполнить автономную миссию, ручной полёт, выгрузить и проанализировать DataFlash‑логи.
  • Понять логику и ограничения системы избегания препятствий и варианты реализации.
Что особенно важно запомнить: первый тест моторов и направления вращения выполняется только без пропеллеров.
↑ К оглавлению

2. Что это за проект: Ardupilot + Navio2 + Raspberry Pi

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

Данная статья написана с целью объединения всей разрозненной информации в единое целое, чтобы предоставить пошаговое руководство от начала до конца о том, как построить и собрать квадрокоптер с нуля, а также как выполнить все необходимые конфигурации и настройки с использованием полётного контроллера Navio2 Ardupilot. Другие полётные контроллеры от APM или других производителей также могут частично опираться на данное руководство.

Примечание для начинающих: Важно понимать, что сборка дрона — это комплексный процесс, требующий внимательности, аккуратности и соблюдения техники безопасности. Все работы с пайкой, электрическими компонентами и аккумуляторами должны выполняться с соблюдением мер предосторожности.

Исходное оглавление статьи

  1. Полётный контроллер Navio2 от Emlid
  2. Raspberry Pi 3 Model B
  3. Рама дрона
  4. Моторы 2216/950KV
  5. Регулятор оборотов электродвигателя (ESC)
  6. Пропеллеры
  7. Приёмник ГНСС с антенной
  8. Передатчик (пульт управления)
  9. Приёмник сигнала
  10. Карта MicroSD
  11. Литий-полимерный (Li-Po) аккумулятор
  12. Звуковой сигнализатор разряда (BB Alarm)
  13. Модуль питания (Power Module)
  14. Телеметрия
  15. Соотношение тяги к весу
  16. Настройка оборудования Navio2
  17. Сборка аппаратной части дрона
  18. Запись операционной системы на карту MicroSD
  19. Настройка Wi‑Fi‑сети Raspberry Pi
  20. Подключение к Raspberry Pi с ноутбука через SSH с использованием PuTTY
  21. Настройка Ardupilot
  22. Подключение к наземной станции управления (GCS)
  23. Калибровка полёта в Mission Planner (MP)
  24. Изменение режима полёта в Mission Planner в соответствии с каналом радиопередатчика
  25. Установка кнопки выключения на RPi3
  26. Выполнение автономной миссии
  27. Ручное управление полётом
  28. Анализ журнала данных полёта (Data Flash Log Analysis)
  29. Реализация системы избегания препятствий

Частая путаница и границы

Запомните: Ardupilot — это программное обеспечение автопилота, а Navio2 — аппаратная плата расширения для Raspberry Pi; ошибки в подключении питания, полярности и линий сигналов могут физически повредить оборудование.
↑ К оглавлению

3. Компоненты и выбор железа

Полётный контроллер Navio2 от Emlid

Основная функция полётного контроллера — обеспечение управления регуляторами оборотов (ESC) для направления частоты вращения моторов на основе входных сигналов с передатчика.

Navio2 Emlid Flight Controller

Navio2_a70e0.webp

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

Компоненты, входящие в состав полётного контроллера Navio2:

  1. Двойной блок инерциальных измерений (IMU) — содержит акселерометры и гироскопы для определения ориентации и ускорения дрона в пространстве.
  2. Барометры — измеряют высоту с точностью до 10 см.
  3. Приёмник ГНСС — отслеживает спутники со всего мира (GPS, GLONASS, Galileo, BeiDou).
  4. Компас (магнитометр) — определяет направление курса относительно магнитного севера.
  5. Порты расширения — предназначены для подключения дополнительных датчиков и радио‑телеметрии.
  6. Со‑процессор радиосвязи — принимает входные сигналы PPM или SBUS от приёмника и выводит 14 каналов ШИМ (PWM) для управления моторами и сервоприводами на сервисных шинах.

Официальный сайт для приобретения полётного контроллера Navio2: https://emlid.com/navio/

Важно для начинающих: Перед началом работы с контроллером внимательно изучите документацию производителя. Неправильное подключение компонентов может привести к повреждению оборудования.

Raspberry Pi 3 Model B

Raspberry Pi — это микрокомпьютер размером со среднюю кредитную карту, предназначенный для обработки данных. Благодаря контактам общего назначения (GPIO), Raspberry Pi обладает высокой вычислительной мощностью, достаточной для выполнения функций управления дроном.

rasberry_pi_3_bb716.png

Из 40 расширенных контактов GPIO плата Navio2 использует 37 из них для управления полётом, оставляя свободными только 3 контакта:

  • GPIO 17 (контакт 11)
  • GPIO 18 (контакт 12)
  • GPIO 26 (контакт 37)

Эти свободные контакты можно использовать для подключения дополнительных компонентов, например, кнопки выключения или внешних датчиков.

Совет: Для защиты Raspberry Pi от вибраций рекомендуется использовать демпфирующее крепление, которое поставляется отдельно или может быть напечатано на 3D‑принтере.

рама дрона

Рама составляет корпус квадрокоптера и включает в себя:

  • Лучи
  • Шасси
  • Крепления
  • Плату распределения питания (PDB)
  • Защиту пропеллеров

Выбор рамы типа «Х» обусловлен следующими преимуществами:

  • Хорошая симметрия конструкции
  • Простота дизайна
  • Большая гибкость в настройке
  • Подходит для резких наклонов и манёвров

c740a08f5efae3e5981770dc5a29efbb_2__b10d4.png

Выбранная рама имеет размер 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) Углеродное шасси
Рекомендация: Для затяжки винтов, соединяющих различные части рамы, используйте шестигранные ключи (Allen keys) подходящих размеров. Собирайте раму плотно — вибрации в полёте могут привести к самопроизвольному откручиванию крепежа.

Моторы 2216/950KV

FJ9O6JFJJEJWTTD 64981

Выбор типа мотора зависит от размера пропеллеров или дрона. Большие пропеллеры должны приводиться в движение роторами с меньшей частотой вращения из-за более высокого аэродинамического сопротивления.

Расшифровка маркировки мотора:

  • 2216 — указывает на размер статора: диаметр 22 мм, высота 16 мм
  • 950KV — означает, что мотор развивает 950 оборотов в минуту на каждый вольт подаваемого напряжения

Пример расчёта: При подключении к аккумулятору 3S (11.1 В) мотор 950KV будет развивать примерно \( 950 \times 11.1 \approx 10545 \) об/мин без нагрузки.

Рекомендации:

  • Приобретите несколько запасных колпачков моторов (propeller caps). Колпачок удерживает пропеллер на валу мотора и может легко открутиться, если не затянут должным образом (настоятельно рекомендуется затягивать его полностью с помощью гаечного ключа).
  • Потеря колпачка особенно проблематична на травянистых участках. Если колпачок отлетел, обычно он находится недалеко от квадрокоптера — ищите в непосредственной близости.
Совет по безопасности: Всегда проверяйте надёжность крепления пропеллеров перед каждым полётом. Отлетевший пропеллер может стать опасным снарядом.
↑ К оглавлению

4. Сборка и проводка: питание, ESC, моторы, шины

Что входит в сборку

В этом блоке собраны обязательные аппаратные элементы силовой установки и связи, а также практические правила монтажа: выбор и подключение электронных регуляторов скорости, подбор и балансировка пропеллеров, установка приёмника глобальной навигационной спутниковой системы и стойки для антенны, радиопередатчик и приёмник, карта microSD, литий‑полимерный аккумулятор, звуковой сигнализатор разряда, модуль питания и радио‑телеметрия. В конце — расчёт соотношения тяги к весу как проверка “взлетит ли аппарат с запасом”.

Практический вывод: сначала продумайте питание и проводку (полярность, сечения проводов, пайка и фиксация), и только потом собирайте раму “на финал” — переделки на собранной раме почти всегда сложнее.

Электронный регулятор скорости (ESC)

F0GOLRFJJEJWTW1_c85d3.webp

Электронный регулятор скорости (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 \]

Важно: Рекомендуется использовать ESC без встроенного BEC. Полётный контроллер Navio2 может подавать питание на цепь ESC через сервисную шину, поэтому дополнительные BEC не требуются.

Пропеллеры

Пропеллеры должны подбираться с учётом требуемой надёжности и в соответствии со скоростью мотора.

Материалы пропеллеров:

  • Углеродное волокно — более высокое качество, но может не оправдать стоимость. Даже карбоновые пропеллеры ломаются при ударах.
  • Пластиковые/нейлоновые пропеллеры — более гибкие и менее хрупкие. Они также менее жёсткие при сопротивлении воздуху, что может быть лучше для снижения вероятности перегрева моторов на больших дронах.

Выбор размера: При относительно большой раме 485 мм (580 мм с учётом защиты пропеллеров) выбрана более низкая скорость ротора — 950 KV, и соответственно больший размер пропеллера — 12 дюймов (30.48 см).

Балансировка пропеллеров

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

Процедура балансировки:

  1. Установите пропеллер на балансировочный станок.
  2. Выключите вентилятор (чтобы исключить влияние воздушных потоков).
  3. Наклейте изоленту на конец более лёгкой лопасти.
  4. Перемещайте ленту вдоль лопасти, чтобы найти точку идеального баланса.
  5. Повторите при необходимости.

FR7JDMLJJEJWU35_710f9.webp

Сбалансированные пропеллеры

Совет для начинающих: Несбалансированные пропеллеры — одна из основных причин вибраций, которые негативно влияют на работу IMU и качество полёта. Не пренебрегайте балансировкой.

Приёмник ГНСС с антенной

FIARU8IJJEJWUE9_aa964.webp

Глобальная навигационная спутниковая система (ГНСС) — это встроенный в Navio2 приёмник сигналов от спутников (GPS и других систем).

Требования к установке антенны:

  • Антенна должна быть поднята высоко над полётным контроллером.
  • Это необходимо для избежания магнитных помех от компонентов, которые могут привести к сбоям GPS или неточности приёма спутниковых сигналов.

Комплектация:

  • Стойка для GPS — на неё монтируется антенна.
  • Микрокоаксиальный разъём (MCX) — соединяет антенну с приёмником ГНСС на полётном контроллере.
  • Микрокоаксиальный разъём обычно поставляется в комплекте с антенной, но стойку для GPS необходимо приобретать отдельно или распечатать на 3D‑принтере.
Рекомендация: Рекомендуется приобрести стойку онлайн, так как они спроектированы с возможностью изгиба — это удобно при калибровке дрона в перевёрнутом положении.

Передатчик (пульт управления)

03b890f98cdf4273ce71f6b3cfa230163a878a2d_original_1de62.png

Высококачественный передатчик необходим для обеспечения надёжного управления летающим аппаратом. Это критически важно, так как нарушение связи может привести к серьёзным последствиям.

Выбранная модель: Radiolink AT10II

Это один из самых продвинутых передатчиков компании, предлагающий гибридный протокол радиосвязи:

  • DSSS — Direct Sequence Spread Spectrum.
  • FHSS — Frequency Hopping Spread Spectrum.

Эти протоколы обеспечивают устойчивую связь с приёмником, который затем передаёт сигнал на полётный контроллер через одножильный кабель SBUS (Serial Bus).

Питание передатчика:

  • Может работать от небольшого аккумулятора Li‑Po на 2200 мА·ч, поставляемого производителем.
  • Это экономит расходы на замену батарей.
Важно: Передатчик и приёмник поставляются в паре. Убедитесь, что они совместимы с вашим полётным контроллером.

Приёмник сигнала

3976_1_7630d.png

Настоятельно рекомендуется использовать пару приёмопередатчиков, приёмник которых может общаться с Navio2 через протокол SBUS.

Модель: R12DS

Приёмник принимает сигналы от передатчика и передаёт их на полётный контроллер через протокол связи SBUS.

Преимущества SBUS:

  • Новый однопроводной протокол связи (экономит много проводов).
  • Поддерживается платой Navio2.
  • Один сигнальный провод передаёт все значения радио со всех 12 каналов от приёмника на полётный контроллер.

Подключение:

Navio2 имеет встроенный декодер для расшифровки входных значений SBUS RC перед передачей их в Ardupilot.

Для подключения приёмника к полётному контроллеру потребуются три перемычки «мама‑мама» для соединения:

  1. Сигнального контакта.
  2. Положительного контакта (+).
  3. Отрицательного контакта (земля, GND).

Линии SBUS от приёмника подключаются к соответствующим контактам на сервисной шине полётного контроллера Navio2.

Совет: Используйте более короткие перемычки для лучшей аккуратности монтажа.

Карта MicroSD

FLCUL7ZJWESTIGN_77f1e.png

Подобно тому, как компьютеру требуется жёсткий диск (HDD) или современный твердотельный накопитель (SSD) для хранения данных, Raspberry Pi использует карту MicroSD, на которую устанавливается операционная система (Raspbian).

На карте хранятся:

  • Критически важные файлы системы.
  • Данные о подключении (IP‑адреса).
  • Структуры каталогов с кодом для различных функций.
  • Журналы полётов и конфигурационные файлы.
Рекомендация: Используйте карты MicroSD от надёжных производителей (SanDisk, Samsung, Kingston) объёмом 16–32 ГБ класса 10 или выше для обеспечения стабильной работы.

Литий‑полимерный (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

Тип разъёма: Используется аккумулятор с Т‑образным разъёмом. При выборе этого типа разъёма зарядное устройство и разъём модуля питания также должны иметь соответствующий Т‑образный разъём.

Рекомендация: Используйте профессиональное зарядное устройство для Li‑Po, которое может контролировать напряжение и ток зарядки, чтобы избежать перезаряда. Такие устройства также могут подавать сигналы тревоги при возникновении неисправностей.

Звуковой сигнализатор разряда (BB Alarm)

New-HotRc-BX100-1-8S-Lipo-Battery-Voltage-Tester-Low-Voltage-Buzzer-Alarm-Battery-Voltage-Checker-Photoroom_3d70d.png

Для защиты аккумулятора Li‑Po от возможности глубокого разряда используется звуковой сигнализатор (BB Alarm) — громкое предупреждение, которое срабатывает, когда напряжение любой ячейки аккумулятора падает ниже установленных значений.

Принцип работы:

  • Сигнализатор постоянно контролирует напряжение аккумулятора.
  • При падении напряжения любой ячейки ниже порогового значения (обычно 3.2–3.4 В) срабатывает громкий звуковой сигнал.
  • Это даёт пилоту время безопасно посадить дрон до необратимого повреждения аккумулятора.
Важно: Если аккумулятор разрядится ниже 3.0 В на ячейку, он может быть безвозвратно повреждён и больше не сможет заряжаться.

Модуль питания (Power Module)

arduino-power-module-Photoroom_f1a58.png

Поскольку один и тот же аккумулятор Li‑Po питает как Raspberry Pi, так и моторы, модуль питания регулирует напряжение для каждого компонента в соответствии с их оптимальными требованиями.

Функции модуля питания:

  • Разделяет ток от аккумулятора между:
    1. Платой распределения питания (для ESC).
    2. Портом питания на полётном контроллере Navio2.

Выбор модуля: Модуль питания должен быть тщательно подобран так, чтобы разъём соответствовал разъёму аккумулятора. Если аккумулятор имеет Т‑образный разъём, модуль питания также должен иметь Т‑образный разъём.

Совет: При пайке соединений модуля питания убедитесь в надёжности контактов — плохой контакт может привести к потере питания в полёте.

Телеметрия

2026-04-15_18-01-04_f53af.webp

Радио‑телеметрия состоит из двух модулей:

  1. Наземный модуль (Ground Module) с разъёмом USB — подключается к наземной станции управления (ноутбуку).
  2. Воздушный модуль (Air Module) с разъёмом UART — подключается к полётному контроллеру Navio2.

Назначение наземной станции (GCS):

  • Планирование маршрута полёта.
  • Мониторинг данных полёта в реальном времени.

Альтернативная схема подключения:

Если последовательные линии порта UART необходимо использовать для других целей (например, для избегания препятствий) или если контакт GPIO 17 порта UART используется для установки кнопки выключения, воздушный модуль телеметрии можно поменять местами с наземным модулем:

  • Наземный модуль с USB‑разъёмом подключается к Raspberry Pi 3.
  • Воздушный модуль с UART требует дополнительного конвертера USB‑TTL CP2102 для связи с компьютером через драйвер моста Silicon Labs CP210X USB‑UART (можно скачать онлайн).
Примечание: Телеметрия обеспечивает более надёжную связь по сравнению с обычным Wi‑Fi, так как не зависит от качества сетевой инфраструктуры.

Соотношение тяги к весу

Расчёт соотношения тяги к весу квадрокоптера необходим для обеспечения возможности взлёта и стабильного полёта с желаемой полезной нагрузкой.

Расчёт «незагруженного» веса квадрокоптера

КомпонентКоличествоМасса на единицу (г)Общая масса (г)
Рама типа «Х» 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
Примечания: Испытания проведены при стабильном напряжении 11.1 В (3S LiPo). Пропеллер 1238 CF: максимальная рабочая температура 60°C, работа на полном газу не более 3 минут. Отношение тяги к мощности округлено до 3 знаков.

Технические данные мотора

ПараметрЗначение
Бренд / производитель YH
Модель двигателя 2216-KV950
KV (об/мин/В) 950
Максимальный ток (Imax) 15 A
Максимальная мощность (Pmax) 280 Вт
Внешний диаметр 27.7 мм
Высота корпуса 24.2 мм
Масса 52 г
Бесколлекторный мотор YH 2216-KV950 оптимизирован для работы с пропеллерами 10–12 дюймов. Рекомендуемый ток продолжительной нагрузки: ≤ 12А для надёжного теплового режима.
Данные предоставлены на основе тестов производителя и лабораторных измерений

Тягу каждого мотора также можно получить напрямую из спецификации. Эквивалентная масса тяги составляет 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 \]

Интерпретация: Соотношение 3.4 означает, что квадрокоптер имеет более чем достаточную тягу для стабильного полёта и манёвров. Для любительских дронов рекомендуется соотношение не менее 2.0. 

Типичные ошибки при сборке

Ошибка: пайка без проверки полярности и замыканий

После пайки силовых линий на PDB не проверяют, что “плюс” и “минус” не замкнуты, и что все “плюсы” действительно объединены.

Чем опасно: короткое замыкание при подключении аккумулятора может мгновенно вывести из строя модуль питания, PDB, ESC и даже аккумулятор.

Ошибка: использование несбалансированных пропеллеров

Пропеллеры ставят “из коробки” без балансировки.

Чем опасно: вибрации ухудшают работу IMU, режимы удержания высоты и позиции могут работать нестабильно, растёт риск отказов крепежа.

Ошибка: слишком слабый ESC по току

Подбирают ESC “впритык” по току, без запаса 1.2–1.5 от максимального тока мотора.

Чем опасно: перегрев ESC на пиках газа, срыв синхронизации, внезапная остановка мотора.

Ошибка: неправильная установка антенны ГНСС

Антенну размещают слишком низко или рядом с источниками магнитных помех.

Чем опасно: плохая фиксация по спутникам, нестабильный Loiter, проблемы с RTL и автономными миссиями.
↑ К оглавлению

5. Настройка Raspberry Pi и Ardupilot

Что настраиваем

В этом разделе собраны шаги программной настройки и подключения: подготовка аппаратной связки Navio2 + Raspberry Pi, запись операционной системы на карту MicroSD, настройка сети (Ethernet или Wi‑Fi), подключение по SSH с помощью PuTTY, установка и включение Ardupilot через emlidtool, а также одноразовая настройка параметров связи для подключения к наземной станции управления (GCS) через UDP или телеметрию.

На этапе калибровок удобнее питать Raspberry Pi от аккумулятора через модуль питания, а на ранних этапах настройки можно временно использовать питание через microUSB.

Настройка оборудования Navio2

navio2-mount_6ac1f.png

Первый шаг — настройка Raspberry Pi 3 для работы с Ardupilot.

  1. Плата расширения Navio2 устанавливается поверх Raspberry Pi 3.
  2. Винты фиксируют две платы вместе для надёжного соединения.
  3. Navio2 вместе с Raspberry Pi 3 будет выполнять функцию полётного контроллера (FC) для собранного квадрокоптера.

Дополнительно:

  • Распечатана 3D‑модель держателя, через которую полётный контроллер будет закреплён на раму квадрокоптера.
  • Две части держателя соединяются через 8 амортизирующих шариков (демпферы).
  • Ссылка на компоненты в файле «Drone BOM List» также включает эти амортизаторы.

Документация по настройке оборудования Navio2: ССЫЛКА

Ссылки на файлы для 3D‑печати держателя:

Установка амортизирующих шариков

FPXZQ74JJEJX2WI_b4478.webp

  • Используйте тонкие инструменты (например, маленький шестигранный ключ), чтобы протолкнуть концы шарика так, чтобы они зафиксировались в шейках отверстий между двумя напечатанными частями.
  • Убедитесь, что части правильно ориентированы, как показано на рисунке.
  • Повторите для остальных 7 шариков (по 2 в каждом углу).

Затем прикрепите заднюю часть Raspberry Pi к верхней поверхности напечатанного держателя (той, что имеет большую площадь поверхности) с помощью предоставленных винтов.

Важно: амортизация критически важна для защиты чувствительных датчиков IMU от вибраций, которые могут негативно повлиять на стабильность полёта и точность навигации.

Drone Hardware Setups: сборка аппаратной части дрона

После настройки связки Raspberry Pi и платы расширения Navio2 отложите полётный контроллер с держателем и перейдите к настройке рамы. Можно сначала собрать раму для ознакомления, но затем ее обычно приходится частично разбирать для пайки моторов и электронных регуляторов скорости.

Практический вывод: заранее продумайте маршруты проводки и точки ее крепления стяжками; это снижает риск перетирания проводов и случайных коротких замыканий.

Подготовка платы распределения питания

Ardupilot_page17_image2-Photoroom_e782e.jpg
  1. Найдите на плате распределения питания поверхность с круглыми медными контактами, помеченными знаками «+» и «–», предназначенными для пайки компонентов.
  2. Используйте мультиметр в режиме проверки целостности цепи, чтобы убедиться, что все положительные контакты соединены между собой, и то же самое для отрицательных контактов.
  3. Если вы используете паяльную поверхность, обращённую вверх, убедитесь, что при пайке кабелей они не будут перекрывать отверстия для винтов, соединяющих верхний центральный крестовой разъём.

Пайка соединений

  1. Найдите подходящие положительные и заземляющие контакты на плате распределения питания для пайки:
    • модуля питания;
    • всех четырёх электронных регуляторов скорости по углам платы распределения питания.
  2. Все четыре электронных регулятора скорости и моторы одинаковы и могут быть подключены к любому углу — не имеет значения, какой из них куда подключать.
  3. Припаяйте красные провода к положительным контактам на плате.
  4. Припаяйте чёрные провода к отрицательным контактам на плате.
  5. Центральный провод (обычно) — это сигнальный кабель, который будет подключён к полётному контроллеру.

Проверки перед подачей питания

# 1) Нет короткого замыкания между «+» и «−» (проверить мультиметром)
# 2) Все «+» прозваниваются между собой, все «−» прозваниваются между собой
# 3) Провода держатся механически: пайка не «холодная», провод не отрывается при лёгком натяжении
Внимание: каждый из силовых компонентов подключается двумя проводами — красным для положительного и чёрным для отрицательного. Переполюсовка опасна.

Сборка рамы

  1. Соберите верхний центральный крестовой разъём с лучами квадрокоптера с помощью шестигранных ключей подходящего размера.
  2. Соедините полученную конструкцию с платой распределения питания.
  3. Отрегулируйте проводку электронных регуляторов скорости так, чтобы она не перекрывала точки соединения и не попадала под винты.

Установка полётного контроллера

  1. Закрепите держатель с Raspberry Pi и Navio2 на центральном крестовом разъёме с помощью толстой двусторонней ленты.

gemini-3-pro-image-preview-2k_f4ebf.jpg

Установка моторов

  1. Установите мотор на конце каждого луча квадрокоптера вместе с защитой пропеллеров (опционально).
  2. Расположите трёхфазные провода так, чтобы они были направлены от мотора к центру рамы, параллельно каждому лучу квадрокоптера.
  3. Надёжно закрепите моторы предоставленными винтами.

Пайка разъёмов моторов и изоляция

Если моторы не имеют готовых пулевых разъёмов:

  1. Используйте тонкогубцы для фиксации "пулевого" разъёма (во время пайки он может быть очень горячим).
  2. Расплавьте припой в цилиндрическое отверстие разъёма.
  3. До затвердевания припоя вставьте залуженный провод от мотора в "пулевой" разъём.
  4. Удерживайте несколько секунд до полного затвердевания припоя.
  5. Проверьте прочность соединения, приложив усилие.

FRYAY67JJEJX3J2_8b206.png

Важно: ненадёжные соединения могут привести к отказу мотора в полёте и падению квадрокоптера.

Изоляция:

  • Если есть термоусадочные трубки — наденьте их на открытый металл и усадите теплом.
  • В противном случае используйте электроизоляционную ленту.

Крепление электронных регуляторов скорости

  1. Закрепите каждый электронный регулятор скорости на верхней (или нижней) поверхности каждого луча квадрокоптера с помощью кабельных стяжек.
  2. На данном этапе подключите трёхфазные провода бесщёточных двигателей постоянного тока к трём выходам электронных регуляторов скорости.
Как работает бесщёточный мотор: последовательность трёхфазного квазипеременного тока определяет направление вращения; поэтому для смены направления достаточно переставить местами любые два из трёх проводов.

Проверка направления вращения моторов

Когда вы впервые вооружите квадрокоптер (после выполнения всех последующих шагов), сняв все пропеллеры, убедитесь, что направление вращения каждого мотора соответствует следующему:

Позиция мотораНаправление вращения
Передний правый Против часовой стрелки
Задний левый Против часовой стрелки
Передний левый По часовой стрелке
Задний правый По часовой стрелке
55751261ddd1bb375fabfd5f85b3c6e3_6173d.jpg
Важно: если любой мотор вращается в неправильном направлении, поменяйте местами любые два провода между этим мотором и его электронным регулятором скорости.

Подключение электронных регуляторов скорости к сервисной шине полётного контроллера

Подключите электронные регуляторы скорости к сервисным шинам полётного контроллера согласно схеме производителя: https://docs.emlid.com/navio2/hardware-setup/

Текущее состояние:

  • Положительные и отрицательные входы электронных регуляторов скорости припаяны к плате распределения питания.
  • Центральный сигнальный кабель каждого электронного регулятора скорости должен быть подключён к сервисной шине.

Важно: продумайте подключение каждого электронного регулятора скорости.

Слева на сервисной шине контроллера Navio2:

  • левый пин — линия связи последовательной шины (рассмотрим ниже);
  • второй, третий, четвёртый и пятый пины — предназначены для первого, второго, третьего и четвёртого электронного регулятора скорости соответственно.

navio2-quadcopter-setup-frame_4jpg_2_650ae.jpg
ПинНумерация ESCПозиция ESC
2 1 Верхний правый
3 2 Задний левый
4 3 Верхний левый
5 4 Задний правый
Подключение сигнальных проводов и питание по сервисной шине

Сигнальные провода электронного регулятора скорости обычно включают: фактический сигнальный провод, провод питания (+) и провод земли (-).

Для электронных регуляторов скорости со встроенным питанием бортовой электроники (три провода по центру):

  • подключите провод питания только у одного электронного регулятора скорости (первого или любого одного);
  • для остальных электронных регуляторов скорости провод питания обрезается и изолируется (обрезайте только провод питания).

navio2-escs_jpg_ad15f.jpg

Для электронных регуляторов скорости без встроенного питания(два провода по центру):

  • ничего не нужно обрезать или добавлять.
Правило: чаще всего чёрный или тёмный провод — это земля. Если моторы не реагируют корректно, проверьте соответствие сигнала и земли на разъёме.

Подключение приёмника к полётному контроллеру

Для подключения приёмника к полётному контроллеру потребуются три перемычки «мама‑мама» для соединения проводов сигнала, питания и земли линии последовательной шины.

Первый (левый) столбец пинов сервисной шины контроллера, помеченный как «PPM/SB», предоставляет контакты сигнала, положительного и отрицательного полюсов питания для связи последовательной шины на первой, второй и третьей строке соответственно.

Ardupilot_jpg_1911f.jpg

Совет: закрепите приёмник кабельной стяжкой и используйте короткие перемычки для аккуратного монтажа.

Подключение телеметрии и антенны глобальной навигационной спутниковой системы

После соединения и монтажа ESC, моторов, силового модуля и приемника на раму квадрокоптера у нас остаются модуль телеметрии, GPS-антенна и аккумулятор.

Модуль телеметрии

Модуль телеметрии поставляется в паре — один воздушный модуль и другой наземный модуль. Воздушный модуль обычно поставляется с микроразъемом UART для подключения к порту UART navio2, как показано ниже, тогда как наземный модуль оснащен разъемом USB для подключения к компьютеру.

navio2-uart-radio_jpg_0c0d6.jpg

(Пропустите следующий раздел, если вы подключаете его обычным способом.) В противном случае, вы можете поменять местами воздушный и заземляющий модуль, подключив заземляющий модуль (с разъемом USB) к Raspberry Pi, а воздушный модуль (с разъемом UART) к вашему компьютеру (ПК). Последнему потребуется дополнительный преобразователь USB-TTL CP2102 для того, чтобы воздушный модуль можно было подключить к COM-порту вашего ПК. Соединение воздушного модуля с преобразователем потребует пайки или возможности соединения через разъемы, как показано на рисунке ниже.

1776683710673-019daa98-b246-7c9b-b9b2-5eb0185eab7e_6520d.png

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

Антенна глобальной навигационной спутниковой системы

Стойка для антенны — это место, на которое монтируется антенна, а другой конец подключается к приёмнику через микрокоаксиальный разъём.

navio2-gnss-antenna-ground-plane_1_d323e.jpg

Подключение аккумулятора и индикация

  1. Аккумулятор надёжно закрепляется под держателем аккумулятора с помощью стяжки.
  2. Аккумулятор подключается к модулю питания.
  3. Один из выходов модуля питания подсоединен к плате распределения питания.
  4. Другой выход — микро‑разъём — подключается к порту питания на полётном контроллере.

Ardupilot_page26_image_2_jpg_01948.jpg

При подключении аккумулятора вы подаёте питание на:

  • Raspberry Pi;
  • Navio2;
  • приёмник;
  • телеметрию.

Индикация:

  • на Navio2 будут мигать светодиоды, цвет которых указывает на различные состояния;
  • на модуле телеметрии мигающий светодиод станет постоянным при установлении связи;
  • на приёмнике будут индикаторы питания.

assembled_copter_jpg_2_dabd8.jpg

Важно: обязательно надёжно закрепите все свободные компоненты и провода кабельными стяжками.
 

Общая схема соединений квадрокоптера

ARCHITECTURE_ARDUPILOT_DRONE_2_05001.png

 

Блочная системная архитектура ⇓

ARCHITECTURE_ARDUPILOT_DRONE_BLOCK_9d606.png

Запись операционной системы на карту MicroSD

Карта MicroSD, которая будет использоваться в качестве хранилища для микрокомпьютера Raspberry Pi 3, должна иметь установленную операционную систему Raspbian.

Выбор карты:

  • Рекомендуемый объём: 16 ГБ или 32 ГБ.
  • Класс скорости: 10 или выше.

Шаги по записи ОС:

  1. Посетите документацию разработчика Navio2: https://docs.emlid.com/navio2/configuring-raspberry-pi/
  2. Скачайте образ ОС на свой компьютер.
  3. Запомните, где вы сохранили файл — этот архив будет «записан» на карту MicroSD.
  4. Скачайте и установите программу Etcher с сайта: https://etcher.io/
  5. Распакуйте и запустите файл Etcher на вашем ПК.

Ardupilot_ether_66ae3.png

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

Ardupilot_ether_2_6531b.png

  1. Нажмите кнопку «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‑кабель)

  1. Подключите и Raspberry Pi, и ноутбук к одному порту LAN‑кабеля.
  2. Для этого потребуется разветвитель LAN‑порта на два кабеля.
  3. Один кабель подключается к ноутбуку, другой — к Raspberry Pi.

Ardupilot_page32_image_dc493.png

Преимущество: При использовании Ethernet‑кабеля не требуется настройка безопасности сети WPA на Raspberry Pi — этот шаг можно пропустить.

Настройка беспроводного подключения (Wi‑Fi)

Важно: Эта настройка сети предназначена только для подключения Raspberry Pi к Wi‑Fi, чтобы он разделял с вашим ПК ту же сеть. Это отличается от настройки сети для связи с наземной станцией управления (GCS) через модуль телеметрии.

Если вы используете Ethernet‑кабель, пропустите шаги Wi‑Fi и переходите к подключению по SSH. В противном случае требуется настройка сети. Поскольку этот шаг предназначен для включения SSH‑подключения к Raspberry Pi с ноутбука, до этого момента вы можете войти в Raspberry Pi только с использованием внешнего HDMI‑монитора и клавиатуры.

Вход в систему через монитор

  1. Подключите Raspberry Pi к HDMI‑монитору.
  2. Подайте питание на Raspberry Pi: через кабель microUSB или через аккумулятор Li‑Po через модуль питания.
  3. При использовании аккумулятора всегда подключайте звуковой сигнализатор (BB Alarm) для контроля напряжения и избежания необратимого повреждения при падении напряжения ниже 3 В на ячейку.
  4. В командной строке введите имя пользователя и пароль по умолчанию. Имя пользователя по умолчанию — «pi», а пароль — «raspberry». Пароль может не отображаться, но в любом случае нажимайте Enter для каждой введенной команды.

Ardupilot_cmd_1_f0839.png

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

Ardupilot_hello_page_6f4e9.png

Настройка конфигурации сети

Далее выполните редактирование файла конфигурации Wi‑Fi:

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

Ardupilot_page35_image_bf6b2.png

  1. Нажмите Ctrl+X для выхода.
  2. Нажмите клавишу Y, затем Enter для сохранения изменений.
  3. Перезагрузите систему командой:
sudo reboot

Альтернативный способ редактирования (без монитора)

  1. Извлеките карту MicroSD из Raspberry Pi.
  2. Подключите её к ноутбуку или ПК.
  3. Найдите текстовый файл wpa_supplicant.conf и отредактируйте настройки ssid и psk.
  4. Откройте файл подходящей программой, например WordPad.
  5. Сохраните файл после редактирования.

После перезагрузки устройства ваш Raspberry Pi сможет автоматически подключаться к настроенной сети Wi‑Fi при загрузке (хотя подключение может занять некоторое время).

Важно: Подключение и Raspberry Pi, и ноутбука к одной и той же локальной сети (Wi‑Fi или Ethernet) необходимо для установления соединения через SSH на следующем шаге.

Использование точки доступа с мобильного телефона или ПК аналогично использованию обычного Wi‑Fi.

Ardupilot_mobile_hotspot_eb988.png

Вы можете отслеживать подключённые устройства с телефона или компьютера. Если подключение не удаётся:

  • Перезапустите Raspberry Pi 3.
  • Проверьте настройки конфигурации сети (имя и пароль чувствительны к регистру, не должно быть лишних пробелов).
  • Подождите, пока оба устройства подключатся и отобразятся в списке.

Подключение к Raspberry Pi по SSH с использованием PuTTY

PuTTY — это одна из программ‑эмуляторов сетевого терминала, позволяющая войти в Raspberry Pi с вашего ноутбука.

Примечание: Если вы не хотите подключаться к Raspberry Pi через ноутбук, это потребует подключения монитора и клавиатуры каждый раз при выполнении настроек. В этом случае вам не нужно выполнять настройку сети и не требуется подключение к интернету. Просто выполняйте настройки через монитор.

Установка PuTTY

  1. Скачайте PuTTY по ссылке: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
  2. Следуйте шагам установки.
  3. Найдите приложение PuTTY в меню ПК и запустите его.

Настройка подключения

  1. В поле «Host Name (or IP address)» введите: navio.local.
  2. Убедитесь, что порт установлен на значение по умолчанию: 22.
  3. Нажмите кнопку «Open».

Ardupilot_page37_image_b8215.png

Решение проблем с подключением

  • Если появляется ошибка «Local host does not exist», перезапустите PuTTY и попробуйте несколько раз.
  • Если проблема сохраняется, отключите питание от Raspberry Pi и снова подключите его (перезагрузите).
  • Повторяйте действия, пока PuTTY не запустится и не появится предупреждающее сообщение; разрешите подключение, нажав «Yes».

Вход в систему

  • Имя пользователя по умолчанию: pi.
  • Пароль по умолчанию: raspberry.
Если ошибка «Local host does not exist» сохраняется: это означает, что вам не удалось подключить ноутбук и Raspberry Pi к одной и той же рабочей сети. Попробуйте использовать точку доступа мобильного телефона и проверьте, отображаются ли оба устройства в списке подключённых устройств.

Полная документация: 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 для выполнения команды.

Ardupilot_emlidtool_adc9e.png

Далее выполните выборы в интерфейсе:

  1. Следуйте выбору типа транспортного средства: Copter.
  2. Выберите версию Ardupilot.
  3. Выберите тип рамы: Arducopter.
  4. Выберите, хотите ли вы запускать Ardupilot при загрузке: Enable.
  5. Запустите Arducopter и нажмите Apply.
  6. Нажмите клавишу q для выхода.

Ardupilot_emlid_settings_8eb3d.png

Проверка автозапуска

Чтобы проверить, запустится ли 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, используемым для мониторинга полёта в реальном времени.

Способы подключения:

  1. Через локальную сеть (UDP‑соединение):
    • Полезно для простых задач: предполётная проверка, постполётный анализ или извлечение данных полёта.
    • Для мониторинга полёта рекомендуется использовать телеметрию, так как она более надёжна и проще в подключении.
  2. Через пару модулей телеметрии (рекомендуется).

Одноразовая настройка конфигурации

Для обоих способов требуется одноразовая настройка конфигурации для связи с наземной станцией.

sudo nano /etc/default/arducopter

Настройка для UDP‑подключения (через локальную сеть)

Если наземная станция будет подключаться к Arducopter через UDP, укажите IP‑адрес сети и стандартную скорость передачи данных UDP: 14550.

Ardupilot_lan_connection_c5a51.png

Получение сетевого адреса:

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

Ardupilot_view_network_connection_setup_67ae8.png

Подробно:

Пример замены строки TELEM1

Замените сетевой адрес на актуальный адрес вашей локальной сети:

# было:
TELEM1="-A udp:10.122.12.111:14550"

# стало (пример):
TELEM1="-A udp:192.168.43.94:14550"

Настройка для подключения через телеметрию

  1. Раскомментируйте строку с TELEM2, удалив символ #:
    TELEM2="-C /dev/ttyAMA0"
  2. Если используется модуль телеметрии с USB, добавьте строку TELEM3, заменив AMA на USB:
    TELEM3="-D /dev/ttyUSB0"
  3. Нажмите Ctrl+X для выхода.
  4. Нажмите Y, затем Enter для сохранения изменений.
  5. Перезагрузите Raspberry Pi:
sudo reboot
Преимущество: Указав параметры TELEM1 → TELEM3, можно устанавливать любой из упомянутых типов подключения без необходимости повторного изменения настроек в этом файле.
Ardupilot_page44_image_f2c1c.png

Установка Mission Planner 

Скачайте последнюю версию Mission Planner: http://ardupilot.org/planner/docs/common-install-mission-planner.html

Ardupilot_mission_planner_1_b9b1a.jpg

Подключение через локальную сеть (UDP)

Ardupilot_mission_planner_2_64cc1.jpg
  1. Выберите в правом верхнем углу подключение UDP.
  2. Нажмите кнопку «Connect».
  3. Скорость передачи данных отобразится автоматически, и параметры будут загружены.
  4. Изменения значений данных полёта в Mission Planner будут сигнализировать об успешном подключении.
Важно: Подключение не произойдёт, если изменился сетевой адрес, а вы не обновили конфигурацию в /etc/default/arducopter. Проверьте IPv4‑адрес в «Центре управления сетями и общим доступом».

Подключение через модуль телеметрии

Ardupilot_mission_planner_3_663af.jpg

  1. Подключите воздушный модуль к порту UART на Navio2.
  2. Подключите наземный модуль к ноутбуку через USB.
  3. Дождитесь, пока светодиоды на обоих модулях перестанут мигать (будут гореть постоянно).
  4. В Mission Planner перейдите: Initial Setup > Optional Hardware > Sik Radio.
  5. Нажмите «Load settings» и дождитесь автоматической загрузки параметров.
  6. Сохраните настройки.
  7. Выберите COM‑порт (например, COM4) и нажмите «Connect».

Ardupilot_mission_planner_5_0218b.jpg

Телеметрическое соединение обычно требует больше времени для загрузки параметров. В случае большой задежки повторите попытку после перезагрузки 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 стала неверной.

Симптом: долгий таймаут подключения Mavlink (например, после 30‑секундного отсчёта).

Ошибка: перепутали порты при телеметрии (TX/RX)

При использовании UART‑линий путают направление: RX должен идти на TX и наоборот.

Правило: провод, подключённый к RX на UART, должен вести к TX на модуле, и наоборот.
↑ К оглавлению

6. Полёты, калибровки, миссии, логи, избегание препятствий

Что делаем после установки Ardupilot

После того как Raspberry Pi и программное обеспечение автопилота настроены, следующий обязательный этап — подключение к наземной станции управления и калибровки в Mission Planner: выбор типа рамы, калибровка акселерометра, калибровка магнитометра, калибровка радиоканалов, калибровка электронных регуляторов скорости и моторов, настройка аварийных режимов, настройка режимов полёта, а затем — безопасные тесты (первый запуск только без пропеллеров), ручной полёт, автономная миссия, выгрузка и анализ журналов полёта, и при необходимости — реализация избегания препятствий.

Критически важно: первый запуск для проверки направления вращения моторов выполняется строго без пропеллеров. Любые проверки “на столе” с пропеллерами опасны.

Калибровка полёта в Mission Planner

Если питание Raspberry Pi подаётся через модуль питания от аккумулятора, а не через кабель microUSB, электронные регуляторы скорости могут непрерывно пищать, сигнализируя, что процедура настройки ещё не завершена и электронный регулятор скорости не распознаёт полётный контроллер. Только после завершения всех калибровок писк прекращается.

Калибровка полёта — критически важный и обязательный шаг, который необходимо выполнить перед тем, как квадрокоптер сможет быть активирован для полёта. Для начала подключите Mission Planner наземной станции управления к дрону — либо через соединение по протоколу пользовательских датаграмм, либо через пару модулей телеметрии.

Шаг 1: выбор типа рамы

  1. Перейдите на вкладку Initial Setup > Mandatory Hardware > Frame type.
  2. Выберите тип рамы квадрокоптера — Х‑рама (X‑frame).

Ardupilot_mission_planner_6_9531c.jpg

Шаг 2: калибровка акселерометра

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

Ardupilot_mission_planner_7_87e76.jpg

Совет: этот процесс проще выполнять при питании от аккумулятора и связи по телеметрии, потому что кабели меньше мешают поворачивать дрон.
qgc-cal-acc_ab215.png

Шаг 3: калибровка магнитометра

Калибровка магнитометра крайне необходима для точного определения курса квадрокоптера и выполняется перемещением квадрокоптера так, чтобы охватить все направления трёхосевых плоскостей.

  1. Нажмите кнопку Start.
  2. Перемещайте квадрокоптер в разных ориентациях, пока полоса прогресса не завершится.
  3. В конце появится сообщение о завершении и предложение перезапустить.

Ardupilot_mission_planner_10_edc63.jpg

Особенности Navio2: в полётном контроллере встроено два магнитометра. Если используются оба, оба должны быть откалиброваны. Если прогресс калибровки одного из магнитометров постоянно перезапускается, можно снять отметку с проблемного магнитометра и использовать второй.

После завершения калибровки нажмите Ctrl+F, чтобы открыть «temp», и перезагрузите pixhawk, как показано ниже.

Ardupilot_mission_planner_13_b9b89.jpg

После перезагрузки, чтобы увидеть новое откалиброванное значение смещения компаса, перейдите на любую другую вкладку Mission Planner, а затем снова вернитесь на вкладку калибровки компаса (Compass). Значения смещения (OFFSETS) должны быть меньше 150 (все направления при этом считаются приемлемыми (значения показаны зеленым цветом)). Если значения больше 150 (цвет желтый или красный), повторите калибровку.
Ardupilot_mission_planner_10_1_f30c0.jpg
Слишком высокое значение смещения может привести к тому, что квадрокоптер не пройдет проверку по предварительному контрольному списку (арма не будет).
Критерий успешной калибровки: значения смещения предпочтительно должны быть менее 150 по всем направлениям; если больше — повторите калибровку, убрав рядом металлические предметы.

Отключение проверки магнитометра при невозможности арма (опционально)

  1. Перейдите на вкладку Configuring > Standard Params.
  2. Нажмите Find и найдите параметр arm checks.
  3. Снимите отметку All, затем выберите все компоненты кроме магнитометра.
  4. Нажмите Write для сохранения.

Ardupilot_mission_planner_14_c4d4e.jpg

Внимание: делайте это только после того, как убедились, что проблема не связана с реальной опасностью (например, сильные помехи рядом с силовой проводкой).

Шаг 4: калибровка радиоуправления

Ardupilot_mission_planner_17_32a9e.jpg

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

  1. Channel 1: Roll / крен
  2. Channel 2: Pitch / тангаж
  3. Channel 3: Throttle / газ
  4. Channel 4: Yaw / рыскание

axis_uv_0a04e.webp

Примечание. Убедитесь, что в качестве объекта управления в передатчике выбран коптер / copter, а не другие типы дронов.

  1. Нажмите кнопку Calibrate Radio.
  2. Перемещайте левый и правый стики во всех направлениях, доводя их до крайних положений.
  3. Проверьте, что каналы реагируют ожидаемо: левый стик — рыскание и газ, правый — крен и тангаж.

fb8bda-P_ec5a7.png

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

Ardupilot_mission_planner_18_3d0e1.jpg

Если направление канала инвертировано: инвертируйте канал в настройках передатчика или в Mission Planner.

Шаг 5: калибровка электронных регуляторов скорости

(не требуется при использовании протокола Dshot)

Ardupilot_mission_planner_19_beed2.jpg

Чтобы выполнить калибровку ESC, нажмите кнопку Calibrate ESC в Mission Planner.

  • Полностью выдвинув стик газа передатчика (левый стик) вверх, перезапустите полетный контроллер (отключив и включив батарею).
  • Через некоторое время, опустите стик газа вниз.
  • Калибровка ESC завершится после того, как прекратится длинный звуковой сигнал. Если звуковой сигнал не прекращается, прекратите калибровку и перезапустите квадрокоптер в обычном режиме с минимальным значением газа.

Калибровка ESC выполняется каждый раз при первом подключении к источнику питания и сопровождается длинными звуковыми сигналами. Светодиод FC при этом моргает синим цветом.

Если звуковой сигнал продолжается бесконечно: отмените калибровку и перезапустите квадрокоптер обычным способом с минимальным газом.

Шаг 6: аварийный режим (failsafe)

Ardupilot_mission_planner_20_38d52.jpg

Рекомендуется настроить аварийный режим на случай низкого напряжения и потери радиосвязи, чтобы квадрокоптер мог безопасно выполнить автоматический возврат к точке запуска (RTL). Альтернативно (и проще в бытовом применении) можно использовать звуковой сигнализатор разряда аккумулятора: установить порог 3.2–3.4 В на ячейку и осуществлять ручную посадку при срабатывании.

Радиосвязь — важнейший компонент, выход из строя которого может привести к тому, что ваш квадрокоптер будет потерян. Не используйте компоненты, которые могут создавать помехи частоте радиоканала, и всегда проверяйте напряжение и работоспособность передатчика. Защитите свой квадрокоптер, установив отказоустойчивую систему радиосвязи, благодаря которой он будет возвращаться к месту запуска (RTL) при потере радиосвязи.

Важно: квадрокоптер может быть активирован только после завершения всех проверок безопасности, которые включают ранее описанные калибровки.

Изменение режима полёта в Mission Planner в соответствии с каналом радиопередатчика

Основные каналы (каналы 1–4) фиксированы для функций крена, тангажа, газа и рыскания. Вспомогательные каналы можно переназначать.

Ardupilot_mission_planner_21_52aea.jpg

Все, что нам нужно сделать, это изменить переключатель канала на конкретный физический переключатель, которым мы будем осуществлять управление.

В Mission Planner настройка режимов полёта обычно использует стандартный канал 5.

Ardupilot_mission_planner_22_de121.jpg

  1. Подключите наземную станцию управления к квадрокоптеру.
  2. Перейдите: Configuring > Flight Modes (для версии 1.3.56).
  3. Назначьте режимы полёта на диапазоны широтно‑импульсной модуляции канала 5.
  4. На передатчике назначьте канал 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».

Ardupilot_mission_planner_25_83847.jpg

Практический вывод: режим посадки удобно вынести на отдельный вспомогательный канал (например, на канал 8), чтобы он имел приоритет над остальными режимами.
Важно. Сравните настройки вашего радиопередатчика с настройками в Mission Planner.
Например, сначала убедитесь, что канал 8 управляется двухпозиционным переключателем, который вы хотите использовать для посадки квадрокоптера, а затем в Mission Planner установите для канала 8 «opt» как «Land». Land / Приземление будет приоритетным режимом по сравнению со всеми остальными. Это означает, что если ваш канал 5 настроен на работу с режимом stabilise (с помощью нижнего положения переключателя C), а канал 8 настроен на Приземление / Land (с включенным переключателем F), квадрокоптер перейдет в режим Приземления. Всегда помните, что фактический режим, в котором работает квадрокоптер, отображается в текущем режиме, указанном в разделе «Configuration» > «Flight Mode». Всегда проверяйте работу установленных вами переключателей, чтобы убедиться, что квадрокоптер действительно постоянно включает те режимы, которые вам нужны. Как показано на схеме выше, есть еще два канала — канал 6 и канал 7, которые вы можете использовать для включения других желаемых режимов полета.
РежимКанал (настраивается в Mission Planner)Переключатель (настраивается на передатчике)
Посадка (Land) 8 (в Extended Tuning) Двухпозиционный переключатель
Стабилизация (Stabilize) 5 (в Flight Modes) Трёхпозиционный переключатель
Удержание высоты (AltHold) 5 (в Flight Modes) Трёхпозиционный переключатель
Удержание позиции (Loiter) 5 (в Flight Modes) Трёхпозиционный переключатель
Автономный режим 7 (в Extended Tuning) Двухпозиционный переключатель

Некоторые радиопередатчики допускают логическое управление переключателями для управления одним каналом. Это означает, что для управления, скажем, каналом 5 можно использовать логику второго переключателя (включен / выключен)  для получения большего количества выходов. Пример показан ниже для лучшей иллюстрации. Эту настройку можно выполнить на вашем радиопередатчике (если он имеет эту функцию). Потратьте немного времени, чтобы разобраться, как выполнить настройку.

log_switch_3aced.jpeg

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

Ardupilot_mission_planner_24_8a4d4.jpg

После того, как режимы полета установлены как на вашем передатчике, так в 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()

Выполнение автономной миссии

Примечание: Если это первый раз, когда вы активируете квадрокоптер, сначала ознакомьтесь с ручным управлением и выполните все калибровки.

Подготовка к тесту
  1. Найдите широкое и свободное открытое поле с минимальными препятствиями.
  2. Возьмите с собой ноутбук с Mission Planner, дрон и необходимое оборудование.
  3. Подключите модули телеметрии и дождитесь стабильной индикации связи (постоянно светящиеся светодиоды).
  4. Нажмите кнопку «Connect» в Mission Planner после установления связи.
Планирование миссии
  1. В Планировщике миссий перейдите на вкладку «Режим полета». Используйте мышь, чтобы легче перемещаться по карте. Колесо прокрутки мыши можно использовать для увеличения и уменьшения масштаба карты, а затем перетаскивать карту левой кнопкой мыши для интерактивной навигации в любом направлении.
  2. Всплывающее диалоговое окно спросит, хотите ли вы установить текущую координату вашего дрона в качестве домашнего местоположения (точку взлета вашего дрона). Нажмите «Да», чтобы сделать это. При этом значок квадрокоптера (местоположение вашего дрона) на карте сольется со значком «H» (домашнее местоположение) на карте.
  3. Если антенна GPS правильно подключена к разъему MCX на контроллере полета (см. настройку компонента), автоматически загрузится Google карта, на которой в данный момент находится ваш дрон. Обратите внимание, что кнопка «Home» (значок «H») загружается как текущее местоположение вашего дрона (значок квадрокоптера), т. е. значок «H» должен совпадать со значком квадрокоптера. В противном случае для этого нажмите "Home location / «Домашнее местоположение», как показано ниже.

Ardupilot_rp3_3_b1b41.jpg

Затем на карте выполните планирование пути (миссии), щелкая точки маршрута (WP - way point), через которые вы хотите, чтобы ваш дрон следовал, как показано ниже, одну WP за другой.

Ardupilot_page65_image_3b608.png

Во время планирования пути автоматически создается таблица WayPoint. Таблица WP содержит координаты местоположения каждой из выбранных WP и команды, которые мы хотим, чтобы дрон выполнял на конкретных WP. Переместите курсор на линию, разделяющую карту и таблицу, и потяните вниз, чтобы увеличить карту по отношению к таблице.

Ardupilot_rp3_5_a333d.jpg

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

Ardupilot_rp3_6_bc420.jpg

Убедитесь, что ваш дрон не заденет какие-либо объекты, деревья, столбы и т. д., которые находятся вблизи запланированного пути, и вообще избегайте планирования WP близко к подобным объектам. Установите подходящие значения желаемых высот. Хорошая практика планирования высот, чтобы автономный полет имел просвет над препятствиями не менее 5 метров.

На панели Action, показанной ниже, есть 4 важных действия:

  • сохранение файла в архив Save WP File
  • загрузка файла из архива Load WP File
  • чтение настроек из Mission Planner полетным контроллером Read WPs
  • запись настроек маршрута в Mission PlannerWrite 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. Выполните чтение несколько раз, чтобы убедиться, что маршрут реально заведен в квадрокоптер.

Ardupilot_rp3_8_ec10e.jpg

Когда выполнение команды 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, чтобы сохранить изменения.

Ardupilot_rp3_9_d63a2.jpg

Отключить автономный режим во время полёта может быть непросто. Если вы новичок и у вас мало опыта, лучше этого не делать. Тем не менее, такая необходимость может возникнуть при ошибках в полёте — например, если дрон летит слишком медленно, вы понимаете, что выбрали точку маршрута (WP), на которой возможен контакт с препятствиями, или вы не задали посадку (Land) в последней точке либо в подходящем месте и т.п. Не переключайтесь в режим Land, так как дрон может упасть. Перед переключением в режим Stabilise поднимите газ выше среднего положения. Будьте готовы взять управление газом на себя, чтобы дрон не начал резко падать. Отведите его в безопасное место и только затем выполняйте посадку. Если у вас на аппаратуре заранее настроен режим Loiter, включите его, чтобы забрать управление из auto-mode: в Loiter управлять проще, так как он включает удержание высоты (Altitude Hold). После завершения маршрута дрон приземлится в последней точке WP, и газ автоматически отключится, как только он коснётся земли. Если этого не произошло, опустите газ полностью вниз и включите режим Stabilise, затем вручную деактивируйте (disarm) дрон. Дизарм выполняется так: при нулевом газе переведите стик газа полностью влево и удерживайте.

Ручное управление полётом

Убедитесь, что вы выполнили все калибровки и настройки на предыдущих шагах. Также проверьте, что на передатчике и в Mission Planner заранее настроены и доступны основные необходимые режимы, такие как Stabilise, Altitude Hold и Land.

  1. Поставьте квадрокоптер на ровную поверхность в просторном открытом месте, затем подключите аккумулятор.
  2. Дождитесь, пока не прекратится длинный звуковой сигнал.
  3. Взведите (ARM) квадрокоптер, переведя стик газа при нулевом газе полностью вправо. Если вы взводите квадрокоптер впервые, необходимо убедиться, что направления вращения моторов правильные. Взведите аппарат со снятыми пропеллерами, затем аккуратно проверьте пальцем направление вращения каждого мотора. Если направление неверное — поменяйте местами любые два провода (bullet-коннектора) между соответствующим ESC и мотором.

Ardupilot_rp3_11_5aa7e.jpg

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

Ardupilot_rp3_12_8eb27.jpg

После взведения (ARM) квадрокоптера, то есть когда моторы вращаются на минимальных оборотах, плавно и медленно увеличивайте газ, пока не увидите, что дрон начинает приподниматься. Добавьте тяги, чтобы помочь ему оторваться от земли и набрать высоту. На нужной высоте переключитесь в режим Altitude Hold, чтобы удерживать высоту.

Переключитесь в режим Loiter, если хотите, чтобы дрон оставался в текущей GPS-точке, сохраняя при этом ту же высоту. При переключении в эти режимы дрон должен сохранять последнюю высоту. Если он падает или снижается, вы всё равно можете добавить газ, чтобы контролировать полёт.

Если вы не планируете использовать режим Altitude Hold, убедитесь, что уверенно умеете контролировать высоту вручную: постоянно добавляйте газ, когда дрон снижается, и убирайте газ, когда он поднимается, одновременно управляя тангажом (pitch), креном (roll) и рысканьем (yaw) квадрокоптера.

Начинать горизонтальное перемещение можно после того, как дрон находится в воздухе и имеет достаточный запас по высоте над землёй. Дрон перемещается за счёт вращения вокруг трёх осей:

  1. Крен (Roll) — наклон влево и наклон вправо (см. схему управления на передатчике)
  2. Тангаж (Pitch) — наклон носом вниз и наклон носом вверх
  3. Рысканье (Yaw) — поворот влево (против часовой стрелки) и поворот вправо (по часовой стрелке)
Убедитесь, что вы постоянно контролируете напряжение аккумулятора с помощью BB alarm (монитора/сигнализатора напряжения). Как только сработает сигнал тревоги, немедленно посадите квадрокоптер. Вертикальную скорость посадки можно настроить вместе со скоростью снижения.
Если вы не хотите использовать режим Land, плавно снижайте квадрокоптер на землю, управляя газом — немного вверх/вниз по мере необходимости. Это, в свою очередь, требует большой практики, чтобы освоить идеальную посадку. Рекомендуется сначала отработать это на более дешёвых дронах.
Как только квадрокоптер коснётся земли, газ автоматически отключится. Если этого не произошло, полностью уберите газ вниз и включите режим Stabilise, затем вручную разоружите (Disarm) дрон. Для разоружения при нулевом газе переведите стик газа полностью влево и удерживайте.

Анализ журнала данных полёта

Послеполётный анализ даёт полную информацию о полёте: высота по барометру, GPS-координаты, приём спутников, напряжение аккумулятора, реакции и фактическое положение (attitude), заданное положение (desired attitude), радиосвязь, скорость, ток моторов, а также 3D-визуализацию траектории и режимов полёта.

Чтобы загрузить DataFlash log через Mission Planner, не подключайтесь к дрону по радиотелеметрии. Вместо этого нужно установить UDP‑подключение, подключив оба устройства (RPi3 и ноутбук) к одной LAN‑сети, и выполнить необходимую настройку сети, как указывалось ранее.

Откройте вкладку DataFlash Logs (как показано ниже) → Download DataFlash Log via Mavlink → выберите файлы логов нужных полётов (ориентируясь на точные дату и время) → Download selected files. Загруженные лог‑файлы будут сохранены на вашем ПК.

Ardupilot_page73_image_a2703.png

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

Ardupilot_rp3_15_b0a97.jpg

При попытке просмотреть логи вы автоматически перейдёте в папку, где они сохранены. Если нет, их можно найти по пути:

C:\Users\Username\Mission Planner\logs\QUADROTOR\1

Дважды щёлкните по выбранному бинарному файлу лога, чтобы открыть flash log. В flash‑логах среди наиболее популярных и полезных параметров можно выделить:

logs_settings_ec278.jpeg

Attitude (ориентация)
  • Desired roll/pitch/yaw: требуемые значения крена/тангажа/рысканья (ваши команды по радиоканалу)
  • Roll/pitch/yaw: фактические крен/тангаж/рысканье по данным бортовых датчиков
BARO Alt: высота по барометру
ThO Output Throttle value: выходное значение газа (команда газа, формируемая контроллером)
GPS
  • NSats: количество принимаемых спутников
  • HDOP: горизонтальный коэффициент точности (показатель точности GPS)
  • Lat: широта на протяжении полёта
  • Lng: долгота на протяжении полёта
  • Alt: высота по GPS
  • Spd: скорость
  • GCrs: путевой курс (направление движения/курс квадрокоптера)
IMU
  • Gyr X/Y/Z: данные гироскопа по осям X/Y/Z
  • Acc X/Y/Z: данные акселерометра по осям X/Y/Z
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, посмотрите данные барометра, чтобы проверить, корректно ли он измеряет высоту.

Ardupilot_rp3_23_32c87.jpg

Другие примеры анализа данных

Ardupilot_rp3_24_975bf.jpg

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

Ardupilot_rp3_25_1f6f9.jpg

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 м; такие данные следует игнорировать.

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

Ardupilot_rp3_27_0e449.jpg

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

Ardupilot_page78_image_9d3b8.png

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

Ardupilot_rp3_28_d3b73.jpg

График потребления тока двигателем

Вместе со скачанными бинарными лог‑файлами сохраняется и KMZ‑файл полёта. KMZ‑файлы можно открыть с помощью программы Google Earth Pro. Перейдите на ПК по пути:

C:\Users\Username\Mission Planner\logs\QUADROTOR\1

и откройте KMZ‑файл в Google Earth Pro.

В Google Earth Pro вы сможете анализировать полёт в 3D (вплоть до режима Street View).

Ardupilot_rp3_29_42b9c.jpg

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

Ardupilot_rp3_30_c91b8.jpg

Трехмерное изображение траекторий полета второй миссии в режиме просмотра улиц.

Просмотр 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, если количество пинов совпадает.

2026-04-23_17-39-54_d65f5.png

Для стабилизации питания в моменты высокого потребления тока к линии питания параллельно добавлен конденсатор 100 мкФ. Также резистор 100 Ω подключён последовательно, чтобы скорректировать уровень логической «1» в состоянии простоя (idle). В совокупности такая схема обеспечивает стабильные и повторяемые показания датчика MaxSonar.

В Mission Planner на вкладке “Full Parameter List” выполнены настройки для включения дальномера (rangefinder) и задания направления, в котором он должен работать. Ориентация rangefinder установлена в значение 24 (направление UP, вверх), а параметр пина дальномера установлен в 5 при подключении к ADC 3 на Navio2, как показано ниже. Остальные необходимые параметры в списке также приведены — найдите их с помощью функции “Find”.

 Ardupilot_rp3_32_2b0de.jpg

 Ориентация и установка пинов дальномера⇑

 Ardupilot_rp3_33_08b8c.jpg

 Указываем, что Sonar не является логометрическим датчиком ⇑

Ardupilot_rp3_34_77c2e.jpg

Выбирается Тип дальномера ⇑

Ardupilot_rp3_35_a4dd2.jpg

Указано максимальное и минимальное расстояние обнаружения сонара ⇑

Ardupilot_rp3_36_9ceea.jpg

Выбирается тип используемого датчика приближения ⇑

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

Обратите внимание: двумерный радар (2D) не будет показывать дистанцию, если ориентация датчика установлена вверх (Up) или вниз (Down).

Ardupilot_rp3_37_a1d7d.jpg

Окно радара для обнаружения объектов

После того как работоспособность сонара была подтверждена (через наблюдение в окне радара и проверку показаний на разных расстояниях), квадрокоптер можно считать готовым к полётам с обходом препятствий.

Датчик установлен в соответствии с заданной ориентацией; при этом важно убедиться, что никакие элементы самого квадрокоптера (например, проводка или стойка GPS) не попадают на пути прохождения ультразвуковых «пингов». Квадрокоптер взводится (ARM), после чего для работы обхода препятствий переключается только в режим Guided или Altitude Hold.

У существующей системы обхода препятствий есть ряд недостатков. Среди них высокая стоимость ультразвуковых датчиков, ограничения по режимам обхода препятствий, и  направлениям, по которым он может срабатывать.

Есть решение с использованием ультразвуковых датчиков HC‑SR04; пример показан на его YouTube‑канале:
https://www.youtube.com/watch?v=kmpxkKq3zNA

Как показано на схеме ниже, пять недорогих датчиков HC‑SR04 используются для обнаружения препятствий спереди, справа, сзади, слева и снизу. Микроконтроллер Arduino выступает в роли процессора: он принимает данные с датчиков и формирует соответствующие реакции. Выбран Arduino Nano из‑за компактности и относительно малого веса. Ниже полная принципиальная схема.

 2026-04-23_18-20-58_7085a.png

 В этот раз система подключена к полётному контроллеру (FC) через последовательный порт UART. Питание 5V и GND замыкают цепь питания для Arduino Nano, при этом вывод TX полётного контроллера подключается к выводу RX Arduino Nano. Аналогично, вывод RX полётного контроллера подключается к TX Arduino.

Изначально UART‑порт использовался для «воздушного» модуля телеметрии, чтобы обеспечивать связь с «наземным» модулем на станции управления (GCS). Чтобы освободить UART под систему обхода препятствий, потребовались небольшая доработка и дополнительный компонент.

Приём заключается в том, чтобы поменять местами наземный и воздушный модули телеметрии: теперь наземный модуль подключается к FC через USB‑порт, а воздушный модуль подключается к GCS / НСУ

Необходимые точки подключения были аккуратно и надёжно пропаяны на медной плате. Для упрощения соединений использовались джамперы, а для установки ультразвуковых датчиков в каждом направлении были припаяны гнездовые штырьковые разъёмы (female header pins), как показано ниже. Также, для повышения стабильности показаний каждого датчика, снова были добавлены конденсаторы и резисторы.

 Ardupilot_rp3_39_42647.jpg

 Программная часть системы обхода препятствий была разработана в Arduino Software (IDE). Для измерения расстояния использовалась библиотека NewPing, которая позволяет получать «сырые» данные датчиков напрямую в сантиметрах. Чтобы повысить общую стабильность показаний, брали усреднённое значение из 5 измерений каждого датчика.

Было отмечено, что для сонара нередка ситуация, когда он выдаёт нулевую дистанцию. Это происходит, когда объект находится вне диапазона обнаружения, либо при неопределённости по направлению. Чтобы такие ошибки не искажали среднее значение, усреднение выполняли только если из 5 измерений минимум 4 — ненулевые; иначе результат отбрасывался.

Реакции по тангажу (pitch) и крену (roll) можно реализовать, отправляя MAVLink‑пакеты, содержащие сигналы для override (переопределения) текущих значений roll и pitch. По логам DataFlash видно, что при стабильном висении входные значения каналов RC для pitch и roll находятся примерно около 1500. Когда квадрокоптер наклоняется носом вниз, значение в канале pitch падает ниже 1500, а при наклоне носом вверх — поднимается выше 1500. Аналогично, при наклоне вправо значение в канале roll становится выше 1500, а при наклоне влево — ниже 1500.

algo_obj_detection_1200_8a1ef.png

Эта информация критически важна, потому что MAVLink‑сообщения, отправляемые с микроконтроллера Arduino на полётный контроллер (FC), будут перезаписывать (override) значения соответствующих радиоканалов. Код Arduino был написан так, что величина изменения roll/pitch растёт по мере уменьшения минимальной обнаруженной дистанции.

Override крена и тангажа в зависимости от расстояния до объекта

Дистанция, смRoll/Pitch override
< 40 1700 / 1300
< 50 1590 / 1410
< 90 1550 / 1450
< 150 1525 / 1475

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

  1. Условие по высоте (датчик “down”)
    Квадрокоптер начинает обход препятствий (в любых режимах полёта) только когда нижний ультразвуковой датчик (“down”) показывает высоту выше заданного порога. Это стабилизирует взлёт: ненужный наклон в этот момент может привести к касанию земли частями квадрокоптера. Только убедившись, что есть достаточный клиренс для выполнения наклона по pitch/roll, система обхода берёт управление.

  2. Условие “близко” (near)
    Дистанция, измеренная конкретным датчиком, должна быть «близкой», то есть меньше заданного значения, например 100 см. В данном контексте «близко» определено как ненулевое значение (на случай, если препятствие слишком далеко и датчик выдаёт 0) и при этом меньше 100 см.

  3. Согласование по одной оси (проверка свободного направления манёвра)
    Датчики на одной оси должны подтверждать, что направление, в которое будет выполняться уклонение, свободно от препятствий. Иными словами, если разница между дистанцией по переднему датчику и по заднему датчику не превышает заданный безопасный порог, квадрокоптер не будет наклоняться назад, даже если препятствие спереди формально удовлетворяет первым двум условиям.


Во время загрузки скетча (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 показывает ошибку, что локальный хост не существует. Дайте короткий алгоритм проверки.

  1. Убедиться, что ноутбук и Raspberry Pi подключены к одной и той же сети (Wi‑Fi или Ethernet).
  2. Перезагрузить Raspberry Pi (отключить/подключить питание или sudo reboot при доступе).
  3. Проверить файл /boot/wpa_supplicant.conf: правильность ssid и psk, отсутствие лишних пробелов, учёт регистра.
  4. Попробовать временно использовать точку доступа телефона и проверить список подключённых устройств.

Задача 11: Что проверять после пайки PDB

Вы припаяли силовые провода модулю питания и четырём ESC к плате распределения питания. Какие проверки сделать перед подключением аккумулятора?

  1. Проверить мультиметром отсутствие короткого замыкания между «+» и «−».
  2. Проверить целостность: все «плюсы» между собой соединены, все «минусы» между собой соединены.
  3. Проверить механическую прочность пайки (слегка потянуть за провода).
  4. Проверить, что пайка и проводка не мешают винтам и не могут перетереться о края.
↑ К оглавлению

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 и вибрациями.
↑ К оглавлению
Часть 0.  Сборка квадрокоптера с нуля на базе Raspberry Pi и полётного контроллера Navio2, с настройкой Ardupilot
155