MultiWii
Привет Дима!
Главное что я хотел донести - что там два контроллера включенных последовательно (и WMC и в Arduxxx…)
Спасибо за диаграмки, хотя я в принципе и так понял из описания о чем речь 😃
Ну в общем-то никто не мешает попробовать.
так то оно так, но вот опыт пилотирования может и загубить идею 😃 на родном вии форуме чтоль написать? там вроде хватает энтузиастов потестить 😃
Ну можно и так сказать, только тогда знак неправильный
// omega is the raw gyro reading
g.rc_1.servo_out -= degrees(omega.x) * 100.0 * g.pid_stabilize_roll.kD();
хмм… правильный же знак вроде и учитывая что дифф. ошибки можно заменить показаниями гиры, то это и есть “Д”-классик, соот-но получаем ПИД-классик 😃
ArduXXX:
Angle error -> PI -> D(gyro_raw) -> Motors
З.Ы. Вообще если приземлится и рассуждать с точки зрения пользователя, то не плохо бы всеж разделить регуляторы акро и стаб. мода, т.к. сама по себе точная настройка ПИД параметров задача не тривиальная, а если учесть что в стаб. моде использутеся комплексный ПИД регуль, то идеальных параметров добиться практически не возможно, посему предлагаю:
- добавить левел-“Д” параметр в ГУИ. А можно и больше - отдельные “П”, “И”,“Д” параметры для ролл и питч.
- для упрощения тюнинга ПИД параметров отделить в коде акро и стаб. ПИД регули.
- убрать вычисление “Д” через ускорение для стаб. мода 😃
Т.е. фактически разобраться как тюнить ПИД-ы для стаб мода, можно только провтыркаВ в код, т.к. это нигде не написано… И кстать возможно из-за данной усложненности, левел мод. в ВИЕ оссобо и не хвалят и сам АлексВПариже написал в факах “The stable mode is not so stable” 😃
И кстать возможно из-за данной усложненности, левел мод. в ВИЕ оссобо и не хвалят
Кто конкретно не хвалит? У меня левел мод работает прекрасно.
и сам АлексВПариже написал в факах “The stable mode is not so stable” 😃
Это игра слов. Прочитайте ответ Алекса.
Кто конкретно не хвалит? У меня левел мод работает прекрасно.
почитайте ветку… про акро намного больше отзывов положительных… проблемы в основном со стаб. модом
Это игра слов. Прочитайте ответ Алекса.
Вы лучше не демагогию разводите, а на вопрос ответьте. 😃 Что делает угловое ускорение в “Д” части для стаб мода?
Поставил прошивку дев от 29062011, маг и баро работает в ГУИ нормально, баро меняет показания по скользящей средней, все отлично, но на полете чето не заметно, что высоту держит коптер… квадратик баро в ГУИ зачекан, может еще надо где чтото включить?
Сегодня полетал по очкам на ff imu, круть. Но
- Если не аккуратно транспортировать коптер (нести вверх ногами) то слетает инициализация акселя, приходится инициализироваться в поле а там хрено с ровной поверхностью.
- Компас иоже за ночь с ума сошел, в поле без компа не знал как его переинициализировать поэтому летал без него…
С новой дев прошивкой удержание высоты у меня не работает, так что переделываю коптер на мегапирата…
Если не аккуратно транспортировать коптер (нести вверх ногами) то слетает инициализация акселя
оч. странно… не должно быть такого по идее… может просто разница температуры дома и на улице была существенная, потому и поплыло все…
С bma020 такого не было чтобы я приехал в поле и не смог поднять коптер. Спустя месяц отпуска я поставил батарейку и полетел как ни в чем не бывало. А вчера поставил вместо wp+ и bma020 фф иму, залил дев, инициализировал все, полетал минут 20 и спать. Сегодня приехал на дачу, пошел в поле, там еще трава по пояс, не могу взлететь. Взял в руку - клонит кудато непонятно, инициализировал аксель, взлетел, но коптер крутит… Отключил компас и отлетал 2 пака по 15 минут без проблем. Сейчас приехал - опять аксель сбился… Компас вообще не трогаю. Может это глюки девпрошивки? А может и жара…
Доброго времени суток, пару детских вопросов,
- хотел поменять порты для RX
#define THROTTLEPIN 3
#define ROLLPIN 2
#define PITCHPIN A3
#define YAWPIN 4
так вот THROTTL и PITCH неработают, THROTTL - в центре и нереагирует, PITCH - в минимуме, так-же не реагирует если переназначаю порты работают но неработают два других.
- как работать с акселерометром
// 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);
а тут разобратся немогу что куда, зарание спасибо!
Hi mahowik,
Вон оказываеться что 😃 все лучшие люди проекта НАШИ ЛЮДИ! 😃 ziss_dm- респект и уважуха:)
У меня начало вырисовываться что-то с 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. Кстати, Кук тоже от вибраций не трясется.
Значит дело в математике MultiWii или в сенсорах.
У меня ff imu с самыми зачетными сенсорами, тоже треясется при снижении когда хочешь затормозить газом, правда ПИДы все стоковые, но явно в математике что-то не доделано… На неделе перехожу с этим же железом на Мегапирата, вот тогда и скажу где проблема более точно.
P.S. Кстати, Кук тоже от вибраций не трясется.
Я цеплял куковские гиры к вию rcopen.com/forum/f134/topic224458/163 вроде ничё
думаю что вийная прошивка изначально тупиковая, да она летает, но блин чтобы она летала- это крындец, пока пиды настроишь.
если не дай бог упал и поломал винт, винт заменил- привет на настройка по новому.
та же злосчастная фишка- винты какие хочешь( главное соблюдать направление движения) моторы- из 4 два разных, два битых перебитых, все равно- горизонт держит, на ветру не трясет. настройка пидов как по книжке- что регулируещь, то на практике и получается.
Да не прдумывай, я вообще никогда с ПИДами не заморачивался, как летает мой аппарат на стоковых настройках и не только мой на вие ты видел на встрече 😃 но мультий однозначно нужно совершенствовать…
сергей может ты изначально хороший набор купитл, может еще что то, но в моем понятии квадрик должен летать так как у меня на видео- куда ведешь ручку туда он и летит, отпустил ручку- квадрик встал, и это безо всяких шаманств по вечерам
в моем понятии квадрик должен летать так как у меня на видео- куда ведешь ручку туда он и летит, отпустил ручку- квадрик встал, и это безо всяких шаманств по вечерам
Так только:
- в сказке бывает
или - в хорошонавороченных системах не за штуку зелени.
Ну и как вариант, нужно стать профессионалом пилотом, тогда два первых пункта отпадут автоматически
Саш неужели фишка и есть тот квадрик, который отпустил стики он и встал? Я сомневаюсь что такое вообще возможно хотя бы по причине наличия во вселенной такой штуки как инерция)
сергей к сожалению ты не прав, в фишке- есть такая фишка что если квадрик разогнать в стаб моде и отпустить ручку, квадрик парирует скорость креном, останавливается и зависает. так же в стаб моде на какой угол кренишь ручку на пульте- на такой же угол и квадрик наклоняется
ну если так, то супер! а можно видео?
в фишке- есть такая фишка что если квадрик разогнать в стаб моде и отпустить ручку, квадрик парирует скорость креном, останавливается и зависает. так же в стаб моде на какой угол кренишь ручку на пульте- на такой же угол и квадрик наклоняется
простите за глупый вопрос, а что за проект “фишка” или готовый девайс такой?
fy90q контроллер от фокстеч