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

ligor73

Здравствуйте все.
Большое спасибо Syberian за этот замечательный проект.
На прошивке В8 ну ни как у меня не удавалось настроить нормально PIDы.
Сломал с десяток уже винтов, начал грешить на датчики(они у меня раздельные ВМА020,itg3205,BMP085,HMC5883).
Уже расстраиваться стал 😦
Сегодня скачал прошивку 2_0_38,быстренько загрузил,настроил и пошёл попробовать.
Запустил и обалдел 😃 с PIDами по умолчанию держится замечательно.
Заснять процесс полёта пока нечем.
Надо попробовать ещё сонар прицепить, вроде говорили что он здесь работает.
Так что на моей конфигурации прошивка работает отлично.
Вот моя плата.

SavosRU
Romb89:

Кажется понял почему не коннектится с гпс. Заметил это в терминале. Если подключен гпс, то показания test adc через некоторое время подвисают. Продолжает работать только test gps. Такое ощущение, что вся i2c шина зависает. Попробовал подключиться через планер сразу после нажатия на reset на ардуине. Нормально подключается, но через пару секунд показания горизонта останавливается, обновляются только данные гпс.
Кто что думает по это поводу, как можно решить эту проблему?

Вот это очень похоже на то, с чего я начинал с allinone’ом и ардуиной бодаться… Именно так и было - секунд 10-15 в планнере работало и висло, а в CLI-режиме работало сколько угодно. Похоже я не одинок!

Как побороть пока не понял. Вернее, одно время думал, что победил это глюк. Вот так: подключил питание на allinone с трехвольтового выхода ардуины, а не с пятивольтового (хотя сама плата датчиков у меня 5-вольтовой версии). И чудо - все вроде бы как заработало. Я смог настраивать, тестировать, подлетывать. В общем - было мне счастье. БЫЛО - так как при выходе на улицу (уже писал об этом выше) у меня опять завис коптер. Сегодня это повторилось в комнате. Короче - заказываю БлекВортекс. Вот зарплату получу и…

Ну а если кто-то Вам поможет реально с этим странным случаем справиться - то попрошу поделиться рецептом. Ибо у меня лично явно не хватает познаний для самостоятельного решения. И тут я уже спрашивал ребят - но ни у кого ничего подобного не было и мне помочь не смогли…

ДОБАВЛЕНО:
(кстати, я спрашивал, почему у меня при ответах на посты все мои реплики “складываются” в один длинный пост? И мне никто не ответил. То есть это у всех так же происходит?)

Сейчас опять ковырял ветку по AllInOne на rcgroups и обратил внимание на две фразы:

Один из покупателей этой платы говорит - if we have a 5v LLC we must enable i2c pullups but I’m not sure where and how to do the mod

Разработчик (он же и продавец) ему отвечает - any All in ONE boards 3.3v or 5v have resistors for i2c and you can disable pull up for 3.3 and 5v boards.

Может именно тут “собака порылась”???

Кто-то может подсказать, где и как можно в коде убрать эти пуллапы корректно? Олег, что скажешь вообще по этому поводу - могут эти пуллапы оказывать такое влияние, что коптер “виснет”?

Romb89
Sir_Alex:

Вы не сказали, какая у вас версия платы, на 5В или 3.3В. И как вы на нее подаете питание? Какая у вас Ардуина (желательно ссылку на описание)?

Плата на 5в. arduino 2560, брал на ebay, описание там было скопировано с официального сайта. Ардуину питаю сейчас просто от юсб, т.к. коптер ещё не собрал. А allinone подключена на +5V ардуины.
Ещё заметил, при зависании гаснет диод, который на 13 пине.

SavosRU:

Вот это очень похоже на то, с чего я начинал с allinone’ом и ардуиной бодаться… Именно так и было - секунд 10-15 в планнере работало и висло, а в CLI-режиме работало сколько угодно. Похоже я не одинок!

