Ультралёгкий автономный квадрокоптер (до 250 г) на ArduPilot с управлением по ExpressLRS
Ниже — пошаговая инструкция по сборке ультралёгкого автономного квадрокоптера (до 250 г) на ArduPilot с управлением по ExpressLRS и полноценной MAVLink-телеметрией через функцию AirPort.
Инструкция покрывает: подбор железа, раму, пайку, прошивку, настройку в Mission Planner, автополёт по миссии, geofence, режим Throw, Guided, RTL и посадку.
Собираем компактный и доступный sub-250 дрон на F405 mini stack, настраиваем ArduPilot, а для «полной» телеметрии используем ExpressLRS AirPort (двунаправленный прозрачный serial-линк), сохраняя удобное управление.
Содержание
- 1. Введение и цели
- 2. Комплектующие
- 3. Рама: тест материалов и выбор
- 4. Карбоновая рама: изготовление на заказ
- 5. Механическая сборка
- 6. Пайка и компоновка стека (ESC + FC)
- 7. Прошивка ArduPilot и порядок действий для ESC
- 8. Вес и питание
- 9. ExpressLRS: прошивка и привязка (TX/RX)
- 10. ArduPilot: базовая настройка в Mission Planner
- 11. Моторы, пропеллеры и первый полёт
- 12. Телеметрия: MAVLink через ExpressLRS AirPort
- 13. Два ExpressLRS + наземная станция
- 14. Автономия: geofence, миссия, Throw, Circle, Flip, Guided, Smart RTL
- 15. Итоги и чек-лист самопроверки
1. Введение и цели
Что собираем
Собираем компактный квадрокоптер весом до 250 г: ставим ArduPilot, подключаем ExpressLRS, настраиваем режимы удержания, миссии и управляемые полёты. Дополнительно настраиваем полноценную MAVLink-телеметрию через ExpressLRS AirPort.
Зачем sub-250
Sub-250 платформа удобна для обучения и экспериментов: проще безопасно отрабатывать Stabilize, AltHold, Loiter, а также автономные сценарии и миссии.
Места под скриншоты
итоговая сборка

2. Комплектующие
Список компонентов
- Стек:
Speedybee F405 mini stack(FC + ESC).

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

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

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

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

- Опционально:
5V RGB-лента, камераRuncam, 3D-печатные элементы (крышка стека, крепления).
Логика выбора
Держим фокус на двух целях: минимальный вес и адекватная стоимость. Для sub-250 сборок выбираем мини-стек, компактную раму и лёгкие периферийные модули, а затем аккуратно укладываем проводку и крепёж.
3. Рама: тест материалов и выбор
Какие материалы протестированы
Перед финальным выбором рамы проводим тесты по пластикам и лёгким листовым материалам. Проверяем три параметра: вес, жёсткость (прогиб) и живучесть при падениях/ударах.
| Материал | Плюсы | Минусы | Вывод |
|---|---|---|---|
PTG (крупная версия) |
Просто печатать | Получается слишком большая и тяжёлая; крепёж M3 для sub-250 нежелателен |
Не используем |
PLA |
Доступный пластик | Слишком хрупкий | Не используем |
| Фанера | Самая лёгкая из протестированных | Слишком большой flex (прогиб) |
Не используем |
Carbon fiber nylon |
Хороший баланс веса и прочности | Требовательнее к печати | Лучший пластик из тестов |
| Чистый карбон | Максимальная жёсткость | Обычно требует изготовления на заказ | Финальный выбор |
Выбранный пластик: CF Nylon

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

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

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

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


6. Пайка и компоновка стека (ESC + FC)
Пайка моторов к ESC
Ставим ESC на стойки (длинные винты M2) и припаиваем провода моторов к площадкам ESC. Провода укладываем так, чтобы они не тёрлись о пропеллеры и не пережимались рамой.
XT30 и конденсатор
Припаиваем разъём XT30 и конденсатор (для сглаживания всплесков напряжения). Размещаем конденсатор так, чтобы он не мешал ремню батареи и не попадал под винты.

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

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

!: проверку моторов выполняем строго без пропеллеров.
Типичная ошибка
Симптомы: дрон пытается перевернуться при взлёте, режимы ведут себя странно.
Действие: возвращаемся к проверке направлений/настроек 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, питание, уровни сигналов), затем проверяем соединения мультиметром.

8. Вес и питание
Контроль массы
Фиксируем стек самоконтрящимися гайками, добавляем ремень-липучку. Взвешиваем сборку без батареи и с батареей, чтобы убедиться, что остаёмся ниже 250 г.
| Конфигурация | Цель | Что фиксируем |
|---|---|---|
| Без батареи | Максимально лёгкая база | Стек закреплён, проводка уложена |
| С батареей 3S | До 250 г | Ремень держит батарею, центр тяжести нормальный |

9. ExpressLRS: прошивка и привязка (TX/RX)
Configurator: версия > 3.3 и Wi‑Fi flashing
Открываем ExpressLRS Configurator, выбираем прошивку для передатчика и приёмника. Ставим релиз версии выше 3.3 и выбираем метод WiFi flashing. Генерируем два файла и переносим их на телефон.
Подробно о процедурах выбора и обновления прошивок ELRS можно прочитать ЗДЕСЬ
Привязка и проверка соединения
Ждём около 60 секунд (или вручную включаем Wi‑Fi), подключаемся телефоном к каждому модулю и загружаем сгенерированные файлы. На обоих устройствах задаём одинаковый пароль. После успешной привязки получаем сообщение о соединении на передатчике и постоянный индикатор на приёмнике.

