MultiWii

omegapraim
=alex#:

это обнадеживает, но прежде, чем резать, решил подключить нунчак, посмотреть что показывать будет. И не понял вот что: пока передатчик не подключен, (сигналов с приемника нет) MultiWiiConf показывает, что NunChuck / Acc Active, при этом правильно калибруется и показывает горизонт, но как только включаю передатчик, и приемник начинает выдавать сигналы, NunChuck / Acc становится OFF, при этом графики и горизонт продолжают правильно показывать, но видимо работа акселерометров не влияет на поведение моторов. Почему выключается? и что надо сделать чтобы подключился?

надо подключить канал MODE на канал приемника типа 5 или 6 где есть переключатель, потом поставить галочку в гуи и нажать записать, он отключается потому что по стандарту он не активен при работе с пультом и его нужно включать переключая режим.

=alex#

после распиливания wmp и прямого подключения itg3205, удалось все таки заставить его летать. Но летает постоянно раскачиваясь. Иногда на полминуты затихает, и тогда ровненько держится, но потом снова начинает трепыхаться. Параметры, на рисунке, если куда-то немного в сторону, вообще не хочет лететь, почти стразу кувыркается. Куда надо крутить, чтобы более стабильно летал? Может быть слишком мелкий? Леталка трикоптер, 260гр, винты 8x4, расстояние от центра до двигателя 15 см. В скетче раскомментирован фильтр 20Hz.
И еще - что такое RATE на картинке?

omegapraim

фильтр меньше меньше 40 вообще трогать не стоит а чем вам стандартные пиды непонравились из прошивки 1.9 2а

P8[ROLL] = 60; I8[ROLL] = 30; D8[ROLL] = 40;
P8[PITCH] = 60; I8[PITCH] = 30; D8[PITCH] = 40;
P8[YAW] = 85; I8[YAW] = 45; D8[YAW] = 0;
P8[PIDALT] = 30; I8[PIDALT] = 10; D8[PIDALT] = 0;
P8[PIDVEL] = 55; I8[PIDVEL] = 0; D8[PIDVEL] = 45;
P8[PIDLEVEL] = 70; I8[PIDLEVEL] = 10;
P8[PIDMAG] = 40;
rcRate8 = 27; // = 0.54 in GUI
rcExpo8 = 65;
rollPitchRate = 0;
yawRate = 0;
dynThrPID = 0;
for(uint8_t i=0;i<8;i++) activate[i] = 0;
accTrim[0] = 0; accTrim[1] = 0;
powerTrigger1 = 0;
writeParams();

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

Так вот к сожалению регуляторы с кварцем на 16 мегагерц будут работать только с ардуиной на версии 5в 16 мГц
Кое как вкорячил кварц на 16 туже ардуину и все заработало, так что заказывая ардуину будьте внимательны.

=alex#
omegapraim:

фильтр меньше меньше 40 вообще трогать не стоит а чем вам стандартные пиды непонравились из прошивки 1.9 2а

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

omegapraim

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

Dimm168pin
omegapraim:

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

Так вот к сожалению регуляторы с кварцем на 16 мегагерц будут работать только с ардуиной на версии 5в 16 мГц
Кое как вкорячил кварц на 16 туже ардуину и все заработало, так что заказывая ардуину будьте внимательны.

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

omegapraim

естественно кондеры тоже поменял, как я менял кварц это отдельная история не в 2е строчки)))) эти интимные подробности я опустил))))

=alex#
omegapraim:

искать проблему в железе

с железом, конечно не самый лучший вариант, регуляторы самые самые (20А, с которых цены начинаются на ebay), да и винты побитые и небалансированные, но все это как то летало на КК, правда там свои были проблемки.

omegapraim

Вы меня конечно извините, но я спросил не об этом марка регуляторов НЕ САМЫЕ САМЫЕ ни о чем не говорит, как я могу вам что-то посоветовать если вы ничего не указали…
Еще раз простите но все экстрасенсы в отпуске.

Это не Hobby Wing случаем?

SovGVD
=alex#:

вот ссылка

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

=alex#
SovGVD:

но при определенной сноровке летать можно

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

И еще, почему такая медленная реакция на ручки? Может в параметрах где-то есть это?

omegapraim

у вас в коде делитель у гиры какой стоит?

void Gyro_getADC () {
TWBR = ((16000000L / 100000L) - 16) / 2; // change the I2C clock rate to 400kHz
i2c_getSixRawADC(ITG3200_ADDRESS,0X1D);
GYRO_ORIENTATION( + ( ((rawADC[2]<<8) | rawADC[3])/6) , // range: +/- 8192; +/- 2000 deg/sec

  • ( ((rawADC[0]<<8) | rawADC[1])/6 ) ,
  • ( ((rawADC[4]<<8) | rawADC[5])/6 ) );
    GYRO_Common();
    }
    #endif

уменьшите с 6 до 4х, параметры находятся на вкладке сенсоры, смею еще предположить что у вас по шите датчиков идет питание от 5в? или я ошибаюсь.

SovGVD

вот эти строки

TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz

надо закоментить - иначе так и будет 400кгц на датчиках, не смотря на указания в конфиге

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

omegapraim
SovGVD:

вот эти строки

TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz

надо закоментить - иначе так и будет 400кгц на датчиках, не смотря на указания в конфиге

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

Не закоментить а поменять с
400000L на 100000L ДЛЯ КАЖДОГО ДАТЧИКА !!! для 3205 советуют понизить делитель до 5ти на сайте мультивия кстати)))) а вот для 3200 ничего делать не надо.

=alex#
omegapraim:

уменьшите с 6 до 4х, параметры находятся на вкладке сенсоры, смею еще предположить что у вас по шите датчиков идет питание от 5в?

там 4 (версия 1.9), питание 3205 3.3В

SovGVD
omegapraim:

Не закоментить а поменять с

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

omegapraim:

вот для 3200 ничего делать не надо

3205 и 3200 это один и тот же датчик, цифра последняя означает вариант упаковки, если память не изменяет… если б они разные были - то при переходи с пиленого wmp на allinone гира работала бы неверно (горизонт бы перелетал или недолетал при разных значениях), а она так и продолжает работать, даже на том же адресе

=alex#:

версия 1.9

лучше от *mahowik* поставить версию rcopen.com/blogs/83206/13482 - летает лучше

=alex#

дополнительно к дефайну:
#define I2C_SPEED 100000L //100kHz normal mode, this value must be used for a genuine WMP
//#define I2C_SPEED 400000L //400kHz fast mode, it works only with some WMP clones

поменял 400000 на 100000 в строчке:

void Gyro_getADC () {
TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz

помоему только хуже стало, вернул обратно - как будто самый лучший вариант, это когда только #define I2C_SPEED 100000L, а может просто показалось. Все это не сильно влияет.

SovGVD:

3205 и 3200 это один и тот же датчик

где то читал что чувствительность у 3205 больше, чем у 3200, поэтому рекомендовали циферки другие ставить, вот нашел: rcwiki.ru/index.php/MultiWii#ITG3205

SovGVD:

лучше от *mahowik* поставить версию rcopen.com/blogs/83206/13482 - летает лучше

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

SovGVD
=alex#:

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