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

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

SovGVD

436 7 параметр (±2), сейчас еще поиграюсь с делителем, полярность поменял, всего один минус лишний надо было поставить =) там в момент инициализации/калибровки тоже делители надо наставить и полярность расставить (для гиры)?
стрелочки почти адекватно отклоняются, но ошибка в градусах есть пока что… это нормально что на графике меняется быстро всё, а стрелочки ползут медленно к своим значениям (доходят и стоят)?

Syberian

Все действия с кодом - только в библиотеке!
Калибровку гиры прога делает сама каждый запуск, если дописывал - убери.
Калибровка акселя - по команде LEVEL.

Стрелки обновляются с частотой 3Гц, график - 20. Фишка настройки в том, чтобы при отклонении стрелка довольно резко вставала в нужный угол. Если она встает “не туда”, а потом медленно подползает куда нужно (недолет-перелет) - надо регулить гиру. Если перелет - делить на большее число, и наоборот.

Аксель должен быть 416, на худой конец 410.

SovGVD

аксель настроил, теперь 416 (±1)
по поводу стрелок, чето YAW себя совсем не адекватно ведет:

наклоняю платку влево/вправо (или вправо/влево) на 90* затем ставлю обратно на ровную поверхность (от которой калибровал)

Syberian

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

SovGVD
Syberian:

Чем видео записать с экрана?

hypercam вроде в винде есть (я то записываю в убунте XVidCap окошко в VirtualBox =)))

Syberian:

Для затравки: при повороте ок 90 град/сек показания на графике примерно 200-400.

гиру к этим значениям старался привести… или это для акселя было? =)
сейчас в 10 раз уменьшил делитель… стал чуток (градусов 5-6) перелетать и потом возвращается к нужной отметке
значение методом тыка подбирать? или есть какие то более лучшие методы?

UPD: в общем получается пока такая штука:

если резко далеко (более 40 градусов примерно) крутануть, то доезжает (в начале крутанул на 90*, потом резко в обратку на 180 (90 в другу сторону от нуля)), если немного, то вполне нормально или переезжает или недоезжает - идеальности нет

UPD: еще горизонт - если платку вверх тармашками и потом обратно, то горизонт доплывает, если не сильно мучить, то встает в нули адекватно

Syberian

Полная постоянность будет при добавлении компаса 😉 Теперь, насколько могу судить по видео, IMU более-менее настроен. Теперь можно попробовать стартовать в руке. Раскладка моторов по идее такая же, как в Мультиви. На пульте поставь экспоненты под 60% везде, кроме газа. На первый раз хотя бы.
Активируются моторы так же. Учти, при газе в 0 моторы отключаются.
Когда будешь настраивать ПИДы, начни со Stabalize damp, уменьшая его постепенно, пока не перестанет дергаться (если вообще дергаться будет). Потом уже ROLL PITCH P.
Я сейчас с ITG3200 засел, изучаю ее фильтрацию, скоро обновлю архивчик.

SovGVD

у меня 4х каналка, без шнурка для настроек (кабель только-только приземлился) =) надо теперь умудриться переделать переключение режимов, в каком месте там отрабатываются подобные команды?
в ArduPirates есть всякие калибрации/триммирование хитрыми движениями стиков как в multiwii?

Syberian

Полетные режимы переключаются каналом 5. Если там просто свич, будет 2 режима, если 3-позиционный - 3. Если крутилка, то заменой ее на галетный переключатель с резюками можно получить все 6 режимов: акро, стаб, удержание высоты, удержание положения, полет по точкам, возврат домой.
На каждое доступное положение можно выбрать любой режим, по умолчанию - стаб.

SovGVD

а точно multiwii стиль подключения моторов? в GUI моторы ползут как надо, а в реале даже крутиться не начинают (газ в любом положении - всеравно не крутятся)
2 - перед левый
3 - задний правый
5 - передний правый
6 - задний левый

