MultiWii

SovGVD
Covax:

нормальные датчики и разобрались с вибрацией на своих коптерах

согласен, сколько не игрался с этимим PIDами, толку никакого не было, пока не загрубил гиру, не отбаланисровал моторы и не поставил все мозги на 2 вспененые фигни - даже подлететь было сложновато… сейчас в ожидании нормальной гиры с акселем, как не крути, а сильное загрубление ни к чему хорошему не приводит (единственно не пойму, почему же раньше это работало, а потом перестало… ну да фиг с ним), хоть и стало взлетать адекватнее
кстаии всю эту балансировку удобно проводить именно по показаниям в GUI, а не по субъективным ощущением… еще в код можно добавить строчки типа Serial.println(данные с гиры), чтобы поточнее понять что ды как (смотреть в консоле Arduino IDE)

nsk-racer

Коптер опракидывается, не равномерный газ на моторах 😦 Что крутить? Пид как настраивать, что за что отвечает?

SovGVD

I выставлять в НОЛЬ и калибровать датчики (если в GUI неверно чего нить показывает), пару сообщений выше было
UPD: по поводу этого I, в буржуйском форуме ответили что это нормально что моторы уплывают, если летит, то всё ок будет:

everything okay.
Thats because of small errors, which are integrated more and more, because your copter does not move.
I=0 = no error up integration.

In the air, you won’t have a problem with that.

ну и 2 ссылочки на видео при I=0,015 и при I=0 - при стоянии коптера на одном месте

nsk-racer

Покрутил пид вроде стало лучше 😃 У меня почему то цифры были не реальные 😃 Р по 60 стоял и I по 0.5, теперь вроде стало лучше, но пока не взлетел но и не завалился, на улице буду пробовать 😃 А возможно подключить акселерометр mma7455?
вот так плата получилась:
avrdevices.ru/akselerometr_mma7455l/
Он же тоже по i2c, вместо нунчака бы его 😃 Вроде сама плата работает, циферки меняются 😃

SovGVD
nsk-racer:

А возможно подключить акселерометр mma7455?

дописать код, можно из AeroQuad выковырять (или из даташита), там вроде бы такой используется (могу ошибаться, но чето mma точно было)

nsk-racer

Я простенький скетч сделал с выводом координат через ком порт, а как к мультивии пределать не знаю, с кодом ещё не разобрался, много букв в нём 😁

SovGVD

там только кажется по началу что много, но в целом всё четко и ясно, можно для себя просто взнять код какого то i2c датчика и поменять под свой датчик, т.е. например внтури #if defined(ADXL345)…#endif поменять значения/делители/параметры под свой датчик и раскоментить работу с этим датчиком… или по аналогии описать своё, там всеравно всегда 2 функции есть i2c_ACC_init для инициализации и i2c_ACC_getADC для получения сами данных
заодно можно сообществу помочь, приделав еще один датчик =)

nsk-racer

Спасибо за наводку 😃 Завтра попробую, сейчас иду спать

dessel
Covax:

Надо учесть что люди тут летают вполне задорно и на дефолтных настройках PID, до этого они применили нормальные датчики и разобрались с вибрацией на своих коптерах…

А нормальные датчики это какие? Ибо сейчас я доделываю платочку акселя
на чипе ADXL345 как вот тут, и всерьез задумываюсь над тем что бы напрямую подпаятся
к itg3005 на плате WMP+, или не мучить WMP и купить нормальный гирик, но опять же какой?
P.S. Кому интересно могу позже выложить платку для ADXL345 с фото и комментариями

tusik

При испытании мультивия на летающем крыле возникла еще одна проблема. При управлении элевонами с пульта по тангажу сервы не возвращаются в неитральное состояние. Т.е. при подключении через мультивий при отклонении рулей вниз и возвращении обратно серва не доходит до первоначального состояния. При подключении напрямую к приемнику все нормально. Пробовал несколько серв. Результат тот же. Где копать?

nsk-racer

