AFON // радиотехник affonya@mail.ru
← Справочник по дронам

Проекты для дронов на контроллере

Пятьдесят практических прошивок для микроконтроллера ATmega328P (плата Arduino Uno/Nano): питание и защита батареи, управление моторами и ESC, приём команд, датчики, индикация и телеметрия. Каждый проект — задача, алгоритм и исходник на C с возможностью скачать .c.

Все примеры написаны на языке C для регистрового уровня AVR (без Arduino-библиотек) и проверены компиляцией avr-gcc под ATmega328P. Тактовая частота 16 МГц. Таймингозависимые вещи (WS2812, DShot, SBUS) требуют подгонки под частоту и железо — это отмечено в проектах. Внимание: при любых тестах моторов снимайте пропеллеры.

PWR//

Питание

09
DMC.01
Монитор напряжения LiPo

Измерение напряжения батареи через АЦП и делитель, вывод порога на светодиод.

DMC.02
Сигнал разряда на бузер

Пищалка предупреждает о разряде батареи прерывистым тоном.

DMC.03
Определение числа банок

Автоопределение числа банок (S) LiPo по суммарному напряжению.

DMC.04
Датчик тока

Измерение тока потребления с датчика Холла (ACS712) через АЦП.

DMC.05
Счётчик потреблённой ёмкости

Интегрирование тока во времени для оценки израсходованных мА·ч.

DMC.06
Индикатор RSSI

Чтение аналогового RSSI приёмника и перевод в проценты.

DMC.07
Термоконтроль ESC (LM35)

Измерение температуры регулятора датчиком LM35 и защита по перегреву.

DMC.08
Линейка заряда на светодиодах

Отображение уровня заряда батареи столбиком из светодиодов.

DMC.09
Предстартовая самопроверка

При включении проверяет напряжение и сигнализирует готовность или отказ.

MOT//

Моторы и ESC

10
DMC.10
Управление сервоприводом

Генерация сервосигнала 50 Гц (1000–2000 мкс) аппаратным Timer1.

DMC.11
Управление ESC (PWM)

Стандартный сигнал управления регулятором 1000–2000 мкс.

DMC.12
Калибровка ESC

Процедура калибровки концов газа регулятора.

DMC.13
Тест мотора (разгон)

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

DMC.14
Микшер квадрокоптера (X)

Расчёт газа четырёх моторов из throttle/roll/pitch/yaw для схемы X.

DMC.15
Формирование кадра DShot

Сборка 16-битного кадра DShot с телеметрийным битом и CRC.

DMC.16
Тахометр оборотов

Подсчёт оборотов мотора/винта по датчику через внешнее прерывание.

DMC.17
Логика арминга

Безопасное взведение: газ в нуле плюс переключатель.

DMC.18
Failsafe: отсечка моторов

Остановка моторов при пропадании сигнала управления по таймауту.

DMC.19
Свип сервопривода

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

SENS//

Датчики

11
DMC.26
Сканер шины I2C

Поиск адресов устройств на шине I2C (TWI) — базовая диагностика.

DMC.27
Чтение MPU6050 (гиро/акс)

Инициализация и чтение гироскопа и акселерометра MPU6050 по I2C.

DMC.28
Компас HMC5883L

Чтение магнитометра HMC5883L и вычисление курса.

DMC.29
Барометр BMP280

Чтение идентификатора и сырого давления/температуры BMP280 по I2C.

DMC.30
Высотомер HC-SR04

Измерение малой высоты ультразвуковым дальномером HC-SR04.

DMC.31
ИК-дальномер (Sharp)

Чтение аналогового ИК-дальномера Sharp через АЦП.

DMC.32
Комплементарный фильтр

Оценка угла наклона слиянием гироскопа и акселерометра.

DMC.33
Измеритель вибраций

Оценка уровня вибраций по колебаниям показаний акселерометра.

DMC.34
Определение переворота

Детект переворота аппарата по акселерометру для turtle-mode.

DMC.35
Интегрирование гироскопа

Накопление угла поворота интегрированием угловой скорости.

DMC.36
Сигнал удержания высоты

Формирование сигнала коррекции газа для удержания высоты по барометру.