MultiWii

Morfan
alexmos:

Смотря что за платка. У меня помогла смена адреса 0x80 на 0x82 датчика на I2C шине (в 1.7 также менял ручками)

Алексей спасибо! Вы были правы.

Только
#if !defined(ITG3200_ADDRESS)
// #define ITG3200_ADDRESS 0XD0
#define ITG3200_ADDRESS 0XD2
#endif

Только теперь другая фигня вылезла - похоже датчики в зеркальном режиме как бы работать стали. В 1.7 все нормально было…

Razek
Boev_Dmitry:

Я и так и так пробовал, только предварительноя в def.h в секции описания ALLINONE адрес ВМА180 прописал напрямую. Акселерометр вроде как работает, а гироскоп нет. в GUI все цифры на графиках GYRO ROLL, PITCH, YAW - все по нулям. магнитометр вроде тоже работает, но иногда вдруг у него “крышу сносит” и он начинает выдавать хаотические цыфры типа -5000,8000 и прочее. весь экран в вертикальных полосках. я его пока отключил, как и барометр

можно просто пин CLK Gyro кинуть на землю, адрес гиры поменять на
#define ITG3200_ADDRESS 0XD2

Кстати обрати внимание на дребез контактов между аливан и мозгами иногда из-за этого глючит сильно.
и еще надо инвертировать орентацию гиры в коде, но это в зависимости от прошивки какая версия?

У меня 1.8 тоже баро и компас пляшут, хз как их завести нормально

Morfan
Razek:

инвертировать орентацию гиры

в 1.8 это где меняется?

Musgravehill
Razek:

У меня 1.8 тоже баро и компас пляшут, хз как их завести нормально

Баро сразу работает. А компас 5883L - жуть! Пришлось сделать табличку и перебирать комбинации ±X±Y±Z, пока не стал адекватно показывать в конфигураторе.

Razek
Morfan:

в 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
Morfan

А как здесь инвертировать действие по одной оси? Просто у меня ощущение, что после перепрошивки перед стал задом…

И еще отклик на изменение положения какой то вялый стал - резко наклоняешь а положение аппарата в гуи меняется очень медленно… и так же восстанавливается в исходное положение. Не может ли это быть связано с изменением адреса гиро на 0xd2?

mahowik
Morfan:

И еще отклик на изменение положения какой то вялый стал - резко наклоняешь а положение аппарата в гуи меняется очень медленно… и так же восстанавливается в исходное положение.

100% problema v nepravilnoy orientacii osey… tut eto eje pisali mnogo raz, t.e. esli medlenno doplivaet smotrite osi

Morfan:

А как здесь инвертировать действие по одной оси?

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;

alexmos

Может конечно, 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;}

Адрес гиры не менял. Чтобы компас не показывал погоду, важно точно согласовать его ориентацию с гирой и акселерометром. Ну и калибровать компас в ГУИ.

Morfan

Поменял ориентацию гиры по 2м осям - насчет Z не уверен, что она в реверсе поэтому оставил как есть. Коптер полетел гораздо уверенней. Хотя конечно чуток потряхивает один фиг.
Надо еще с пидами поковыряться и с механической частью в плане вибраций итд. А еще у меня один регулятор 30а и 3 по 18а может изза этого тоже колбасит.

skyrider

Залил 1.8, все настройки и пиды выставил точ точ как были в 1.7, попробовал, снес нафиг и вернул 1.7
Во первых стал оч резкий, ну это не главное и поправимо через RC RATE и RC EXPO, во вторых после активных движений стиками во время полета в режиме стаб левел сильно уходит горизонт, т.е. если после этого его завесить и отпустить стики - сильно тянет влево и в перед, достаточно сесть , включить - выключить движки и горизонт выравнивается. Компаса и баро нет, стоят только ITG3200 и BMA020.
В 1.7 с этими же настройками летает мегастабильно 😃

Covax

Там перелопатили код стабилизации, врятли ПИДЫ от 1.7 подойдут 1.8, я лично P (в 1.5 раза) и D чуточку убавлял, летает лучше на 1.8 в итоге, так как там фильтр на вибрацию ввели.

skyrider

Летает лучше на ALLINONE, или на “гира + аксель”, ну в смысле мне интересно почему у меня тады горизонт плывет?
Может 1.8 заточен под платы типа ALLINONE, где на борту еще есть компас , баро и тд.

Covax

Врятли заточен, компас и баро работает там как и работало, не аккуратно, с ними хуже летает помоему.
Горизонт ли уходит? Или у регулей плывет кривая? У меня ничего не уходит, ну или я уже не замечаю этого.

