MultiWii
ЧТо такое термоголова FMA?
Это пирометрический датчик горизонта. Применяется в стабилизаторе полета FMA. Принцип основан на разнице температур неба и земли. В не облачную погоду температура земли на несколько десятков градусов больше чем температура неба.
paparazzi.enac.fr/wiki/Infrared_Sensors
Минусы - невозможны или затруднены полеты в туман, в облачность и меж деревьями,строениями и прочем.
Плюсы - нет дрейфа. Математика - проста.
у меня на платках по 16 оба кварца (328 и 1280 процы)
при таких включениях мк вроди как должны тактоваться синхромно … с ножки xtal2 ведущего на xtal 1 ведомого
- какието танцы с бубном вокруг fuse bits …
связывал atmega1280 + atmega32 пока незделал с одного кварца нивкакую …
хз, может я че не так делаю, но работает нормально - сообщения с одного контроллера на другой адекватно льються, может во время дальнейших экспериментов баги полезут… + я точно так же GPS подсоединял (blog.sovgvd.info/…/arduino-gps-holux-m-1000.html) - там то такты тем более не синхронизированы никак, но всеравно всё работает
Олег, а какие еще ОСД поддерживают твою фичу?
Я проверял на ИглТри и уверен в нем. Про другие выдумывать не буду (а их куча разных еще есть). Но если попадется на глаза ОСД, умеющий работать с горизонтом FMA без Z-сенсора, то с ним этот прикол тоже пройдет.
Обнаружил в Мультивие косяк в режиме автоуровня: если коптер стоит слегка неровно с запущенными винтами какое-то время, то при даче газа он подскакивает со стороны перекоса, как ужаленный. И чем дольше, тем хуже. Может мгновенно перевернуться.
Если активировать движки сразу перед взлетом, такого не происходит. Типа как будто накапливается I-составляющая ПИДа, при невозможности воздействия.
По идее, в режиме IDLE, когда мультивий движками не маневрирует принципиально (минимальный газ), не стоило бы обновлять ПИДы! Как бы до Алекс-париж докричаться? На форуме “там” по странице в час постят, уже плюнул следить.
кстатии для FPV чето инетерсное www.elenafrancesco.org/arduino/baroneosd/ - как я понял напрямую с ардуинки пихать циферки в PAL сигнал, без шилдов даже - еще одна штука, которо можно нагрузить лишнее ядро
А графическую информацию как ардуинка, осилит? Чтобы как у Олега горизонт был.
ну это я так… мечтаю, графику можно осилить (там в коде цифры битовыми масками идут), но гемора много и не факт что еще одно ядро не надо будет впиливать… но хотя бы циферки какие нибудь или как в старых добрых играх:
| _ |
| _ - |
| _ o |
| _ - |
косяк в режиме автоуровня
Вот Алекс жулик! при подаче мин. газа он принудительно дает мин. газ на регули, а ПИДы продолжают работать и неумолимо накручивают “усилие” на моторы, чтобы скомпенсировать перекос. Как бы натягивают тетиву лука.
В итоге, при включении газа из ждущего в рабочий, коптер “выстреливает” одной стороной. А я голову ломаю, чего на видео столько переворотов прямо с места!
Сейчас это можно обойти, взлетая в режиме гир и включая стабилизацию только в полете. Но не для того я чаку покупал111 😁
Буду думать дальше.
Зловредный участок кода привожу:
if ((rcData[THROTTLE]) < MINCHECK)
#ifndef MOTOR_STOP
motor[i] = MINTHROTTLE;
#else
motor[i] = MINCOMMAND;
#endif
Вот Алекс жулик! при подаче мин. газа он принудительно дает мин. газ на регули, а ПИДы продолжают работать и неумолимо накручивают “усилие” на моторы
Это в версии 1.7
при подаче мин. газа он принудительно дает мин. газ на регули, а ПИДы продолжают работать
if ((rcData[THROTTLE]) < MINCHECK)
#ifndef MOTOR_STOP
motor[i] = MINTHROTTLE;
MINCOMMAND = 0; // ??
#else
motor[i] = MINCOMMAND;
#endif
не тут, все гораздо хуже.
MINCOMMAND это дефайн 😃
=== added
Вот, нашел решение, работает отлично :
delta = gyroData[axis] - lastGyro[axis];
DTerm = (delta1[axis]+delta2[axis]+delta+1)*dynD8[axis]/3;
delta2[axis] = delta1[axis];
delta1[axis] = delta;
lastGyro[axis] = gyroData[axis];if ((rcData[THROTTLE]) < MINCHECK) errorAngleI[axis]=0; // prevents side jump during the transition from idle when in autolevel mode
axisPID[axis] = PTerm + ITerm - DTerm;
Переход к выравниванию стал очень плавный.
Может кто подскажет что за мозги?
Может кто подскажет что за мозги?
Видно-же (1:06), что 2 ардуинки стоят.
Вернулся с облета в зале. Это что-то. В первый раз управлял чем-то подобным.
Да, оно стабильное, оно висит и держит положение. Но оно скользит и вращается! А не совсем умный афтар поста совершенно не умеет управлять аппаратами вертолетного типа. Какой ручкой куда тыркать? Рефлекисов нет 😃
С другой стороны, сколько я его сегодня бил обо все что можно, с вертолетом можно было бы попрощаться. А тут на середине второго пака у сервомашинки шестерню срезало (у меня ремкомплектов кучка на такое дело).
Словом, впечатления противоречивые. С черной завистью кошусь на Warthox’а 😦
Ну вот, что с ЭТИМ делать?
Олег, поздравляю 😃
- Крутится он так не должен, надо триммировать.
- Я бы резко убавил расходы на первое время на аппе (вертолетный режим, половинчатые расходы, кривая газа наша всё).
- Подлететь надо минимум на метр, ты просто не узнаешь коптер.
А вообще, за давно забытый гул dtшек спасибо. Так я и не доделаю видимо свой на эти праздники… женщины и дети это святое 😃
Ну вот, что с ЭТИМ делать?
- Сверхчувствительность гироскопа - пару страниц назад уже решили проблему
- ПИД-коэффициенты слишком большие, на мой взгляд, для такого размера коптера. У меня длина лучей 43 см - с П=4 его колбасило как г. в проруби. Уменьшал до П=2. С и и Д буду экспериментировать, когда сделаю качельки.
надо триммировать
причем, программно, вроде, нужно?? Пульт не трогать! “How to trim” на рц-групс писали.
Я бы резко убавил расходы на первое время на аппе (вертолетный режим, половинчатые расходы, кривая газа наша всё).
А я на Акро летаю, в конфиге поставил RC_rate= 0.5 RC_expo= 0.8 Pitch\roll\yaw_rate=0, коптер стал плюшевый и туповатый.
----
Вчера крутило в режиме ауто_левел, оказалось, что виноваты вибрации от пропеллеров. Балансировать нужно не только моторы и пропы отдельно, но и готовую сборку, отметив положение винта относительно ротора. Кусочек скотча на пропе резко изменил ситуацию - коптер висит в воздухе, медленно уплывая в стороны. Особенно плохо было, когда вибрировал задний мотор - он него серва сходила с ума и начинала сама дрожать, винт менял угол - в итоге, все шло вразнос.
причем, программно, вроде, нужно?? Пульт не трогать! “How to trim” на рц-групс писали.
Я лучше про трикоптеры помолчу со своими советами 😃 Я квадрик именно пультом оттриммировал.
А я на Акро летаю, в конфиге поставил RC_rate= 0.5 RC_expo= 0.8 Pitch\roll\yaw_rate=0, коптер стал плюшевый и туповатый.
Или так, мне просто половинные расходы нужны для режима видеосьемки и с пульта удобнее.
- Сверхчувствительность гироскопа - пару страниц назад уже решили проблему
Ткните носом, где это?
Нашел вот это. Но куда его вставлять?
gyroADC[PITCH] = - ( ((rawADC_WMP[4]>>2)<<8) + rawADC_WMP[1] )/3;
gyroADC[ROLL] = - ( ((rawADC_WMP[5]>>2)<<8) + rawADC_WMP[2] )/3;
gyroADC[YAW] = - ( ((rawADC_WMP[3]>>2)<<8) + rawADC_WMP[0] )/3;
- ПИД-коэффициенты слишком большие, на мой взгляд, для такого размера коптера. У меня длина лучей 43 см
Так у меня каждый луч, где-то 40-42.
Даю газ около 1500 - винты бешено крутятся (трикоптер летит вверх), при резком дергании стиков или резком наклоне коптера глохнет мотор, который должен был увеличить обороты. В режиме стабилизации трикоптер стабильно клонится “Roll” на одну сторону пропорционально изменению Throttle.
Регули HK SS 18-20 не программируемые, выставлены на ЛиПо без тормоза. ПИД настроен так, что коптер не раскачивается, а почти без перерегулирования возвращается в положение.
Пфф…забыл: Freeduino 2009 = Duelmilanove. Прошивка 1.6 WMP + BMA020, моторы Turnigy 2830 1050kV, пропы 9*3.8, длина лучей 43 см.