Ардупилот на OpenPilot Revolution и других платах на STM32F4
Прошивка
Для первой прошивки плату необходимо переключить в режим DFU бутлоадера, для этого нужно подключить питание с нажатой кнопкой BOOT, после чего прошить через любую программу, предназначенную для DFU, лучше всего через родной DfuSe от ST
Первый раз прошивать нужно файл <плата>_bl - он содержит в себе бутлоадер. Потом достаточно прошивать файл <плата>.hex <плата>.dfu, они размещаются с нужного адреса и не трут параметры при прошивке.
Подключение к плате Revolution / RevoMini
Я пытался поддерживать совместимость с документацией OpenPilot. Основное различие - FlexiPort по умолчанию UART, а внешний порт I2C находится на выводах 7 и 8 входного порта. Но это может быть изменено параметром HAL_FLEXI_I2C
MainPort - телеметрия, Serial1.Также он может использоваться как вход SBUS с аппаратным инвертором (параметр BRD_UART_SBUS), но при наличии софтверного декодера это расточительство.
FlexiPort - OSD, Serial2
Uart6 (контакты 5 и 6) - GPS, Serial3
Входной порт: (режим PWM не поддерживается - это общая тенденция)
контакт 1 входного порта GND
контакт 2 входного порта +5
контакт 3 входного порта - это 1-й вход PPM / SBUS / DSM / SUMD или Servo9 (если вы используете RC через UART)
контакт 4 входного порта - 2-й вход PPM / SBUS / DSM / SUMD или Servo10, также может работать как UART только на прием (для GPS)
контакты 5 и 6 входного порта - Tx и Rx UART6 (для GPS - Serial3)
контакты 7 и 8 входного порта - это SCL и SDA внешнего I2C (или Tx и Rx для SoftSerial, если I2C перемещен в FlexiPort) - или Servos 7 и 8
SERVO Out port - Выходной порт для моторов
Подключите к выходным выводам PWM в порядке ArduCopter, CleanFlight или OpenPilot и установите параметр BRD_MOTOR_LAYOUT соответственно
Выходы PWM 5 и 6 могут быть использованы как Rx и Tx Serial4 - но только для квадров или самолетов (кроме маппинга моторов 1, см. ниже)
также контакты 1 и 2 выходного порта могут использоваться в качестве выходов на сервы, в этом случае подключать моторы к контактам 3-6 в порядке ArduCopter со сдвигом на 2 вверх.
Порт OpLink
Приемник DSM satellite может быть подключен к порту Oplink (UART5) или к входам PPM (контакты 3 и 4 входного порта)
привязка DSM сателлита может быть выполнена двумя способами:
1. с дополнительным управляемым стабилизатором 3,3 вольта.
2. с непосредственным подключением к 3.3v, привязка потребует короткого отключения питания
Подключение к порту OpLink
Контакт 1 - Gnd,
контакт 2 - +5 (для DSM требуется 3.3!)
контакт 3 - Rx
контакт 4 - включение 3.3 стабилизатора.
контакт 5 - PC10 (pin 51) SCK
контакт 6 - PC12 (pin 53) MOSI
контакт 7 - PC11 (pin 52) MISO
Также порт Oplink может использоваться как внешний SPI для подключения SD-карты (F4light_Revolution_SD),
Датчики Airspeed & RSSI
Выводы Servo5 и Servo6 могут использоваться как аналоговые входы для датчика скорости и/или RSSI, подключение (в МП):
Servo5 = 48
Servo6 = 47
светодиоды
Вся важная информация отображается на 2х светодиодах RevoMini
Синий светодиод: состояние системы
Очень быстрое мигание - инициализация
Мигает - готово к армингу
Двойное мигание - проверка не прошла, арминг невозможен
Постоянное свечение - заармлено
медленное мигание (около 2 Гц) в полете - файлсейф по аккумулятору
быстрое мигание (около 4 Гц) в полете - файлсейф радиоуправления
мигание (небольшие темные паузы) - автотюн завершен
двойное затемнение - автотюн завершился с ошибкой
Зеленый светодиод: состояние GPS
Темный: нет фикса
Мигает: количество миганий показывает количество спутников минус 6, так что если поймано 10 спутников то будет мигать сериями по 4 вспышки
специальные режимы:
"полицейская мигалка" - калибровка ESC или SaveTrim
короткое мигание обоих светодиодов - калибровка компаса
Подключение к плате Airbot F4
GPS подключить к UART6 , OSD к UART1 ,при использовании телеметрии подключать лучше только tx полетника -> rx OSD.
Модем для телеметрии так же подключать к UART1. Так же можно установить параметр HAL_CONSOLE_UART,1 ,он будет отправлять консольные данные вместе с телеметрией , может помочь в диагностике проблем.
Барометр и компас к SDA/SCL
Например GY-652 HMC5983 BMP180
В данном случае приемник подключен по PPM .
Перемычка SBUS снята. BUZZER не установлен.
Прошивал бетафлай конфигуратором , загрузкой локального фаила прошивки.Как пользоваться бетафлай конфигуратором ,точнее частью что касается прошивки ,полно видео в интернете.
Прошивка
Фаил latest.zip прошивка revomini_airbot
После прошивки появилось неизвестное устройство ,установил свежий Mission Planner ,с ним установились новые драйвера и устройство стало определяться как PX4-FMU.
В Mission planner :
Калибровка акселерометра
Калибровка компаса
Калибровка радио
Для осд нажал на кнопку Enable OSD и всё пошло
В full parametr list
Напряжение BATT_VOLT_PIN,8
Ток BATT_CURR_PIN,7
RSSI RSSI_ANA_PIN,47
Так же было рекомендовано включить EKF3
AHRS_EKF_TYPE,3
EK3_ENABLE,1
Видео как собрал/проверял/полет