MultiWii
Спасибо, все понял, там оказывается еще куча вкладок и надо открыть вкладку config.h
Может кому нибудь будет интересно
Код для пары еще одних датчиков.Один акселерометр,другой компас-акселерометр в одном корпусе.
// ************************************************************************
// LSM303DLHC I2C Accelerometer
// ************************************************************************
#if defined(LSM303DLHC)
// I2C adress: 0x32 (8bit)
void ACC_init(){
delay(10);
i2c_writeReg(LSM303DLHC_ADDRESS ,0x20 ,0x27 );
delay(5);
i2c_writeReg(LSM303DLHC_ADDRESS ,0x23 ,0xA8 );
acc_1G = 256;
}
void ACC_getADC(){
TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz
i2c_getSixRawADC(LSM303DLHC_ADDRESS,0x28+0x80); // Start multiple read at reg 0x28
ACC_ORIENTATION( (rawADC[3]<<8 | rawADC[2])/16,
-(rawADC[1]<<8 | rawADC[0])/16,
-(rawADC[5]<<8 | rawADC[4])/16);
ACC_Common();
}
#endif
// ************************************************************************
// LIS3DH I2C Accelerometer
// 1) CS PIN must be linked to VCC to select the I2C mode
// 2) SD0 PIN must be linked to VCC to select the right I2C adress
// ************************************************************************
#if defined(LIS3DH)
// I2C adress: 0x32 (8bit)
void ACC_init(){
delay(10);
i2c_writeReg(LIS3DH_ADDRESS ,0x20 ,0x57 );
delay(5);
i2c_writeReg(LIS3DH_ADDRESS ,0x23 ,0x88 );
acc_1G = 256;
}
void ACC_getADC(){
TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz
i2c_getSixRawADC(LIS3DH_ADDRESS,0x28+0x80); // Start multiple read at reg 0x28
ACC_ORIENTATION( (rawADC[3]<<8 | rawADC[2])/64,
-(rawADC[1]<<8 | rawADC[0])/64,
-(rawADC[5]<<8 | rawADC[4])/64);
ACC_Common();
}
#endif
// ************************************************************************************************************
// I2C Compass LSM303DLHC
// ************************************************************************************************************
// I2C adress: 0x3C (8bit)
// ************************************************************************************************************
#if defined(LSM303DLHC)
void Mag_init() {
delay(100);
i2c_writeReg(0X3C ,0x02 ,0x00 ); //Start the first conversion
delay(100);
}
void Device_Mag_getADC() {
i2c_getSixRawADC(0X3C,0X03);
MAG_ORIENTATION( ((rawADC[4]<<8) | rawADC[5]) ,
-((rawADC[0]<<8) | rawADC[1]) ,
-((rawADC[2]<<8) | rawADC[3]) );
}
#endif
Может кому нибудь будет интересно Код для пары еще одних датчиков.Один акселерометр,другой компас-акселерометр в одном корпусе.
в 1.9 уже добавили LSM303…
для остальних забросьте на офф форум, а то погибнут труды 😃
// ************************************************************************************************************
// I2C Accelerometer LSM303DLx
// contribution from wektorx ()
// ************************************************************************************************************
#if defined(LSM303DLx_ACC)
void ACC_init () {
delay(10);
i2c_writeReg(0x30,0x20,0x27);
i2c_writeReg(0x30,0x23,0x30);
i2c_writeReg(0x30,0x21,0x00);
acc_1G = 256;
}
void ACC_getADC () {
TWBR = ((16000000L / 400000L) - 16) / 2;
i2c_getSixRawADC(0x30,0xA8);
ACC_ORIENTATION( - ((rawADC[3]<<8) | rawADC[2])/16 ,
((rawADC[1]<<8) | rawADC[0])/16 ,
((rawADC[5]<<8) | rawADC[4])/16 );
ACC_Common();
}
#endif
в 1.9 уже добавили LSM303…
Это я знаю.Там код для немного другого датчика в корпусе LGA28,у меня с ним так и не заладилось,производитель или что-то намудрил с питанием или сделал ошибку в даташите.
LSM303DLHC корпус LGA14,точно такой же как у ADXL345.
Хотя по назначению и адресам регистров они практически одинаковые, есть конечно некоторые не значительные отличия.
Компасная часть аналогична компасу HMC5883,можно даже тупо раскомментировать HMC5883 и будет работать.
Огромный плюс,нет запарки с направлением осей.
Да,с Мультивийным кодом имеющиеся у меня датчики почему то не заработали.
Подскажите плиз…Как поведет себя коптер если плату с датчиками (алинван) сместить на 3-4 сантиметра от центра по крену.?Насколько сильео повлияет это на его поведение и стабильность?
плату с датчиками (алинван) сместить на 3-4 сантиметра от центра
у меня никогда по центру масс ЦМ плата с датчиками не была. Каждый раз оказывалась сбоку внутри корпуса ЛА. Проблем не замечал.
Посмотрите хотя бы на фирменных сайтах (NAZA DJI, например) ЛА на обложках, где лежат красивые коробочки с мозгами - часто сбоку. И ничего, летает.
Вот блин а я чет зацепился за этот центр …
а я чет зацепился за этот центр
5 сантиметров ничего не решают. Все-равно, акселерометр находится “рядом” с тяжелым аккумулятором в центральной части.
+_5 см - как раз, примерно такой размер имеет центральная часть, куда крепят датчики.
Пытаюсь подключить акселерометр
Схема
При этом светодиод на плате не горит и сигналов на выходе нет.
Если делаю так
То выходные сигналы появляются, но они неизменны.
У кого нибудь такое работает?
У меня заработал полноценно при подключении CS и SDO на VCC.
Пытаюсь подключить акселерометр
Пины CS и SDO в варианте МультиВи должны быть подсоединины на VCC, CS-выбор между I2C и SPI, SDO-вариант адреса датчика.
Вопрос,а питание подаете 3.3 или 5в?
Пины CS и SDO в варианте МультиВи должны быть подсоединины на VCC, CS-выбор между I2C и SPI, SDO-вариант адреса датчика.
Вопрос,а питание подаете 3.3 или 5в?
Спасибо. Завтра попробую. Питание подается 3,3в на пин 3,3.
Пины CS и SDO в варианте МультиВи должны быть подсоединины на VCC, CS-выбор между I2C и SPI, SDO-вариант адреса датчика.
Вопрос,а питание подаете 3.3 или 5в?
Сейчас у меня сделано так. Не работает…
Сейчас у меня сделано так. Не работает…
Что-то не понятно.Вроде вопрос был про как подключить акселерометр? На последней фото деталь от Вимоушен.
Как его подключить можно прочитать по ссылке на первой странице.
По рисунку,к ардуинке тоже надо подключить землю.
Что-то не понятно.Вроде вопрос был про как подключить акселерометр? На последней фото деталь от Вимоушен.
Как его подключить можно прочитать по ссылке на первой странице.
По рисунку,к ардуинке тоже надо подключить землю.
Угу. Деталь от Вимоушен есть гира. Подключаю гиру к ардуинке - система работает. Далее хочу добавить акселерометр. Вот тут и не получается. земля к ардуине подключена.
Скачал последнюю версию прошивки MultiWii_dev_20111203,как оказалось открывается только в Arduino 1.0
Скачал,установил,открыл скеч…не компилируется.Выдает ошибку.Пробовал открывать предыдушие прошивки в Arduino 1.0,
тоже не компилируются по аналогичной причине.
pereimenuyte *.ino v *.pde i vse skompilitsya v arduino-0022
на плате резистор удалить надо, я об этом писал где то, поищите
на плате резистор удалить надо, я об этом писал где то, поищите
Спасибо, помогло.
А подскажите если балки карбоновые от 450-ки использывать hobbyking.com/…/__17126__HK450_carbon_tail_boom_.h… вместо алюминиевых hobbyking.com/…/__11503__HK450V2_Tail_Boom_.html .Имеет смысл ,как они резонировать будут или нет,вроде как немножко легче и при ударе не гнутся??
они резонировать будут
Эти алюминиевые балки чуть толще фольги. Я использовал не обрезая. Короче ничего хорошего. Потом перешел на карбон. Разница большая.
А вот если падать\жестко садиться. Аллюминий согнется однозначно, карбон может еще и выдержит не сильный удар.