MultiWii
Смотря что за платка. У меня помогла смена адреса 0x80 на 0x82 датчика на I2C шине (в 1.7 также менял ручками)
Алексей спасибо! Вы были правы.
Только
#if !defined(ITG3200_ADDRESS)
// #define ITG3200_ADDRESS 0XD0
#define ITG3200_ADDRESS 0XD2
#endif
Только теперь другая фигня вылезла - похоже датчики в зеркальном режиме как бы работать стали. В 1.7 все нормально было…
Я и так и так пробовал, только предварительноя в def.h в секции описания ALLINONE адрес ВМА180 прописал напрямую. Акселерометр вроде как работает, а гироскоп нет. в GUI все цифры на графиках GYRO ROLL, PITCH, YAW - все по нулям. магнитометр вроде тоже работает, но иногда вдруг у него “крышу сносит” и он начинает выдавать хаотические цыфры типа -5000,8000 и прочее. весь экран в вертикальных полосках. я его пока отключил, как и барометр
можно просто пин CLK Gyro кинуть на землю, адрес гиры поменять на
#define ITG3200_ADDRESS 0XD2
Кстати обрати внимание на дребез контактов между аливан и мозгами иногда из-за этого глючит сильно.
и еще надо инвертировать орентацию гиры в коде, но это в зависимости от прошивки какая версия?
У меня 1.8 тоже баро и компас пляшут, хз как их завести нормально
инвертировать орентацию гиры
в 1.8 это где меняется?
У меня 1.8 тоже баро и компас пляшут, хз как их завести нормально
Баро сразу работает. А компас 5883L - жуть! Пришлось сделать табличку и перебирать комбинации ±X±Y±Z, пока не стал адекватно показывать в конфигураторе.
в 1.8 это где меняется?
в файле Sensors.pde в самом верху
// ************************************************************************************************************
// board orientation and setup
// ************************************************************************************************************
//default board orientation
#if !defined(ACC_ORIENTATION)
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = X; accADC[PITCH] = Y; accADC[YAW] = Z;}
#endif
#if !defined(GYRO_ORIENTATION)
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = X; gyroADC[PITCH] = Y; gyroADC[YAW] = Z;}
#endif
#if !defined(MAG_ORIENTATION)
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = Z;}
#endif
А как здесь инвертировать действие по одной оси? Просто у меня ощущение, что после перепрошивки перед стал задом…
И еще отклик на изменение положения какой то вялый стал - резко наклоняешь а положение аппарата в гуи меняется очень медленно… и так же восстанавливается в исходное положение. Не может ли это быть связано с изменением адреса гиро на 0xd2?
И еще отклик на изменение положения какой то вялый стал - резко наклоняешь а положение аппарата в гуи меняется очень медленно… и так же восстанавливается в исходное положение.
100% problema v nepravilnoy orientacii osey… tut eto eje pisali mnogo raz, t.e. esli medlenno doplivaet smotrite osi
А как здесь инвертировать действие по одной оси?
esli nado k primeru X/ROLL os invertirovat, to tak: accADC[ROLL] = -X
a esli mestami X i Y osi to tak: accADC[ROLL] = Y; accADC[PITCH] = X;
Может конечно, ALLINONE разные бывают, но у меня помогли вот такие строки для 1.8:
Sensors.pde:
#if !defined(BMA180_ADDRESS)
//#define BMA180_ADDRESS 0x80
#define BMA180_ADDRESS 0x82
#endif
config.h:
#define YAW_DIRECTION 1 // if you want to reverse the yaw correction direction
…
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = X; accADC[PITCH] = Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = X; gyroADC[PITCH] = Y; gyroADC[YAW] = Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X; magADC[YAW] = Z;}
Адрес гиры не менял. Чтобы компас не показывал погоду, важно точно согласовать его ориентацию с гирой и акселерометром. Ну и калибровать компас в ГУИ.
Поменял ориентацию гиры по 2м осям - насчет Z не уверен, что она в реверсе поэтому оставил как есть. Коптер полетел гораздо уверенней. Хотя конечно чуток потряхивает один фиг.
Надо еще с пидами поковыряться и с механической частью в плане вибраций итд. А еще у меня один регулятор 30а и 3 по 18а может изза этого тоже колбасит.
Залил 1.8, все настройки и пиды выставил точ точ как были в 1.7, попробовал, снес нафиг и вернул 1.7
Во первых стал оч резкий, ну это не главное и поправимо через RC RATE и RC EXPO, во вторых после активных движений стиками во время полета в режиме стаб левел сильно уходит горизонт, т.е. если после этого его завесить и отпустить стики - сильно тянет влево и в перед, достаточно сесть , включить - выключить движки и горизонт выравнивается. Компаса и баро нет, стоят только ITG3200 и BMA020.
В 1.7 с этими же настройками летает мегастабильно 😃
Там перелопатили код стабилизации, врятли ПИДЫ от 1.7 подойдут 1.8, я лично P (в 1.5 раза) и D чуточку убавлял, летает лучше на 1.8 в итоге, так как там фильтр на вибрацию ввели.
Летает лучше на ALLINONE, или на “гира + аксель”, ну в смысле мне интересно почему у меня тады горизонт плывет?
Может 1.8 заточен под платы типа ALLINONE, где на борту еще есть компас , баро и тд.
Врятли заточен, компас и баро работает там как и работало, не аккуратно, с ними хуже летает помоему.
Горизонт ли уходит? Или у регулей плывет кривая? У меня ничего не уходит, ну или я уже не замечаю этого.
Не, точно не регули, т.к. после 1.8 через 5 мин. залил 1.7 и все стало ОК.
Не заметить трудно, уводит сильно.
И у меня BMA020 лучше BMA180 работал всегда, надо разбираться что там и где не так.
Единственное что приходит в голову - накапливается ошибка т.к. полет в режиме стаб левел на 1.8 более агрессивный и резкий ( если не менять пиды в сравнении с 1.7 ) в следствии чего возможно ведет горизонт.
Если сесть и вырубить движки а потом сразу включить - с горизонтом становится все ОК, т.е. надо смотреть прошивку, видимо в этот момент ( Motor Disarm/Motor Arm ) обнуляется гира либо аксель.
обнуляется гира при включении батареи, аксель обнуляется только при калибровке
обнуляется гира при включении батареи, аксель обнуляется только при калибровке
То что обнуляется именно так для 1.7 я в курсе, для 1.8 хз, ну да хрен с ним, хотел то фильтры глянуть как работают да LEVEL_PDF посмотреть.
LEVEL_PDF на 1.7 кто нить прикручивал, здесь код www.multiwii.com/forum/viewtopic.php?f=8&t=503#p25…
Интересует куда именно его вставлять в скетч, и какие предпочтительные P и I выставлять для него в GUI ?
LEVEL_PDF на 1.7 кто нить прикручивал, здесь код www.multiwii.com/forum/viewtopic.php?f=8&t=503#p25…
меняемна код из 1.7 с 2004 по 2029 строчку на кусок кода по ссылке , LEVEL_PDF - ерунда, работает как если RC RATE и RC EXPO выкрутить чтоб коптер еле реагировал на стики.
Как вам новый контроллер, может уже кто то испытал?
www.ebay.com/itm/…/260854008499
Давно не новый, за эти деньги лучше взять оригинальный ардукоптер.
Ура! Серёж спасибо! Благодаря твоим пидам и 1.8 полетел гад!!! Висит в целом неплохо но стоит его погонять и подергать по осям - ощущение, что его укачивает 😁 , начинается расколбас и если вовремя не посадить - неизбежно падает.
Ну наконецто, снизь еще P попробуй 😃
Во первых стал оч резкий, ну это не главное и поправимо через RC RATE и RC EXPO, во вторых после активных движений стиками во время полета в режиме стаб левел сильно уходит горизонт, т.е. если после этого его завесить и отпустить стики - сильно тянет влево и в перед, достаточно сесть , включить - выключить движки и горизонт выравнивается. Компаса и баро нет, стоят только ITG3200 и BMA020.
таже фигня с 1.8 в стаб моде… уходит горизонт после разовых дерганий стиками… устал бороться уже… тоже ITG3205 и BMA020
в 1.7 и 1.8 совершенно разные IMU в этом дело скорее всего… и вот делема акромод в 1.8 мега суппер, но чет. не то со стаб модом,
хотя скгодня кой чего добился:
- выставил пиды для акро высокие 7-0.035-40, где высокий D делает коптер очень мягким-плавным. Но высокий D уменьшает P потому его надо поднять до 7-9. Тут надо помнить что акро пиды влияют на стаб мод. P и D для ролл+питч, а по яв также I параметр, т.е. все. Потому надо сперва отстроить акро мод.
В стаб моде оставил дефолтные параметры. - увеличил фильтр на аксель до 40
/* Set the Low Pass Filter factor for ACC */
/* Increasing this value would reduce ACC noise (visible in GUI), but would increase ACC lag time*/
/* Comment this if you do not want filter at all.*/
/* Default WMC value: 8*/
#define ACC_LPF_FACTOR 40
- уменьшил влияние акселя в IMU
/* Set the Gyro Weight for Gyro/Acc complementary filter */
/* Increasing this value would reduce and delay Acc influence on the output of the filter*/
/* Default WMC value: 300*/
//#define GYR_CMPF_FACTOR 310.0f
#define GYR_CMPF_FACTOR 3000.0f
Если сесть и вырубить движки а потом сразу включить - с горизонтом становится все ОК, т.е. надо смотреть прошивку, видимо в этот момент ( Motor Disarm/Motor Arm ) обнуляется гира либо аксель
Обнуляются только накопленные ошибки…
- Добавил Expo для Throttle в коде, т.к. мой дешевый пульт не позволял точно удержать высоту, постоянно вверх-вниз колбасило. Теперь высота держится элементарно.
- спасибо огромное Алексею за реализацию экспо-тротл (для дешевых пультов). Разобрался с кодом + проверил в полете. Реально проще стало держать высоту! 😃
акромод в 1.8 мега суппер
можно по подробней, чем он мега супер?
увеличил фильтр на аксель до 40
уменьшил влияние акселя в IMU
на сколько стало стабильней, или горизонт перестал плыть полностью?
Обнуляются только накопленные ошибки…
да, видимо так и есть, это я выше не правильно выразился
Для себя сделал вывод , 1.8 пока что нафиг, по крайней мере для ITG3205 и BMA020, поставил обратно 1.7 - все полетело плавно, размеренно и предсказуемо 😎