ArduCopter Mega: порт на обычную Arduino (тестим)
Спасибо, сейчас попробую.
Протестировал - все работает. Сетодиод на плате AllInOne2 мигает, в планере показывает местоположение. Только со сдвигом на север метров 50. У всех так ? Может надо датум GPS настраивать ?
Возможно мало спутников было видно. У меня начиная только с 5 спутников где-то выдает точные координаты.
у меня при 5-6 спутниках прыгает на югозапад метров на 40 (находясь в квартире)
прыгает на югозапад метров на 40
Возникла идея! Использовать 2 GPS, стоящих рядом. Сигналы завести на мелкую Ардуинку.
Расстояние между датчиками = 0 = SQRT{ (long2 - long1)^2 + (lat2-lat1)^2 } = L
В LOOP проверяется, если L > ***, то эти данные слишком шумные и отбрасываются, иначе
ардуинка усредняет long и lat, выбрасывает их наружу. Т.е. она сама имитирует GPS, который можно подключить к АрдуПирату.
Вопрос только в том, как часто будут отбрасываться данные (L > *** )?
И показания GPS имеют нормальное распределение? Тогда довольно часто будет L около нуля, и Ардуино будет выдавать координаты.
Слишком длинные векторы отбрасываем (оранжевый крестик). Синяя точка - усредненное положение по 2м координатам. Красная и зеленая точки в паре - 2 точки, полученные с 2х GPS. Маловероятно, что датчики дадут 2 близко_расположенные точки, но вдалеке от истинного положения. Наиболее вероятно, что близкорасположенные точки будут встречаться рядом с истинными координатами места.
PS предлагать погуглить псевдоскорость и биение фаз не надо.
Выпущена АЛЬФА версия 2.0.44
Ссылки:
Firmware: code.google.com/p/megapirateng/downloads/list
Planer: code.google.com/p/ardupilot-mega/downloads/list
Что нового:
- Используется родная библиотека ArduCopter’a для магнетометра (Магнетометр калибруется автоматически. Offsets так же измеряются на лету, но записываются в прошивку раз в 4 минуты, когда коптер находится на земле (наверное после посадки))
- Гира и аксель выдают свои родные значения и потом в AP_IMU они преобразуются в единицы измерения (рад/с и ускорение)
- Управление LED Секвенсором перенесено на 8й канал, т.к. 7й теперь занят переключателем дополнительных режимов полета
Примечание 1 - Данная прошивка не проверялась в полете (мной и в том числе командой ArduCopter’a). Первым делом, снимите винты!
Примечание 2 - В этой прошивке, изменился формат хранения данных в EEPROM. Это значит, что после перепрошивки, она сама почисти все настройки и вам надо будет пройти всю процедуру настроек.
Примечание 3 - Когда в планере вводите Declination, после ввода, нажмите просто TAB, при этом, значение запишется в прошивку. Если у вас включено отображение консоли, то вы там увидете командку записи declination и новое значение.
Примечание 4 - Я не помню как раньше, но в этой версии, если комтер подключен через USB. MAVLink подключается только, если в момент пока он ищет коннект, сбросить прошивку (Лучше это контроллировать в консоли, т.к. почему то ресет не срабатывает всегда)
Примечание 5 - Планер надо использовать последний (1.0.74)
Внимание! После обновления, первым делом проверьте, что бы ВСЕ датчики работали корректно (и управление то же)! Только потом, пробуйте взлетать.
P.S. Прошивку я у себя проверял только на Arduino + шилд (т.е. без моторов и приемника)
почему-то получается разночтение.
смотря какая у вас плата/проект
если Arducopter2, то картинка из ардукоптеровой вики должна быть правильная
если MegaPirate(NG), то rcwiki.ru/index.php/MegaPirates#.D0.A2.D1.80.D0.B8…
Учтонение по прошивке 2.0.44, т.к. у меня стандартная раскладка канало аппы, то в файле APM_RC.cpp по умолчанию остался TX_Standard. Так чо у кого MultiWii, поменяйте на TX_mwi
Prop savers Очень кстати оказались =) постоянно приходится снимать пропы 😃
Вечером залью…
Сегодня два раза не с того не с сего вырубались движки… Один раз поймал у самой земли коптер вырулил при падении с метров с 5 😃 Приземлился посмотрел все в порядке не чего не где не отошло… Полетел опять, опять отказ всех двигателей и падение с метров 3… Что за хня может быть??? Летаю на тест8.
Что за хня может быть??? Летаю на тест8.
Может зависает… у вас на AllInOne перемычки впаяны?
Может зависает…
надо крутить SD шилд и код, для логов… иначе дебагить вообще не реально
Полетел опять, опять отказ всех двигателей и падение с метров 3
В каком режиме летали? Альт_холд?
Что за хня может быть???
У меня датчики переставали работать, т.к. один контакт на плате AllOnOne забыли припаять. В итоге желтенькая такая деталька похоже от вибраций иногда отсоединялась от платы.
надо крутить SD шилд и код, для логов… иначе дебагить вообще не реально
Надо бы с тем что есть разобратся. Пока изучал датчики, показалось что стоит подключить вывод прерывания от гиры. Т.к. мы можем в теории пропускать измерения…а это чревато.
Да и вообще, ерундень какая то с этими датчиками, если довольно сильно поболтать плату, то горизонт конкретно сбивается и потом потихоньку доплывает. Я думаю это из за того, что гира у нас относительно медленно опрашивается (раз в 4 мс = 250Hz). Если переделать на прерывания, то можно увеличить частоту выборок до 1KHz. Жалко у меня нету оригинального OilPan’a, что бы сравнить, как у них ведут себя датчики.
У меня вортекс.
А хз, тестил режимы, в каком был когда оно вырубило двиганы даже не запомнил, надеюсь что это было стабилизе, если так то можно списать на аппу помеха и включение файл сейва, он у меня настроен газ в ноль канал управления в положение стабилизе… по идее все сходится если сработает файлсейв отрубание движкой и произойдет, хотя у меня дальнобой от rlmek, а растояние 5 метров 😃
Переключу файл сейв чтоб врубал РТЛ при срабатывании в этом режиме даже если газ в ноль двиганы продолжают работать, посмотрим что будет, хотя есть опасность нештатного запуска, но тут уж не чего не поделаешь… 😃
Да, “черный ящик” в данной ситуации лишим бы не был…
У меня датчики переставали работать
Да нет, когда подошел все жило, летать не пробовал, так как один луч погнуло… но визуально все жужжало как не в чем не бывало…
Вот засада, сброс газа срабатывает раньше нежели переключение режима… В общем если летим в стабилизе и вырубить передатчик, файл сейв сбрасывает газ и врубает режим РТЛ, газ отрабатывает раньше, тобишь двиганы так же отключатся… Выход вижу только один, в файл сейве оставлять минимальный газ… 😦
Полетал сегодня в алт-нолде в метре от земли (на сонаре). Кколебания коптера составляли 10-15 см, что очень неплохо. Но думаю надо побаловаться еще с пидами, тк коптер при колебаниях резко взревывал. Быстро не летал, сильно коптер не наклонял. Хотел протестировать полет по точкам, но по АРС 220 у меня не меняются режимы. Пиды меняются, а режимы нет. Проверил еще раз ртл. В сумерках зазетел далеко и зарулился. Но ртл привел коптер точно домой 😃
Подскажите в APM_Config.h для Y6 все ли правильно
#define FRAME_CONFIG Y6_FRAME
/*
options:
QUAD_FRAME
TRI_FRAME
HEXA_FRAME
Y6_FRAME
OCTA_FRAME
HELI_FRAME
*/
#define FRAME_ORIENTATION X_FRAME
/*
PLUS_FRAME
X_FRAME
V_FRAME
*/
Y6 вообще не учитывает FRAME_ORIENTATION, так что правильно всё что угодно, главное FRAME_CONFIG Y6_FRAME
Спасибо! Зрачит я все правилно подсоеденил а соптер как юла - буду искать.