MultiWii
Их менять не нужно!
Сравниваем платы FreeIMU v0.1
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = Z;}
и SEN-10321 (Алекс у тебя вроде эта плата?). Отличаются тем что магнитометр на sparkfun плате повернут на 90 градусов по часовой стрелки. Значит X и Y поменяются местами и будет
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X; magADC[YAW] = Z;}
Хотя не уверен в знаках у X и Y, пространственного воображения не хватает.
Насчет показаний +500, -500 многие жаловались, притом и на 43 и на 83. Даташит на HMC5843 не смотрел, а в HMC5883-м рекомендуют ставит конденсаторы обвязки с малым ESR (ориентировочно можно определить по размерам , чем меньше корпус - тем больше ESR).
Напряжение на выводе кардуино +5В (4)?
Катод с анодом диода не перепутал?
Где перепутал? на выходе 4.39 В
Это массив данных со всех датчиков? Или на каждый датчик отдельный массив?
Сравниваем платы FreeIMU v0.1
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = Z;}
и SEN-10321 (Алекс у тебя вроде эта плата?). Отличаются тем что магнитометр на sparkfun плате повернут на 90 градусов по часовой стрелки. Значит X и Y поменяются местами и будет
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X; magADC[YAW] = Z;}
Хотя не уверен в знаках у X и Y, пространственного воображения не хватает.
Насчет показаний +500, -500 многие жаловались, притом и на 43 и на 83. Даташит на HMC5843 не смотрел, а в HMC5883-м рекомендуют ставит конденсаторы обвязки с малым ESR (ориентировочно можно определить по размерам , чем меньше корпус - тем больше ESR).
У меня именно эта плата. Если Вы обратили внимание, в моем посте на предыдущей странице указана именно такая ориентация. Это я сообразил, сравнил фото плат и сразу выставил. Причем пробовал и {magADC[ROLL] = -Y, и {magADC[ROLL] = Y. Не меняется поведение магнитометра. Кстати, ± 500 показывает далеко не всегда. примерно в половине случаев показания близки к нулевым. Причем никак не связано ни с какими событиями. Хочет так показывает и тогда на графике частокол, хочет по другому, тогда график хоть в эталон выставляй! У меня смутные подозорения, что нужно попробовать конвертер уровней поставить. Закажу микросхему PCA9306 и попробую.
Где перепутал? на выходе 4.39 В
Похоже не хватает напряжения для запуска меги. Для 16 МГц нужно не менее 4,5 В (у меня при питании от USB 4,65 В)
По даташиту SS14 падение напряжения при токе меньше 1 А должно быть менее 0,5 В (5-0,5=4,5 В укладываемся в норму).
У тебя получается меньше. Учитывая что сильно греется FT232RL похоже вылетел не только диод.
подключи с БЕКа +5V к пину Кардуины +5V, а минус к GND
возможно просто стаб внутренний у кардуины накрылся
Так к слову 😃
Посмотрел тут проект CopterControl/OpenPilot. Датчики примерно те же что и в MultiWiil. Процессор по-мощнее конечно. Но насколько же отличается софт и схема!
Софт сделан четко профессионально, модульно, с документацией и тестами.
Плата - тут я не специалист но размер 35 на 35 мм на все говорит о чем-то 😃
Схема - отдельные стабилизаторы 3.3V на все а не один общий как в MultiWii. Фильтры по питанию грамонтные. Диоды защитные стоят. Предохранитель, дроссели и т.д.
Теперь думаю как перетащить какие схемные решения в MultiWii…
Кстати, они рекомендуют только один сигнальный провод подключать от непитающих регуляторов - чтобы не было земляных петель и самовозбуждения BECов.
Еще там весьма вразумительная статья по настройке ПИДов.
А кто пробовал 626-ю прошивку, на 607 прекрасно летает.
зеленая WMP, которую считают мегачувствительной
Выпиленный чип возбуждается и идет в разнос: 1. когда полежит в покое; 2.при питании от 5В. Я использовал LLC 5-3.3В и питал чип от 3.3В, сверхчувствительность не проявлялась.
Выпиленный чип возбуждается и идет в разнос: 1. когда полежит в покое; 2.при питании от 5В. Я использовал LLC 5-3.3В и питал чип от 3.3В, сверхчувствительность не проявлялась.
Картинка при быстром движении WMP сделана.
Но у меня чип в покое и при питании от 5В нормально работает и ровные горизонтальнеы линии рисует. Сверхчувствительности не проявляет. Вот поэтому и терзает сомнение, что я что-то не так подключил 😃
PS: Схема подключения на фото. Дорожки где нужно резал.
Схема подключения на фото. Дорожки где нужно резал
всё правильно, при таком подключении питать нужно 5в , на чипе при этом должно быть 2.8в
А кто пробовал 626-ю прошивку, на 607 прекрасно летает.
Сегодня поставил прошу 626 раз нет никого. В левел понравилось, компас тоже работает хорошо и по моему он себя на спуске стал на много лучше вести, не трясет.
Правда долго не летал, всего две батареи, но быстрые подъемы и спуски пробовал, рол пич по кругу гонял не переворачивает, и с разгоном над землей летает нормально.
P.S. ГУИ стал работать быстрее.
Похоже попробовали для показаний барометра использовать интерполяцию.
Барометр чет ни как не дойдет.
wbb.multiwii.com/viewtopic.php?f=7&t=363&start=30
Инструкция по настройке пидов для удержания высоты.
Похоже ziss_dm становиться главным локомотивом развития Wii.
Ура заработало,порезал дорожки на Вимоушене подпаялся как на фото и понеслась:),подключил регули,моторы.Стартанул,покрутил винтами,остальное завтра.
Новая плата от Пана Jakuba, все в одном за 104 евро. sexycopter.myshopify.com/collections/…/mwii01
Можно настраивать без компьютера (пиды можно настроить с помошью потенциометров)
Я тут решил разобраться с ПИД параметрами, настройкой, реализациями и т.д. Надоело “слепым котенком” параметры тягать…
Кто нить в реализацию ПИД-регуля втрыркал?! У них там походу крейзи-микс полный 😃
В вие в стаб. моде измеряемой величиной является угол (ролл, питч), который приводится к “требуемому” углу (значение пропорциональное отклонениям стиков)… т.е. с этим все ок…
Бред первый: на левел-“П” составляющую накладывается значение гиры помноженное на акро-“П”. Далеко от классики ПИД регулей однако! Учитывая, что показания гиры - это угловая скорость, то для стаб мода это еще сошло бы за “Д” параметр (принимая отклонение стика в квант времени постоянным), т.е. дифференциал изменения угла (или угловая скорость по сути).
На заметку по настройке: акро-“П” влияет на стаб мод.
Бред второй: за “Д” они принимают дифференциал угловой скорости - т.е. угловое ускорение, как для акро так и для стаб.мода., а должен быть на крайняк дифференциал изменения угла - т.е. угловая скорость… Вывел графики ПИД-ов в ГУИ, занулил “П” и “И”, так и есть “Д” у них - это угловое ускорение… В итоге по теории это может привести лишь к лишним осциляциям, т.к. это добавит компенсацию/всплеск не только в нужную полярность, а также и в противоположную…
На заметку по настройке: акро-“Д” влияет на стаб мод.
//**** PITCH & ROLL & YAW PID ****
for(axis=0;axis<3;axis++) {
if (accMode == 1 && axis<2 ) { //LEVEL MODE
errorAngle = rcCommand[axis] - angle[axis]; //500+180 = 680: 16 bits is ok here
PTerm = errorAngle*(P8[PIDLEVEL]/10)/10 ; //680*20 = 13600: 16 bits is ok here
errorAngleI[axis] += errorAngle; //16 bits is ok here
errorAngleI[axis] = constrain(errorAngleI[axis],-10000,+10000); //WindUp //16 bits is ok here
ITerm = (int32_t)errorAngleI[axis]*I8[PIDLEVEL]/4000; //32 bits is needed for calculation:10000*I8 could exceed 32768 16 bits is ok for result
} else { //ACRO MODE or YAW axis
error = (int32_t)rcCommand[axis]*10*8/P8[axis] - gyroData[axis]; //32 bits is needed for calculation: 500*10*8 = 40000 16 bits is ok for result if P>2
PTerm = rcCommand[axis];
errorGyroI[axis] += error; //16 bits is ok here
errorGyroI[axis] = constrain(errorGyroI[axis],-16000,+16000); //WindUp //16 bits is ok here
if (abs(gyroData[axis])>640) errorGyroI[axis] = 0;
ITerm = (int32_t)errorGyroI[axis]*I8[axis]/1000/8; //32 bits is needed for calculation: 16000*I8 16 bits is ok for result
}
PTerm -= (int32_t)gyroData[axis]*dynP8[axis]/10/8; //32 bits is needed for calculation 16 bits is ok for result
delta = gyroData[axis] - lastGyro[axis]; //16 bits is ok here, because the dif between 2 consecutive gyro reads is limited
DTerm = (delta1[axis]+delta2[axis]+delta+1)*dynD8[axis]/3/8; //16 bits is ok here
delta2[axis] = delta1[axis];
delta1[axis] = delta;
lastGyro[axis] = gyroData[axis];
axisPID[axis] = PTerm + ITerm - DTerm;
}
Кроче я не называл бы вишный регулятор ПИД-регулятором, а скорее просто ВИИ-регулятор 😃
Возможно на практике это и имеет смысл, но в теории бред полный. Кто нить пытался разбираться?
Есть большое желание переписать ПИД-регуль, потому скорее всего буду писать в вишную ветку с идеей наведения порядку и выделения отдельных параметров для стаб. мода…
Материалы которы помогли понять магию ПИД:
ПИД регулирование (ПИД регулятор) на практических примерах или, - PID Not for PhD - Alex Demyanenko - либо ПИД-регуль на примере сливного бачка! 😃
pidcontrol.narod.ru
www.rcgroups.com/forums/showthread.php?t=1375728
www.rcgroups.com/forums/showpost.php?p=17215161&po…
Ох Саш, опять тебя забанят, теперь за раскрытие страшных тайн 😃)
Новая плата от Пана Jakuba, все в одном за 104 евро. sexycopter.myshopify.com/col...roducts/mwii01 Можно настраивать без компьютера (пиды можно настроить с помошью потенциометров)
кому это нужно за эти деньги, коптерконтрол теже деньги стоит…
Hi mahowik,
Думаю надо-бы еще почитать 😉
- Про типы контроллеров A,B,C bestune.50megs.com/typeABC.htm (Этот B )
- Про каскадные пид контроллеры en.wikipedia.org/wiki/PID_controller#Cascade_contr…
- Про веcовые коэфициенты ошибки…
Так-что все по науке… Только сечас пираты идею стянут… 😉