MultiWii

Covax

Поставил прошивку дев от 29062011, маг и баро работает в ГУИ нормально, баро меняет показания по скользящей средней, все отлично, но на полете чето не заметно, что высоту держит коптер… квадратик баро в ГУИ зачекан, может еще надо где чтото включить?

Covax

Сегодня полетал по очкам на ff imu, круть. Но

  1. Если не аккуратно транспортировать коптер (нести вверх ногами) то слетает инициализация акселя, приходится инициализироваться в поле а там хрено с ровной поверхностью.
  2. Компас иоже за ночь с ума сошел, в поле без компа не знал как его переинициализировать поэтому летал без него…
    С новой дев прошивкой удержание высоты у меня не работает, так что переделываю коптер на мегапирата…
mahowik
Covax:

Если не аккуратно транспортировать коптер (нести вверх ногами) то слетает инициализация акселя

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

Covax

С bma020 такого не было чтобы я приехал в поле и не смог поднять коптер. Спустя месяц отпуска я поставил батарейку и полетел как ни в чем не бывало. А вчера поставил вместо wp+ и bma020 фф иму, залил дев, инициализировал все, полетал минут 20 и спать. Сегодня приехал на дачу, пошел в поле, там еще трава по пояс, не могу взлететь. Взял в руку - клонит кудато непонятно, инициализировал аксель, взлетел, но коптер крутит… Отключил компас и отлетал 2 пака по 15 минут без проблем. Сейчас приехал - опять аксель сбился… Компас вообще не трогаю. Может это глюки девпрошивки? А может и жара…

SergDoc

Доброго времени суток, пару детских вопросов,

  1. хотел поменять порты для RX

 #define THROTTLEPIN                3
  #define ROLLPIN                    2
  #define PITCHPIN                   A3
  #define YAWPIN                     4

так вот THROTTL и PITCH неработают, THROTTL - в центре и нереагирует, PITCH - в минимуме, так-же не реагирует если переназначаю порты работают но неработают два других.

  1. как работать с акселерометром

// standalone I2C NUNCHUK
// **************************
#if defined(NUNCHACK)
static uint8_t rawADC_NUN[6];

void i2c_ACC_init() {
  i2c_rep_start(0xA4 + 0);//I2C write direction => 0
  i2c_write(0xF0);
  i2c_write(0x55);
  i2c_rep_start(0xA4 + 0);//I2C write direction => 0
  i2c_write(0xFB);
  i2c_write(0x00);
  delay(250);
  accPresent = 1;
}

void i2c_ACC_getADC() {
  TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate. !! you must check if the nunchuk is ok with this freq
  i2c_rep_start(0xA4 + 0);//I2C write direction => 0
  i2c_write(0x00);
  i2c_rep_start(0xA4 + 1);//I2C read direction => 1
  for(uint8_t i = 0; i < 5; i++)        // интересует именно отсюда
    rawADC_NUN[i]=i2c_readAck();
  rawADC_NUN[5]= i2c_readNak();

  accADC[ROLL]  =   ( (rawADC_NUN[3]<<2)        + ((rawADC_NUN[5]>>4)&0x2) );
  accADC[PITCH] = - ( (rawADC_NUN[2]<<2)        + ((rawADC_NUN[5]>>3)&0x2) );
  accADC[YAW]   = - ( ((rawADC_NUN[4]&0xFE)<<2) + ((rawADC_NUN[5]>>5)&0x6) );
}
#endif

просто в своих извращениях я делал так

программируем аксель


byte status;
 status = B00000000;
  Wire.beginTransmission(i2cID);
 Wire.send(0x21); // CTRL_REG2 (21h)
 Wire.send(B01001111);
Wire.endTransmission();

 Wire.beginTransmission(i2cID);
 Wire.send(0x20); // CTRL_REG1 (20h)
 Wire.send(B11000111);
 Wire.endTransmission();

читаем данные


char accX;

Wire.requestFrom(i2cID, 1);
if(Wire.available())
 {
 accX= Wire.receive(); // ну естественно определённый бит

 }
  accXval = (accX-accZeroX)*(accZeroZ/9.8154);
  

а тут разобратся немогу что куда, зарание спасибо!

Piranha
ziss_dm:

Hi mahowik,

Вон оказываеться что 😃 все лучшие люди проекта НАШИ ЛЮДИ! 😃 ziss_dm- респект и уважуха:)

Prikupets

У меня начало вырисовываться что-то с MultiWii. Уже второй день летаю по очкам в обычном режиме и автолевеле. Но при полете и снижении все же трясет.
Раньше не летал из-за кривой цанги, которая давала вибрации. Но OpenPilot отлично летал с этой кривой цангой и не трясся. Значит дело в математике MultiWii или в сенсорах. Сенсоры у меня из WM и NK вырезанные, в связи с этим вопрос:

Известно, что у акселя и гиры можно задавать разные частоты квантования и/или среза НЧ фильтра. Вопрос в том - чем надо руководствоваться при их выборе, чтобы максимально не зависеть от вибраций?

