MultiWii
Попробуем…
ILEVEL8 это тысячные от 0 до 0.255
Процедурка от Глеба очень полезная в нашем случае.
Нижеуказанное вставить перед просчетом level PID после этого:
//**** PITCH & ROLL & YAW PID ****
#define i_zero 1300 // мин. уровень крутилки для I=0 (макс пусть будет 2000)
#define ilevel_max 56 // макс уровень level I
if (rcData[YAW]>=i_zero)
ILEVEL8=custommap(rc_data,i_zero,2000,0,ilevel_max);
else ILEVEL8=0;
Ну вот, обогнали… 😦
Ага, нафлудили вон скока пока я сексом занимался с нунчаком, пойду в разрез публике- Мулти вии с нунчаком-гуано и маст дай!!! но с гирой-ласковый и предсказуемый аппарат 😃
Вкратце-протрахался ВСЮ прошлую неделю! Дергается коптер как паралитик!!Причем настройкиPID особо не сильно влияли на эту колбасню! ЧТо я тока не делал, три бубна пробил до дыр,прошивал-перепрошивал всеми прошивками, расхерачил руку до крови, на обоях теперь следы от пропеллеров, на паркете следы от валов и цанг пропеллеров, в минусе куча времени, нервов и бабла потраченного на дополнительные мозги, регули и моторы(на которые я грешил по очереди) плюсе-ТРИ коптера собранные в процессе околонаучных экспериментов которые впрочем ни один нормально не полетели до тех пор пока я не отпаял и не выкинул нах нунчак этот гребаный!!! кароче похоже что с циклом больше 3000-4000 коптер нормально не летит а чтоб добиться такого цикла на безмозглой нано/мини ардуине нужен аксель отдельный но никак не нунчак, не оно конечно летит и висит но при подпаяном нунчаке все равно присутствуют мелкие непредсказуемые подергивания и рывки(даже с отключеной стабилизацией)
Теперь я понял почему Warthox летает только с гирами без нунчаков
if (rcData[YAW]>=i_zero) ILEVEL8=custommap(rc_data,i_zero,2000,0,ilevel_max); else ILEVEL8=0;
Олег, почему rcData[YAW]?
Вот кусок кода pretor:
//**** PITCH & ROLL & YAW PID ****
for(axis=0;axis<3;axis++) {
if (accMode == 1 && axis<2 ) { //LEVEL MODE
errorAngle = rcCommand[axis]/2 - angle[axis]/2;
PTerm = (errorAngle)*PLEVEL8/50 - gyroData[axis]*dynP8[axis]/10;errorAngleI[axis] += errorAngle;
errorAngleI[axis] = constrain(errorAngleI[axis],-5000,+5000); //WindUp
ITerm = errorAngleI[axis] *ILEVEL8/2000;
Нам же надо вмешаться в Iterm, нет?
ааа тьфу11111 перепутал с AUX1 (или 2)
Вмешиваться именно в ILEVEL8
код втыкать между //**** PITCH & ROLL & YAW PID ****
и for(axis=0;axis<3;axis++)
В Гуи поубирать галочки, чтобы выделенным каналом ничего другого не включалось.
Олег, ну ты крут 😃 Буду сегодня пробывать вечером!
А у меня и нет пока ничего другого, это Алил у нас закупился сенсорами по самые небалуйся 😃
это Алил у нас закупился сенсорами по самые небалуйся
У меня только 1 плата с сенсорами ❗ 😆
(3 заказанных мною акселя от Норберта еще не дошли)
У меня уже был опыт получения безтрековой посылки через 3 месяца, т.что еще жду (то же самое относится к Вийю от дилэкстрим)
А с 3205 кто либо нормально полетел ?
Пара есть - а делать плату под них или нет - решаю .
А кто как крепит между собой нунчак и моушен плюс? вопрос к тем у кого дергается.
Сегодня наконец-то заберу регуль и запущу своего малыша))))
У мну связка нунчак+MP на прошлом коптере нормально работала… Если и эта будет работать, то буду думать что мне помогают сторонние силы))))))
А кто как крепит между собой нунчак и моушен плюс?
Я их спаял один над другим и склеил термоклеем
Если и эта будет работать, то буду думать что мне помогают сторонние силы)))))
Я вот вчера уже начал думать что мне мешаю потусторонние как раз 😃
Димка не сцать, нормально с нунчаком летать должно, позвонил бы, решили что там у тя не летает.
вопрос к остальным- все что то улучшают прошивки улучшают, а никто не выкладывает промежуточные готовые результаты
Вот решился написать. Прочитал всю тему начиная с трикоптера. Все собрал, настроил. Но мне кажется можно выжать большего. Обратите внимание на видео, небольшая болтанка, может я где-то проглядел, это излечимо?
И вот ещё! В ходе настройки и прыганья приложил аппарат об пол, немного выгнул держатель мотора или как его назвать. Решил попробовать установить все двигатели таким образом. Каракатица стала на порядок устойчивей!
Вот такую “Маму” развел себе, кому надо пользуйтесь.
Размеры 59х59мм
В архиве небольшой ридмик.
Сделана под Arduino Nano V3.0 + Wii + BMA-020, в принципе ставить можно что угодно, i2C пины есть, остальное дело фантазии.
Пойду “фаршировать” 😇
А с 3205 кто либо нормально полетел ?
Я полетел на 3205 синей плате с дилэкстрима… Правда пока настраивал переломал все пропы, так что теперь курю до новой поставки 😉
все что то улучшают прошивки улучшают
я свое выкладывал…
а никто не выкладывает промежуточные готовые результаты
Воть именно. “Оффициальную” все ждут, а вот что-б выложить свои наработки, которые, потом входят в оффициальную… нетю.
Syberian, Вы, ТАМ, типа, друх.
Олег, код не рабочий,
ILEVEL8 восмиричное, на custommap ругается что не определена, сегодня прям с ног валюсь, завтра буду разбираться…
Парни, не стыдно вам? все улучшения в ветке проскакивают, никто ничего не скрывает.
кустомап Глеб выложил в качве процедуры на прошлой странице. Чем она отличается от стандартной, так и не понял. Замени название вместо custommap поставь map
Чтобы долго не тупил 😁 вот переделанный код
//**** PITCH & ROLL & YAW PID ****
#define i_zero 1300 // мин. уровень крутилки для I=0 (макс пусть будет 2000)
#define ilevel_max 56 // макс уровень level I
if (rcData[AUX1]>=i_zero)
ILEVEL8=map(rcData[AUX1],i_zero,2000,0,ilevel_max);
else ILEVEL8=0;
Чем она отличается от стандартной, так и не понял
типом возвращаемого значения, обычная map вроде бы только целочисленные значения, а своё переопределение long
Короче, я, как всегда, подолбил его об пол и плюнул. Не летит, ага, мультивий ацтой, датчики - клоны, коптеры - г****. Потом приехал знакомый вертолетчик “и тут такое началось” (с)
Олег, да какой из меня вертолетчик ?! Просто я уже привык на них летать наверное. И ОНО не моё было, поэтому не страшно. Да и устал уже бояться, надо лететь 😃 Чего и тебе советую.
А управление, действительно, адекватное, мягкое. Вот только бы его того… ну ты знаеш. Не будем тут 😃
Я не знаю откуда ГЛеб взял этот кастоммап, короче вот рабочий код
//**** PITCH & ROLL & YAW PID ****
#define AUX1_MIN 1200 // мин. уровень крутилки для I=0 (макс пусть будет 1916)
#define ILEVEL_MAX 56 // макс уровень level Iif (((rcData[AUX1]>=AUX1_MIN) || (failsafeCnt > 5*FAILSAVE_DELAY)) && (nunchukPresent == 1 || accPresent == 1)) {
ILEVEL8=map(rcData[AUX1],AUX1_MIN,1916,0,ILEVEL_MAX);
accMode = 1;
} else {
ILEVEL8=0; accMode = 0;
}
Только почемуто в ГУИ не отображается что stable mode включается, хотя он реально включается и I у автолевела меняется как надо.
Вот теперь кручу я ручку и как только значение I (чтобы его посмотреть надо нажать кнопку READ) становится больше .01 все правые моторы растут относительно левых процентов на 20-30, зачем это сделано?
Вот только бы его того… ну ты знаеш. Не будем тут 😃
Вы че там задумали неладное? 😃)
зачем это сделано
Это логическая бомба в коде. У нерадивых пользователей во время полета коптер переворачивается вверх шасси и дает 100% газа =)
У меня в разных версиях “росли” разные моторы. В 1.7 претер обороты больше на левых, в 1.7пре(вроде она) на правых. Всё происходит даже при автолевел=0. В ГУИ видно, как полосочки начинают менять высоту.