CRIUS ALL IN ONE PRO Flight Controller

AnTiks
Armin:

сказал бы кто, как победить нестабильность бародатчика, чтобы вертолет на солнце не сходил с ума.

Поставить сонары… альтиметр с обычного ми-8 уж больно тяжелый-))))

mahowik
Armin:

да там и за месяц реально освоиться. Говнокода совсем нет, все прокомментировано, очень логично и понятно. Дело времени и некоторых навыков программирования.

раскажите мне тогда через месяц как в ИМУ происходит вращение матриЦ и компенсация дрейфа гироскопов по акселю и магнетометру… либо что такое и почему проишодит накопление ошибки в интеграторах самого ИМУ или пид контроллера… 😉 если база по теории этой есть, то не сомневаюсь что и за месяц можно! 😉

Armin:

сказал бы кто, как победить нестабильность бародатчика, чтобы вертолет на солнце не сходил с ума.

па-ра-лон! 😃

couger

Докладываю. Вчера пришла идея попробовать отделить мух от котлет, т.е. протоколы NMEA и UBLOX. Перепрошил плату на бинарный протокол, настроил gps на вывод данных только в UBLOX - заработало… до переконнекта… потом опять - NO GPS, GPS disabled. Но мы ведь не сдаемся. Тот-же фокус, только с NMEA. Скорость коннекта и там и там - 38400.
Результат есть. Вчера весь вечер и передергивал питание и жал ресет, делал холодный рестарт модулю - он настойчиво ловит 8-9 спутников на подоконнике и выдает координаты. Дал отлежаться ночь и полчаса назад включил - через 15 сек загорелся зеленый светодиод и минимосд показал на экране координаты.
Я пока для себя вопрос с gps СN-06 и AIO решил, связка работает, дело в коде. Буду собирать коптер и ждать изменений в протоколе ublox, так как считается что в нем нагрузка на проц при разборе меньше, да и точность выше, вроде.
Надеюсь у остальных, у кого были проблемы с этой связкой, тоже заработает…

Armin
mahowik:

раскажите мне тогда через месяц как в ИМУ происходит вращение матриЦ и компенсация дрейфа гироскопов по акселю и магнетометру…

для понимания этих процессов требуется знание матанализа и линейной алгебры. Я то не это имел ввилу, а про код писал, что понять и разобраться, где что происходит - не так сложно, там стиль написания кода довольно простой. Вот я про что. 😃 Единственное - что нет толковой документации, а иногда не совсем ясно, что есть что. Вот на выяснение этого уходит масса времени.
А ПИДы - это черный ящик. Не знаю, какая методика используется для их вычислений в коде мультивия, мне это неинтересно, ибо оно работает, и ладно; но существует масса готовых методов и алгоритмов вычисления интеграла. Согласен - не все так просто. Но все, что сделано одним челвоеком, может быть понято другим.

Об это можно порассуждать, но просто начнем мы с Вами об этом говорить, а толку? я лично не готов лезть туда, где чего-то не понимаю, при том, что алгоритм работает исправно. Сделать лучше? Ну да, может быть.

couger
Armin:

сравнил два ГПСа - от EagleTree, и CN-06. Второй проигрывает первому по чуйке…

Что-то не могу найти информации о подключении Игловского ЖПС. Роман, подскажите, как подключали к AIO PRO?

Diman-Gad
couger:

Докладываю. Вчера пришла идея попробовать отделить мух от котлет, т.е. протоколы NMEA и UBLOX. Перепрошил плату на бинарный протокол, настроил gps на вывод данных только в UBLOX - заработало… до переконнекта… потом опять - NO GPS, GPS disabled. Но мы ведь не сдаемся. Тот-же фокус, только с NMEA. Скорость коннекта и там и там - 38400.
Результат есть. Вчера весь вечер и передергивал питание и жал ресет, делал холодный рестарт модулю - он настойчиво ловит 8-9 спутников на подоконнике и выдает координаты. Дал отлежаться ночь и полчаса назад включил - через 15 сек загорелся зеленый светодиод и минимосд показал на экране координаты.
Я пока для себя вопрос с gps СN-06 и AIO решил, связка работает, дело в коде. Буду собирать коптер и ждать изменений в протоколе ublox, так как считается что в нем нагрузка на проц при разборе меньше, да и точность выше, вроде.
Надеюсь у остальных, у кого были проблемы с этой связкой, тоже заработает…

