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

Musgravehill
Musgravehill:

Сократил super_fast_loop до 960 мкс, задал ему частоту 1 кГц. Гира тоже на 1кГц.

Только ДУС ITG3200. Видно, что система распознает быстрый поворот (крутил, как только позволяла скорость руки). Ближе к концу ролика совершал плавные круговые движения. Медленное уплывание горизонта - естественное явление для ДУС + интегратор.

www.youtube.com/watch?v=YiD1gTeZbiI

MegaPirateNG 1kHz ITG3200, 250Hz BMA180 (accel_weight = 3*constrain(1 - 2 * fabs(1 - accel_magnitude), 0, 1); // upped to (<0.66G = 0.0, 1G = 1.0 , >1.33G = 0.0))

www.youtube.com/watch?v=s4V7dDGB5yU

Sir_Alex:

Далеко не факт, может оказаться и 5 и 6 и 7мс, скажем в момент, когда выполняется медленный код на 50Гц.

Значит, нельзя брать константу 4000мкс из Ch6, это значение никогда не меняется! Я сейчас везде использую время интегрирования G_Dt = (float)(timer - fast_loopTimer) / 1000000.f;
------
Кстати, в прошивке для BV используются мс millis(), а у нас - мкс micros():
if ((timer - fast_loopTimer) >= 4) //BV
{
G_Dt = (float)(timer - fast_loopTimer) / 1000.f;

Alex_from_Israel

Добрый день всем!

Поскольку у нас сегодня Новый Год, который Рош Ашана, то и с Новым Годом!

Закончил установку на монстрика все приблуды, и теперь имеем на борту 2 Ардуины Меги, GPS, АРС220, Allinon, видеокамеру 650 строк, БАНО из светодиодных лент RGB, сонар. Теперь осталось все это заставить работать. Вес получился приличный с батареей 5000 маЧас 45С, но все тяжелое разместил намного ниже центра тяжести пепелаца. Надеюсь, что устойчивости добавится. У кого нить есть светлые мысли насчет разделения кода по двум Мегам? Хочу перенести на вторую управление БАНО, сонары (в проекте еще 3 сонара для бокового обзора. Чтоб не таранить припятствия), FPV и прочее. Связь между Ардуинами темный лес для меня, поэтому просьба к продвинутым программерам подсказать, в какую сторону копать.

Sir_Alex
Alex_from_Israel:

вязь между Ардуинами темный лес для меня, поэтому просьба к продвинутым программерам подсказать, в какую сторону копать.

Для связи можно задействовать Serial (TX,RX) или SPI интерфейс… правда я так понимаю, он занят под i2c шину и датчики.
А мегу ставить не крутовато для этого? Может проще какую нить Nano?

Alex_from_Israel

Ставлю, что есть. С запасом. Есть еще Дуемиланове, но там не хватает портов под БАНО. Планирую использовать эту платку для прошивки G-OSD. Вроде, если правильно понял, стоит разделить медленные и быстрые процессы между Ардуинами. SPI это самый скоростной интерфейс?

Musgravehill
Alex_from_Israel:

Хочу перенести на вторую

Хочу сделать быстродействующее IMU на мелкой Ардуинке 328. А по шине гнать готовые значения гиры, акселя, компаса, барометра в DCM.

Alex_from_Israel

Планирую приспособить лэптоп под наземную станциюю. Есть распоторошеный передатчик на 6 команд. 2.4 Гигагерц с сателлитом. Если организовать кодирование команд на лэптопе и передавать кодированный сигнал с модуля от передатчика, то можно, в принципе, получить нужное количество каналов. Есть пара джойстиков, довольно продвинутых, с сателлита получать сумму и декодировать во второй Ардуине.

Musgravehill:

Хочу сделать быстродействующее IMU на мелкой Ардуинке 328. А по шине гнать готовые значения гиры, акселя, компаса, барометра в DCM.

А если развести плату с датчиками и 328 процессором отдельно?

Musgravehill
Alex_from_Israel:

А если развести плату с датчиками и 328 процессором отдельно?

Стоит денег. А Фридуинка 328 мини и датчики уже есть, только соединить. Тем более, сейчас BMP085 хочу\планирую\мечтаю заменить на MS5611, а itg3200 на 3 штуки ADXRS620. Если сделать плату, то уже не выпаять-впаять новые. Конечно, она будет легче, чем бутерброды из отдельных датчиков.

Кстати, как цеплять аналоговые датчики к Ардуинке? У нее АЦП 10 бит, всего 1024 значения. Значит, по 512 единиц влево-вправо. Внешний АЦП городить… эх… У ITG3200 16 битный АЦП внутри…

Alex_from_Israel

Я планирую своего монстрика нашпиговать под завязку всем, что есть под рукой сейчас. Погонять на привязи, отрегулировать аппаратуру управления, подогнать параметры. Потом на природе то же самое. В процессе устаканится, что нужно, а что нет. Когда начнет летать это чудо, собираюсь развести платы с мозгами в программе и заказать парочку для пробы. У нас с этим проблем нет, только мелкие партии дороговато получаются. Есть одна местная конторка на примете, у них маленький аппаратик есть, платы травят для всоих проектов. Примитивная штука, нельзя многослойные делать, но для мозгов и двухсторонней за глаза. Хотел себе такую бандуру прикупить, не дорогая и места занимает, как посудомоечная машина. Передумал. Проще договорится, чтобы сделали на заказ. Расходные материалы для этой штуковины дороже обходятся, чем сама машина. А у изготовителей в Китае заказывать, тоже самое, с учетом пересылки.

Alex_from_Israel

150 баксов? Не дорого, но хочется развести свой. Чипы россыпью можно заказать через знакомую контору. Копейки получается. Я им делал дизайн корпуса их прибора с деталировкой. На Солиде, так, что не откажут в мелкой услуге. Это у них машинка для мелкосерийного изготовления плат. Можно несколько вариантов под назные чипы изготовить. Там ребята не работают с Атмеловскими чипами. Пики в ходу. И хочется развести такую плату под Мегу. Хочу проверить, можно ли использовать видеокамеру для бездрейфового висения над точкой.

Sir_Alex
Alex_from_Israel:

150 баксов? Не дорого, но хочется развести свой. Чипы россыпью можно заказать через знакомую контору. Копейки получается. Я им делал дизайн корпуса их прибора с деталировкой. На Солиде, так, что не откажут в мелкой услуге. Это у них машинка для мелкосерийного изготовления плат. Можно несколько вариантов под назные чипы изготовить. Там ребята не работают с Атмеловскими чипами. Пики в ходу. И хочется развести такую плату под Мегу. Хочу проверить, можно ли использовать видеокамеру для бездрейфового висения над точкой.

Не проще ли тогда уже подождать Arduino Due (Которая на ARM будет)? А по камере сделать стабилизацию наверное не получится, на AVR так точно. (Наработки которые есть у ArduCopter’ов, работают на базе датчика из мышки)

nemo61
nemo61:

Продолжаю с Planer 1.0.76. В GUI 1 - STABILIZE, 6 - ALT_HOLD. При переключении в терминале меняется STABILIZE и SIMPLE.

Хочу обратить внимание сообщества.
Может я невнятно выразился, но у меня непонятно какой режим устанавливается на переключатель. Это только у меня так? Это можно посмотреть в консоли и в графическом интерфейсе. У меня в графическом интерфейсе при переключении тумблера STABILIZE меняется на ALT_HOLD, а в консоли STABILIZE меняется на SIMPLE.
Так на какой режим я переключусь?!

Alex_from_Israel
Sir_Alex:

Не проще ли тогда уже подождать Arduino Due (Которая на ARM будет)? А по камере сделать стабилизацию наверное не получится, на AVR так точно. (Наработки которые есть у ArduCopter’ов, работают на базе датчика из мышки)

Есть у меня такой датчик от вертолетной системы стабилизации. Не впечатляет. Работает на 3 метрах не больше. Хочется привязаться к рисунку рельефа на больших высотах. мышкины датчики для этого не подходят. Проверено.

Кстати, прикидываю платформу на базе 2 роторов от вертолета 450 класса. Получается довольно приличная конструкция. В Солиде пока. Что то вроде треугольника из хвостовых балок Ти-Рекса 450 со стабилизирующими винтами вместо 3го мотора тикоптера. Тяги сдвоенной силовой установки хватит для подъема 4 килограммов, по прикидкам.

А сколько ждать эту Дуе? И подойдет ли к ARM нынешний код?

YAN=
Alex_from_Israel:

Хочется привязаться к рисунку рельефа

Это-ж еще и оптику городить предется.

Sir_Alex
Alex_from_Israel:

И подойдет ли к ARM нынешний код?

Судя по коду, его как раз сейчас и готовят под портирование 😃

Alex_from_Israel:

Хочется привязаться к рисунку рельефа на больших высотах. мышкины датчики для этого не подходят. Проверено.

Думаю мощности AVR просто не хватит, для анализа перемещения по камере.

SovGVD
Alex_from_Israel:

Хочется привязаться к рисунку рельефа на больших высотах.

это уже совсем другой уровень -> надо x86 (или хороший ARM, типа terga2/r) пихать и Linux+openCV/ROS (как у MIT/vislab/DARPA Chellenge/etc)
одно дело узнать на сколько сдвинулись по датчику мышки (он уже отдает вектор, если память не изменяет), а другое анализ изображения с полноценной камеры

Musgravehill
Sir_Alex:

Arduino Due (которая на ARM будет) Судя по коду, его как раз сейчас и готовят под портирование

Понятно, что Си-образный код просто скопировать можно, а ассемблер (i2c, сонар)?

Alex_from_Israel
YAN=:

Это-ж еще и оптику городить предется.

Зачем? Обычный объектив от ФПВ камеры. Даже ТVOut библиотека Ардуины поддерживает работу с объектами на экране, если судить по ролику в инете. Захватывается характерный рисунок рельефа местности и удерживается моторами в центре экрана. Конечно над водой и неконтрастными участками работать не будет.

iBat
Musgravehill:

Понятно, что Си-образный код просто скопировать можно, а ассемблер (i2c, сонар)?

Ассемблер естественно портировать придется.

SovGVD
Alex_from_Israel:

судить по ролику в инете.

а можно пруф? видел как контрастная буковка А выводится - рельеф местности будет набором случайных точек и будет похож больше на шум, который при скорости работы avr даже не отследить толком (имхо)

Alex_from_Israel
SovGVD:

а можно пруф? видел как контрастная буковка А выводится - рельеф местности будет набором случайных точек и будет похож больше на шум, который при скорости работы avr даже не отследить толком (имхо)

Можно, если скажете, что такое пруф!

С высоты не будет набором случайных точек. Характерные границы застройки-береговая линия-поля-пустыри. Но это все благие пожелания. Наверное проще повысить точность по ЖПС .