CRIUS ALL IN ONE PRO Flight Controller

mahowik

Запаял на коленке mobiDrone OSD из Multiwii FC I2C-GPS NAV Module + LM1881 (Video Sync Separator на ебае взял за пару баксов). Получилось “чуток” дешевле чем тут 😉
Залил mobiDroneOSD v2.3 PRE RELEASE 7 (FINAL), которая поддерживает новый протокол реализованный в MultiWii 2.1. Т.е. без примочек и правки прошивки основного контроллера, mobiDrone OSD берет все данные с него через UART (RX0-TX0) по новому протоколу. На видео ниже видна поддержка горизонта, азимута и высоты. Также при подключении GPS к контроллеру будет показывать координаты, кол-во спутников и направление домой. Еще к нему можно подрубить RSSI, уровень второй батареи (первый он берет с контроллера), датчик тока. Потом там есть полная настройка PID и режимов (т.е. что и на каком AUX канале висит), калибровка ACC/MAG…
Ну и еще одна очень приятная штучка, это радар (вроде как настраивается и активируется с пульта… )!

Вот такой вот OSD за $10 для вия! 😉

Огромное спасибо MichalM_sk за отличный проект!

SovGVD
mahowik:

LM1881

  • рассыпуха, можно список какие еще детальки добавились?
sergu73

на рцгрупсах народ пишет, что микро-usb разъем у кого-то отломался, причем уже не первый случай, так что аккуратнее с ним надо. Видимо зацепы на разъеме шнурка лишние или слишком тугие.

SovGVD:
  • рассыпуха

да, тоже интересно, что еще надо

SovGVD

microusb разъем везде этим страдает, а еще сейчас во все телефоны пихают, так что многие рекомендуют надфилем стачивать зацепы

mahowik
SovGVD:
  • рассыпуха, можно список какие еще детальки добавились?

По рассыпухе все просто. На схемке ниже в красном квадрате, то что нам надо. Я наколупал из мышек и старых комп. плат. Диод нашел там же, маркировки не знаю, но работает и ладно. Если на платке с 328 мегой фильтр по питанию стоит, то С3 и С5 можно не ставить, но я планирую впихнуть 10мкф + 0.1мкф (теже 100нф) дабы избежать и уменьшить вероятность глюков в полете, т.к. на борту будет много электроники: телеметрийный приемник (т.е. с обратным передатчиком) + видеолинк + болшие токи и наводки соот-но…
Была проблема найти R1 резистор на 680к… нашел 3 по 220к впихнул последовательно.
Далее переменный резистор R5 позволяет регулировать контраст выводимой информации на экран… я накрутил на 200…220ом и впаял постоянный.
Потом заметил что при подключении OSD яркость садится на 20-30%… заменил R3 со 100 на 470 ом и стало почти незаметно уменьшение яркости.
В синем квадрате входной делитель, для второй батарейки если надо, т.е. паять можно по надобности…
По заливке скетча. Даже после заливки ардуиновского бутлодыря скетч по Rx-Tx залить не получилось по инструкции тут (там же есть и оригиналная схема), потому залил через ISP. Тут уже можно через отдельный программатор или используя другую ардуину как Arduino ISP программатор…

p.s
Сперва хотел паять на arduino nano (или pro mini, т.е. любая ардуинка с 328 на борту по идее), но решил оставить ее для опытов… кому интересно тут разводка… Удобство в том что не надо будет подпаивать проводки к чипу + скетч можно лить по USB, т.е. без всяких программаторов… но более громоздко выйдет соот-но…
А если кого интерсует разводка под ЛУТ, то вот Гена и Дима выкладывали…

mahowik
mahowik:

заменил R3 со 100 на 470 ом и стало почти незаметно уменьшение яркости

ошибочка… речь шла прo R4…

savaga

Написал такую прошивочку для вия, на железке CE OSD

Глюков пока полно, но в целом работает. Пока есть:

  • все напряжения, ток, расход, RSSI - от самой железки
  • горизонт, высота, стрелка домой (на видео глючит, уже пофиксил), расстояние до дома
mahowik
savaga:

Написал такую прошивочку для вия, на железке CE OSD

оформляйте как open source проект на гугле, если готовы делится 😉
альтернатива - это всегда хорошо 😃

kolaa

Получил AIO, сразу захотел испробовать megapirate…
Залил MegaPirateNG_2.6_R5 и обнаружил, что датчики перевернуты - не соответствуют разметке на плате. Поправил код, вроде все стало как надо.
Попробовал запустить моторы и не смог - с нахрапу эту прошивку все-таки не взять, настроек - просто голову сломишь.

Плюнул, так как время уже много убил, залил MultiWii 2.1, поправил немного конфиг, настроил пиды и был счастлив.

savaga
mahowik:

оформляйте как open source проект на гугле, если готовы делится

Именно так и хочу. Немного причешу код и выложу

mahowik
kolaa:

залил MultiWii 2.1, поправил немного конфиг, настроил пиды и был счастлив

подробности плз! плата то новая! всем интересно! 😉
уже летали?! на каких режимах и т.д.