как у меня работает: ублох не надо коннектить к компу и переставлять там протоколы, он должен быть на дефолтных настройках иначе пират его не увидит!
те скорость 9600 и умолчальный протокол
в дефайне указать протокол ублох и не в коем случае не менять скорость, должна остаться 38400
подключаем батарею, смотрим - после инициализации (перемигивания красного и ораньжевого) должна сразу начать моргать зеленая лампа на контроллере, если не загорелась, сдёргиваем батарею и подключаем снова, должна начать моргать. как зафиксирует спутники -будет гореть постоянно
у меня 100 процентов всегда так стабильно работает
думаю при первой инициализации пират конфигурирует ублох, но не успевает его подхватить
потом при наличии батареи в ублохе пират видит жпс сразу, пока батарея не сядет, честно-небольшой гимор, думаю
да, фак всё-таки нужно какой-нибудь создать …

Armin
couger:

Роман, подскажите, как подключали к AIO PRO?

я не подключал его к AIO, а просто сравнил приём игловского и ублоксовского ГПСов.
В сравнении выяснил:

  • игл захватывает больше спутников, чем ублокс;
  • уровень сигнала принимаемых спутников выше у игла, чем у ублокса.
  • игл принимает те же спутники, что и ублокс, плюс еще 2-3 спутника с невысоким уровнем.
mahowik
Armin:

и линейной алгебры

тригонометрии скорее

Armin:

понять и разобраться, где что происходит - не так сложно, там стиль написания кода довольно простой

за исключением тех частей, где уже идет магия регистров, прерываний, таймеров и т.д.

Armin:

Единственное - что нет толковой документации, а иногда не совсем ясно, что есть что. Вот на выяснение этого уходит масса времени.

не забывай - это опен сорс проект с ответами в сорсах 😉

Armin:

А ПИДы - это черный ящик. Не знаю, какая методика используется для их вычислений в коде мультивия, мне это неинтересно, ибо оно работает, и ладно

хе! а вот тут в корне не правильно! для того чтобы настроить леталку под себя, нужно хотябы понимать какой параметр за что отвечает, а то блин потом “не летит” ))
и как мин прочитать и разобраться с этим rcopen.com/blogs/83206/14324
и тогда не будет вопросов, что покрутить чеб “порезче”, а что делать а то блин по яв нос не держит… или самый крутой вопрос: “плата на столе, а уровни на контроллер разные бегут”… и т.д.

Armin:

Об это можно порассуждать, но просто начнем мы с Вами об этом говорить, а толку? я лично не готов лезть туда, где чего-то не понимаю, при том, что алгоритм работает исправно. Сделать лучше? Ну да, может быть.

если отношение чисто “я пользователь”, то зачем тогда лезть в опен сорс?! только потому что дешевле? купите назу или кроля и летайте… там вроде как раз и с описаловом получше, хотя не уверен…

я лично потратил пол года только на понимание, настройку коэф. комплементарного фильтра (альфа-бета фильтр) в IMU + кучу вариаций НЧ фильтров для акселя, + на полетные тесты для того чтобы вий держал таки горизонт в стаб. моде и не боялся вибраций + потом с 3-й попытки наконец пропихнули это в офицальный релиз. А раньше вий летал, толко у очень аккуратных моделистов с правильними рамами и виброразвязкой контроллера, да и на оф. форуме только и плодились темы о постоянном дрейфе стаб. мода, или “прыжек на старте в стаб. моде” = -2 пропа… Если коротко совсем, то стаб мод. был головной болью мултивистов, а сейчас он может стерпеть не идеально откалиброванние пропы и контроллер прикрученный к раме болтами без демпферов. Не со всеми акселями это проходит но всеж…

Я к тому что за все надо платить, а то русский менталитет типа “хачу все за 1$ еще и с документацией”… но не отрицаю сам иногда болею тем же, но борюсь с этим 😃

ivkov
mahowik:

я лично потратил пол года только на понимание,

Полностью согласен!
Есть такие “специалисты”- пару проводков скрутил, уже эксперт. Типа “могу порекомендовать” а спросишь по сути- не знаю, я думал, мне показалось ну и пр.

DVE

