上次做了電機脈沖的采集,這回做MPU6050的數據讀取。
本以為MPU6050數據讀取是個難點,特地挑了個好日子專門研究,在看過MPU6050的手冊后,發(fā)現起始只要會了IIC的協(xié)議。MPU6050的數據讀取就不是個問題,還好在之前跟著郭天祥老師的視頻寫了一回IIC的協(xié)議,這回操作起來就順手的多了
MPU6050采用IIC協(xié)議通訊,集成3軸陀螺儀和3軸加速度傳感器,溫度傳感器,IIC地址1位可設置
小車主板的IIC地址為0xd0,
SCL接P4^6 SDA接P4^5
在對MPU6050進行操作的時候需要將這兩個引腳的模式設置一下,我在開始的時候沒有設置,導致我都會來的都是FF,在這里我們將這引腳模式設為弱上拉模式,
然后將IIC初始化,如果沒有寫過IIC,先去寫一下IIC會好一點,
對MPU6050初始化
就是對MPU的幾個寄存器寫數據
void MPU6050_init() //MPU6050地址 0xd0
{
IIC_Write(0xd0,PWR_MGMT_1,0x00); //解除休眠狀態(tài)
IIC_Write(0xd0,SMPLRT_DIV,0x07); // //陀螺儀采樣率,典型值:0x07(125Hz)
IIC_Write(0xd0,CONFIG,0x04); //低通濾波頻率,典型值:0x06(5Hz)
IIC_Write(0xd0,GYRO_CONFIG,0x18); //陀螺儀自檢及測量范圍,典型值:0x18(不自檢,2000deg/s)
IIC_Write(0xd0,ACCEL_CONFIG,0x01); //加速計自檢、測量范圍及高通濾波頻率,典型值:0x01(不自檢,2G,5Hz)
}
初始化可參考MPU6050的手冊,我參考的是戰(zhàn)艦 V3開發(fā)板附帶的資料
在初始化過后就可以讀取數據了,讀取數據就是從MPU6050的寄存器里讀一個數據,數據都是由高八位和低八位寄存器組成
用IIC讀數據的方法,按照這些寄存器的地址去讀,就可以讀出來了
MPU6050中還有一個叫做DMP的姿態(tài)結算的東西
按照上述辦法讀取回來的是原始數據不是角度,需要進行姿態(tài)解算,具體我還未理解,接下來做整體對接的時候就要看數據的處理了,很煩的東西啊,還要分析什么加速度,平行四邊形分析法,一下就把我?guī)Щ亓烁咧袝r候啊,
下面附上我參考的資料和我自己寫的程序
11,ATK-MPU6050六軸傳感器模塊.zip
(15.32 MB, 下載次數: 46)
2016-1-31 21:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
MPU6050.zip
(50.02 KB, 下載次數: 30)
2016-1-31 21:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|