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

Covax
Syberian:

Магнетометр из Allinone нужно вырезать и вешать отдельно, а еще лучше самого разработчика , так как вот , а другого у меня нет.

Олег, а в чем там проблема?

Syberian

Ссылку на слове “вот” заметил?
Этот чел натыкал конденсаторов с железными выводами, которые магнитятся (прилипают к отвертке), рядом с магнетометром. Из-за чего компас показывает север где-то под ногами. Вон, он уже там отмазывается в теме…

Covax

Золотой ты человек! а то я уже хотел заказывать эту оллинван…
Такая же бодяга наверное из FF IMU?

well that sucks. Some of the Jussi’s FFIMUs have problems with the mag too, mine works OK though, at least Jussi offers a few options to fix the problem, hopefully CSG_EU will do the same.

Volver
Covax:

Такая же бодяга наверное из FF IMU?

да, на второй версии 1,22 с магнетометром 5883 тоже глюки были, пока на DEV версии кода не откалибровал магнетометр.
на первом ффиму 1,1 с магнетометром 5843 проблем нет.

Syberian

Кто ж его знает!
Я вот сижу и думаю, пойти за кондерами vishay, или просто выпаять к лешему те, что рядом с компасом. И что делать с BMР085?
Была суровая мысль выпилить к черту компас с куском платы и вывести на проводках на стоечку.

SovGVD

ну вот, а хотел с зп заказать подобную платку… продает кто отдельно напаянный магнетометр дешевле 25$?

Covax

Глеб, да сейчас выпустят новую версию платок, не торописька.
Учись, летай пока 😃

Musgravehill
Covax:

бодяга

Это же вроде soft_iron и hard_iron эффекты, нужно калибровать магнетометр. На сайте HoneyWell есть Application Notes по этому поводу, математика в наличии. www.magneticsensors.com/literature.php.
…honeywell.com/…/Applications_of_Magnetoresistive_…

…honeywell.com/…/AN215_Cross_Axis_Effect_for_AMR_M…

sensorsmag.com/…/compensating-tilt-hard-iron-and-s…

serj “На широте Питера, например, вектор магнитного поля смотрит в землю под углом около 70 градусов к вертикали.” 😦

Панкратов_Сергей
Syberian:

Для GPS надо носить на улицу, т.к. окна на север, фикса нет, хотя статус показывается нормально.

С тем что окна на север - не причина не коннекта. Спутники не геостационарные - потому они со всех сторон горизонта. Причина в чем то другом.

Syberian
Musgravehill:

вектор магнитного поля смотрит в землю

Но ведь не вертикально же, согласитесь?

Musgravehill
Syberian:

не вертикально

Конечно, не на полюсе живем. Но на экваторе ситуация гораздо приятнее.
Считается, что с монтажом магнетометра не стоит заморачиваться. Заморачиваться нужно с калибровкой, вращая на идеально горизонтальной поверхности. По полученной фигуре типа эллипса найти коэффициенты корректировки, которые дадут окружность на графике напряженности магнитного поля. Компас еще не выслали, нужно плату делать - не скоро смогу сам проделать калибровку.

SovGVD

дошли руки до этой прошивки, но не пойму что я делаю не так: залил прошивку, запускаю конфигуратор, Action->AC2 Setup, тыкаю Setup - там одна кнопка, тыкаю её пишет что порт открыт и далее всё повисает… если залезть в другие вкладки, пишет Mavlink четотам, повисает, появляется отсчет таймаута, потом: “Comport open failed - Please try again and make sure your not in CLI mode”
у меня только 2 сенсора, код поменял под них (тоже самое если не менять код)… куда копать (я в CLI режиме? ничего не замыкал)? =)
на всякий случай, если это важно - приемник не подключен, только ардуинка и датчики

upd: в CLI режиме:

Init ACM

RAM: 1895
FW Version 5
----------------------------------------

