ArduCopter Mega: порт на обычную Arduino (тестим)

Sir_Alex
Syberian:

Ткните меня носом в последнюю наиболее “летабельную” пиратку, попробую ее “маргнуть”

code.google.com/p/megapirateng/downloads/detail?na…

В SVN, в папке trunk лежит 2.0.50, но в ней, Ардукоптеровцы все еще правят код AltHold, так что я пока решил не выкладывать ее.

Syberian

а я уже 49 для вортекса скачал 😃
его не стоит переделывать, что ли?

ууу, как все запущено, не компиляется! И куча либ лишних…

Sir_Alex
Syberian:

а я уже 49 для вортекса скачал его не стоит переделывать, что ли?

Это CSG_EU сделал версию, где взял старые либы GPS (хотя они и не отличаются практически)

Syberian:

ууу, как все запущено, не компиляется! И куча либ лишних…

Только что перепроверил, версия Beta3 по моей ссылке, отлично компиляется 😃 И кстати, она то же совместима с BV.
У меня есть версия 2.0.49, в которой код инициализации GPS BlackVortex вынесен в отдельную NMEA либу. Может ты ее и проверишь? У меня то нету BV.

Musgravehill
Syberian:

попробую ее “маргнуть”

Уже несколько раз бился, все компилируется, но в Планнере тишина.
Олег, благодарю за подсказки.
Сейчас привез 2 ардуинки и аллИнван, хочу на одной сделать быстрое ИМУ, накапливать данные и отдавать во вторую Ардуинку с пиратом.

Sir_Alex:

Ардукоптеровцы все еще правят код AltHold

Я так и не понял, почему они не исправят код барометра в sensors.pde - там рассчет высоты по давлению странный. Я делал, как в даташите написано - все отлично работало. И один Ардукоптеревец сам писал в багтрекере, что надо считать высоту как в даташите. В нем формула стандартная, общепринятая: давление Па ~ высота.

Sir_Alex

Олег (или те, у кого есть BlackVortex), если не трудно, проверь пожалуйста вот эту версию на BV. Протокол GPS надо выбрать GPS_PROTOCOL_BLACKVORTEX. Проверить надо работу GPS.

Virgiux
Sir_Alex:

Олег (или те, у кого есть BlackVortex), если не трудно, проверь пожалуйста вот эту версию на BV. Протокол GPS надо выбрать GPS_PROTOCOL_BLACKVORTEX. Проверить надо работу GPS.

Проверил.

Syberian

Ну пипец наворотили в этом треклятом новом коптере. Преобразования DCM раскиданы по всему коду. Нафиг такое щастье, тут черт ногу сломит. Проще все порушить и заново написать. Еще и alt_hold не работает как всегда…

mahowik
Syberian:

хе помнишь видео со стаканом воды на квадрике, делающем петли? Полет квадрика - это один сплошной скоординированный поворот, когда центр тяжести всегда смотрит в “пол”, и только сопротивление воздуха на что-то влияет.

нука поподробней и не cложно (если не сложно 😃) про отличие ДЦМ от МАРГ… я вот думал что марг урезанная версия ДЦМ 😃

Musgravehill
Musgravehill:

2 ардуинки и аллИнван

Загрузил в Нано328 IMU - все работает. На 115200 отдает. Хочу попробовать добавить туда непосредственно DCM и отдавать его переменные в serial. На основной Ардино2560 будет работать пират, но в DCM будет вычищен и дополнен парсером сообщений из Serial3 115200. Только с GPS затык.
Или это бред? На отдельной Нано328 только IMU запускать, буферизовать и отдавать в парсер на Ардуино 2560 Пират?

Alex_from_Israel
Musgravehill:

Загрузил в Нано328 IMU - все работает. На 115200 отдает. Хочу попробовать добавить туда непосредственно DCM и отдавать его переменные в serial. На основной Ардино2560 будет работать пират, но в DCM будет вычищен и дополнен парсером сообщений из Serial3 115200. Только с GPS затык.
Или это бред? На отдельной Нано328 только IMU запускать, буферизовать и отдавать в парсер на Ардуино 2560 Пират?

А поподробнее можно? Какие части кода и библиотеки работают в 328 Ардуинке и как организована связь между платами? Заканчиваю переделку в хексу своего Y6, сляпал агрегатный отсек с отстегивающимися лучами. Собираюсь закрыть его наглухо от пыли и для обтекаемости. Места много, присобачил туда 2 ардуинки. Но я практически никакой программер, хотел бы попробовать Ваш код для раздельных мозгов.

iBat
LeonVS:

А кто на такой подвиг замахнется 😉

Musgravehill
Alex_from_Israel:

А поподробнее можно? Какие части кода и библиотеки работают в 328 Ардуинке и как организована связь между платами?

Только вчера начал делать. Думаю, через serial связать. На 328 использовать d2 d3 для виртуального порта, а на Мега2560 отдать Serial3 под обмен.
IMU (ДУС + акселерометры) точно работает. Сонар и GPS придется опрашивать в Мега2560 (или код сонара переписать без плюшек 2560). Под GPS на 328 нет лишнего порта, еще один виртуальный вряд ли будет полезен.
Для начала, попробую с высокой частотой на 328 буферизовать IMU, а DCM останется пока на 2560 - будет парсить данные с Serial3. У меня навыков СИ не хватает взять и сразу все раскидать.

Sir_Alex
Musgravehill:

Только вчера начал делать. Думаю, через serial связать. На 328 использовать d2 d3 для виртуального порта, а на Мега2560 отдать Serial3 под обмен. IMU (ДУС + акселерометры) точно работает. Сонар и GPS придется опрашивать в Мега2560 (или код сонара переписать без плюшек 2560). Под GPS на 328 нет лишнего порта, еще один виртуальный вряд ли будет полезен. Для начала, попробую с высокой частотой на 328 буферизовать IMU, а DCM останется пока на 2560 - будет парсить данные с Serial3. У меня навыков СИ не хватает взять и сразу все раскидать.

Наверное все же лучше использовать аппаратный интерфейс SPI, который специально для этого и предназначен (для связи между MCU). Код сонара никак не привязан с 2560, ну разве что Таймером и портами.

LeonVS
iBat:

За то какой клевый 😉 Особенно весело смотрится пульт в руках летуна 😃

Alex_from_Israel
Sir_Alex:

Наверное все же лучше использовать аппаратный интерфейс SPI, который специально для этого и предназначен (для связи между MCU). Код сонара никак не привязан с 2560, ну разве что Таймером и портами.

И он самый быстрый? Видится так, в 328 подключены все датчики, в том числе GPS, если через SPI то порт для GPS свободен будет. Сделать массив с данными по датчикам и вычисленная высота. А вот как этот массив перегнать в 2560, совершенно не представляю.

Musgravehill
Alex_from_Israel:

SPI

Придется биты передавать. На высоком уровне с парсером по serial проще.

Alex_from_Israel

А возможно (в принципе) получить доступ чтения регистров одной платой с другой платы? Тогда просто считываем переменные с 328 платы, когда нужны данные. И соответственно, просто присваиваем этим переменным значения.

Gapey
Alex_from_Israel:

А возможно (в принципе) получить доступ чтения регистров одной платой с другой платы? Тогда просто считываем переменные с 328 платы, когда нужны данные. И соответственно, просто присваиваем этим переменным значения.

возможно , но только “через задний проход” … на старших мегах с JTAG интерфейсом можно получить доступ к регистрам и памяти меги через этот самый JTAG …

YAN=

К стати… У нас существует какой-то холд режим? Что-б дернул переключатель и при любом положении стиков, движки мертвые. Кроме, стик в лево-низ.