MultiWii

HATUUL
mahowik:

а в чем жаба

Рисунка не видно.

Народ кто-то может сказать что у него нуунчак и tg3205 работают вместе,без теории на практике,думаю таких нет.

mahowik
HATUUL:

без теории на практике

wbb.multiwii.com/viewtopic.php?f=6&t=27&start=20 тут есть такие
у вас кстать чака оригинал? у меня похоже оригинал и есть проблемы с подключением как standalone… + на 400кГц вообще не запускается…
перековырнул I2C multiwii API чеб заработал (спасибо ziss_dm)…

void i2c_ACC_init() {
  TWBR = ((16000000L / 100000L) - 16) / 2;

  i2c_rep_start(0xA4 + 0);//I2C write direction => 0
  i2c_write(0xF0);
  i2c_write(0x55);
  i2c_rep_stop();

  i2c_rep_start(0xA4 + 0);//I2C write direction => 0
  i2c_write(0xFB);
  i2c_write(0x00);
  i2c_rep_stop();

  delay(250);
  accPresent = 1;
}


void i2c_ACC_getADC() {
  TWBR = ((16000000L / 100000L) - 16) / 2;

  i2c_rep_start(0xA4 + 1);//I2C read direction => 1
  for(uint8_t i = 0; i < 5; i++)
    rawADC_NUN[i]=i2c_readAck();
  rawADC_NUN[5]= i2c_readNak();
  i2c_rep_stop();

  accADC[ROLL]  =   ( (rawADC_NUN[3]<<2)        + ((rawADC_NUN[5]>>4)&0x2) );
  accADC[PITCH] = - ( (rawADC_NUN[2]<<2)        + ((rawADC_NUN[5]>>3)&0x2) );
  accADC[YAW]   = - ( ((rawADC_NUN[4]&0xFE)<<2) + ((rawADC_NUN[5]>>5)&0x6) );

  i2c_rep_start(0xA4 + 0);//I2C write direction => 0
  i2c_write(0x00);
  i2c_rep_stop();
}

void i2c_rep_stop(void)
{
  TWCR = (1 << TWINT) | (1 << TWEN) | (1 << TWSTO);
  waitTransmissionI2C();
}
HATUUL
mahowik:

у вас кстать чака оригинал?

А вот этого я не знаю,нуунчак подогнал Питер (fmkit),а он как многие знают спец в нуунчаках,по его словам аксел лучше чем у оррегинала,какой-то бошевский.

mahowik:

и есть проблемы с подключением как standalone

Так в конце получилось подключить?

mahowik
HATUUL:

Так в конце получилось подключить?

да (но без ВМ+) и даже на 380кГц… если выше то педалит…

HATUUL
mahowik:

и даже на 380кГц

А зачем вам 400кГц?Как я понял это только хуже.

mahowik
HATUUL:

А зачем вам 400кГц?Как я понял это только хуже.

чем выше частота, тем ниже время цикла… соот-но тем выше скорость реакции системы…
хотя если летать блинчиком, а не как warthox то думаю разницу будет трудно заметить 😃

Musgravehill
mahowik:

I recommend 1k8 as this gives you the best performance

Забыл сказать, при относительно низком сопротивлении подтягивающих резисторов фронты сигнала получаются резкими и не размазываются. Это хорошо. Я ставлю 3.3кОм. При слишком большом сопротивлении, как я понимаю, переходные процессы “0”<—>“1” затягиваются, поэтому фронты получаются нечеткими, это может вызвать сбой.

Wishnu

Сидуину воскресить не удалось. Пересобрал всё на кардуине, завтра буду плату резать по размеру.
Почему-то возрос cycle time с 3000 до 4000 😦 В коде ничего не менял, подключение такое же.

HATUUL
Wishnu:

Почему-то возрос cycle time с 3000 до 4000

Может бут разный.😃

HATUUL

Задался вопросом.
В чём разница между 8кГц и 16кГц ШИМами в безколлекторном контроллере?
Точнее что оно даёт перевод на 16кГц,и что ставить на квадрик?
Пока заметил на 16кГц,движки перестали шуметь,значит минус пару процентов вибрации,и это гут.

Musgravehill

Говорят, что у бюджетных ESC

HATUUL:

на 16кГц

может возникать срыв генерации. Но что-то не замечал.

Wishnu
SovGVD:

а на морозе то как себя ведет?

Работает в любую погоду))
Еще назрел вопрос, как выглядит зависание по i2c шине?
И еще, если кто следит за веткой FFIMU датчиков на рцгрупс, они в каком то магазе продаваться будут или на форуме?

Syberian
Wishnu:

как выглядит зависание по i2c шине

если в полете - моторы колом и падает камнем
если в ГУИ - график перестает бежать, пока прогу не перезапустишь, также могут появляться дикие, в т.ч. отрицательные числа в cycle time

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

Covax

Олег, ну как там вообще жизнь молодая? Забросил фильтр свой программировать?

Wishnu
Syberian:

если в ГУИ - график перестает бежать, пока прогу не перезапустишь

Я вот на ночь оставил гуи - оно повисло, но перезапуск проги не помогает. Поможет если только питание отключить и потом снова включить. При этом сколько уже аккумуляторов посадил - ни разу не замечал, что б что то повисло.

а что такое

Syberian:

Allinone

можно ссылку? )

MikeMDR
mahowik:

чем выше частота, тем ниже время цикла…

Интересно, а на сколько?
Т.к. время в цикле - это время на внутренние преобразования в гиро(аксель)-сенсоре + время на обмен данными между Ардуиной и сенсором. Например, для ВМА150: “Acceleration data refresh rate (all axes) - f_rate - 2,7-3,3 кHz”.
А для гиры L3G4200D вообще: “Digital output data rate - 100/200/400/800 Hz”
( Насколько я понял, для ITG-3200: “The ADC output rate is programmable up to a maximum of 8,000 samples per second down to 3.9 samples per second”)
А т.к. начала измерений в сенсорах не синхронны, то, даже с учётом того, что данных - несколько десятков байт, при " i2c - 100kHz" передача данных закончится раньше, чем будут готовы все новые данные!
И много мы выиграем при переходе на 400kHz?

Саша_пилот
Syberian:

купил Allinone

может маленький, фото видео отчетик сварганиш?

п.с. Я тоже его заказал

Texnik

Allinone - та самая платка со всеми датчиками … Так?

Syberian

Она самая.
Плата версии 3.3В, питать можно хоть 3.3 хоть 5, не забыть отключить internal_pullups в ардуине. Никаких LLC не нужно - все это суходр*чка.

Чтоб заработала, никаких извратов не нужно: SCL-SCL, SDA-SDA, GND-GND, VDD-3.3(5)V,
Запретить internal_pullups, раскомментить ITG3200,BMA180,BMP085,HMC5883, поменять в процедуре, начинающейся на #ifdef BMA180 все числа 0х80 на 0х82 и все заработает автоматом.
Плату ставить деталями вверх, узкой стороной вперед, если смотреть сзади по движению, дырки под провода были слева.
Все.