Crius Hobby MultiWii
Обновил статью, совместно с mahowik (Александром) мы разобрались как включить авто определение GPS
Подключаем GPS к MiltiWII CRUIS SE С АВТОМАТИЧЕСКИМ ОПРЕДЕЛЕНИЕМ
но лучше сделать обвес и повесить батарейку, полезно будет
aliexpress.com/…/562113986-100-NEW-MediaTek-MT3329…
вот я так понимаю с обвесом и батарейкой ? или имеется ввиду питание отдельное ввиду большого потребления ?
Ага только в этом модуле походу еще и LLC собран, поэтому можно коyнектить к 5 вольтовым уровням ttl
здравствуйте, а подскажите, может кто сталкивался с такой проблемой - в гуи периодически слетает все. по ftdi переходнику видно, что данные идут, а на компе серый экран и все, перезагрузка гуи все налаживает, но на необъяснимое время - может работать несколько минут, может вылететь за 10 сек. стоит семерка 32 бита. уже заколебался та отстраивать плату - невозможно работать
стоит семерка 32 бита
Попробуйте Windows XP mode - в виртуалке т.е., я так делал, потому как на win7 64 у меня утилита конфигурирования так и не запустилась
Попробуйте Windows XP mode - в виртуалке т.е., я так делал, потому как на win7 64 у меня утилита конфигурирования так и не запустилась
режим совместимости пробовал, с правами админа тоже - никакой разницы
режим совместимости пробовал, с правами админа тоже - никакой разницы
www.oszone.net/10415/XP_Mode я про это.
Продолжаю настройку пид, изменил миксы на гексе как писал mahowik,
#ifdef HEX6X
motor[0] = PIDMIX(-1/2,+9/10,+1); //REAR_R
motor[1] = PIDMIX(-1/2,-9/10,+1); //FRONT_R
motor[2] = PIDMIX(+1/2,+9/10,-1); //REAR_L
motor[3] = PIDMIX(+1/2,-9/10,-1); //FRONT_L
motor[4] = PIDMIX(-1 ,+0 ,-1); //RIGHT
motor[5] = PIDMIX(+1 ,+0 ,+1); //LEFT
короче питч и ролл практически уровнялись, но разность все же еще есть, например если про ролл стоит P7 то по питч нужно ставить P11 но это уже не P18 как было на стандартных миксах, я попробовал натянуть максимально P по ролл и питч, а пере компенсацию убрал уменьшив D.
таким образом у меня получилось
roll 15 - 0.020- 100
pitch 17- 0.020- 100
в акро ведет себя также как и в левел, только в левел на стики реагирует намного быстрей
вот что получилось, попробовал вентилятором имитировать ветер, так он его даж не заметил))))
Знаешь Сань, ты был прав, американцы молодцы, они ценят любой труд. Как минимум спасибо скажут, а наши привыкли к халяве, так еще глупыми вопросами закидают. Извините за оффтоп, но я надеюсь поймут люди про что я говорю!
ндаа… иногда печальна…
Миша, я думаю, не стоит обижаться. Конечно, неприятно, что такая работа оценена в три “спасибо”, но большинство просто не въехало, что это шаг этапный, открывающий совсем другие перспективы.
По сути, Вы копеечным криусом утерли нос амбициозным NAZA`м и проч., сэкономив и так небольшие народные денюшки.
чего то я пропустил кто и на что обижается =) если про 2.0 a0, то только на ней летаю и проблем не испытываю, так что респект и уважуха
У меня коптер полетел без танцев с бубнами только на прошивке 2.0 a0, (немного поиграв с пидами)
Большое человеческое спасибо Алексею и Александру!
попробовал вентилятором имитировать ветер, так он его даж не заметил
Хороший тест, отлично можно настроить до полетов, но если коптер для снимать видео без тестов в поле не обойтись.
таким образом у меня получилось
roll 15 - 0.020- 100
pitch 17- 0.020- 100
А LEVEL какие у Вас пиды, вроде они тоже влияют.
Сегодня ветер дует 4-5 метров, спецом вытащил гексу на поле с нетбуком, отстроил пиды, получилось так
roll 17 - 0.020- 40
pitch 19- 0.040- 60
летает практически идеально, немного потряхивает в момент сильных порывов ветра. Так вот, на борту стояла гопрошка на подвесе и писала,
те движения которые делал стиками подвес отрабатывает отлично, а вот потряхивания от ветра подвес отрабатывать не успевает,
и по записи с борта трясло чаще чем было видно со стороны, нужно тоже попробовать патч на гексу от mahowik и крутить пиды заново.
Михаил, касательно этого модуля, LLC на борту это хорошо, к CRIUS подцепится без доработок, можно его брать?
upd: по поводу альтернативных прошивок, сейчас летаю исключительно на MultiWii2_0_alexmos_r23 т.к. летает хорошо и отлично работает сонар, до этого летал исключительно на MultiWii_1_9_a2 - на этой прошивке впервые увидел адекватно работающий баро, так что респект и уважуха Алексею и Александру ака alexmos и mahowik.
ну уменя не много другой модуль. но сейчас ремзиби уже такие не делает с ставит модули как показали вы, лично у меня стоит без всяких доработок, пока работает нормально.
на борту стояла гопрошка
может кинули бы видос посмотреть, я сейчас борюсь именно с мелкими поддергиваниями, так как подвес не сможет это убрать по любому, а картинку портит прилично, поэтому я натянул пиды на максимум, терь осталось протестить это дело
я сейчас борюсь именно с мелкими поддергиваниями, так как подвес не сможет это убрать по любому, а картинку портит прилично, поэтому я натянул пиды на максимум, терь осталось протестить это дело
Такая тонкая настройка сильно завсисит от регулей. У меня стояли RC Timer 10A, коптер вел себя очень четко, и пиды настроить было вообще не проблема (коптер отлично висел с ПИД в очень широком диапазоне). Но т.к. они сбоили часто, поменял их на регули HK BluSeries 12A - началсь вот такие подергивания как у вас, и пидами не убирается. Проблема в том, что для преодоления LPF-фильтра в регулях, надо повышать D-часть. Но при этом мозг становится очень чувствителен к вибрациям и высокий D работает во вред. По опыту людей, перепрошивка регулей кардинально меняет их работу, может и вам поможет.
надо повышать D-часть
А она же отрициательная в ВИЙ и наоборот “успокаивает”, в чем наколка?
По сути, Вы копеечным криусом утерли нос амбициозным NAZA`м и проч.
Давайте не будем сравнивать назу и вий… две большие разнины 😃
А она же отрициательная в ВИЙ и наоборот “успокаивает”, в чем наколка?
Ну в идеальном мире так и было бы. Но в реальности - D-часть это производная показаний гироскопа, и если он шумит - то его производная шумит на порядок сильнее. В итоге этот шум становится больше полезного вклада D-части, и моторы дергает сильнее чем стабилизирует. Почитайте про ПИД-регулирование, там это все описано.
ндаа… иногда печальна… upd: по поводу 2.0_а0
А что печально то?
Вчера исправил все выкосы моторов(в мелко размере это все же проблема). И идеально точно развесил коптер. На гирике висел в комнате 4х4(не трогая стика) пол минуты(даже с P 4.5 всего), я был уверен, что это с включенным акселем, а оказывается он не включился.
Еще раз понаблюдал подвешивая монетки, что бы его перевешивало. В итоге всегда занимает положение такое если б к центру давлений(если такой термин применим в данном случае) сделать жесткий кранштейн и за это место подвесить, что в общем - то логично. Т.е. подвесил 3 грамма, с пелечем 5 см. Он наклоняется на пару градусов и так и висит(с горизонтальной скоростью конечно) всегда. В общем накскоком это конечно не вылечить.
Но в реальности - D-часть это производная показаний гироскопа,
Это очевидно. Я не понял фразы - “увеличть D” что бы преодолеть LPF регуля.
Но при этом мозг становится очень чувствителен к вибрациям и высокий D работает во вред.
Ну в идеальном мире так и было бы. Но в реальности - D-часть это производная показаний гироскопа, и если он шумит - то его производная шумит на порядок сильнее. В итоге этот шум становится больше полезного вклада D-части, и моторы дергает сильнее чем стабилизирует. Почитайте про ПИД-регулирование, там это все описано.
Алексей совершенно прав, Д часть преумножает шум и так уже шумного сенсора, если мы имеем классик ПИД регуль с одинокой производной. Это ее свойство - т.е. возьмите разность шумных данных и на выходе получите белый шум 😃.
НО в частном случае (давайте на примере 2.0 версии) все чутка иначе и Д работает практически как в идеальном мире 😃 Дело не в какой нить одной феньке, а выстраданном практикой комплексном решении разработчиков вия:
- внутренний НЧ фильтр гиры 20/42/98гц режет паразитные вибрации моторов и шум самой гиры.
-
- НЧ фильтр на данные гиры в ИМУ
for (axis = 0; axis < 3; axis++)
gyroADCp[axis] = gyroADC[axis];
timeInterleave=micros();
annexCode();
if ((micros()-timeInterleave)>650) {
annex650_overrun_count++;
} else {
while((micros()-timeInterleave)<650) ; //empirical, interleaving delay between 2 consecutive reads
}
#if GYRO
Gyro_getADC();
#else
WMP_getRawADC();
#endif
for (axis = 0; axis < 3; axis++) {
gyroADCinter[axis] = gyroADC[axis]+gyroADCp[axis];
// empirical, we take a weighted value of the current and the previous values
gyroData[axis] = (gyroADCinter[axis]+gyroADCprevious[axis]+1)/3;
gyroADCprevious[axis] = gyroADCinter[axis]/2;
if (!ACC) accADC[axis]=0;
}
- в конечном ПИД регуле берется не просто производная, а усреднение последних 3-х производных, т.е. считай еще + один НЧ фильтр
delta = gyroData[axis] - lastGyro[axis]; // 16 bits is ok here, the dif between 2 consecutive gyro reads is limited to 800
lastGyro[axis] = gyroData[axis];
deltaSum = delta1[axis]+delta2[axis]+delta;
delta2[axis] = delta1[axis];
delta1[axis] = delta;
if (abs(deltaSum)<640) DTerm = (deltaSum*dynD8[axis])>>5; // 16 bits is needed for calculation 640*50 = 32000 16 bits is ok for result
else DTerm = ((int32_t)deltaSum*dynD8[axis])>>5; // 32 bits is needed for calculation
Таким образом Д часть по гиро получается довольно чистой и совсем не шумной. И я получал только пользу от высокого Д в виде уменьшения скорости работы системы (добавления плавности), в диапазоне до 50-ти… 100-ню как Михаил не пробовал, т.к. на моем конфиге при Д=50 это уже даже не субмарина получалась, а жук в сметане 😃
Проблема в том, что для преодоления LPF-фильтра в регулях, надо повышать D-часть.
Я не понял фразы - “увеличть D” что бы преодолеть LPF регуля.
Я так понял Алексей говорил про синхронизацию скорости системы (посредством регулирования Д части) со скоростью отработки регулей, иначе будут осцилляции…
Таким образом Д часть по гиро получается довольно чистой и совсем не шумной. И я получал только пользу от высокого Д в виде уменьшения скорости работы системы (добавления плавности), в диапазоне до 50-ти… 100-ню как Михаил не пробовал, т.к. на моем конфиге при Д=50 это уже даже не субмарина получалась, а жук в сметане
У меня от D 40 и больше ничего не меняется. Пробовал и 100 тоже. Ни плавность не растет ни осциляции. Если D <30. Начинается перерегулирование и расколбас.
С кодом выше пробовал разбираться, смысл понятен 😃
Вообще мне казалось это наследие именно вийных “дачиков”. И с появлением внутреннего LPF надобность отпала. С какой версии интересно это место принципиально не менялось.
Я так понял Алексей говорил про синхронизацию скорости системы (посредством регулирования Д части) со скоростью отработки регулей, иначе будут осцилляции…
Я это понял как то, что у регулей на входе тоже LPF и регуль не все мелкие управляющие воздействия принимает, но не понял подему D увеличивать, оно же еще “мельче” мелкие управляющие воздействия сделает. А как синхронизировать “скорость регулирования”(я так понял ты это имел ввиду) с мотором_с_регуляторм не зная оборотов мотора не понятно 😦.