Перейти к содержимому
Ультралёгкий автономный квадрокоптер (до 250 г) на ArduPilot с управлением по ExpressLRS

Ультралёгкий автономный квадрокоптер (до 250 г) на ArduPilot с управлением по ExpressLRS

Среда, 29 июля 2026
Пилоту БПЛА | Технику БПЛА | Хобби для всех | Разработчику

Ниже — пошаговая инструкция по сборке ультралёгкого автономного квадрокоптера (до 250 г) на ArduPilot с управлением по ExpressLRS и полноценной MAVLink-телеметрией через функцию AirPort.

Инструкция покрывает: подбор железа, раму, пайку, прошивку, настройку в Mission Planner, автополёт по миссии, geofence, режим Throw, Guided, RTL и посадку.

Собираем компактный и доступный sub-250 дрон на F405 mini stack, настраиваем ArduPilot, а для «полной» телеметрии используем ExpressLRS AirPort (двунаправленный прозрачный serial-линк), сохраняя удобное управление.

Содержание

1. Введение и цели

Что собираем

Собираем компактный квадрокоптер весом до 250 г: ставим ArduPilot, подключаем ExpressLRS, настраиваем режимы удержания, миссии и управляемые полёты. Дополнительно настраиваем полноценную MAVLink-телеметрию через ExpressLRS AirPort.

Зачем sub-250

Sub-250 платформа удобна для обучения и экспериментов: проще безопасно отрабатывать Stabilize, AltHold, Loiter, а также автономные сценарии и миссии.

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

Места под скриншоты

итоговая сборка

technobee_0373_689b9.png

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

2. Комплектующие

Список компонентов

  • Стек: Speedybee F405 mini stack (FC + ESC).

technobee_0375-Photoroom_4a638.png

  • Моторы: 4 × малые Darwin FPV.

technobee_0376-Photoroom_e238b.png

  • Навигация: GPS-модуль и компас.

technobee_0377-Photoroom_f4f49.png

  • Радиоуправление: ExpressLRS (при необходимости — два комплекта для разделения управления и телеметрии).

technobee_0379-Photoroom_e5307.png

  • Питание: батарея 3S Li-ion, разъём XT30, конденсатор.

technobee_0380-Photoroom_c94e1.png

  • Опционально: 5V RGB-лента, камера Runcam, 3D-печатные элементы (крышка стека, крепления).

Логика выбора

Держим фокус на двух целях: минимальный вес и адекватная стоимость. Для sub-250 сборок выбираем мини-стек, компактную раму и лёгкие периферийные модули, а затем аккуратно укладываем проводку и крепёж.

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

3. Рама: тест материалов и выбор

Какие материалы протестированы

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

МатериалПлюсыМинусыВывод
PTG (крупная версия) Просто печатать Получается слишком большая и тяжёлая; крепёж M3 для sub-250 нежелателен Не используем
PLA Доступный пластик Слишком хрупкий Не используем
Фанера Самая лёгкая из протестированных Слишком большой flex (прогиб) Не используем
Carbon fiber nylon Хороший баланс веса и прочности Требовательнее к печати Лучший пластик из тестов
Чистый карбон Максимальная жёсткость Обычно требует изготовления на заказ Финальный выбор

Выбранный пластик: CF Nylon

technobee_0393-Photoroom_f7528.png

Если рама печатается, выбираем carbon fiber nylon: он получается достаточно лёгким и при этом заметно более прочным и «жёстким» по сравнению с обычными пластиками.

Финальный вариант: карбон

technobee_0400-Photoroom_3e6b7.png

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

Внимание: излишний flex рамы ухудшает поведение дрона и может делать режимы удержания позиции нестабильными.
 
↑ К оглавлению

5. Механическая сборка

Установка моторов и крепёж M2

Прикручиваем моторы. 

technobee_0404-Photoroom_114cd.png

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

Монтаж GPS и антенны ELRS

