MultiWii

VitaliyRU
Musgravehill:

Это квест! Если человек смог пройти нулевой уровень - добро пожаловать в игру!

Да не квест это, а дурдом. Или кому-то что-то жмет, видимо асилили с трудом. Раз уж народ в этой теме не хочет спрашивать, а спрашивают у меня в личке, например. Мне-то ответить не жалко…
фигня это все…, просто структурированной информации нет.
И радовацца и гардицца тут не чем.

devv

Разобраться можно. 92 стр на русском это не тысячи как на англ. написано.

Но всё таки лучше с нормальными датчиками делать, а не пиленными из фиг знает чего и как.

VitaliyRU
devv:

Но всё таки лучше с нормальными датчиками делать, а не пиленными из фиг знает чего и как.

Гиры дорогие. Itg3200 где-то от $40…
при условии, что аурдинка от $8, моушен плюс(последнее время все с itg3205) $8 - разница 😃.
а аксели и так не дорогие, да и в чаках не съедобные в последнее время.
Получаются вполне съедобные датчики за 3 копейки в базарный день.

devv:

Разобраться можно. 92 стр на русском это не тысячи как на англ. написано.

Да можно конечно, но сильно зависит от базовых знаний. По началу сложно понять от куда рыть 😃)

woddy

а где ты ардуину по 8 баксов нашол? как-то дешевле 13 без усб или за 16 с усб не вижу

VitaliyRU
woddy:

а где ты ардуину по 8 баксов нашол? как-то дешевле 13 без усб или за 16 с усб не вижу

Писал по памяти, сори - $10
www.ebay.com/itm/280601525492
мне именно маленькая и лехкая нужна была, для комнатного мелколета

woddy

в любом случае еще регули 4х12, моторы 4х14, батарейка 17, зарядка для батарейки 20, пульт 30. итого от 200 баксов. стоимость датчиков на фоне становится не такой уж большой.

VitaliyRU

у меня все по 9 😃) регули 4х9, моторы 4х9, батарейка 9, приемник 9 это из того что может улететь своей дорогой 😃
Все остальное останется 😃
Да и пульты зарядки и т.п. уже есть обычно.
На фоне 100, все же стоимость мозга заметна.

Хотя конечно согласен, просто если ужЕ разобрался, зачем платить больше? 😃

bergorsam

Помоните подключить напрямую LCD на базе HD44780 к Arduino для Multiwii по такому принципу robocraft.ru/blog/arduino/503.html
Помогите пожалуйста с кодом в Multiwii. (т.к. на меге выходов пока хватает!)

native18

Прошу ответить на банальный вопрос. С акселерометра идут три выхода: x, y, z.
Я считал, что соответственно отвечают за крен, тангаж и курс, но судя по ГУИ все совсем не так.
Научите, как правильно. Прошу сильно не пинать.

Musgravehill
native18:

С акселерометра идут три выхода: x, y, z.
Я считал, что соответственно отвечают за крен, тангаж и курс

На оси x, y, z выполняется проекция суммарного вектора всех сил, действующих на датчик.
Когда датчик горизонтально расположен, на него действует только сила тяжести. По осям Х,У проекция этой силы = 0, по оси Z - будет некое число.
При наклоне датчика или появлении дополнительных сил (центростремительная, например) суммарный вектор всех сил проецируется на оси x, y, z в виде некоторых чисел.
В свободном падении по осям будет 0.

native18
Musgravehill:

В свободном падении по осям будет 0.

Спасибо.
Это что же получается, что МультиВии высоту тоже отслеживает?

kedrikov
native18:

Спасибо.
Это что же получается, что МультиВии высоту тоже отслеживает?

При помощи баро датчика или жпс,или же совмесно для большей точности

Musgravehill
native18:

МультиВии высоту тоже отслеживает?

Только проекции сил по осям. Именно так предлагается дополнить бародатчик для удержания высоты: ПИД по давлению воздуха, ПИД по оси Z: проекция F=m*(g-a). Коптер сваливается или взмывает вверх - идет возмущение по давлению воздуха, и по ускорению (g-a) по оси Z.

native18:

курс

Курс определяется только гироскопом (ДУС) и магнитометром.
Для компенсации наклона магнитометра нужен акселерометр.

native18

Еще вопрос назрел. Скачал MultiWii_1_9.
Но вот не пойму, это какая то урезанная версия? или это заплатка?
Внутри нет выбора вида коптера и пр.
Искал по теме ничего по этому поводу не нашел.
Объясните, может я не то скачал или куда это вставить, чтобы получилась полная прошивка.
Работал с файлом MultiWii_1_9.pde

devv

Внутри нет выбора вида коптера и пр.

Вроде есть.

devv
native18:

Работал с файлом

Неверно не в той папке открываете

если в MultiWiiConf_1_9 то там только MultiWiiConf_1_9.pde размером всего 47 кб

А надо в папке MultiWii_1_9 открывать любой pde, там есть всё.

native18

Спасибо, все понял, там оказывается еще куча вкладок и надо открыть вкладку config.h

soliada

Может кому нибудь будет интересно
Код для пары еще одних датчиков.Один акселерометр,другой компас-акселерометр в одном корпусе.


// ************************************************************************
// 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



mahowik
soliada:

Может кому нибудь будет интересно Код для пары еще одних датчиков.Один акселерометр,другой компас-акселерометр в одном корпусе.

в 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
soliada
mahowik:

в 1.9 уже добавили LSM303…

Это я знаю.Там код для немного другого датчика в корпусе LGA28,у меня с ним так и не заладилось,производитель или что-то намудрил с питанием или сделал ошибку в даташите.
LSM303DLHC корпус LGA14,точно такой же как у ADXL345.
Хотя по назначению и адресам регистров они практически одинаковые, есть конечно некоторые не значительные отличия.
Компасная часть аналогична компасу HMC5883,можно даже тупо раскомментировать HMC5883 и будет работать.
Огромный плюс,нет запарки с направлением осей.
Да,с Мультивийным кодом имеющиеся у меня датчики почему то не заработали.