ArduCopter Mega: порт на обычную Arduino (тестим)
Пора собирать регуль на ардуино 😃
Ура товарищи пираты!
Рад сообщить о выходе Альфа версии MegaPirateNG 2.1.1 R8. Версия основана на ArduCopter 2.1.1 R8 Alpha. Она предназначена только для тестирования!!!
В данной версии кардинально переделана система драйверов. Так что, если вы не найдете привычных файлов - не пугайтесь, что то осталось на старом месте, что то переехало в другое. Например Сонар теперь работает через свой собственный драйвер (файл AP_AnalogSource_PIRATES.cpp).
Самое важное дополнение - это поддержка новейшей платы датчиков FreeIMU 0.4.1 (Спасибо Varesano за предоставленный образец). На этой плате стоит сенсор MPU6000 (Гира и аксель), барометр MS5611 и магнитометр 5883L. Все датчики работают с этой прошивкой! См. видео.
Так же, начиная с этой версии тип сенсоров выбирается в APM_Config.h, параметр PIRATES_SENSOR_BOARD.
Кроме всего этого, множество изменений произошло в основном коде ArduCopter’a, список изменений можно почитать тут
Тем не менее, есть пара минусов у этой прошивки: Т.к. все драйвера переехали на новую либу I2C, то драйвер UBLOX GPS I2C пришлось временно убрать. Так же пришлось убрать поддержку акселя BMA020, т.к. были вопросы по коду и проверить правильность я не мог.
Теперь, самое важное, что вам надо знать, чтобы скомпилировать прошивку и сконфигурировать ее:
1. Прочитайте release_notes.txt и если у вас плата BlackVortex, то release_notes_BlackVortex.txt
2. Если у вас Arduino Mega 2560, то вам надо использовать специальную версию Arduino IDE 0022 с включенной опцией relaxpath. Скачать ее можно тут code.google.com/p/ardupilot-mega/…/detail?name=ard…
3. Тип датчиков теперь выбирается в APM_Config.h а не в файле AP_ADC_ADS7844.cpp
4. Маппинг каналов RC переехал в файл APM_RC_PIRATES.cpp
ах да, ссылка на прошивку
пришлось убрать поддержку акселя BMA020
имхо тут никто и не летал кроме меня на этом датчике, так что не страшно
в итоге то - оно летает? или просто датчики работают?
в итоге то - оно летает? или просто датчики работают?
Проверены только датчики, попробую сегодня полетать, если успею…
Из первых замечаний: не работает PPM SUM. В 49 работает
Прошу прощения,я так и не понял для Ж-коптера, что и где заказать\купить, чтобы был контроллер,барометр,сонар,компас,OSD…все кроме GPS , Желательно управление подвесом.
Nano, mega адруину??? Где брать то не дорого???
Где брать то не дорого???
www.csgshop.com/product.php?id_product=29 Есть даже ГПС
tusik Благодарю, а дешевле бывают исполнения, или аналоги?
ченить подешевше
www.csgshop.com/product.php?id_product=23 и на ебее любую ардуину мега по-дешевле
имхо тут никто и не летал кроме меня на этом датчике, так что не страшно
в итоге то - оно летает? или просто датчики работают?
Всем здравствуйте в этом году.
У меня тоже плата с этим датчиком.
Поэтому я хотел бы попросить Sir Alex если будет возможность оставить код в прошивке.
С уважением.
Только что вернулся с облета в полях. Прошива 49, трикоптер.
Мороз -15, ветер, а летает обалденно и на месте держится. Хотел ФПВ замутить и видосом похвастаться, но долбанный новый передатчик lawmate 1Вт подкосячил. Сплошные пшики на видео. Невозможно понять ничего. 😦
Это что, я вот вчера хотел полетать. Запускаю коптер, даю газу… а он не взлетает, я еще газу - он не взлетает. Смотрю, а он дует не в ту сторону!
Долго не мог понять, как я умудрился неправильно настроить вращение моторов. Уже пошел перепаивать и обнаружил что я просто неправильно поставил все пропеллеры, хы хы. 😃
Из первых замечаний: не работает PPM SUM. В 49 работает
Странно, там вроде ничего не менялось…
Кстати, скоро должны снова появится в продаже FreeIMU 0.3.5_MS с барометром MS5611 😃
это такой новый ОСД называется Black Vortex HUD или bvHUD
Мне Сергей говорил что делает свой OSD.
На чем сделали по итогу? AVR или ARM. Видео чем обрабатывается MAX7456 или просто SYNC ловите?
что там за Сергей? 😃
единственно кого я знаю - это Алекс Иванов. Сделано на AVR, полностью графический, без макс
не работает PPM SUM.
Опять сам дурак:) Не то раскоментил. Пока все на столе работает. Только что-то подтормаживает. Толи новый планер, толи прошивка…
😵
что там за Сергей?
ММммм… а CSG_EU разве не Сергеем зовут? видно я попутал…
Подлетел в квартире. Вроде нормально. Надо идти на улицу тестить
Алекс, а зачем вам столько лишних библиотек? Причем, Wire, как обычно, отсутствует.
Реально в 49, к примеру, используется только 20 шт. Остальные созданы владельцами других веток, транков и тянутся с незапамятных времен. Почистить?
*начинаю тестить 2.1*
Еще соображение. Может быть, имеет смысл исключить температуру из формулы подсчета баровывсоты? А то зима, понимаешь, вытащил коптер из машины, показывает -6 град. и высоту 0. Через минуту показывает -15 и высота грохнулась сразу на 30 метров 😃 Для alt_hold это просто прелесть 😃
Причем, Wire, как обычно, отсутствует.
Wire больше не используется 😃
Алекс, а зачем вам столько лишних библиотек?
Мне они не мешают. Зачем их вырезать, вдруг завтра окажется, что они нужны? Или я завтра перестану поддерживать прошивку, придет новый человек, и будет ломать голову, зачем выкинули OpticFlow, а вдруг я его подключу?
Еще соображение. Может быть, имеет смысл исключить температуру из формулы подсчета баровывсоты? А то зима, понимаешь, вытащил коптер из машины, показывает -6 град. и высоту 0. Через минуту показывает -15 и высота грохнулась сразу на 30 метров Для alt_hold это просто прелесть
Если я правильно понимаю, то температура там как раз и используется для компенсации изменения давления от температуры. Ну или я бы ее для этого и использовал бы.
Тут на самом деле и ходить далеко не надо, у меня плата лежала на столе включенной, за час могло 17 метров набежать. Я думаю давление само по себе меняется в течении дня…
Взято из архива. Не компилируется 😭 Еще и SPI просит. Библиотеки закопированы. Закоментил SPI - стало еще больше ероров. Я не жалуюсь, полез фиксить, только вот как tusik умудрился запустить?
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:211: error: definition of implicitly-declared 'APM_RC_Class::APM_RC_Class()'
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:217: error: prototype for 'void APM_RC_Class::Init()' does not match any in class 'APM_RC_Class'
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\/APM_RC.h:51: error: candidate is: virtual void APM_RC_Class::Init(Arduino_Mega_ISR_Registry*)
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:409: error: no 'void APM_RC_Class::Force_Out0_Out1()' member function declared in class 'APM_RC_Class'
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:415: error: no 'void APM_RC_Class::Force_Out2_Out3()' member function declared in class 'APM_RC_Class'
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:421: error: no 'void APM_RC_Class::Force_Out6_Out7()' member function declared in class 'APM_RC_Class'
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:430: error: no 'bool APM_RC_Class::setHIL(int16_t*)' member function declared in class 'APM_RC_Class'
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp: In member function 'virtual void APM_RC_Class::clearOverride()':
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:456: error: '_HIL_override' was not declared in this scope
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp: At global scope:
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:462: error: cannot declare variable 'APM_RC' to be of abstract type 'APM_RC_Class'
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\/APM_RC.h:47: note: because the following virtual functions are pure within 'APM_RC_Class':
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\/APM_RC.h:51: note: virtual void APM_RC_Class::Init(Arduino_Mega_ISR_Registry*)
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:360: note: virtual void APM_RC_Class::OutputCh(uint8_t, uint16_t)
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:387: note: virtual uint16_t APM_RC_Class::InputCh(uint8_t)
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:402: note: virtual uint8_t APM_RC_Class::GetState()
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\APM_RC.cpp:453: note: virtual void APM_RC_Class::clearOverride()
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\/APM_RC.h:56: note: virtual void APM_RC_Class::Force_Out()
D:\mydocs\arduino\arduino-0022\libraries\APM_RC\/APM_RC.h:57: note: virtual void APM_RC_Class::SetFastOutputChannels(uint32_t)
Дополнение: релакс не поможет, т.к. под 1280 тоже не компилится.