MultiWii
Здравстуйте.Есть вопрос касаемо режимов работы ЖПСа.В конфинге есть строчка в разделе ЖПС что то вроде ,не сбрасывания координат при арминге,Вроде в описании сказано что точка настраивается при калибровке гироскопа.
Собственно может кто настраивал и знает как правильно это сделать?
У меня что то так и не получилось.Может эта функция и не работает?
Если настраивать и калибровать мультивии на батарее 2S все вроде отлично можно даже летать. Но скажем так летает немного тяжеловато, для обучения по сути самое то. Скорость не большая, все по минимуму. Как только ставлю батарею 3S слетают напрочь настройки горизонта.
Был глюк с горизонтом, обязательно замерить напряжения на меге в точке референса и напряжении питания датчиков, если оно изменилось даже на 1% горизонт уйдет! Решение проблемы переработать всю цепь питания ардуины если плата покупная.
Всем привет
Пришел барометр MS5611 . Платка allinone на ней установлен баро BMP085 я его выпаял.На проволках подцепил новый баро по схеме .В скетче выставил следующее и залил
/*************************** independent sensors ********************************/
/* leave it commented if you already checked a specific board above */
/* I2C gyroscope */
//#define WMP
#define ITG3200
//#define L3G4200D
//#define MPU6050 //combo + ACC/* I2C accelerometer */
//#define NUNCHUCK // if you want to use the nunckuk connected to a WMP
//#define MMA7455
//#define ADXL345
//#define BMA020
#define BMA180
//#define NUNCHACK // if you want to use the nunckuk as a standalone I2C ACC without WMP
//#define LIS3LV02
//#define LSM303DLx_ACC/* I2C barometer */
//#define BMP085
#define MS561101BA/* I2C magnetometer */
//#define HMC5843
#define HMC5883
//#define AK8975
//#define MAG3110
В гуи баро заработал но отпал аксел и посыпались ошибки по I2c
С контактом CSB игрался на массу и + не помогло
Как вариант,что то отпаялось или наоборот спаялось не правильно во время выпайки баро.
Скорее всего акселерометр.
Если выпаивалось феном,то такое возможно,а если этот фен был строительный,то вероятней всего.
Да не с пайкой там все ок и фен специальный для этих дел.Проблема решина в def.h прописываем новый баро и его адрес в настройках Allione и пин CSB кидаем на +3.3
#if defined(ALLINONE)
#define ITG3200
#define BMA180
#define MS561101BA
#define HMC5883
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -X; accADC[PITCH] = -Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = -Z;}
#define BMA180_ADDRESS 0x41
#define MS561101BA_ADDRESS 0x76#endif
Товарищи, помогите пожалуйста вписать i2c акселерометр LIS302DLTR. Собсно добился правильной инициализации, сам датчик работает, но выдаёт данные в каких то странных размерностях (т.е. например отклоняю на угол 10градусов - а на экране квадрик вращается на весь оборот). Не понимаю логику этих двух команд (украдено у другого i2c датчика):
i2c_getSixRawADC(BMA180_ADDRESS,0x02);
ACC_ORIENTATION( ((rawADC[1]<<8) | rawADC[0])/16 ,
((rawADC[3]<<8) | rawADC[2])/16 ,
((rawADC[5]<<8) | rawADC[4])/16 );
вот данные из даташита по поводу чтения искомых данных:
Name Type Address Comment
-- r 28 Not Used
OutX r 29 output
-- r 2A Not Used
OutY r 2B output
-- r 2C Not Used
OutZ r 2D output
Также, подскажите, какой самый правильный способ отлаживать этот Мультивий? Например требуется получить через serial вывод сырых данных от датчика
Не понимаю логику этих двух команд (украдено у другого i2c датчика):
тут все просто:
i2c_getSixRawADC получает 3 16-ти битных значения по и2с начиная с регистра 0х02 из устройства с адресом BMA180_ADDRESS
собственно тебе нужно создать свою процедурку, скопировать туда код из этой и переделать на свое (там не особо много нужно переделок)
вторая функция, а вернее макрос рассовывает полученные данные в массив данных акселя
а по отладке - чем не нравятся стандартных 4 дебага? разрешаеш DEBUG в конфиге и просто где нужно вывести данные помещаеш их в debug[0…3] соответственно
тут все просто:
i2c_getSixRawADC получает 3 16-ти битных значения по и2с начиная с регистра 0х02 из устройства с адресом BMA180_ADDRESS
собственно тебе нужно создать свою процедурку, скопировать туда код из этой и переделать на свое (там не особо много нужно переделок)вторая функция, а вернее макрос рассовывает полученные данные в массив данных акселя
Сергей, спасибо, в глобальном плане теперь в общем всё понятно! Процедурку свою тоже создал, осталось собсно поправить эти две строчки, и всё будет работат. Непонятно несколько мелочей:
- В моей процедурке, слизанной с какого-то более похожего на мой датчик датчика, строка получения данных выглядит так - i2c_getSixRawADC(LIS302,0x28 +0x80); (причём худо бедно данные получаются, значит адрес тот) Так вот вопрос, как понимать такую адресацию как Адрес+0x80? Заметьте 0x28 - адрес первого значения из даташита/
- Стыдобища конечно, но что даёт этот оператор rawADC[1]<< 8 😃 Помню что что-то с битами, какой то сдвиг чтоли. Не умножение ли на 2 в степени 8?
- И наконец, зачем результат делить на 16 ((rawADC[1]<<8) | rawADC[0])/16)
- правильно ли я понимаю что мой Макрос будет выглядеть примерно так, поскольку судя по даташиту - значения на выходе состоят всего из одного байта, а не из двух: ACC_ORIENTATION( rawADC[1],
rawADC[3],
rawADC[5]);
а по отладке - чем не нравятся стандартных 4 дебага? разрешаеш DEBUG в конфиге и просто где нужно вывести данные помещаеш их в debug[0…3] соответственно
Не знал этого. Вернее включал дебаг, и думал что DEBUG0-3 это просто флаги 😃 Возможно это мне поможет…
P.S. Собсно буду благодарен, если кто вдруг поправит за меня эти две строчки 😃 Делов то! 😉
Заметил что в GUI не останавливается счетчик ошибок Ic2 (плата crius se), попробовал уменьшить скорость шины - ни чего не изменилось.
Обратил внимание что баро как-то стабильно чего то кажет ,пропаял результат 0, за комментировал его, ошибки по шине пропали - умер датчик ?
Что может быть причиной его кончины (пару не больших крешей напр)?
Подскажите пожалуйста как правильно подключить bluetooth. У меня seeeduino mega. Как я понял подключать нужно к RX TX 0 (хотя пробовал разные -и от GPS и от PPM SUM и от LCD ). В настройках вия вроде тоже ничего не нужно настраивать. Пробовал и с андроидом и с компьютером - по сути соединяется с портом, но ничего не работает.
читал про замену библиотеки - но ведь для androidа это не актуально, куда копать ? что я пропустил ? сам модуль проверял - подключал через комп порт с одной стороны и блютус с другой -данные между ними ходят прекрасно(скорость 115200 на модуле предварительно настроил )
Обратил внимание что баро как-то стабильно чего то кажет ,пропаял результат 0, за комментировал его, ошибки по шине пропали - умер датчик ?
Проблема наверно програмная а вот после того как пропаяли его работоспособность под вопросом.
с компьютером
У меня на стационаре не пашит видит, подключается но данные не бегут а вот на ноуте без проблем.Програма блюточ на компе какая?
Подключать нужно так
плата RX- блюточ TX . плата TX-блюточ RX
Ура, я его (LIS302DLTR) победил!
ACC_ORIENTATION( int8_t(rawADC[1]),
int8_t(rawADC[3]),
int8_t(rawADC[5]));
Пять часов было убито на то, чтобы понять, что мультивий не так воспринимает считанные данные (SIGNED BYTE Мультивий видит как UNSIGNED BYTE)
Если кому вдруг понадобится код для этого датчика - выложил в дневнике.
Подскажите, кто-нибудь использует EagleTree PowerPanel для настройки и показа параметров? Я попробовал - на экране тишина. Подключил правильно - по I2C устройство распознаётся.
Ок, проверю и на ноуте, но ведь на телефоне тоже не работает… Подключал естественно TX-RX, хотя пробовал и наоборот 😃
Проблема наверно програмная а вот после того как пропаяли его работоспособность под вопросом
Проблема аппаратная 100%. Софт заливал и 2.0 и 2.1.
Перекинул датчик с другой платы - все работает , ошибок по I2c нет.
Рас уж тут речь про ЖПС удержание, напишу и я свои симптомы. Коптер в режиме ЖПС холд висит хорошо, но, не во всех направлениях. Как только поверну нос в какое-то определенное направление, коптер начинает так сказать “унитазить”, летать по спирали, но нос остается в том же направлении. Думаетцо, помехи компасу. Но, пробовал отключать компас, калибровать, поднял плату, тоже самое.
Ну значит с 1000-м юбилеем меня! 😃
Хотите поздравить?! Ложите спасибы! 😉
Вобщем, после серии экспериментов удалось выяснить, что жуткие помехи на ЖПС да и наверно на компас шлет безобидный на первый взгляд девайс - камера. ЖПС она доводит до потери спутников при наличии 5-6 с выключенной камерой.
В фольгу ее для эксперимента не пробовали заворачивать? А фольгу заземлить.
Тоесть не видеопередатчик, который немного приглушает жпс даже если жпс положить на антенну передатчика, а камера. Может ее заэкранировать?
Не видел вашего ответа) Да, надо попробовать фольгу для начала
Подскажите пожалуйста по LCD_Config. Документации, как водится, никакой.
Во первых - правда ли, что эта штука позволяет настраивать коптер в поле без компа? Вместо MWC. Или роль ее совсем другая?
Во вторых - что-то надо дополнительно прописывать в конфиге Мультивия чтобы он начал воспринимть LCD_Config, и общаться с ним?
Ну и в третьих, конкретный случай - сделал на базе Arduino Duemillanove + DFRobot LCD Keypad этот LCD_Config. В демо режиме прекрасно работает - циферки случайные бегают туда-сюда. Включаешь реальный режим, подключаешь TX_LCD-RX_Multiwii, RX_LCD-TX_Multiwii. И тишина - минуту что-то пытается читать “Reading: <>”, затем говорит что всё плохо, коммуникации нет, зависает. При этом например если я в MultiWii заливаю скетч, способный в порт выдавать “Это мы… опилки!” - эту же самую фразу я легко получаю в LCD_Config, переключив его в режим показа принятого (TEXTSTAR EMULATION чтоле). То есть коммуникация как бы существует. Видимо всё же что-то недонастроил в самом софте мультивия или LCD_Config?
Подскажите пожалуйста по LCD_Config. Документации, как водится, никакой.
А вы с какой версией прошивки пробуете ? Я насколько знаю, в версии 2.1 вроде как убрали поддержку LCD этой