Crius Hobby MultiWii

SovGVD
SovGVD:

завтра БТ подключу и запишу графики в полете

как и обещал, но чуток с правками
итак, 2.0 a0 код:


void ACC_init () {
  delay(10);
  i2c_writeReg(ADXL345_ADDRESS,0x2D,1<<3); //  register: Power CTRL  -- value: Set measure bit 3 on
  i2c_writeReg(ADXL345_ADDRESS,0x31,0x0B); //  register: DATA_FORMAT -- value: Set bits 3(full range) and 1 0 on (+/- 16g-range)
  i2c_writeReg(ADXL345_ADDRESS,0x2C,0x09); // rate=50hz, bw=25hz (see table 7 of the spec)
  acc_1G = 256;
}

www.youtube.com/watch?v=MuD-5WD5U9Q

2.0 a0 предложенные правки кода (летать не пытался, так как горизонт не адекватно себя ведет)

www.youtube.com/watch?v=k1Q5N0rEq6Q

2.0 a0 правки + моя правка для 1G


void ACC_init () {
  delay(10);
  i2c_writeReg(ADXL345_ADDRESS,0x2D,1<<3); //  register: Power CTRL  -- value: Set measure bit 3 on
  i2c_writeReg(ADXL345_ADDRESS,0x31,0x0B); //  register: DATA_FORMAT -- value: Set bits 3(full range) and 1 0 on (+/- 16g-range)
  i2c_writeReg(ADXL345_ADDRESS,0x2C,0x0B); // rate=200hz, bw=100hz (see table 7 of the spec)
  acc_1G = 256;
}

www.youtube.com/watch?v=sZ_Oyjheaaw

особых различий в полете не почувствовал

mahowik

А блин забыл… при 1g = 128 надо данные на 2 делить (каждую ось) и калибровку потом сделать…
Как результат в гуи по всем осям должна быть тишина, когда коптер в покое …

SovGVD
mahowik:

А блин забыл… при 1g = 128 надо данные на 2 делить (каждую ось) и калибровку потом сделать…
Как результат в гуи по всем осям должна быть тишина, когда коптер в покое …

сегодня уже наверно не проверю, может быть вечером… и так на скорую руку делал

mahowik

вот так должно быть + перекалибровку не забыть сделать:


#if defined(ADXL345)
void ACC_init () {
  delay(10);
  i2c_writeReg(ADXL345_ADDRESS,0x2D,1<<3); //  register: Power CTRL  -- value: Set measure bit 3 on

  i2c_writeReg(ADXL345_ADDRESS,0x31,0x0B); //  register: DATA_FORMAT -- value: Set bits 3(full range) and 1 0 on (+/- 16g-range)

  i2c_writeReg(ADXL345_ADDRESS,0x2C,0x0B); // rate=200hz, bw=100hz (see table 7 of the spec)

  acc_1G = 128;
}

void ACC_getADC () {
  TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz, ADXL435 is ok with this speed
  i2c_getSixRawADC(ADXL345_ADDRESS,0x32);

  ACC_ORIENTATION( ((rawADC[1]<<8) | rawADC[0])/2 ,
                   ((rawADC[3]<<8) | rawADC[2])/2 ,
                   ((rawADC[5]<<8) | rawADC[4])/2 );
  ACC_Common();
}
#endif
SovGVD
mahowik:

вот так должно быть + перекалибровку не забыть сделать:

www.youtube.com/watch?v=lHDNdbRu_4g

по ощущениям очень вяло держит горизонт, т.е. шум от акселя не заметен, а вот отупение акселя ощущается, как будто летаешь на гирах и немного на акселе

upd: вернул как было, летает вот так, мне нравится, на улице конечно получше

www.youtube.com/watch?v=WGeOTUWnN-s

чуто увеличил P, совсем хорошо стало

mahowik
SovGVD:

по ощущениям очень вяло держит горизонт, т.е. шум от акселя не заметен, а вот отупение акселя ощущается, как будто летаешь на гирах и немного на акселе

как писал ток что в вии ветке аксель не притупляется, а просто уменьшается дискретность данных с 256 на 128 (64 уже маловато но и с етим работало на бма020), что позволяет уменьшить шум около нуля (и дрейф соот-но), т.е. около горизонта… странно кроче… надо чеб кто нить еще подлетнул… VitaliyRU вроде обещал… сам не могу пока, в ремонте…