дальше ничего не происходит =(

Syberian

Поздравляю 😃
Пошагово:
Раз уж написал свои драйверы, сперва нужно проверить, работают ли они вообще. В библиотеке AP_ADC есть examples и в нем скетч весом в 5 кб (а не 124). Запустив его, в консоли ардуины можно увидеть все 7 каналов “типа АЦП”. 0,1,2,4,5,6 меняются? отлично, едем дальше

  • скачать заново megapirateB2.zip
  • в папке ардуины потереть все библиотеки (кроме своей AP_ADC, но лучше из нее код перенести в новую) и залить из архива библиотеки
  • обновить конфигуратор в меню UPDATE
    -засадить ногу 40 на землю
  • теперь можно выбрать AC2setup-Setup, на кнопку не жать, а переключиться на вкладку Initial settings.

Должно быть так:

Init ACM

RAM: 1747
FW Version 6
----------------------------------------



Entering interactive setup mode...

Type 'help' to list commands, 'exit' to leave a submenu.
Visit the 'setup' menu for first-time configuration.

AC 2.0.2 Beta] 

Там можно набрать test
затем ADC и узреть свои значения датчиков.

Как дойдешь до этого пункта, пиши, пойдем дальше 😃

SovGVD

как не ковыряю, всё тоже самое, данные с датчиков бегут (пока не кручу - циферки на месте, кручу - всё меняется), переключился на вкладку (ногу естественно засадил), там:

Init ACM

RAM: 1747
FW Version 6
----------------------------------------

и всё на этом =(
кстаии делаю всё это через VirtualBox с виндой XP SP2 Eng (с AeroQuad нормально работало)

методом тыка: повисает на barometer.Init(); - барометра у меня нету =) где его отключать?

UPD: закоментил инициализацию барометра, теперь CLI работает, на тесте всё ок, циферки бегут (только навернка знаки перепутаны, но это на потом)

что дальше?

Syberian
SovGVD:

методом тыка

Отлично 😃 Только это не выход. Как только он начнет опрашивать баро в полете, начнется зависон и тупняк. Баро там сильно интегрирован, поскольку входит в состав оригинальной платы.
Придется “занулять” библиотеку APM_BMP085, или хотя бы ее работу с и2с.
В панельке CLI пройдись по всем кнопкам сверху кроме erase и reset, чтобы все откалибровать и выбрать тип пепелаца и набор датчиков
Затем вытащи перемычку из 40 и щелкни по raw sensor data. Следи за текстом на консоли, чтобы отловить, зависнет где-нить или нет.
Если все поканает и поползут графики, проверь работу индикаторов ROLL PITCH YAW, чтоб соответствовали отклонению коптера - это и есть проверка полярности. Также возможно придется менять делитель в гиро и акселе.
С акселем проще: после калибровки на оси Z будет -1000. Усилением акселя нужно добиться, чтобы в перевернутом состоянии было +1000, а не -500, 0 или проч. Делитель одинаковый на все оси.

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

SovGVD

покоментил работу с i2c, график заработал:

буду настраивать дальше, пока что ROLL PITCH YAW фигню показывают и возвращаются к нулям, как было при неверном расположении датчиков в mutiwii =)

Syberian

А чо графики такие порепанные? зайди в консоль, набери test ввод profiling
цифра в конце абракадабры должна быть не более 6000 - это тайминг основного цикла, как в мультивие

SovGVD


upd: аксель подобрал, по Z при спокойстивии -1000, переворачиваю +1000 (±5)… ща гиру помучаю

Syberian

Тайминг ОК, сказывается отсутствие барометра. Дикие показания гиры, в драйвере значения от гиры подели, ориентируясь на YAW: повернул машинку на 90 град - стрелка тоже должна на 90 град, а не крутиться, как пропеллер. Для затравки: при повороте ок 90 град/сек показания на графике примерно 200-400.

По полярности датчиков.
Смотри в полетном режиме на вкладке флай дата:
При наклоне вперед accel X и gyro Y в минус.
При наклоне вправо accel Y падает, gyro X растет
При повороте по часовой - стрелка на стрелочном yaw во второй вкладке ползет тоже по часовой

Еще один совет. В акселерометре делитель выставь (одинаковый для осей) такой, чтобы в консоли test - ADC 7-й параметр был равен 416, затем откалибруй, нажав level или в консоли exit - setup - level