skyrider

Не, точно не регули, т.к. после 1.8 через 5 мин. залил 1.7 и все стало ОК.
Не заметить трудно, уводит сильно.

Covax

И у меня BMA020 лучше BMA180 работал всегда, надо разбираться что там и где не так.

skyrider

Единственное что приходит в голову - накапливается ошибка т.к. полет в режиме стаб левел на 1.8 более агрессивный и резкий ( если не менять пиды в сравнении с 1.7 ) в следствии чего возможно ведет горизонт.
Если сесть и вырубить движки а потом сразу включить - с горизонтом становится все ОК, т.е. надо смотреть прошивку, видимо в этот момент ( Motor Disarm/Motor Arm ) обнуляется гира либо аксель.

Covax

обнуляется гира при включении батареи, аксель обнуляется только при калибровке

skyrider
Covax:

обнуляется гира при включении батареи, аксель обнуляется только при калибровке

То что обнуляется именно так для 1.7 я в курсе, для 1.8 хз, ну да хрен с ним, хотел то фильтры глянуть как работают да LEVEL_PDF посмотреть.
LEVEL_PDF на 1.7 кто нить прикручивал, здесь код www.multiwii.com/forum/viewtopic.php?f=8&t=503#p25…
Интересует куда именно его вставлять в скетч, и какие предпочтительные P и I выставлять для него в GUI ?

skyrider
skyrider:

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 выкрутить чтоб коптер еле реагировал на стики.

Covax

Давно не новый, за эти деньги лучше взять оригинальный ардукоптер.

Morfan

Ура! Серёж спасибо! Благодаря твоим пидам и 1.8 полетел гад!!! Висит в целом неплохо но стоит его погонять и подергать по осям - ощущение, что его укачивает 😁 , начинается расколбас и если вовремя не посадить - неизбежно падает.

Covax

Ну наконецто, снизь еще P попробуй 😃

mahowik
skyrider:

Во первых стал оч резкий, ну это не главное и поправимо через RC RATE и RC EXPO, во вторых после активных движений стиками во время полета в режиме стаб левел сильно уходит горизонт, т.е. если после этого его завесить и отпустить стики - сильно тянет влево и в перед, достаточно сесть , включить - выключить движки и горизонт выравнивается. Компаса и баро нет, стоят только ITG3200 и BMA020.

таже фигня с 1.8 в стаб моде… уходит горизонт после разовых дерганий стиками… устал бороться уже… тоже ITG3205 и BMA020

в 1.7 и 1.8 совершенно разные IMU в этом дело скорее всего… и вот делема акромод в 1.8 мега суппер, но чет. не то со стаб модом,

хотя скгодня кой чего добился:

  1. выставил пиды для акро высокие 7-0.035-40, где высокий D делает коптер очень мягким-плавным. Но высокий D уменьшает P потому его надо поднять до 7-9. Тут надо помнить что акро пиды влияют на стаб мод. P и D для ролл+питч, а по яв также I параметр, т.е. все. Потому надо сперва отстроить акро мод.
    В стаб моде оставил дефолтные параметры.
  2. увеличил фильтр на аксель до 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
  1. уменьшил влияние акселя в 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
skyrider:

Если сесть и вырубить движки а потом сразу включить - с горизонтом становится все ОК, т.е. надо смотреть прошивку, видимо в этот момент ( Motor Disarm/Motor Arm ) обнуляется гира либо аксель

Обнуляются только накопленные ошибки…

alexmos:
  1. Добавил Expo для Throttle в коде, т.к. мой дешевый пульт не позволял точно удержать высоту, постоянно вверх-вниз колбасило. Теперь высота держится элементарно.
  • спасибо огромное Алексею за реализацию экспо-тротл (для дешевых пультов). Разобрался с кодом + проверил в полете. Реально проще стало держать высоту! 😃
skyrider
mahowik:

акромод в 1.8 мега суппер

можно по подробней, чем он мега супер?

mahowik:

увеличил фильтр на аксель до 40

mahowik:

уменьшил влияние акселя в IMU

на сколько стало стабильней, или горизонт перестал плыть полностью?

mahowik:

Обнуляются только накопленные ошибки…

да, видимо так и есть, это я выше не правильно выразился

Для себя сделал вывод , 1.8 пока что нафиг, по крайней мере для ITG3205 и BMA020, поставил обратно 1.7 - все полетело плавно, размеренно и предсказуемо 😎