я заливал так… в ГУИ все ок…

pbolotin

2 Mahowik:
Я жду AIO, и тоже заказал I2C-GPS NAV с GPSом и mobidrone заодно, теперь вопрос, там I2C один выход только, или можно будет и ГПС и мобидрон ОСД?

savaga
mahowik:

подробности плз! плата то новая! всем интересно!
уже летали?! на каких режимах и т.д.

Дык 2.1 уже поддерживает эту плату. Ничего править не надо. В моем видео именно она используется с 2.1 кодом.
Я на ней уже вторую неделю летаю, пока все нравится.

kolaa
mahowik:

подробности плз! плата то новая! всем интересно! 😉
уже летали?! на каких режимах и т.д.

я заливал так… в ГУИ все ок…

Залил вообще без проблем из Arduino 1.0.1, выставил только плату другую в настройках - Arduino Mega 2560

Полетал чуть-чуть, на раме dji 450, т.к. раму жуть как колбасит, помимо стандартных настроек взял по примеру, чтобы не экспериментировать, из 2.0_a0

#define MPU6050_LPF_42HZ

#define ACC_LPF_FACTOR 100
#define MG_LPF_FACTOR 4
#define GYR_CMPF_FACTOR 500.0f
#define GYR_CMPFM_FACTOR 350.0f

Пиды чуть-чуть увеличил, ну и полетал немного в стабильном режиме. Вроде держится, вдоволь проэкспериментировать правда не успел 😦

mahowik
savaga:

Дык 2.1 уже поддерживает эту плату. Ничего править не надо. В моем видео именно она используется с 2.1 кодом. Я на ней уже вторую неделю летаю, пока все нравится.

в MultiWii_release_candidate_2_1 поддержки CRIUS_AIO_PRO_V1 небыло, но FREEIMUv043 подходил один в один и по датчикам и по осям… по сути дубляж… в код не смотрел но уверен что так 😉

mahowik
kolaa:

Стравил платку

а платку зачем? я подвесил диод статусный через резюк + на RX поставил делитель для преобразования ТТЛ 5в в 3.3в… а батарейка оссобо не нужна, т.к. с assisted gps data он и так коннектится всего 30-40сек на холодном старте…

но схемку переходника и разводку все равно выкладывайте 😃

Diman-Gad
kolaa:

Получил AIO, сразу захотел испробовать megapirate…
Залил MegaPirateNG_2.6_R5 и обнаружил, что датчики перевернуты - не соответствуют разметке на плате. Поправил код, вроде все стало как надо.
Попробовал запустить моторы и не смог - с нахрапу эту прошивку все-таки не взять, настроек - просто голову сломишь.

Плюнул, так как время уже много убил, залил MultiWii 2.1, поправил немного конфиг, настроил пиды и был счастлив.

а что перепутано и что поправили? можно поподробнее, пожалуйста

mahowik
pbolotin:

и тоже заказал I2C-GPS NAV

для AIO он не обязателен… немного разгружает основной мозг, но в общем то разницы не заметите, если вы не супер пилот конечно 😉

pbolotin:

с GPSом

GPS надеюсь не с rctimer заказали, т.к. в три-дорого и 10гц вроде как не держит…

pbolotin:

там I2C один выход только

i2c везде один где на два провода вешается кучка девайсов с разными адресами… читните терию…

pbolotin:

или можно будет и ГПС и мобидрон ОСД?

GPS можно на I2C повесить через I2C-GPS NAV, либо на свободный сериал порт (uart), которых в AIO аЖно 4…
мобидрон вешается на сериал 0 (RX0-TX0)…

mahowik
savaga:

Дык 2.1 уже поддерживает эту плату. Ничего править не надо. В моем видео именно она используется с 2.1 кодом. Я на ней уже вторую неделю летаю, пока все нравится.

mahowik:

в MultiWii_release_candidate_2_1 поддержки CRIUS_AIO_PRO_V1 небыло, но FREEIMUv043 подходил один в один и по датчикам и по осям… по сути дубляж… в код не смотрел но уверен что так

Спасиба за пинок 😃
Проверил в 2.1… нашел баг 😃
Используется устаревший MPU6050_EN_I2C_BYPASS дефайн, который переименован в MPU6050_I2C_AUX_MASTER (ближе к 2.1). В итоге данные с магнетометра идут не через MPU6050 (в чем его сила), а просто снимаются с I2C шины, соот-но выше время цикла по идее будет…
В общем пока можно пользовать FREEIMUv043 или исправить вот так

def.h

#if defined(CRIUS_AIO_PRO_V1)
  #define MPU6050
  #define HMC5883
  #define MS561101BA
  #define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -X; accADC[PITCH] = -Y; accADC[YAW] = Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
  #define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = -Z;}
  //#define MPU6050_EN_I2C_BYPASS // MAG connected to the AUX I2C bus of MPU6050
  #define MPU6050_I2C_AUX_MASTER // MAG connected to the AUX I2C bus of MPU6050  
  #undef INTERNAL_I2C_PULLUPS
#endif

www.multiwii.com/forum/viewtopic.php?f=8&t=1598&st…