Для меня например open source удобен в первую очередь своей гибкостью, легко если надо переназначить пин или канал, поменять скорость порта, повесить пищалку и пр.
С контроллером “из коробки” такого не сделаешь.

Armin
mahowik:

Я к тому что за все надо платить, а то русский менталитет типа “хачу все за 1$ еще и с документацией”… но не отрицаю сам иногда болею тем же, но борюсь с этим 😃

хех, с этим не поспоришь 😃 все верно.

ivkov:

Есть такие “специалисты”- пару проводков скрутил, уже эксперт.

Женя, чтобы проводочки скрутить, как минимум сертификацию и допуск до киловольта надо. А это всётаки специалист уже. Да и с малоточкой не так всё просто. Да ладно, чё оффтоп разводить. Я просто свои постом по поводу разобрацца в коде хотел сказать, что надо цели ставить перед собой, а тот кто сидит, у того ничего не получится. И те самые 70-80% и через год не получится освоить. Если ты будешь верить и стремиться к тому, чтобы за месяц смочь освоить код МультиВия сего шматрицами и прочей математикой, то ты его освоишь, может не за месяц, но всётаки быстрее, чем если будешь сидеть и думать, “блин как тут всё сложно”. Вот что я хотел сказать. Надо стремиться к поставленной цели.

igoralekseevru

коллеги, мои мучения с контроллером продолжаются
хочу залить MW2.1

поставил arduino выбрал плату из списка Mega 2560 но ком-порт она мне выбрать не дает
указал прошивку 2.1 пробовал скомпилить выдает ошибки (как я пнимаю нужно в коде править параметры указывая тип моего коптера и тд?) где править?

In file included from MultiWii_2_1.cpp:14:
def.h:1469:10: error: #error "NUMBER_MOTOR is not set, most likely you have not defined any type of multicopter"
MultiWii_2_1:203: error: 'NUMBER_MOTOR' was not declared in this scope
MultiWii_2_1.cpp: In function 'void writeAllMotors(int16_t)':
Output:322: error: 'NUMBER_MOTOR' was not declared in this scope
Output:323: error: 'motor' was not declared in this scope
MultiWii_2_1.cpp: In function 'void initOutput()':
Output:334: error: 'NUMBER_MOTOR' was not declared in this scope
MultiWii_2_1.cpp: In function 'void mixTable()':
Output:1180: error: 'motor' was not declared in this scope
Output:1181: error: 'NUMBER_MOTOR' was not declared in this scope
Output:1183: error: 'NUMBER_MOTOR' was not declared in this scope
MultiWii_2_1.cpp: In function 'void evaluateCommand()':
Serial:207: error: 'MULTITYPE' was not declared in this scope
Serial:239: error: 'NUMBER_MOTOR' was not declared in this scope
Serial:239: error: 'motor' was not declared in this scope
igoralekseevru
igoralekseevru:

коллеги, мои мучения с контроллером продолжаются
хочу залить MW2.1

сам себе отвечаю, вдруг кому пригодится:

настройки нужно менять в config.h - простым расскоментированием (стиранием двойных слешей)
что бы порт нашелся нужно поставить драйвер с www.ftdichip.com/Drivers/VCP.htm

Мне не понравилось сообщение после загрузки “Размер скетча в двоичном коде: 22 274 байт (из 258 048 байт максимум)” Что это значит и насколько плохо?

Armin
igoralekseevru:

Размер скетча в двоичном коде: 22 274 байт (из 258 048 байт максимум)

чисто информативный характер.
а по поводу ошибок - да, просто указать нужно было, какой коптер у вас и какая плата.

igoralekseevru

по поводу настройки GPS CN-06 в MultiWii 2.1

Попробовал сделать по упомянутой коллегами ссылке:

www.multiwii.com/forum/viewtopic.php?f=8&t=649&sta…

