MultiWii
направление по осям у акселерометра?
смотря какой аксель, но там везде есть 3 похожие строки:
accADC[ROLL] = - ((rawADC_ADXL345[3]<<8) | rawADC_ADXL345[2]);
accADC[PITCH] = ((rawADC_ADXL345[1]<<8) | rawADC_ADXL345[0]);
accADC[YAW] = - ((rawADC_ADXL345[5]<<8) | rawADC_ADXL345[4]);
тут и меняется
ползунки моторов скачут уда хотят
лучше снять сам монитор, как там график? как гиры скачут? какие PIDы?
Предлагаю коротенькое видео своего пепелаца, только как назло, днем все отлично летало без осцилляций( надо было сразу видео снимать, а я залетался и решил потом…) , а после разобрал чтоб впихнуть управление светодиодами от 13 пина по схеме ардуины, покрыл лаком тонкие провода от гиры и нунчака, после этого собрал, и появились вибрации…
Днем летал при P=6 даже намека не было, сейчас до 5 снизил и пробовал еще меньше, но коптер “плавать” начинает.
Фарш такой:
Движки: 2205C 1400Kv (перемотал, тяги на 10% добавилось при том же токе потребления, но меньшее KV не получилось:( )
Регули: HK-SS18A
Винты: 8x4
Аккум: 2200 3S
Схема: atmega168 на собственной плате, чака по аналогу прицеплена, гира ITG3205 включена по схеме ITG3200.
Вес: 530 г.
Летает квадрик, но не очень хорошо, винты балансировал, и вечером еще раз проверил, вроде норма. Нагружал катушкой припоя=200 г. летает более стабильно. как на улице будет еще не знаю. Буду искать что же произошло… может изза лака чтото не так стало, цапоном покрывал…
D менял от 5 до 40. разницы не заметил… в чем она должна проявится?
Забыл сказать, летал в режиме стабилизации.
Вот уже готова плата для MultiWii на Atmega328
с дополнительным питанием 3,3В для датчиков
Если интересует, то схема и разведенная плата в архиве
shema.zip
Буду искать что же произошло… может изза лака чтото не так стало, цапоном покрывал…
Некоторые глюки возможны из-за не качественных СМД компонентов,особенно конденсаторов.
лучше снять сам монитор, как там график? как гиры скачут? какие PIDы?
ближе не получается, все расплывается.
смысл в том что с пропами сильнее плавают моторы, без пропов, меньше но тоже плавают.
не может же быть чтоб без пропеллеров моторы так сильно вибрировали чтоб глючили гиры.
пид 3,2 стоит, может как то в скече чето занижать надо? вии+ синяя платка, какой там гирик не понять, надписи нечитаются никак.
Буду благодарен за советы.
ближе не получается, все расплывается.
я особо не посоветую, но у меня тоже скачет от вибрации, загрубил гиру, стало лучше, но в GUI затороможено коптер себе ведет (часть пути наклона проходит и потом медленно доплывает), отбалансировал моторы и поставил мозги на вспененую фигню в которой моторы пришли, стало еще лучше, но пока не летал (зато в GUI графики моторов почти не прыгают)
загрубил гиру
с этим подробнее пожалуйста, как это сделать
как это сделать
тут это уже раза 4 или 5 было, ищим код:
gyroADC[ROLL] = - ( ((rawADC_WMP[5]>>2)<<8) + rawADC_WMP[2] );
gyroADC[PITCH] = - ( ((rawADC_WMP[4]>>2)<<8) + rawADC_WMP[1] );
gyroADC[YAW] = - ( ((rawADC_WMP[3]>>2)<<8) + rawADC_WMP[0] );
делим значение на 2 4 6 и т.д. (в aeroquad прошивке вообще на 16 делят о_0)
gyroADC[ROLL] = - ( ((rawADC_WMP[5]>>2)<<8) + rawADC_WMP[2] )/2;
gyroADC[PITCH] = - ( ((rawADC_WMP[4]>>2)<<8) + rawADC_WMP[1] )/2;
gyroADC[YAW] = - ( ((rawADC_WMP[3]>>2)<<8) + rawADC_WMP[0] )/2;
от этого значения с гиры станут меньше и как бы пропадет чувствительность, НО имхо это неправильно - так как по сути делим скорость наклона… имхо правильнее было бы убирать последнюю циферку из значения и ставить вместо неё 0 или 5, тогда скорость остается та же, а мелкие значения ошибок убираются
Когда то собитал трикоптер по схеме с этого сайта: …blogspot.com/…/shrediquette-dlx.html
Хочется сделать квадрик и использовать ардуино, гироскопы и акселерометр, но вот самому никак не разобраться. Пробовал с того же сайта делать квадрик так не заводятся моторы. Платы рабочие, трикоптер летал. Может что посоветуете. Заранее благодарен.
от этого значения с гиры станут меньше и как бы пропадет чувствительность
поделил на 4 , брыкатся в ГУИ стал меньше, тока вот и летает как лист бумаги, пракчитески без гир
во во =) я же говорю данные неверные становятся, зато без шума… кстаии в гуи график GYRO как себе ведет (без загрубления датчика) при включенных моторах с пропами? в идеале должна так и оставаться ровная линия
в идеале должна так и оставаться ровная линия
неее, пляшет еще как. делиш чувствительность, пляшет меньше но и летит хуже.
в итоге разделил на 4 а ПИД поставил 10 , в итоге получил то же что и без деления но при ПИД 3,6
пляшет еще как
всегда пляшет? или при запуске моторов? если 1, то хреновая гира, если 2, то хреновая балансировка
если 2, то хреновая балансировка
второй вариант, но пляшет и без пропов, правда меньше.
КУК у меня летает вообще без балансировки, а тут секс целый с балансировкой, этот ВИИ собирает весь шум.
заказал плату с ибатора, которая с гирой 3200 аскелем, компасом и баро (надеюсь там такого секса не будет)
у меня вообще без изменения настроек по разному летает: в пятницу вечером было похоже на управляемый полет, в субботу утром нечто непонятное, но иногда можно было взлететь, вечером что с гирами, что с гирой + аксель - нереально было даже от земли оторвать, сразу кувыркался, в воскресение чуток подняться смог (I=0), но всеравно расколбас, как не меняй P… в общем жесть какая то =) смотришь видео на youtube, подрубают wmp (без акселя) и летает идеально (не верю я что там человек так ловко стики дергает, что борется с расколбасом и уплыванием) - завидую
видать надо быть программером как Siberian чтоб это чудо юдо полетело
не факт, скорее всего надо делать адекватную раму (прочная и легкая с гашением вибрации), балансировать моторы с пропами, ставить нормальные (не из дешевых клонов) датчики на виброизоляцию и понять как настроить PID для своего пепелаца =)
ну незнаю, есть у меня трикоптер на поляцкой раме с капитаном куком, плата с датчиками к раме прикручена БОЛТАМИ на мертво, гирики стоят 65% чувствительности, ни моторы 1050 кв, турниги ни винты GSW не балансировал
виимоушен у меня в квартире летает конечно, но хуже чем кук в таком исполнении, раз в пять.
трикоптер с куком и камерой на борту летает так
попробуй с таким кодом:
gyroADC[ROLL] = - int(( ((rawADC_WMP[5]>>2)<<8) + rawADC_WMP[2] )/123)*123;
gyroADC[PITCH] = - int(( ((rawADC_WMP[4]>>2)<<8) + rawADC_WMP[1] )/123)*123;
gyroADC[YAW] = - int(( ((rawADC_WMP[3]>>2)<<8) + rawADC_WMP[0] )/123)*123;
123 замени на 2 3 4 5 6 и т.д., пока то что надо не будет - тут будет загрубляться, но при этом скорость наклона будет оставаться адекватной
особо перебарщивать тоже не стоит… хз как код воспримет резкое изменение шага
UPD: еще нехорошее ощущение (поглядел дальше код), что это всё нужно сделать на самом деле тут:
gyroADC[ROLL] = (rawADC_WMP[3]&0x01) ? gyroADC[ROLL]/5 : gyroADC[ROLL] ; //the ratio 1/5 is not exactly the IDG600 or ISZ650 specification
gyroADC[PITCH] = (rawADC_WMP[4]&0x02)>>1 ? gyroADC[PITCH]/5 : gyroADC[PITCH] ; //we detect here the slow of fast mode WMP gyros values (see wiibrew for more details)
gyroADC[YAW] = (rawADC_WMP[3]&0x02)>>1 ? gyroADC[YAW]/5 : gyroADC[YAW] ;
Добавить ниже:
gyroADC[ROLL] = int(gyroADC[ROLL]/123)*123;
gyroADC[PITCH] = int(gyroADC[PITCH]/123)*123;
gyroADC[YAW] = int(gyroADC[YAW]/123)*123;
реально не тестил, так что на свой страх и риск =)
не могу поднять выше метра трикоптер, при полном газе он смог поднятся всего лиш на метр.
двигатели DT750 не выдают всю свою силу, при прямом подключении двигателя к приемнику же выдают
#define MAXTHROTTLE 1850 если увеличить это число будет ли больше тяги ?