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

Sir_Alex

Сложно сказать, но точно поправлено:

  • Контроль газа при ALT_HOLD
  • Добавлен новый режим POSITION (правда планер 76 такого не знает)
  • В очередной раз поменяли настройки PID’ов
  • Правки Flip кода
  • Добавлен режим FILTER на 7ом канале, но для нас он не актуален, т.к. вся фильтрация идет на датчиках.

Ну и наши добавки, это инициализация UBLOX GPS на работу на 5Гц и скорость 38400 (Когда включен резим GPS_AUTO)

P.S. Версия толком не тестировалась, только на работу на столе (без приемника и моторов)
P.P.S. Желающие могут почитать изменения в оригинальной прошивке тут: code.google.com/p/ardupilot-mega/source/list

LeonVS

А что за режим “POSITION”? Что делает?

Sir_Alex
LeonVS:

А что за режим “POSITION”? Что делает?

Сам не совсем понял, вроде удержание позиции, но с возможностью управления газом (т.е. вверх/вниз можно перемещать).

Кстати, режимы лучше настраивать в CLI (т.к. планер их пока не поддерживает толком)

tusik

Только вернулся с полетов. Ну как обычно: на поле сдох аккумулятор передатчика:). Все таки для тестирования полета по точкам надо ехать в чистое поле, а не рядом с лесом и как минимум на пол дня. Из того, что все таки удалось сделать: 44альфа3 летает стабильно. РТЛ работает. При попытке полета по точкам, не смотря на то, что все точки были впереди меня, квадр рванул за спину в лес. Я очканул и вернул обратно, при повторном включении ситуация повторилась. Сейчас гляну, что записал фотик и выложу видео полета в стаб режиме, если интересно.

tusik

Полет в стб моде. Справа на лево дует порывистый ветерок. Прошивка 44альфа3. Пиды стоковые. На видео есть в нескольких местах мелкая болтанка - это коптер отрабатывает порыв ветра. Оператора не было, писал с крыши машины 😃

tusik
Sir_Alex:

MegaPirateNG 2.0.46 Beta1 BV

Чет скомпилить не могу. Ругается матом