SovGVD

я склонясь к мнению что подобный минимальный шум ±2 на 512 вариантов (-256…256, насколько я понимаю) не влияет на полет - у меня вибрация от моторов явно сильнее действует на аксель, чем его собственный шум
кстатии какой сейчас самый круто аксель хоть считается? (как ms**** против bma085)

mahowik

Гдет читал что у рабита неплохой аксель… не помню марку

VitaliyRU
mahowik:

VitaliyRU вроде обещал

У меня у самого он оказался весь поломанный 😦. Даже на гириках нормально не висит , унитазит(как бы воронками летает). А пока это не победить, понять что с акселем происходит, не получится естесвенно. Надеюсь завтра починю.
Но мне показалось что с 50 гц лучше чем с 200. На 200 он дрйфует в произвольную сторону. Эффект такойже бывает если проп какойто плохо сбалансирован.
На 50 он хоть и воронками но в комнате держится, а с 200 прилипает к какой-то из стен, причем произвольной. Я правда не загрублял делением. Но если он летит до стены секунд 5, этож около 1000 значений все и так усреднится, ИМХО.

Dimm168pin
mahowik:

Гдет читал что у рабита неплохой аксель… не помню марку

таймкоп щас собрал свой стандартный naze32 с гириком от 6050 и кроликовым акселем, на бумаге кролевый аксель лучший из доступного, естественно т.к нет это чипа в широком доступе, на него нет и виевского кода под меги, на stm он вроде как сам его накатал

SovGVD

что хоть за мифический кроликовый аксель? на всех фотках все чипы замазаны =(

Сергей_Вертолетов

MMA8452Q

Отличительные особенности:

  • 14- и 12-разрядный цифровой выход
  • Разрешение: 14-разрядное — 0.25 милли-g (тысячной доли значения ускорения свободного падения – g); 12-разрядное – 1 милли-g
  • Низкий уровень шума: 99 микроgÖГц (независимо от разрешения)
  • Энергетически экономичный режим: 6 мкА
  • Напряжение питания I/O интерфейса: от 1.62 до 3.6 В
  • Напряжение питания: от 1.95 до 3.6 В
  • Скорость обмена данными на выходе: от 1.5 до 800 Гц
  • Два программируемых вывода входа прерываний, обеспечивают 7 источников прерываний
  • Встроенные функции детектирования движения:

— Детектирование движения или свободного падения
— Детектирование импульса
— Детектирование толчка
— Детектирование ориентации (портрет/ландшафт) с гистерезисом
— Автоматическое изменение скорости обмена данными при переходе сон/активация и наоборот
— Самотестирование

  • Встроенный FIFO буфер на 32 выборки
  • Данные, отфильтрованные по высокой частоте, обеспечиваются выборками и посредством FIFO

Низкопрофильные QFN корпуса (3 мм x 3 мм x 1.0 мм)

VitaliyRU

самое важное
MMA8452Q
Sensitivity Change vs. Temperature [%/°C] ±0.008
Output Noise Normal Mode ODR = 400 Hz [μg/√Hz] 126

mpu6050
Sensitivity Change vs. Temperature [%/°C] ±0.02
Output Noise Normal Mode ODR = 1000 Hz [μg/√Hz] 400

типа в 3 раза лучше 😃

Shuricus
Dimm168pin:

таймкоп щас собрал свой стандартный naze32 с гириком от 6050 и кроликовым акселем

Парни, ну давайте ссылки на девайсы сразу, а то потом гугл поломается, если все в него искать ломанутся.

Dimm168pin
Shuricus:

Парни, ну давайте ссылки на девайсы сразу, а то потом гугл поломается, если все в него искать ломанутся.

это вроде как прототип, я не уверен что он его где-то засветил.

Shuricus

Вы там что, с таймкопом по асе чатитесь?

Dimm168pin
Shuricus:

Вы там что, с таймкопом по асе чатитесь?

что-то вроде того:)

Shuricus

Ну пусть уже быстрее делает на крутых датчиках плату, тогда!