Но у меня это проявляется только если подключить gps на tx-rx. Если gps отключен, то всё работает нормально.

Sir_Alex

Romb98, Во первых, попробуйте написать разработчику AllInone, он русскоговорящий, так что без проблем поймет вашу проблему. Мне же кажется, у вас проблемы с питанием, попробуйте замерить ток, который потребляет вся ваша система, вместе с GPS и без. И еще, например у меня, ноутбук не тянет 2560 + AllInOne + приемник + Bluetooth приемник. Возможно GPS потребляет немалый ток, вот и датчики зависают. Было бы идеально посмотреть на сигналы шины i2c через осциллограф.

Тут все пробуют 2.0.38. Подскажите, надо ли допиливать прошивку, что бы она соответствовала по входам и выходам, текущей версии B8 (от Олега)?

SavosRU:

Может именно тут “собака порылась”???

AllInOne имеет на борту PullUp резисторы, так что я не думаю, что включенные PullUp на Ардуине будут мешать.

tusik
Sir_Alex:

надо ли допиливать прошивку

Не надо. Надо только выбрать тип датчиков и поменять тип рамы (по умолчанию-гекса и фиму)

Covax

Там даже ру входы соответсвуют Олеговой?

tusik
Covax:

Там даже ру входы соответсвуют Олеговой

Да. В файле APM_RC.cpp выбирается тип ру

Sir_Alex

Ерундень какая то, попробовал скачать 2.0.38 отсюда: code.google.com/p/arducopter/downloads/list
По коду не нашел никаких упоминаний о AllInOne или FFIMU. Залил в ардуину и… ессесно ничего не заработало (в терминале коптер требует провести Setup radio, но когда вводишь radio он зависает, команда level то же зависает на попытке проинициализировать аксель). Откуда качать то эту прошивку?

tusik
Sir_Alex:

никаких упоминаний о AllInOne или FFIMU