10. ArduPilot: базовая настройка в Mission Planner
Frame X и ориентация HRS
Открываем Mission Planner и ставим тип рамы X.
Проверяем ориентацию: AHRS_Orientation = 0 если контроллер установлен «вперёд».
Initial Tune под 3" и 3S
Во вкладке Initial Tune Parameter выбираем профиль под 3-дюймовые пропеллеры и батарею 3S (Li-ion).
Калибровки
Калибруем акселерометр: кладём дрон на каждую ось по очереди.
Затем калибруем компас: вращаем дрон по осям до заполнения зелёной шкалы.
GPS serial port
Перезагружаем контроллер и настраиваем GPS serial port.
Проверяем, что статус меняется с No GPS на No Fix при корректной конфигурации.
Radio Calibration и Flight Modes
Настраиваем параметры, чтобы ExpressLRS корректно работал с ArduPilot.
Затем открываем Radio Calibration и калибруем: двигаем стики, переключатели и потенциометры, чтобы записать в прошивку минимум/максимум/середину показателей сигналов каналов аппаратуры .

Назначаем 3-позиционный переключатель на канал Flight Mode (fltmode_ch)
и ставим режимы для первых полётов: Stabilize, Alt Hold, Loiter. Проверяем, что переключение реально меняет режим.
Failsafe и арминг
Назначаем 2-позиционный переключатель для Arm/Disarm.
Если есть дополнительные переключатели — назначаем отдельный для посадки (Land Mode).
Настраиваем Failsafe: что делать при низком заряде батареи и при потере сигнала передатчика.
11. Моторы, пропеллеры и первый полёт
Servo Output и Motor Test
Во вкладке Servo Output сопоставляем выходы и моторы, затем проверяем во вкладке Motor Test. Используем порядок:

Сопоставление моторов:
Motor A — передний правый
Motor B — задний правый
Motor C — задний левый
Motor D — передний левый
ESC calibration и DSHOT300
Если моторы крутятся заметно по-разному и у вас протокол OneShot — выполните калибровку ESC.

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

Пропеллеры и проверка тяги
Ставим пропеллеры. Для первого вылета используем 3-дюймовые трёхлопастные — так проще получить стабильность. Для эффективности позже меняем на двухлопастные.
Перед вылетом обязательно проверяем, что каждый пропеллер даёт тягу вниз.
Stabilize, AltHold, Loiter, Land
- Делаем первый вылет: взлетаем в
Stabilize(тумблер CH9 в положение 1) - Проверяем
AltHold. CH9 -> 2 - После уверенного GPS-фикса включаем
Loiter(CH9 -> 3) и проверяем удержание позиции. Завершаем полёт черезLand.

12. Телеметрия: MAVLink через ExpressLRS AirPort
Зачем MAVLink
Чтобы настраивать параметры «на месте», видеть живые данные датчиков, работать с миссиями и режимом Guided, включаем полноценную MAVLink-телеметрию.
Включаем AirPort и настраиваем порт MAVLink
Функция AirPort подробно.
Внимание! Важно: С добавлением поддержки MAVLink в ELRS 3.5 больше нет необходимости использовать AirPort для MAVLink-телеметрии. Для дополнительной информации читай MAVLink.
Включаем функцию AirPort на уже установленных ELRS передатчике и приёмнике, снова подключившишь к ним по WiFi: ставим галочку Use AirPort и выставляем одинаковый UART baud на обоих устройствах.


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

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

Решаем конфликт «телеметрия vs управление»
Если один линк занят телеметрией, добавляем отдельный канал управления. Самый практичный вариант — второй комплект ExpressLRS на другой частоте (например, 868 MHz), чтобы разнести управление и телеметрию.
↑ К оглавлению13. Два ExpressLRS + наземная станция
Второй линк (868 MHz) для управления

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

Настраиваем модуль так, чтобы управление работало независимо от телеметрийного канала.
RGB, крышка стека, камера
Печатаем крышку стека и крепим 5V RGB-ленту: так дрон лучше видно, а цвет можно использовать как индикацию armed/disarmed. Устанавливаем крепление и камеру Runcam для записи полётов.
Крепление: 2 модуля + планшет
Делаем наземную станцию: печатаем крепление на аппаратуру и ставим два ELRS-модуля плюс планшет (например, 10"). Подключаемся к дрону, ждём загрузку параметров и проверяем, что одновременно работают RC-каналы и телеметрия.


14. Автономия: geofence, миссия, Throw, Circle, Flip, Guided, Smart RTL
Рисуем geofence и строим миссию
Открываем вкладку Plan в Mission Planner. Рисуем geofence вокруг безопасной зоны полёта (например, пустого поля), чтобы удержать дрон в пределах.

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

Throw: параметры и запуск
Настраиваем запуск броском: выставляем параметры для Throw так, чтобы после броска дрон переходил в Auto и выполнял миссию.
Throw (параметры):
throw_nextmode = (3) auto
throw_type = 0
Пишем параметры в контроллер, записываем миссию. Перед стартом убеждаемся, что арминг проходит, GPS работает стабильно, телеметрия подключена. Затем включаем Throw, кидаем дрон "в небо" и контролируем его переход в Auto.
Проверяем fence: Loiter/AltHold/RTL
Проверяем, как работает fence. В Loiter пробуем подвести дрон к границе и убеждаемся, что пересечь её нельзя. Затем проверяем поведение в Alt Hold: пересекаем линию и наблюдаем автоматическую реакцию (например, активацию RTL и возврат).
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.
ID 19





















