CC3D возврат домой. CC3D GPS RTH INAV

iNAV на CC3D — самый бюджетный автопилот с функцией RTH для самолета

Запишу в дневник, чтобы не забыть, да и пригодится может кому…
Да, это не полный и исчерпывающий мануал по iNAV, а пример настройки АП под конкретный тип ЛА.

В поисках кандидата легкого, не дорого комплекта АП для мелкого FPV самолета взор упал на давно приобретенную плату CC3D. Поставив ее на самолет и без труда настроив OpenPilot захотелось большего, а именно возврата домой. В результате после изучаения темы всплыли две возможности:
прошивка Патрика (базируется на baseflight)
iNAV (базируется на cleanflight)
Имея не очень успешный опыт эксплуатации прошивки Патрика на multiwii, прочитав наискось его тему на fpvlab.com, найдя фразу Патрика же, что его прошивке до iNAV очень далеко, у меня остался только один вариант. А почитав в основном положительные отзывы по системе навигации iNAV вообще развеялись все сомнения.

Что потребуется:
1. Полетный контроллер CC3D или совместимый с iNAV (от $14)
2. OSD (minimOSD или любое другое поддерживающее cleanflight) (от $8)
3. GPS приемник (от $10)
Итого, на АП, gps и osd вышло менее $32
4. FPV комплект, самолет, РУ, батареи и т.п. это и так понятно.
Фото подопытного ЛА:

Пилот может смотреть по сторонам. На мир с высоты смотрю глазами миньена

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

Начнем (для увеличения изображений правый клик на нем мышей и открыть в новой вкладке).

1. Прошивка iNAV в CC3D.
Ничего необычного в процессе нет.
Качаем скомпилированную прошивку под наш тип платы отсюда https://github.com/iNavFlight/inav/releases
А далее существует куча мануалов как на CC3D залить стороннюю прошивку. Например тут и тут . Единственное отличие, что для прошивки выбираем скачанный файл iNAV.

2. Базовая настройка
Ориентация платы. Выполняется только из CLI так как GUI не принимает значения более 360, а у iNav единицы углов равны deg*10 то есть для ориентации платы так чтобы USB разъем был слева нужно пойти в терминал (CLI) и выполнить команду

Код:
set align_board_yaw=900

если нужен USB разъем справа, то

Код:
set align_board_yaw=2700

Для сохранения изменений сделанных в CLI нужно дать команду save.

Настройка портов. Выполняется на вкладке Ports.

— UART1 оставляем без изменения (по-умолчанию), к нему будет подключено ОСД или FTDI для настройки с компьютера
— UART3 будет занят для GPS. Соответственно и включем эту функцию и выбираем необходимую скорость на порту.
У меня GPS приемник ublox6 со скоростью порта 38400, обновлением 5Гц и выдачей NMEA сообшений.
Как настроить GPS приемник так же немало статей написано, для примера тыц, тыц

Конфигурация (закладка Configuration)
После этого, подключим все оборудование по такой схеме (это вариант с Parallel PWM Receiver) (Фото реального hardware):

Или по такой схеме (это вариант с PPM Receiver):

Тип ЛА. На вкладке Configuration выбираем тип летательного аппарата — Airplane. Так как у меня классический самолет с хвостовым оперением. Для тех у кого летающее крыло, необходимо выбрать соответствующую опцию.

Не обращаем внимания на нумерацию серв/каналов на картинке. Они не очень совпадают с действительностью.
Здесь же, кто не желает вращения мотора при арминге нужно включить MOTOR_STOP. Остальные ESC/Motor features меня полностью устроили.
Для возможности отслеживания полетным контроллером напряжения, тока и RSSI необходим приемник РУ любой, кроме Parallel PWM Receiver. Я подключил свой доработанный для отображения RSSI V8FR-II через PWM->PPM конвертор.

Включим и возмжность работы с GPS, выбрав протокол.

В группе Other Features нужно включить Telemetry и остальное по-желанию. Здесь есть опция SOFTSERIAL, позволяющая использовать пины 4 и 5 входов как программный UART, когда не хватает аппаратных, например для подключения приемников по S-BUS, передачи телеметрии и тп.

Снова заходим в CLI и настраиваем слежение за напряжением батареи:

Код:
feature VBAT
Код:
set vbat_scale = xxx

вместо ххх нужно установить значение, соответствующее делителю напряжения с Ubat до 3.3В. С первого раза навряд ли получится, поэтому методом подбора добиваемся правильного показания вольтметра. Для ускорения процедуры, после каждой смены vbat_scale можно вводить команду status, которая в том числе отобразит и напряжение.
Не стоит настраивать значение vbat_scale в GUI — ничего хорошего из этого не выйдет. Только через CLI.

Настроим слежение за RSSI:

Код:
feature RSSI_ADC
Код:
set RSSI_SCALE = xxx