Крепим GPS спереди на двусторонний вспененный скотч. Сзади фиксируем антенну приёмника ExpressLRS.

GPS и антенна

Монтаж модуля с антенной GPS

technobee_0406-Photoroom_5ee78.png

 

Монтаж антенны ELRS

technobee_0407-Photoroom_f9e12.png

technobee_0408-Photoroom_9457f.png

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

6. Пайка и компоновка стека (ESC + FC)

Пайка моторов к ESC

Ставим ESC на стойки (длинные винты M2) и припаиваем провода моторов к площадкам ESC. Провода укладываем так, чтобы они не тёрлись о пропеллеры и не пережимались рамой.

 

XT30 и конденсатор

Припаиваем разъём XT30 и конденсатор (для сглаживания всплесков напряжения). Размещаем конденсатор так, чтобы он не мешал ремню батареи и не попадал под винты.

Важно: соблюдаем полярность при пайке питания и конденсатора.
technobee_0414-Photoroom_f6077.png

 

Сборка стека ESC+FC

Ставим полётный контроллер поверх ESC и соединяем комплектным шлейфом/проводами. Фиксируем стек самоконтрящимися гайками.

technobee_0416-Photoroom_0a665.png

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

7. Прошивка ArduPilot и порядок действий для ESC

Сначала проверяем ESC (Betaflight/BLHeli)

Сначала убеждаемся, что ESC настроены корректно. Если плата новая и на ней стоит Betaflight, подключаемся и проверяем направление вращения моторов. Если направление неправильное — перепаиваем один из проводов от ESC на мотор или перепрограммируем ESC через BLHeli , AM32 или подобную утилиту и только после этого ставим ArduPilot.

technobee_0502_e6274.png

!: проверку моторов выполняем строго без пропеллеров.

Типичная ошибка

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

Действие: возвращаемся к проверке направлений/настроек ESC, исправляем, затем продолжаем настройку ArduPilot.

Прошиваем ArduPilot через DFU

Скачиваем нужный .hex для контроллера, открываем STM32CubeProgrammer и переводим плату в режим DFU (кнопкой на плате). Проверяем, что ПК видит устройство как STM32 bootloader. Затем нажимаем Connect, выбираем .hex и жмём Download. Дожидаемся завершения прошивки.

Прошивка ArduPilot (шаги):
1) Скачиваем .hex под конкретный контроллер
2) Открываем STM32CubeProgrammer
3) Переводим FC в DFU (кнопка на плате)
4) Проверяем STM32 bootloader в системе
5) Connect → выбираем .hex → Download
6) Перезагружаем контроллер

Пошаговая процедура подробно описана ЗДЕСЬ в разделе 4.

Подключаем ELRS, GPS и компас

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

schemat-sub-250-Photoroom_8ce6e.png

Важно: для каждого FC и модуля порты и распиновка могут отличаться — работаем по документации конкретного оборудования.
↑ К оглавлению

8. Вес и питание

Контроль массы

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

КонфигурацияЦельЧто фиксируем
Без батареи Максимально лёгкая база Стек закреплён, проводка уложена
С батареей 3S До 250 г Ремень держит батарею, центр тяжести нормальный
technobee_0454_6763d.png
 
↑ К оглавлению

9. ExpressLRS: прошивка и привязка (TX/RX)

Configurator: версия > 3.3 и Wi‑Fi flashing

Открываем ExpressLRS Configurator, выбираем прошивку для передатчика и приёмника. Ставим релиз версии выше 3.3 и выбираем метод WiFi flashing. Генерируем два файла и переносим их на телефон.

Подробно о процедурах выбора и обновления прошивок ELRS можно прочитать ЗДЕСЬ

Привязка и проверка соединения

Ждём около 60 секунд (или вручную включаем Wi‑Fi), подключаемся телефоном к каждому модулю и загружаем сгенерированные файлы. На обоих устройствах задаём одинаковый пароль. После успешной привязки получаем сообщение о соединении на передатчике и постоянный индикатор на приёмнике.