если делать по инструкции, то шаг 3. In MultiWii.ino replace this: - затык =(

как я понял файл MultiWii.ino называется MultiWii_2_1.ino но в нем нет куска который нужно заменить

Означает ли это, что в новой версии уже пропатчили и ничего делать не надо? Остальные шаги я сделал (добавил строчки, точнее расскоментировал)

Сейчас смотрю на GPS модуль и думаю, а куда его встыкать-то?

воткнул в свободный порт интересная котовасия: гироскопы начинают сходить с ума, вытыкаю - спокойно
где собака порылась?

Armin

о, сейчас я Вас закидаю ссылками. Судя по названию поста, у Вас Ublox CN-06, да?
Значит, смотрите.
Первое.
www.multiwii.com/forum/viewtopic.php?f=8&t=2166#p2…
Переведу на всякий случай.
Сначала качаем файлик GPS.zip он там к сообщению прикреплен (ссылка выше). Кладем этот файлик в папку со скетчем, заменив родной GPS.ino на новый из архива.

Добавляем эти строки в config.h в раздел, где GPS config.
//#define NMEA
#define UBLOX
// #define MTK

#define GPS_LEAD_FILTER

//#define GPS_FILTERING
//#define NAV_SLEW_RATE 30

Теперь добавляем иициализацию в multiwii.ino setup() (сразу после объявления самого setup() ):

#if defined(GPS_SERIAL)

#if defined(UBLOX)
UBLOX_init();
delay(200);
#endif

#if defined(MTK)
MTK_init();
delay(200);
#endif

SerialOpen(GPS_SERIAL,GPS_BAUD);

For UBLOX and MTK the GPS_BAUD must be 57600
, то есть надо установить baudrate 56700.
Данный мод запускает ГПС в режиме Ublox Binary на скорости 57600, частота обновления 5 Гц. Автор мода утверждает, что режим Ublox Binary лучше, чем NMEA, потому что точнее. В подробности не вдавался, каким именно образом.

__________________________________________
Второй вариант - 115200 и 10 Гц обновления лежит по ссылке www.rcgroups.com/forums/showpost.php?p=22388178&po…
Скажу от себя - пробовал его, ГПС дёрганый какой-то, удержание кое как, а RTL - совсем и не RTL, а по моему “догони меня, если не хочешь потерять”.

Сергей_Вертолетов

Только что получил платку, теперь и я с вами! Планирую Мегапирата, но ничто от Мультивия мне не чуждо 😃

Armin

ой, забыл.
После
SerialOpen(GPS_SERIAL,GPS_BAUD);

надо поставить
#endif

Alexzander

Приветствую всех единомышленников. Прочитал всю ветку, только несколько сообщений по делу, FAQ ЖИЗНЕННО НЕОБХОДИМ НОВИЧКАМ!!! На форуме почитал про порт на обычную аруду и вообще моск вскипел!
Хелп ми плиз.
Плата aio crius с mpng 2.7 глючит, а именно
1не работает аксель, и вместо наклона вправо картинка в “планере” наклоняется влево, подскажите как реверснуть?
2 при подключение аккумулятора греются регули “при этом пищат как обычно” куда копать?
3 ещё есть сонар и гпс, куда и как это добро подключить?
4 приемник не пашет, я так понял напряжения нет и выводов на плате три вместо четырех, куда подключить четвёртый ?
Буду благодарен за любую полезную инфу.
Сонар красный 5 пиновый DYP-ME007V1 goodluckbuy.com/ultrasonic-wave-detector-ranging-m…, gps gtpa010 aliexpress.com/…/562113986-100-NEW-MediaTek-MT3329….

igoralekseevru
Armin:

о, сейчас я Вас закидаю ссылками. Судя по названию поста, у Вас Ublox CN-06, да?
Значит, смотрите.
Теперь добавляем иициализацию в multiwii.ino setup() (сразу после объявления самого setup() ):

Огромное спасибо за помощь, Роман!

верно понял сразу после строки void setup() { вставить кусок? (после открывающей скобки фигурной?)

то есть вот так?

void setup() {

#if defined(GPS_SERIAL)

#if defined(UBLOX)
UBLOX_init();
delay(200);
#endif

#if defined(MTK)
MTK_init();
delay(200);
#endif

SerialOpen(GPS_SERIAL,GPS_BAUD);
#endif

далее уже пошел стандартный код:

#if !defined(GPS_PROMINI)
SerialOpen(0,SERIAL_COM_SPEED);

Скомпилил залил, при подключении GPS блока растет счетчик I2С Error и в мониторе макет коптера какой-то дерганный становится

может я его не туда подключаю или питания не хватает? Подключаю в порт куда влезает 4 пиновый мелкий белый коннектор

По питанию - вижу 2 дырки на плате куда можно принаять питание, какой вольтаж? откуда брать? с BEC одного из регулей?

Куда и как подключать сонар? у меня 4 пиновый стандартный синенький