MultiWii
Попробуй в def.h
#define MOTOR_ORDER 3,5,6,2,7,8,9,10
Поменять местами 3 и 8
(проша 1.8)
А, да, учти - там эта строчка почти два раза - для Мега и Мини, причём мини идёт раньше и там всего 6 чисел.
Немного не то имелось ввиду. Хотел поменять местами BUZZERPIN (8, OUTPUT) PORTB с PIN (3,OUTPUT) PORTD.
Вроде все поменял,т.е PORTD и PORTB,последнюю циферку в таких скобках &= ~(1<<3);чтобы соответствовало.Компилируется,зашивается,но не работает.Есть подозрения,что где-то надо еще подправить.
Платка allinone пока прижилась на пирате. А руки чешутся… 😃
На маленьком коптере стояла плата с гириками от wii. Поставил аксель adxl335 rcopen.com/forum/f123/topic246336/2
Квадрик стал очень резким. Думаю, что надо загрубить гиры. Найти это в прошивке 1.8 не могу.
А может не в этом причина?
Хотел поменять местами BUZZERPIN (8, OUTPUT) PORTB с PIN (3,OUTPUT) PORTD.
Вообщем ничего так и не получается.Вопрос,где в коде описывается какой пин на какой мотор,кроме строки MOTOR_ORDER?
Предполагаю,что где-то должно назначаться мотор_намбер_аут,ну или типа того.
Смотря что за платка. У меня помогла смена адреса 0x80 на 0x82 датчика на I2C шине (в 1.7 также менял ручками)
Алексей спасибо! Вы были правы.
Только
#if !defined(ITG3200_ADDRESS)
// #define ITG3200_ADDRESS 0XD0
#define ITG3200_ADDRESS 0XD2
#endif
Только теперь другая фигня вылезла - похоже датчики в зеркальном режиме как бы работать стали. В 1.7 все нормально было…
Я и так и так пробовал, только предварительноя в def.h в секции описания ALLINONE адрес ВМА180 прописал напрямую. Акселерометр вроде как работает, а гироскоп нет. в GUI все цифры на графиках GYRO ROLL, PITCH, YAW - все по нулям. магнитометр вроде тоже работает, но иногда вдруг у него “крышу сносит” и он начинает выдавать хаотические цыфры типа -5000,8000 и прочее. весь экран в вертикальных полосках. я его пока отключил, как и барометр
можно просто пин CLK Gyro кинуть на землю, адрес гиры поменять на
#define ITG3200_ADDRESS 0XD2
Кстати обрати внимание на дребез контактов между аливан и мозгами иногда из-за этого глючит сильно.
и еще надо инвертировать орентацию гиры в коде, но это в зависимости от прошивки какая версия?
У меня 1.8 тоже баро и компас пляшут, хз как их завести нормально
инвертировать орентацию гиры
в 1.8 это где меняется?
У меня 1.8 тоже баро и компас пляшут, хз как их завести нормально
Баро сразу работает. А компас 5883L - жуть! Пришлось сделать табличку и перебирать комбинации ±X±Y±Z, пока не стал адекватно показывать в конфигураторе.
в 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
А как здесь инвертировать действие по одной оси? Просто у меня ощущение, что после перепрошивки перед стал задом…
И еще отклик на изменение положения какой то вялый стал - резко наклоняешь а положение аппарата в гуи меняется очень медленно… и так же восстанавливается в исходное положение. Не может ли это быть связано с изменением адреса гиро на 0xd2?
И еще отклик на изменение положения какой то вялый стал - резко наклоняешь а положение аппарата в гуи меняется очень медленно… и так же восстанавливается в исходное положение.
100% problema v nepravilnoy orientacii osey… tut eto eje pisali mnogo raz, t.e. esli medlenno doplivaet smotrite osi
А как здесь инвертировать действие по одной оси?
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;
Может конечно, 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;}
Адрес гиры не менял. Чтобы компас не показывал погоду, важно точно согласовать его ориентацию с гирой и акселерометром. Ну и калибровать компас в ГУИ.
Поменял ориентацию гиры по 2м осям - насчет Z не уверен, что она в реверсе поэтому оставил как есть. Коптер полетел гораздо уверенней. Хотя конечно чуток потряхивает один фиг.
Надо еще с пидами поковыряться и с механической частью в плане вибраций итд. А еще у меня один регулятор 30а и 3 по 18а может изза этого тоже колбасит.
Залил 1.8, все настройки и пиды выставил точ точ как были в 1.7, попробовал, снес нафиг и вернул 1.7
Во первых стал оч резкий, ну это не главное и поправимо через RC RATE и RC EXPO, во вторых после активных движений стиками во время полета в режиме стаб левел сильно уходит горизонт, т.е. если после этого его завесить и отпустить стики - сильно тянет влево и в перед, достаточно сесть , включить - выключить движки и горизонт выравнивается. Компаса и баро нет, стоят только ITG3200 и BMA020.
В 1.7 с этими же настройками летает мегастабильно 😃
Там перелопатили код стабилизации, врятли ПИДЫ от 1.7 подойдут 1.8, я лично P (в 1.5 раза) и D чуточку убавлял, летает лучше на 1.8 в итоге, так как там фильтр на вибрацию ввели.
Летает лучше на ALLINONE, или на “гира + аксель”, ну в смысле мне интересно почему у меня тады горизонт плывет?
Может 1.8 заточен под платы типа ALLINONE, где на борту еще есть компас , баро и тд.
Врятли заточен, компас и баро работает там как и работало, не аккуратно, с ними хуже летает помоему.
Горизонт ли уходит? Или у регулей плывет кривая? У меня ничего не уходит, ну или я уже не замечаю этого.
Не, точно не регули, т.к. после 1.8 через 5 мин. залил 1.7 и все стало ОК.
Не заметить трудно, уводит сильно.
И у меня BMA020 лучше BMA180 работал всегда, надо разбираться что там и где не так.
Единственное что приходит в голову - накапливается ошибка т.к. полет в режиме стаб левел на 1.8 более агрессивный и резкий ( если не менять пиды в сравнении с 1.7 ) в следствии чего возможно ведет горизонт.
Если сесть и вырубить движки а потом сразу включить - с горизонтом становится все ОК, т.е. надо смотреть прошивку, видимо в этот момент ( Motor Disarm/Motor Arm ) обнуляется гира либо аксель.
обнуляется гира при включении батареи, аксель обнуляется только при калибровке
обнуляется гира при включении батареи, аксель обнуляется только при калибровке
То что обнуляется именно так для 1.7 я в курсе, для 1.8 хз, ну да хрен с ним, хотел то фильтры глянуть как работают да LEVEL_PDF посмотреть.
LEVEL_PDF на 1.7 кто нить прикручивал, здесь код www.multiwii.com/forum/viewtopic.php?f=8&t=503#p25…
Интересует куда именно его вставлять в скетч, и какие предпочтительные P и I выставлять для него в GUI ?