core.a(HardwareSerial.cpp.o): In function `__vector_25’:
C:\arduino-0022\hardware\arduino\cores\arduino/HardwareSerial.cpp:93: multiple definition of `__vector_25’
ArduCopter.cpp.o:C:\DOCUME~1\9335~1\LOCALS~1\Temp\build6855436640158273682.tmp/ArduCopter.cpp:432: first defined here
core.a(HardwareSerial.cpp.o): In function `__vector_51’:
C:\arduino-0022\hardware\arduino\cores\arduino/HardwareSerial.cpp:150: multiple definition of `__vector_51’
ArduCopter.cpp.o:C:\DOCUME~1\9335~1\LOCALS~1\Temp\build6855436640158273682.tmp/ArduCopter.cpp:436: first defined here
core.a(HardwareSerial.cpp.o): In function `__vector_54’:
C:\arduino-0022\hardware\arduino\cores\arduino/HardwareSerial.cpp:160: multiple definition of `__vector_54’
ArduCopter.cpp.o:C:\DOCUME~1\9335~1\LOCALS~1\Temp\build6855436640158273682.tmp/ArduCopter.cpp:437: first defined here
core.a(HardwareSerial.cpp.o): In function `__vector_25’:
C:\arduino-0022\hardware\arduino\cores\arduino/HardwareSerial.cpp:93: multiple definition of `Serial’
ArduCopter.cpp.o:(.bss.Serial+0x0): first defined here
c:/arduino-0022/hardware/tools/avr/bin/…/lib/gcc/avr/4.3.2/…/…/…/…/avr/bin/ld.exe: Warning: size of symbol `Serial’ changed from 18 in ArduCopter.cpp.o to 19 in core.a(HardwareSerial.cpp.o)
core.a(HardwareSerial.cpp.o): In function `__vector_25’:
C:\arduino-0022\hardware\arduino\cores\arduino/HardwareSerial.cpp:93: multiple definition of `Serial2’
ArduCopter.cpp.o:(.bss.Serial2+0x0): first defined here
c:/arduino-0022/hardware/tools/avr/bin/…/lib/gcc/avr/4.3.2/…/…/…/…/avr/bin/ld.exe: Warning: size of symbol `Serial2’ changed from 18 in ArduCopter.cpp.o to 19 in core.a(HardwareSerial.cpp.o)
core.a(HardwareSerial.cpp.o): In function `__vector_25’:
C:\arduino-0022\hardware\arduino\cores\arduino/HardwareSerial.cpp:93: multiple definition of `Serial3’
ArduCopter.cpp.o:(.bss.Serial3+0x0): first defined here
c:/arduino-0022/hardware/tools/avr/bin/…/lib/gcc/avr/4.3.2/…/…/…/…/avr/bin/ld.exe: Warning: size of symbol `Serial3’ changed from 18 in ArduCopter.cpp.o to 19 in core.a(HardwareSerial.cpp.o)

RA4ASN

Аналогично. Удалять папку arduino пробовал.

Sir_Alex

Какая та лажа 😦 у мну то же не компилится… а на работе компилилось!

Alex_from_Israel

Полетал во дворе. Собственно пошел проверять ЖПС и не удержался от слегка полетать. Жпс заработал на NMEA 4800. При первом включении Планнера требует соединения с интернетом, иначе вместо карты показывает какую то синюю таблицу. После соединения (во дворе все таки, мой роутер оказался в пределах досягаемости, а как на природе быть?) карту вывел с силуэтом квадрика. Довольно точно. Где можно увидеть количество спутников, которое от фиксит? Дрейфа ни малейшего на карте. Показывает точку, правда метров на 15 южнее реального местонахождения. После взлета Начал крутиться по часовой стрелке. Не очень быстро. Было темно, не сразу понял, что пара моторов остановились. Села батарея. Никаких грозных надписей об пониженном напряжении в планнере не выводилось. Просто показал разряд до 9.5 вольт. Ваттметр, прицепленный временно, показывал 11.5 вольт. Нужно калибровать Оттопайлот, похоже. Ваттметру больше верю. В темноте и с крутящимся вокруг оси пепелацем не рискнул продолжать. Возможно завтра попробую опять. При дневном свете. Прошивка 44 Бета3, Планнер 76

tusik
Alex_from_Israel:

а как на природе быть?)

Надо дома посмотреть то место, где будете летать. А потом на природе он возмет карты из кеша.

Alex_from_Israel:

правда метров на 15 южнее

А у меня метров на 300 севернее 😃 А в поле сегодня почти правильно

Alex_from_Israel

Не компилится. Поставил свежую 0022, скопировал в Библиотеку файлы из архива. Кроет матом Serial3. Какой то конфликт с ядром. Может опять нужно свежий .NET Framework?

А почему не взял из кеша после перезапуска Планнера? Я отключил связь с роутером после появления карты. Экономил батарейку в ноуте. После перезапуска планнера опять синяя таблица. Пришлось подключаться к инету снова.

tusik
Alex_from_Israel:

После перезапуска планнера опять синяя таблица

Там в папке gmapcache должен быть файл *.dat большого размера. Зто и есть карта.

Alex_from_Israel:

Я отключил связь с роутером после появления карты

Надо дома подвигать карту, что бы места с запасом было. Я сегодня был в таких Хуйковичах где телефон берет с трудом. А карту качнул дома и на поле все было ок

Alex_from_Israel

Попробую. Хотя есть сотовый модем для ноута, в любом месте берет,

tusik

Поставил пищалки на разряд батарей goodluckbuy.com/new-rc-lipo-battery-low-voltage-mo… вот такую, не реклама. На поле запищали. Пришел домой, заряжаю батареи, влилось только по половине. Как сделать чтобы начинало пищать по-позже. Но зато орет громко и искать хорошо 😃

RA4ASN

АРС220 прицеплена на serial0, заметил такую штуку: если пробовать менять пиды, фактически они меняются, хотя планнер (разных версий) выдает ошибку. И чтобы планнер же выдал новые пиды, нужно сделать дисконнект и снова коннект (рефреш-ошибка). Интересно, с чем такое связано, скорее всего с большим количеством crc fail`ов по радиоканалу (кстати, не появился способ как это победить?).
Вопрос: attopilot цеплять напрямую или делители нужны? Читал на спаркфане, что выходы модуля подогнаны под вход АЦП, но лучше спросить.

SovGVD
Sir_Alex:

у мну то же не компилится…

исправлено, я забыл в прошлый раз OSD закментить если оно disabled =)
оно там Serial1 хочет, а его нет, пихает стандарьны Serial1, он конфликтует с FastSerial проекта

Alex_from_Israel

Напрямую. У меня на 0 и 1 подключены. На спаркфане в документации к плате есть пример кода. Очень простой, работает нормально. У меня расхождение показаний напряжения с датчика и с ваттметра, но похоже датчик правильно показывает. На ваттметре было 11.5 вольт, а в Планнере 9.5. Поставил аккум на зарядку. Оказался разряженным до 3.33 вольта на банку. Кстати, плата чувствительна к опорному напряжению. Если на +5 в Ардуино напряжение 4.9, то и напряжение с Оттопайлота прибрехивает.

SovGVD
tusik:

Где лежит?

в SVN пихнул, архивчик не делал и не выкладывал, извиняйте =)
можно просто удалить OSD.pde

Alex_from_Israel
RA4ASN:

АРС220 прицеплена на serial0, заметил такую штуку: если пробовать менять пиды, фактически они меняются, хотя планнер (разных версий) выдает ошибку. И чтобы планнер же выдал новые пиды, нужно сделать дисконнект и снова коннект (рефреш-ошибка). Интересно, с чем такое связано, скорее всего с большим количеством crc fail`ов по радиоканалу (кстати, не появился способ как это победить?).
Вопрос: attopilot цеплять напрямую или делители нужны? Читал на спаркфане, что выходы модуля подогнаны под вход АЦП, но лучше спросить.

А что надо в коде поменять, чтобы на Сериал0 АРС220 работал? Я пробовал просто поменять физически. Планнер виснет и все.

SovGVD:

в SVN пихнул, архивчик не делал и не выкладывал, извиняйте =)
можно просто удалить OSD.pde

Без OSD.cpp компилится нормально.