本帖最後由 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= -X; accADC= -Y; accADC=Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC =Y; gyroADC = -X; gyroADC = -Z;}
#define MAG_ORIENTATION(X, Y, Z){magADC=X; magADC=Y; magADC= -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 = X; accADC = Y; accADC = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC = -Y; gyroADC = X; gyroADC = -Z;}
#endif
紫色的部份,比對結果,roll和pitch是相反的,yaw是一樣的。
我不確定你們MPU6050 IC是怎麼放置的,可以試試我用的FLYDIUNO_MPU這個選項來啟動Lite V1.0,
然後,把FREEIMUv043中的紫色蓋掉FLYDUINO_MPU中一樣紫色的字。
其實說穿了,就只是把FLYDUINO_MPU中的沒負號的補負號,有負號的,刪掉。YAW不要動。
搖一搖機架,看看roll 和pitch的方向對不對,值的變化有沒有我之前說的變化,這一定要先確認正確,
才能實際拿出去飛。
聰明,我字還沒打完,你就看懂了,哈哈。
小弟我是看友站文章才選 FREEIMU043的..雖然測試期間雖然有問題..
跟大大討論後反而學到更多... 龍大您的MWC飛控板箭頭部分(藍燈)是朝飛機前面還是朝尾端?
我猜是朝尾端..所以選FREEIMU043剛好正向.. 有幾種做法看哪一種您喜歡:
1) 選 FLYDUINO_MPU .. 程式在 def.h 內要改 如上述 加速器和陀螺儀部分需要更改ROLL&PITCH的XY需要更改 (Z 不動 因為沒有相反) 這是建議的選項
2) 選 FREEIMU043 但把 #define FMC5883 和 #define MS56111 等相關項目拿掉
3) 選 FREEIMU043 ..但MWC飛控板箭頭藍燈朝尾端
本帖最後由 nikoniko1 於 2013年4月9日 03:37 PM 編輯
luciengou 發表於 2013年4月9日 01:31 PM http://www.rctw.net/static/image/common/back.gif
原來沒飛過呀...........我一直推龍哥飛過........
#if defined(FLYDUINO_MPU)
L大..再請教上面解釋部分 "等號後的X or Y交換一下,就可以看到Roll 和Pitch對換了,搖一搖,數字加減相反的話,再補上負號,再搖搖看。"
我碰到的情況是ROLL 和 PITCH 是對的但其方向剛好相反..所以是改"正負符號"來反向...還是"X和Y對調"? 小弟我一直以為是"正負符號"對調即可.. 這樣對嗎?