10DOF L3G4200D+ADXL345+HMC5883L+BMP085 Nine Axis IMU Module

Chester_kz

Примострелся к видео. Возможно я с глазами не дружу но в самом начале при вовороте на право у гироскопа сильно менятся питч а у акселя ролл. Ведь так быть не должно?

sulaex
Chester_kz:

Примострелся к видео. Возможно я с глазами не дружу но в самом начале при вовороте на право у гироскопа сильно менятся питч а у акселя ролл. Ведь так быть не должно?

да по мне так вообще не должно быть как на видео 😃
задрипаные датчики с распила ито себя адекватней ведут, облетаны на ура…

Chester_kz

Да дело не в дачиках а в том как их на плату припояли. А ориентацию всегда можно поменять в прошивке. Как я и писал добейтесь, сменой ориентации, того чтобы при повороте лево право менялось тока ролл и гиры и акселя. Муторное дело но сделать можно.

SovGVD

судя по видео

  1. поменять местами оси в код
  2. посмотреть на поведение датчиков после этого

Как должны быть ориентированы оси датчиков
Чтобы определить корректность расположения осей датчиков проделайте следующее:
Наклоните коптер вправо (левая сторона вверх):

  • MAG_ROLL, ACC_ROLL и GYRO_ROLL растут
  • MAG_Z и ACC_Z уменьшаются

Наклоните коптер вперед (хвост вверх):

  • MAG_PITCH, ACC_PITCH и GYRO_PITCH растут
  • MAG_Z и ACC_Z уменьшаются

Вращайте коптер по часовой стрелке (YAW):

  • GYRO_YAW растет

Коптер стоит на месте (горизонтально):

  • MAG_Z положительное ; ACC_Z положительное
sulaex
SovGVD:
  1. посмотреть на поведение датчиков после этого

не разобрать показания при наклоне, скачет безбожно

по даташиту все датчики нормально стоят

компас

гиры

аксель

RA4ASN

Для 1.9:

#define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = X; accADC[PITCH]  = -Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = X; gyroADC[PITCH] = Y; gyroADC[YAW] = Z;}
#define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  = -X; magADC[PITCH]  = -Y; magADC[YAW]  = Z;}
#define ADXL345_ADDRESS 0xA6
sulaex

всем спасибо, настроил на 2.0:

//if you want to change to orientation of individual sensor
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = Y; accADC[PITCH] = -X; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = X; gyroADC[PITCH] = Y; gyroADC[YAW] = -Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X; magADC[YAW] = -Z;}

#define ADXL345_ADDRESS 0xA6