Здесь: C:\arduino-0022\libraries\AP_ADC\AP_ADC_ADS7844.cpp В папке C:\arduino-0022 удаляем папку libraries и заменяем ее одноименной папкой из архива. В указаном файле меняем фиму на алиноне. В папке libraries ищем файл APM_RC\APM_RC.cpp и выбираем нужный тип р\управления (если подключено как В8 у Олега, то выбираем #define TX_standard) Компилируем и заливаем в ардуину и все…

Romb89
Sir_Alex:

Мне же кажется, у вас проблемы с питанием, попробуйте замерить ток, который потребляет вся ваша система, вместе с GPS и без.

Замерил. Разницы с gps и без не заметил. И правильно, ведь gps не питается через tx-rx, там только данные передаются. А к питанию получается gps модуль всё время подключен.
Вобщем отписался продавцу, может он чего подскажет.

Sir_Alex
tusik:

Здесь: C:\arduino-0022\libraries\AP_ADC\AP_ADC_ADS7844.cpp В папке C:\arduino-0022 удаляем папку libraries и заменяем ее одноименной папкой из архива. В указаном файле меняем фиму на алиноне. В папке libraries ищем файл APM_RC\APM_RC.cpp и выбираем нужный тип р\управления (если подключено как В8 у Олега, то выбираем #define TX_standard) Компилируем и заливаем в ардуину и все…

Там ничего этого нету! Это все есть в прошивке от Олега, но не в ArduCopter 2.0.38 (по указанной мною ссылке)

Galamaga

Хотел сегодня подключить стабилизацию для камеры. Стабилизация для камеры работает, но на стики не реагирует. В CLI моде перенастроил радио, все работает кроме управления камерой. Может надо что-то в коде поменять?

www.youtube.com/watch?v=72JI3OF9Heg

Galamaga

Вдруг кому пригодится:


void camera_stabilization()
{
	g.rc_camera_pitch.set_pwm(APM_RC.InputCh(CH_7));
	g.rc_camera_pitch.servo_out = g.rc_camera_pitch.control_mix(-dcm.pitch_sensor);
	g.rc_camera_pitch.calc_pwm();
	APM_RC.OutputCh(CH_5, g.rc_camera_pitch.radio_out);

    g.rc_camera_roll.set_pwm(APM_RC.InputCh(CH_8));
	g.rc_camera_roll.servo_out = g.rc_camera_roll.control_mix(-dcm.roll_sensor);
	g.rc_camera_roll.calc_pwm();
	APM_RC.OutputCh(CH_6, g.rc_camera_roll.radio_out);
}
Sir_Alex

Ураааа!!! Мне удалось хоть немного полетать! Поставил 2.0.38, PIDы по дефолту. Коптер висит стабильно по сравнению с тем что было на Б8.
Пруф видео (простите за качество, снимал на древний телефон) (Ноги коптеру приделал временные, за 5 минут):

www.youtube.com/watch?v=n8fvnmIMxh8

UPD: Туда сюда его колбасит т.к. это я неумело дергаю стики 😃

Sir_Alex
Galamaga:

то называется “висит”??? =)

По сравнению с тем что было - ДА! 😃 Да и я больше летал, просто снял не очень удачный полет, хы хы.

tusik

Как в анекдоте про оптимиста и пессимиста: не стоит, зато как висит! А фотку рамы можно? У меня по-моему такой же профиль. Думаю как сделать раму (четвертый вариант 😃 )

Sir_Alex

А фотку рамы можно? У меня по-моему такой же профиль

Вот фотки. Профиль 10x20x2. До этого была рама на базе трубки d16, так она была пушинкой по сравнению с новой 😁
Все остальное - стеклотекстолит фольгированный, односторонний 1мм., Сверху банка из под компакт дисков (на 25шт)

SavosRU
Romb89:

Но у меня это проявляется только если подключить gps на tx-rx. Если gps отключен, то всё работает нормально.

Гм… если сегодня руки дойдут вечерком - то попробую отключить GPS и посмотреть, что будет. А то вчера опять адреналин поймал при попытке повисеть в квартире для калибровки в стиле “взлетел-сел-setup-level, взлетел-сел-setup-level”… ОНО зависло и моторы с пропами вращались на предвзлетном режиме - кстати, на этот момент я обратил внимание, это всегда у меня так - пока ни разу при зависаниях с одетыми пропеллерами (ни дома, ни на улице) коптер никуда не улетел. Обороты были близки к взлетным, но все-таки (слава Богу) были ниже… Хотя набирает он эти обороты даже если перед “зависанием” стик газа в самом нуле.

Это наводит на мысль о том, что ВОЗМОЖНО эти обороты где-то в программе выставлены. Найти бы и обнулить бы к черту… Хотя, конечно, лучше чтобы вообще не вис…

Sir_Alex:

Во первых, попробуйте написать разработчику AllInone, он русскоговорящий, так что без проблем поймет вашу проблему. Мне же кажется, у вас проблемы с питанием, попробуйте замерить ток, который потребляет вся ваша система, вместе с GPS и без. И еще, например у меня, ноутбук не тянет 2560 + AllInOne + приемник + Bluetooth приемник. Возможно GPS потребляет немалый ток, вот и датчики зависают

Я переписывался с разработчиком, он даже просил меня разместить на нашем форуме рекомендаци по распиновке 3-х вольтовых и 5-вольтовых плат, что я сделал выше в этой ветке. Так что начать надо именно с правильности этой самой распиновки: там GPS-TX и GPS-RX на разных версиях поменялись местами!!! Может это Вам, Romb89, поможет? Может именно тут засада?

А вот если все контакты соединены верно, то ответ разработчика был, типа: “нет, не представляю даже что бы это могло быть - у других все работает исправно”. Так что не пишите, вернее пишите по желанию, но я бы особо на этот вариант не рассчитывал, ибо уже пройдено… По поводу нехватки питания - у меня питание идет от полетного аккумулятора, как же его может не хватать-то???