technobee_0509_b4ec5.png

Важно: одинаковые параметры (включая пароль) на TX и RX — обязательны для корректной привязки.
↑ К оглавлению

10. ArduPilot: базовая настройка в Mission Planner

Frame X и ориентация HRS

Открываем Mission Planner и ставим тип рамы X.

frame_type_fcfe9.png

Проверяем ориентацию: AHRS_Orientation = 0 если контроллер установлен «вперёд».

AHRS_orientation_7e2e2.png

Initial Tune под 3" и 3S

Во вкладке Initial Tune Parameter выбираем профиль под 3-дюймовые пропеллеры и батарею 3S (Li-ion).

set_prop_and_bat_7bc1e.png

Калибровки

Калибруем акселерометр: кладём дрон на каждую ось по очереди.

scale_1200_3_2026-03-25_17-38-42_56f6e_21412.jpg

Затем калибруем компас: вращаем дрон по осям до заполнения зелёной шкалы.

scale_1200_4_2026-03-25_17-38-45_b8bb0_9fbb9.jpg

Важно: компас калибруем на улице, подальше от металла, магнитов, проводов и электроники.

GPS serial port

Перезагружаем контроллер и настраиваем GPS serial port

gps_serial6_09cb9.png

Проверяем, что статус меняется с No GPS на No Fix при корректной конфигурации.

technobee_0515_af88a.png

Radio Calibration и Flight Modes

Настраиваем параметры, чтобы ExpressLRS корректно работал с ArduPilot.

technobee_0516_19f3f.png

technobee_0517_0e051.png

technobee_0518_0072a.png

Затем открываем Radio Calibration и калибруем: двигаем стики, переключатели и потенциометры, чтобы записать в прошивку минимум/максимум/середину показателей сигналов каналов аппаратуры .

technobee_0519_42104.png

Назначаем 3-позиционный переключатель на канал Flight Mode (fltmode_ch)

technobee_0520_c5fbe.png

и ставим режимы для первых полётов: Stabilize, Alt Hold, Loiter. Проверяем, что переключение реально меняет режим.

technobee_0522_2feec.png

Failsafe и арминг

Назначаем 2-позиционный переключатель для Arm/Disarm.

technobee_0523_73b51.png

Если есть дополнительные переключатели — назначаем отдельный для посадки (Land Mode).

technobee_0524_f234c.png

Настраиваем Failsafe: что делать при низком заряде батареи и при потере сигнала передатчика.

technobee_0525_7bd4e.png

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

11. Моторы, пропеллеры и первый полёт

Servo Output и Motor Test

Во вкладке Servo Output сопоставляем выходы и моторы, затем проверяем во вкладке Motor Test. Используем порядок:

technobee_0501__f0856.png

Сопоставление моторов:
Motor A — передний правый
Motor B — задний правый
Motor C — задний левый
Motor D — передний левый
technobee_0527_5c82d.png
Запомните: Motor Test выполняем без пропеллеров.

ESC calibration и DSHOT300

Если моторы крутятся заметно по-разному и у вас протокол OneShot — выполните калибровку ESC.

technobee_0528_79baf.png

Для протоколов DShot ESC калибровка не требуется.

technobee_0529_e49d2.png

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

Ставим пропеллеры. Для первого вылета используем 3-дюймовые трёхлопастные — так проще получить стабильность. Для эффективности позже меняем на двухлопастные.

technobee_0530-Photoroom_8edd9.png

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

technobee_0531-Photoroom_1_8ef21.png

Stabilize, AltHold, Loiter, Land

  • Делаем первый вылет: взлетаем в Stabilize (тумблер CH9 в положение 1)
  • Проверяем AltHold. CH9 -> 2
  • После уверенного GPS-фикса включаем Loiter (CH9 -> 3) и проверяем удержание позиции. Завершаем полёт через Land.