Где взять подшипники на дт750, разобрал глянул, а они щёлкают?) оказалось, что дело не в электронике, а в моторе, он тяжело крутится и при том же газе что и другие, крутится намного медленнее 😦

how-eee

Такая же проблема. Уберите одну шайбочку с вала под стопорным кольцом. И вытяните вал ссилой вверх. Должно помочь. Зажимает обычно верхний подшипник

Covax

У меня тоже щелкают, летаю же 😃 Крутится должны они легко (когда обесточены), значит сильно винт затянул, а винт надо не сильно крепить и страховать стяжками.

nsk-racer
how-eee:

Такая же проблема. Уберите одну шайбочку с вала под стопорным кольцом. И вытяните вал ссилой вверх. Должно помочь. Зажимает обычно верхний подшипник

Поснимал колечки уже давно, но щас снова винт затянул сильно и опять зажало, теперь видимо пытаться нада обратно купол приподнять

Covax:

У меня тоже щелкают, летаю же 😃 Крутится должны они легко (когда обесточены), значит сильно винт затянул, а винт надо не сильно крепить и страховать стяжками.

Что за стяжки?

Саша_пилот
Covax:

У меня тоже щелкают, летаю же

и у меня счелкают, тока моторы турниги 1050кв. тут не в моторах гимор видать.

vikingua

Собрал мультикоптер:
20-22L, Mystery 20A, seeduinomega, WII, BMA020
винты пока с хобикинга 9*5
прошивка V1.7, все по дефолту, только железки, мин обороты и т.д. корректировал

  1. На графике в начале двигатели включены, потом отключил, это нормальный уровень вибраций или стоит с этим еще работать ?
  2. пока не взлетал, это нормально что при минимальных оборотах моторы иногда покашливают ? (рывком больше оборотов)
  3. в конфиге должно быть видно если крутить коптер вокруг оси ? наклоны показывает…
SovGVD
  1. имхо жесть
  2. это всё от первого
  3. должно показывать наклоны, но не крутиться
vikingua

Масштаб графиков - 2 - т.е. по дефолту оно меньше в два раза показывает, но все-равно много как я понимаю ?

SovGVD

не заметил… тогда может и нормально =) у меня похуже было при scale 1 - колбасило коптер неплохо
имхо надо попробовать подлететь немного - там уж точно видно будет

Covax
nsk-racer:

Что за стяжки?

самые натуральные кабельные

nsk-racer
#if defined(MMA7455)
static int8_t rawADC_MMA7455[6];

void i2c_ACC_init () {
  delay(10);
  i2c_rep_start(0x3A);    // I2C write direction
  i2c_write(0x16);        // Mode Control
  i2c_write(0x25);      // Set Sensitity Value @ 2g
  //i2c_write(0x21);      // Set Sensitity Value @ 8g


  acc_1G = 64;
  acc_25deg = 27; // = acc_1G * sin(25 deg)
  accPresent = 1;
}

void i2c_ACC_getADC () {

  //TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz, ADXL435 is ok with this speed
  //i2c_rep_start(0x3A);
  //i2c_write(0x09);
  //i2c_rep_start(0x3B);


  i2c_rep_start(0x3A);     // I2C write direction
  i2c_write(0x00);          //Registry to start reading from.
  i2c_rep_start(0x3B);  // I2C read direction => 1

  for(uint8_t i = 0; i < 5; i++) {
    rawADC_MMA7455[i]= i2c_readAck();}
    rawADC_MMA7455[5]= i2c_readNak();

    accADC[ROLL] = ((char(rawADC_MMA7455[1])<<8) | (rawADC_MMA7455[0]>>1)<<1);
    accADC[PITCH]= ((char(rawADC_MMA7455[3]<<8)) | (rawADC_MMA7455[2]>>1)<<1);
    accADC[YAW]  = ((char(rawADC_MMA7455[5]<<8)) | (rawADC_MMA7455[4]>>1)<<1);
 }
 #endif

Вот мма7455 😃 Ещё не проверял 😃 Дома проверю, должно работать 😃
Скажите куда мне его только цеплять? к WMP или на разъём i2c?