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