Моя инициализация акселя:

void i2c_ACC_init () {
  delay(10);
  i2c_rep_start(0x3A+0);      // I2C write direction
  i2c_write(0x2D);            // register 2D Power CTRL
  i2c_write(1<<3);            // Set measure bit 3 on
  i2c_rep_start(0x3A+0);      // I2C write direction
  i2c_write(0x31);            // DATA_FORMAT register
  i2c_write(0x0B);            // Set bits 3(full range) and 1 0 on (+/- 16g-range)
  i2c_rep_start(0x3A+0);      // I2C write direction
  i2c_write(0x2C);            // BW_RATE
//i2c_write(8+2+1);           // 200Hz sampling (see table 5 of the spec); AP; by ziss_dm;
  i2c_write(8+2);             // 100Hz sampling (see table 5 of the spec)
  //i2c_write(8+1);             // 50Hz sampling (see table 5 of the spec)
  //i2c_write(8);               // 25Hz sampling (see table 5 of the spec)
  //i2c_write(4+2+1);           // 12.5Hz sampling (see table 5 of the spec)
  //i2c_write(4+2);             // 6.25Hz sampling (see table 5 of the spec)
  acc_1G = 250;
  acc_25deg = 106; // = acc_1G * sin(25 deg)
  accPresent = 1;
}

Моя инициализация гиры:

void i2c_Gyro_init() {
  delay(100);
  i2c_rep_start(0XD0+0);      // I2C write direction
  i2c_write(0x3E);            // Power Management register
  i2c_write(0x80);            //   reset device
  delay(5);                   // AP; by ziss_dm
  i2c_rep_start(0XD0+0);      // I2C write direction; AP; by ziss_dm
  i2c_write(0x16);            // register DLPF_CFG - low pass filter configuration & sample rate
//  i2c_write(0x1D);            //   10Hz Low Pass Filter Bandwidth - Internal Sample Rate 1kHz
//  i2c_write(0x19);            //   188Hz Low Pass Filter Bandwidth - Internal Sample Rate 1kHz
  i2c_write(0x18);            //   256Hz Low Pass Filter Bandwidth - Internal Sample Rate 8kHz
  i2c_rep_start(0XD0+0);      // I2C write direction; AP; by ziss_dm
  i2c_write(0x3E);            // Power Management register
  i2c_write(0x01);            //   PLL with X Gyro reference
  delay(100);
  gyroPresent = 1;
}

P.S. Кстати, Кук тоже от вибраций не трясется.

Covax
Prikupets:

Значит дело в математике MultiWii или в сенсорах.

У меня ff imu с самыми зачетными сенсорами, тоже треясется при снижении когда хочешь затормозить газом, правда ПИДы все стоковые, но явно в математике что-то не доделано… На неделе перехожу с этим же железом на Мегапирата, вот тогда и скажу где проблема более точно.

funtik26

думаю что вийная прошивка изначально тупиковая, да она летает, но блин чтобы она летала- это крындец, пока пиды настроишь.
если не дай бог упал и поломал винт, винт заменил- привет на настройка по новому.
та же злосчастная фишка- винты какие хочешь( главное соблюдать направление движения) моторы- из 4 два разных, два битых перебитых, все равно- горизонт держит, на ветру не трясет. настройка пидов как по книжке- что регулируещь, то на практике и получается.

Covax

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

funtik26

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

delfin000
funtik26:

в моем понятии квадрик должен летать так как у меня на видео- куда ведешь ручку туда он и летит, отпустил ручку- квадрик встал, и это безо всяких шаманств по вечерам

Так только:

  1. в сказке бывает
    или
  2. в хорошонавороченных системах не за штуку зелени.
    Ну и как вариант, нужно стать профессионалом пилотом, тогда два первых пункта отпадут автоматически
Covax

Саш неужели фишка и есть тот квадрик, который отпустил стики он и встал? Я сомневаюсь что такое вообще возможно хотя бы по причине наличия во вселенной такой штуки как инерция)

funtik26

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

Covax

ну если так, то супер! а можно видео?

mahowik
funtik26:

в фишке- есть такая фишка что если квадрик разогнать в стаб моде и отпустить ручку, квадрик парирует скорость креном, останавливается и зависает. так же в стаб моде на какой угол кренишь ручку на пульте- на такой же угол и квадрик наклоняется

простите за глупый вопрос, а что за проект “фишка” или готовый девайс такой?

Alex27111972
Covax:

ну если так, то супер!

не все так просто, вон люди в соседней ветке пишуть что и улететь она могет и “крышу” у фишки срывает… да и цена на нее довольно бодрая…

funtik26

Сергей к сожалению видео с разгоном и оттормаживанием фишки пока нет, на днях постараюсь заснять и выложить.

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

Covax
funtik26:

Сергей к сожалению видео с разгоном и оттормаживанием фишки пока нет, на днях постараюсь заснять и выложить.

Ждем, реально очень интересно как он это делает.