|
發表於 2013年4月9日 02:05 PM
|
顯示全部樓層
本帖最後由 luciengou 於 2013年4月9日 02:28 PM 編輯
DRMA顧問說用FREEIMUv043,這點有很大的問題。相信你們都是用他說的選項。
之前我沒注意,因為我沒有這個板子。
現在把資料調出來看,有一些問題:
1.Crius MWC Lite V1.0,只有MPU6050陀加六軸,沒有磁場計和氣壓器
所以FREEIMUv043中有定義磁場計HMC5883,和氣壓計MS561101,才會導致I2C error出現一堆。
因為板子本來沒這兩顆。
也許他忘了說明更細節的內容。
2.陀螺儀和加速計的XY軸定義和我用的FLYDUINO_MPU不同。(mwc-s v1.5)
所以兩位的方向都不正確了,要用我上述的基本測法來找出正確的值。
打紅色的,是可能和Lite 1.0不合的設定值。
#if defined(FREEIMUv043)
#define MPU6050
#define HMC5883
#define MS561101BA
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -X; accADC[PITCH] = -Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = -Z;}
#define MPU6050_I2C_AUX_MASTER // MAG connected to the AUX I2C bus of MPU6050
#undef INTERNAL_I2C_PULLUPS
#endif
#if defined(FLYDUINO_MPU)
#define MPU6050
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = X; accADC[PITCH] = Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] = X; gyroADC[YAW] = -Z;}
#endif
紫色的部份,比對結果,roll和pitch是相反的,yaw是一樣的。
我不確定你們MPU6050 IC是怎麼放置的,可以試試我用的FLYDIUNO_MPU這個選項來啟動Lite V1.0,
然後,把FREEIMUv043中的紫色蓋掉FLYDUINO_MPU中一樣紫色的字。
其實說穿了,就只是把FLYDUINO_MPU中的沒負號的補負號,有負號的,刪掉。YAW不要動。
搖一搖機架,看看roll 和pitch的方向對不對,值的變化有沒有我之前說的變化,這一定要先確認正確,
才能實際拿出去飛。 |
|