ArduCopter Mega: порт на обычную Arduino (тестим)
Ну сколько про это писать можно.
Я еще на ВиКи писал. Нельзя, что-б было поралельное питание от контроллеров и от ЮСБ. Движки взбеситься могут. Винты СНИМАТЬ. Я уже пожертвовал рукой.
Я это читал как бы 😃 , и специально для этого предусмотрел отключение +5В от регулей перемычкой, чтобы каждый раз не дергать разъемы. Когда цепляю usb, перемычку вынимаю. А движки включились когда коптер лежал на полу с отключенным usb. Это был однократный казус, уж хз от чего он произошел, после последующих перезапусков такой траблы не было.
в момент старта ардуины может внезапно податься сигнал (на долю секунды) регулям, они и крутанутся (могут на полную) - раза 3 пока только так было у меня, но ен приятно получить пропом по руке, хоть и не сильно
Кто нибудь, может объяснить, как вообще должен управляться YAW?
Я вчера попробовал разобраться в чем у нас проблема на 46й версии. Поставил коптер на пол (с отключенными моторами), подключил планер. Попробовал крутить с пульта влево/вправо, в результате 0 реакции… точнее, рекция есть только на servo_out (т.е. на выходе на моторы). Но если я правильно понимаю, мы с пульта должны задавать желаемый курс (т.е. мы изменяем ошибку по сравнению с текущим курсом), а мозги уже сами с помощью PID контроллеров подкручивают коптер в нужное направление. Однако, ошибка меняется только тогда, когда я коптер начинаю руками поварачивать отклоняя от заданного курса (тут как раз все правильно, он стабилизируется).
Может в этом вся загвоздка? Мы на пульте даем команду повернутся, сигнал идет на моторы и начиает поворачивать коптер, тут мозги видят, что коптер повернулся и начинаю его возвращать на прежний курс…
Кстати, YAW по компасу имеет приоритет. Если компаса нет, то курс проверяется по GPS при скорости более 3м/с (видимо для самолетов)
И еще, обратил внимание на то, что в исходниках есть эксперементальный код, удержания высоты по акселю 😃
насколько я помню там если стик отошел от центра (RC4_TRIM вроде), то напрямую поворачиваем (без учета направления), если стик снова в центре, то запоминаем текущее положение и держим его - тут главное чтобы YAW ось гиры и магнетометра совпадали, так как YAW гиры крутит сразу, а YAW магнетометра медленно доплывает - иначе выйдет что ось гиры (совсем плохо если еще и знак не тот) и ось магнетометра не совпадают и коптер “не понимает” кому верить
у меня такое было - отрубил магнетометр и стал нормально работать, врубая - дикая колбасня туда/сюда вплоть до переворотов
тут главное чтобы YAW ось гиры и магнетометра совпадали, так как YAW гиры крутит сразу, а YAW магнетометра медленно доплывает - иначе выйдет что ось гиры (совсем плохо если еще и знак не тот) и ось магнетометра не совпадают и коптер “не понимает” кому верить
А как это проверить? Вроде магнетометр показывает верное направление, на повороты мозгов, реагирует адекватно…
хз как проверить, я тупо вырубил магнетометр и летал без него (но собственно кроме стабилайза ничего и не было)
- в старом планере была нормальная стрелка heating (направление показывает), там было хорошо видно и если оси перепутаны, то сначало резко крутится в одну сторону, а потом доплывает в другую (или недолет/перелет, если кто-то из датчиков не те значения отдает или еще какая фигня)
магнетометр показывает верное направление, на повороты мозгов, реагирует адекватно
перепроверь центр аппы, может он на границе и так как апа ± значение выдает мозги думаю: стоим на месте/рулит/стоим на месте/рулим и т.д.
или еще лучше попробовать заново перекалиброваться и убедится что рядом с магнетометром не идет силовых проводов/моторов и т.д.
перепроверь центр аппы, может он на границе и так как апа ± значение выдает мозги думаю: стоим на месте/рулит/стоим на месте/рулим и т.д.
Скорее всего, пока мы крутим коптер (аппой), не отключается слежение за YAW, вот они и пытаются победить друг друга (аппа и мозги) 😃
Все забываю спросить: датчики обязательно размещать в геометрическом центре коптера или лишь важно направление соблюсти?
датчики обязательно размещать в геометрическом центре коптера
не обязательно, но желательно… как минимум надо чтобы по XY был в центре (± 2 см), по Z лучше если в плоскости винтов, но реально это мало кто соблюдает 😉
не отключается слежение за YAW
вполне возможно
В ветке про ардукоптер вчера пмсали, что с 46 прошивкой были проблемы. Даже сняли с сайта и поменяли на 46вета.
В ветке про ардукоптер вчера пмсали, что с 46 прошивкой были проблемы. Даже сняли с сайта и поменяли на 46вета.
Да, было дело… я только не понял, чем они отличались, т.к. в исходниках добавили только дополнительный PID контроллер на ALT_Hold и то не факт, что эти изменения попали в бету.
в исходниках добавили только дополнительный PID контроллер
А народ говорил, что квадры сыпались как листья осенью 😃
ребят, а как эти прошивки заливают? прошу сапогами сразу не пинать, я еще малость не в теме 😃 Освоил работу с планнером, но не до конца. В планнере жму кофигурацию, что-то откуда-то заливается, но контроля что и какая именно прошивка нет.
В планнере жму кофигурацию, что-то откуда-то заливается, но контроля что и какая именно прошивка нет.
Нам нельзя этой фичей пользоваться, т.к. загружается там оригинальная прошивка ArduCopter’a (которая несовместима с Arduino и датчиками AllInOne и FFIMU).
Схема такая:
- Качаете и распаковываете в любую папку Arduino IDE 0022 (запускаете хотя бы раз саму IDE, что бы прописались связи с файлами типа “*.pde”
- Качаете желаему прошивку отсюда code.google.com/p/megapirateng/downloads/list
- Распаковываете в любую папку. Копируете папку libraries в папку libraries Arduino IDE
- Заходите в папку ArduCopter и два раза кликаете на любом файле *.pde
- Указваете тип вашей платы Arduino и COM порт, на котром она подключена.
- Нажимаете кнопку (Скомпилировать и залить) (Она предпоследняя на панели кнопок)
Это в общих чертах. Обычно после скачивания прошивки, надо ее настроить под свою конфигурацию. Выбрать какое у вас управление (файл APM_RC.cpp), какая у вас плата дачиков (AP_ADC_ADS7844.cpp) и какие фичи у вас есть, в файле APM_Config.h
Нам нельзя этой фичей пользоваться, т.к. загружается там оригинальная прошивка ArduCopter’a
все понял, вопрос отпал, у меня-то ардукоптер… Пардон.
Ткните мордой лица, где в постах про ориентацию Аллинон написано, плз!
Ткните мордой лица, где в постах про ориентацию Аллинон написано, плз!
rcwiki.ru/index.php/MegaPirates
AllInOne ориентируется, выводами слева от черепка (если смотреть сверху на AllInOne)
Отлетал два пака на 46 альфе. Из того что что сразубросилось в глаза: стал намного тупее по рудеру. Если раньше чуть двинешь стик и коптер уже крутит, то теперь стик надо двигать чуть ли не до половины. Алт-холд стал по-лучше. на стоковых пидах в 5 метрах от земли ходил сантиметров 70. А если поднастроить можно и в 30 вписаться. Ни РТЛ, ни лойтер не проверял. В целом впечатрения положительные.
в момент старта ардуины может внезапно податься сигнал (на долю секунды)
Первый раз, руками ловил. Пока батарею не выдернул не успокоился. Второй раз, уже без пропов (типа умный стал), та-же херня, до отключения батареи.
Можно ли разместить в непосредственной близости (1-2см) антенны приемника 2,4ГГц и модуля APC220? Диапазоны разные, но не будет ли модем забивать входные каскады приемника? Хочу чтоб плата выглядела красиво, но чтобы и перекрестных помех не было )
Можно ли разместить в непосредственной близости
У меня две антены лежат в банке из-под СD. Правда одна лежит, а вторая стоит. Улетал метров на 250-300
Можно ли разместить в непосредственной близости (1-2см) антенны приемника 2,4ГГц и модуля APC220?
Если коротко - можно. Будет ли влиять? - Как-то будет. Точнее измерять надо. Но если рекорды дальности не нужны, то можно не заморачиваться. Только проверить на всякий случай дальность управления.
Война в ГПС продолжается. Резетнул свой приемник (Holux 240) поставил 38400 где это тольво козможно. Результат следующий(фикса небыло проверял в здании):
AC 2.0.40 Beta] test
test] rawgps
Hit Enter to exit.
$GPGGA,000420.040,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*41
$GPRMC,000420.040,V,0000.0000,N,00000.0000,E,,,160406,,,$GPGGA,000432.040,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*42
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,20,00,000,,10,00,000,,25,00,000,,27,00,000,*79
$GPGSV,3,2,12,22,00,000,,07,00,000,,21,00,000,,24,00,000,*79
$GPGSV,3,3,12,16,00,000,,28,00,000,,26,00,000,,29,00,000,*78
$GPRMC,000432.040,V,0000.0000,N,00000.0000,E,,,160406,,,N*72
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,000433.040,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*43
$GPRMC,000433.040,V,0000.0000,N,00000.0000,E,,,160406,,,N*73
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,000434.048,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*4C
$GPRMC,000434.048,V,0000.0000,N,00000.0000,E,,,160406,,,N*7C
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,000435.040,0000.0000,N,00000.0000,E,0,00,,0.0,Mtest]
test] gps
Hit Enter to exit.
GU*U?GUError reading com port
*U?GU*U?GU*U?.GU*U ?GU
*U
?GU*U
?GU*U?.GU*U?GU*U?GError reading com port
Прошивка как видно 2.0.40. Планер 1.0.76. Показывает No Gps.
Смушает надпись “Error reading com port”. Это какой порт? Для телеметрии или гпс-ный…
Куда копать не пойму. Что посоветуете?
Война в ГПС продолжается.
Вначале попробуйте отдельно маленькую библиотечку arduiniana.org/libraries/tinygps/ я с ней проверял модули. В папке есть 2 примера. По-моему, только NMEA. Для бинари и других не искал.
(если АТмега328, то можно добавить arduiniana.org/libraries/newsoftserial/ - чтобы повесить ГПС на виртуальный сом-порт d2 d3, например. А d0 d1 использовать для COM-USB как обычно.)