вместо ххх нужно ввести коэффициент масштабирования (1…255). В мое случае ххх=43. При этом значении RSSI равен 100% когда приемник РУ находится вблизи от передатчика и RSSI равен 0 при выключенном передатчике. Нужно найти такой прог коэффициента RSSI_SCALE при изменении которого на 1 в большую сторону, значение RSSI было бы менее 100%, при включенном передатчике РУ.
Не забываем сохранить параметры командой save в CLI

На вкладке Receiver нужно настроить порядок каналов и проверить их соответствие стикам.

На вкладке Modes нужно настроить соответствие режимов полета положению каналов AUX. На AUX я настроил трехпозиционный свитч. С тем как настроено у меня на картинке получается следующее:
— минимальное значение канального импульса — работают одни гиры. Взлет самолета — просто песня. Взял за фюзеляж, нос градусов 10-20 вверх поднял, газу на 80-100%, самолет отпустил. Он под этим углом идет в небо. Без просадок, виляний и пр.
— среднее значение — Angle. Тем, кто любит фпв пилотаж, полюбят режим Horizon
— максимальное значение — RTH+Angle. Летим домой со стабилизацией.

Фейлсейф (закладка Failsafe).
Фейлсейф как по мне, так немного сумбурный. Имеет две фазы. В фазу 1 попадаем, если АП видит проблему с длительностью канала или пропал ППМ с приемника. Тогда АП ставит значения по каналам, настроенные в группе Channel Fallback Settings. Здесь, я себе настроил велицину канального импульса в канале AUX соответствующую режиму RTH. Как только АП попал в фазу 1, он ждет некоторое время (guard time for stage 2 activation), и если связь не восстановилась и АП остается заармленным, то АП переключается в фазу 2. В ней каналы сохраняют свои значения как и в фазе 1, пока они не будут отменены процедурой фазы 2. А именно drop или land.

К стати сказать, настройку ФС я невольно проверил. Работает. А дело было так. Одна из первых посадок получилась довольно жесткая — не удивительно, самолет размахом 65см и массой около 600г. Во время этой посадки самолет повел себя так. Ударившись о землю с газом в 0, он резко ожил и дал полный газ, но врезался в кактус, который и остановил аппарат от взлета и набора высоты и кружения в RTH. Это была случайность, которая избавила меня от необходимости стоять и ждать пока сядет акк и самолет рухнет на землю. Короче, при детальном рассмотрении отпал из CC3D приемник от удара при посадке.

После лирического отступления в передатчике настраиваем реверсы каналов по всем правилам (стик РВ на себя — РВ поднимается, стик элеронов влево — левый элерон поднимается, правый опускается, стик РН влево — РН влево)

Далее идем на вкладку Motors, качаем ЛА и смотрим, какие из ползунков шевелятся в зависимости от углов наклона по PITCH и ROLL. Можно запомнить или записать. ROLL — 4,5; PITCH — 3, YAW — 6.

Включаем передатчик, устанавливаем режим Angle или Horizon. Переходим на вкладку Servos.

Тут внимательно. Я, например, на неделю позже взлетел на iNAV из-за реверса элеронов, которая обнаружилась на первой секунде полета . На этой вкладке настраиваем конечные и среднюю точки, расходы, а так же реверсы рулей для режимов стабилизации. Нумерация серв на этой вкладке начинается с 0! Для РВ, наклоняем хвост вниз, РВ должен должен опуститься. Если же РВ поднимается, то необходимо установить Rate (самый правый выпадающий список) Servo 2 с отрицательным знаком. Наклоняем левое крыло вниз. Левый элерон должен должен опуститься вниз, а правый подняться вверх. Если что-то не так, то исправляем установкой отрицательных Rate для Servo 3 и Servo 4 (если элероны подключены к одному каналу через Y-кабель, то достаточно поменять настройку только однго из каналов). Далее отводим хвост влево, руль направления должен отклониться влево. Если не так, то устанавливаем отрицательный Rate для Servo 5.

Переходим к OSD. В него необходимо залить прошивку MWOSD. По ссылке присутствует install guide. Там как обычно: прошивка через среду Arduino, запуск конфигуратора, прошивка шрифтов через конфигуратор. Настройка параметров. Скрин параметров:

Конечно, до прошивки MWOSD в плату minimOSD ее необходимо настроить. Все изменения в файле Config.h
OSD HARDWARE settings:

Код:
#define MINIMOSD

CONTROLLER SOFTWARE

Код:
#define CLEANFLIGHT

AIRCRAFT/INSTALLATION TYPE settings

Код:
#define FIXEDWING

Serial speed settings

Код:
#define BAUDRATE 115200

Видео полета (на 2.20 включен принудительный RTH)

В процессе настройки и эксплуатации необходимости настройки коэффициентов PID контроллера не возникло, поэтому этот пункт в описании отсутствует.

источник

Ваш комментарий будет первым

Добавить комментарий