Syberian

D2,3,5,6 - моторы для квадра/трехи, проверенно работает.
Прерывания собственные не добавлял?
При включении слышен писк, что “ноль” пойман?
Регули обычный РРМ понимают или перешиты на скоростной? Попробуй серву подцепить…

SovGVD
Syberian:

Прерывания собственные не добавлял?

нет, только закоментил барометр и переписал код (инициализация и получение данных) под свои датчики
на всякий случай еще проводки прозвонил - нормально всё

UPD: едиснтвенный момент - код работы с датчиками от прошлой версии, там вроде чето с интераптами есть для дальномера… не оно? =)

Syberian

те никому не мешают, дальномер работает прекрасно, без него - тоже.
Главный показатель работы - моторы в правом столбце. Если там чото есть, значит, РРМ тоже прет. У меня же работает!
Серву подключи 😃

SovGVD
Syberian:

Серву подключи

подключил, когда в проге сижу - работает, когда на коптере ставлю - не работает - там ничего хитрого еще не надо делать? питается через Vin 5 вольтами с ESC (так же питалось на мултивие, но 328р)
если просто запитать от USB (без проги) - тоже серва не работает

Syberian

Нужно дождаться, чтобы лампочка загорелась на постоянку, а потом еще 15 сек, а потом активировать моторы, чтобы лампочка мигать стала - в курсе? 😉

SovGVD

запустил, но как то странно:

  1. подаем питание
  2. резетим
  3. ждем секунд 10-15
  4. запускаем

и там в консольке после инициализации барометра долго пишет G!G!G!G!G!..

как то долго всё это =)

лампоска какая? d13? а то я не подключал ничего + платка так стоит что и 13 светодиода не видно =)

Syberian

вот после GGG будет Ready to fly MSG, тогда и можно лететь. Диод на 13.

Я щас долетался. Запустил, вроде стабильно висеть начал… посадил на кровать, и тут меня чото отвлекло. ремень передастика соскользнул и врубил газ на полную 😃 Эта махина на тяге в 3 раза больше веса РОВНО (стабилизатор настроен, ага) пролетела в сантиметре от носа и впилилась в потолок 😦
В минусе поворотный механизьм 😦

SovGVD

в общем куда питание не пихаю - с первого раза не начинает мигать (просто светится), несколько раз reset тыкать приходится и ждать - мыргает в начале или светится - может где задержка при инициализации требуется?

Syberian:

вроде стабильно висеть начал

лучше чем multiwii? =)

Syberian:

пролетела в сантиметре от носа

повезло, что так =) снимал?

Syberian

оно при подаче питания должно проморгаться, а потом светиться постоянно. После этого ждем 15 сек, газ в 0, рудер вправо - оно опять замигает и тогда уже можно лететь.

Лучше, чем моя треха с вием висела - это стопудов.
Все сниматоры в ужасе разбегаются, когда я “это” в комнате запускаю.

Все, идем в публику. Все летает.
Норберт уже пошел видео снимать, Вартокс давно ждет код затестить (тот самый, что круто летает)

Covax
Syberian:

Лучше, чем моя треха с вием висела - это стопудов.

с каким вием, аллинван?

SovGVD
Syberian:

оно при подаче питания должно проморгаться

оно при подаче питания от компа - мигает и далее как надо через раз, а если в консольку смотреть то вообще всегда, но когда от регуля запитываю (в USB или Vin, не важно) - просто светится и ничего не происходит, пока несколько раз (от одного до бесконечности) reset не тыркну на платке

Syberian:

Норберт уже пошел видео снимать

у него вроде видео с висением по GPS гекса было - высоко взлетал, но четко дом снимал на DIYdrones

vimeo.com/20103470

сейчас попробую код своих датчиков под новый вариант кода переписать и задержек понатыркать, может получится чтоб стабильно стартовал =)
зы: летом видимо появится компас с барометром, будет счатье