Результат: базовые режимы работают, а Loiter становится заметно стабильнее после набора спутников.
technobee_0532_cc302.png
↑ К оглавлению
line101 COLOR

12. Телеметрия: MAVLink через ExpressLRS AirPort

Зачем MAVLink

Чтобы настраивать параметры «на месте», видеть живые данные датчиков, работать с миссиями и режимом Guided, включаем полноценную MAVLink-телеметрию.

Включаем AirPort и настраиваем порт MAVLink

Функция AirPort подробно.  

Внимание! Важно: С добавлением поддержки MAVLink в ELRS 3.5 больше нет необходимости использовать AirPort для MAVLink-телеметрии. Для дополнительной информации читай MAVLink.

mavlink air 98436

Включаем функцию AirPort  на уже установленных ELRS передатчике и приёмнике, снова подключившишь к ним по WiFi: ставим галочку Use AirPort и выставляем одинаковый UART baud на обоих устройствах.

technobee_0538_3a193.png

technobee_0539_8ae1f.png

Затем в параметрах ArduPilot для serial-порта приёмника переключаем протокол с RCIN на MAVLink и выставляем тот же baud, который использует AirPort.

technobee_0545_70969.png

AirPort + MAVLink (схема):
1) TX/RX: Use AirPort = ON, UART baud одинаковый
2) ArduPilot: protocol RCIN → MAVLink
3) ArduPilot: baud rate = как в AirPort

Подключаем Mission Planner по USB

Подключаем LRS-передатчик к телефону/планшету по USB. Переключатели на задней стороне ставим в положение для «flashing», иначе соединение не поднимется.

technobee_0547_1_eb217.png

В Mission Planner выбираем USB-устройство и тот же baud, нажимаем Connect. Если начинается загрузка параметров — телеметрия работает.

technobee_0548_9d2c4.png

technobee_0549_70ad4.png

Решаем конфликт «телеметрия vs управление»

Если один линк занят телеметрией, добавляем отдельный канал управления. Самый практичный вариант — второй комплект ExpressLRS на другой частоте (например, 868 MHz), чтобы разнести управление и телеметрию.

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

13. Два ExpressLRS + наземная станция

technobee_0550_4208e.png

Ставим второй приёмник ExpressLRS (868 MHz) для управления: припаиваем его к UART3 и фиксируем снизу рамы.

technobee_0552_4bb69.png

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

technobee_0553_6264e.png

RGB, крышка стека, камера

Печатаем крышку стека и крепим 5V RGB-ленту: так дрон лучше видно, а цвет можно использовать как индикацию armed/disarmed. Устанавливаем крепление и камеру Runcam для записи полётов.

technobee_0557_1_09994.png

Крепление: 2 модуля + планшет

