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