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

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=

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

tusik
YAN=:

какой-то холд режим?

Это настраивается в аппе. Даже в моей НК-6Т есть такой режим. ThroCut называется, на любой тумблер вешается. Как-то случайно включил, а потом ломал голову, почему моторы не стартуют 😃 Режим самолетный

YAN=

Ну у меня такого нет ((. У меня Санва (аиртроникс) 8 канальный. У меня есть, конкретный “тротл кат”, настроенный на 3й канал.

RC_Buyer

Кто подскажет.
Поставил прошивку, вроде настроил в планере…далее подключаю аккум, моторы пропискивают как надо, но дальше начинаю издавать по одному писку в течении 2 сек и на стики не реагируют…

RA4ASN

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

RC_Buyer

Так ошибку нашел, теперь не пищат, но опят не реагируют((

tusik
RC_Buyer:

но опят не реагируют((

Рудер влево или вправо, газ в минимум - должен постоянно гореть диод, потом газ и полетели