Делаем наземную станцию: печатаем крепление на аппаратуру и ставим два ELRS-модуля плюс планшет (например, 10"). Подключаемся к дрону, ждём загрузку параметров и проверяем, что одновременно работают RC-каналы и телеметрия.

technobee_0560_1_ddaaa.png

technobee_0568_1_9a758.png

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

14. Автономия: geofence, миссия, Throw, Circle, Flip, Guided, Smart RTL

Рисуем geofence и строим миссию

Открываем вкладку Plan в Mission Planner. Рисуем geofence вокруг безопасной зоны полёта (например, пустого поля), чтобы удержать дрон в пределах.

technobee_0580_1_89cc3.png

Затем создаём waypoints и задаём высоту (например, около 40 м). В конце миссии добавляем возврат и посадку.

technobee_0577_8c949.png

Throw: параметры и запуск

Настраиваем запуск броском: выставляем параметры для Throw так, чтобы после броска дрон переходил в Auto и выполнял миссию.

technobee_0579_ec245.png

Throw (параметры):
throw_nextmode = (3) auto
throw_type      = 0

Пишем параметры в контроллер, записываем миссию. Перед стартом убеждаемся, что арминг проходит, GPS работает стабильно, телеметрия подключена. Затем включаем Throw, кидаем дрон "в небо" и контролируем его переход в Auto.

Проверяем fence: Loiter/AltHold/RTL

Проверяем, как работает fence. В Loiter пробуем подвести дрон к границе и убеждаемся, что пересечь её нельзя. Затем проверяем поведение в Alt Hold: пересекаем линию и наблюдаем автоматическую реакцию (например, активацию RTL и возврат).

Результат: fence обеспечивает безопасность полетов: автоматически ограничивает полетную зону и помогает не потерять дрон при обучении.

Circle и Flip

Проверяем «развлекательные» режимы. Включаем Circle и получаем облёт по кругу. В Alt Hold переключаемся в Flip и выполняем автоматический переворот.

Guided: летим по тапу на карте

Включаем Guided при активной MAVLink-телеметрии. На карте выбираем точку, задаём высоту (например, 40 м) и отправляем команду «лететь сюда». Затем аналогично возвращаем дрон ближе к себе и по завершении выбираем RTL, чтобы дрон снизился к точке старта.

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

15. Итоги и чек-лист самопроверки

Итог

Получаем лёгкий и функциональный квадрокоптер: можно учиться летать, тестировать автономию, строить миссии и управлять полётом с карты. Сборку удобно расширять: добавлять камеры, подсветку, менять винты и батареи, улучшать телеметрию.

Ключевой итог: на одной платформе получаем и «ручные» режимы, и автономные сценарии, и полноценную телеметрию — без тяжёлых телеметрийных радиомодулей.

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

Ошибка: неподходящие винты моторов

Симптомы: мотор не фиксируется, люфтит, срывается резьба.

Действие: переходим на крепёж M2, аккуратно нарезаем резьбу, используем подходящую длину винтов.

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

Симптомы: риск травм и повреждений, непредсказуемый рывок.

Действие: Motor Test и проверку направлений выполняем строго без пропеллеров.

Ошибка: включать Loiter без уверенного GPS

Симптомы: нестабильное удержание точки.

Действие: ждём стабильный GPS-фикс и достаточное число спутников, затем тестируем Loiter.

Ошибка: включить AirPort и потерять привычное управление

Симптомы: телеметрия есть, а RC-управления нет (или оно неудобное).

Действие: добавляем второй линк ExpressLRS для управления (второй приёмник на отдельный UART).

Чек-лист перед вылетом

  • Проверяем крепёж моторов, состояние резьбы, отсутствие люфтов.
  • Проверяем пайку питания, полярность, конденсатор, крепление XT30.
  • Проверяем прошивку ArduPilot, подключение к Mission Planner.
  • Ставим X-раму и корректную HRS orientation.
  • Калибруем акселерометр и компас (лучше на улице).
  • Проверяем GPS-порт и статус фикса.
  • Калибруем радио, назначаем режимы Stabilize/Alt Hold/Loiter.
  • Назначаем arming и настраиваем Failsafe.
  • Проверяем Servo Output и Motor Test без пропеллеров.
  • Ставим пропеллеры и проверяем тягу вниз.

Практика

Задание 1: проверка моторной схемы

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

Открываем Motor Test, по очереди запускаем A/B/C/D и сверяем, что крутится нужный мотор. Исправляем сопоставление до установки пропеллеров.

Задание 2: первый полёт по сценарию

Цель: подтвердить стабильность базовых режимов.

Взлетаем в Stabilize, затем проверяем Alt Hold, после GPS-фикса проверяем Loiter и завершаем Land.

Задание 3: geofence и безопасный тест границы

Цель: понять поведение ограничений и реакцию автопилота.

Рисуем fence, в Loiter подводим к границе и убеждаемся в ограничении. Затем в безопасных условиях проверяем поведение в Alt Hold и реакцию RTL.

↑ К оглавлению
Ультралёгкий автономный квадрокоптер (до 250 г) на ArduPilot с управлением по ExpressLRS ID 18