




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
任務(wù)2防跌倒功能設(shè)計與開發(fā)成都職業(yè)技術(shù)學院成都卓物科技有限公司任務(wù)情報陀螺儀是一種能夠檢測物體在三維空間中旋轉(zhuǎn)運動的傳感器,它基于角動量守恒原理工作。陀螺儀的核心是一個高速旋轉(zhuǎn)的轉(zhuǎn)子(也稱為陀螺),當陀螺儀旋轉(zhuǎn)時,它傾向于保持其旋轉(zhuǎn)軸的方向恒定,即使外部框架或殼體發(fā)生轉(zhuǎn)動,這一特性稱為陀螺效應(yīng)。這種抵抗方向改變的性質(zhì)使得陀螺儀成為測量角速度和維持方向穩(wěn)定性的重要工具,如圖所示。我們先來了解三種常用的坐標系:地球坐標系:以地球球心為原點,Z軸沿地球自轉(zhuǎn)軸方向,X、Y軸在赤道平面內(nèi)的坐標系。地理坐標系:它的原點在地球表面(或運載體所在的點),Z軸沿當?shù)氐乩泶咕€的方向(重力加速度方向),XY軸沿當?shù)亟?jīng)緯線的切線方向。根據(jù)各個軸方向的不同,可選為“東北天”、“東南天”、“西北天”等坐標系。這是我們?nèi)粘I钪惺褂玫淖鴺讼?,平時說的東南西北方向與這個坐標系東南西北的概念一致。載體坐標系:載體坐標系以運載體的質(zhì)心為原點,一般根據(jù)運載體自身結(jié)構(gòu)方向構(gòu)成坐標系,如Z軸上由原點指向載體頂部,Y軸指向載體頭部,X軸沿載體兩側(cè)方向。上面說基于飛機建立的坐標系就是一種載體坐標系,可類比到汽車、艦船、人體、動物或手機等各種物體。地理坐標系與載體坐標系都以載體為原點,所以它們可以經(jīng)過簡單的旋轉(zhuǎn)進行轉(zhuǎn)換,載體的姿態(tài)角就是根據(jù)載體坐標系與地理坐標系的夾角來確定的。發(fā)揮您的空間想象力,假設(shè)初始狀態(tài)中,飛機的Z軸、X軸及Y軸分別與地理坐標系的天軸、北軸、東軸平行。如當飛機繞自身的“Z”軸旋轉(zhuǎn),它會使自身的“Y”軸方向與地理坐標系的“南北”方向偏離一定角度,該角度就稱為偏航角(Yaw);當載體繞自身的“X”軸旋轉(zhuǎn),它會使自身的“Z”軸方向與地理坐標系的“天地”方向偏離一定角度,該角度稱為俯仰角(Pitch);當載體繞自身的“Y”軸旋轉(zhuǎn),它會使自身的“X”軸方向與地理坐標系的“東西”方向偏離一定角度,該角度稱為橫滾角。本次陀螺儀芯片采用MPU6050,它是一款由InvenSense公司推出的高性能、低功耗的6軸運動處理傳感器,能夠同時測量物體的三維角速度和三維加速度。具體特點功能如下:6軸集成:MPU6050集成了3軸的MEMS(微機電系統(tǒng))陀螺儀和3軸的MEMS加速度計,能夠同時測量沿X、Y、Z三個軸向的線性加速度和角速度。數(shù)字運動處理器(DMP):內(nèi)置一個數(shù)字運動處理器(DigitalMotionProcessor),這個處理器可以執(zhí)行復雜的運動數(shù)據(jù)融合算法,如四元數(shù)運算,從而計算出設(shè)備的姿態(tài)角度,如俯仰角、橫滾角和航向角,減輕了主控制器的負擔。I2C接口:MPU6050提供了主I2C接口用于與外部微控制器通信,可以輸出原始的加速度和陀螺數(shù)據(jù),以及經(jīng)過DMP處理后的姿態(tài)數(shù)據(jù)。。擴展能力:MPU6050設(shè)計有一個第二I2C接口,允許連接額外的傳感器,如磁力計,以實現(xiàn)9軸(3軸加速度+3軸陀螺+3軸磁場)的全姿態(tài)解算,進一步提升定位和姿態(tài)感知的準確性。低功耗:適用于電池供電設(shè)備,具有低功耗模式,能在保持性能的同時減少能源消耗。廣泛應(yīng)用:由于其高度集成和強大的功能,MPU6050被廣泛應(yīng)用于各種領(lǐng)域,包括但不限于無人機、平衡車、可穿戴設(shè)備、虛擬現(xiàn)實(VR)頭盔、智能手機、游戲手柄、以及各種需要精確運動跟蹤和姿態(tài)穩(wěn)定的設(shè)備。工作環(huán)境:MPU6050的工作溫度范圍通常是-40°C至85°C,確保了其在惡劣環(huán)境下的穩(wěn)定工作性能。如圖所示,MPU6050有24個引腳,I2C通信引腳SDA為PC11,SCL為PC10;MPU_AD0引腳默認低電平I2C地址為0x68,如果引腳高電平,則I2C地址為0x69;MPU?_INT中斷引腳主要用于中斷通知和數(shù)據(jù)傳輸?shù)耐?,在這里只用于讀取傳感器數(shù)據(jù)。陀螺儀庫函數(shù)說明打開MPU6050.h文件,定義了陀螺儀使用的I2C單元和超時時間。#defineMPU6050_I2C_UNIT(CM_I2C2)#defineMPU6050_I2C_TIMEOUT(0xFFFF)定義了陀螺儀I2C地址和長度。//MPU6050IIC器件地址#defineMPU6050_IIC_ADDR(0x68)//地址長度#defineMPU6050_ADDR_LEN(1)定義了陀螺儀中斷引腳PD13。#defineMPU_INT_PORT(GPIO_PORT_D)#defineMPU_INT_PIN(GPIO_PIN_13)#defineMPU_EXTINT_CH(EXTINT_CH13)#defineMPU_INT_SRC(INT_SRC_PORT_EIRQ13)#defineMPU_INT_IRQn(INT013_IRQn)#defineMPU_INT_PRIO(DDL_IRQ_PRIO_DEFAULT)相應(yīng)的I2C引腳定義在BSP_I2C.h文件中,對應(yīng)修改I2C2的引腳SCL為PC10,SDA為PC11。/*DefineI2C2portandpinforSDAandSCL*/#defineI2C2_SCL_PORT(GPIO_PORT_C)#defineI2C2_SCL_PIN(GPIO_PIN_10)#defineI2C2_SDA_PORT(GPIO_PORT_C)#defineI2C2_SDA_PIN(GPIO_PIN_11)#defineBSP_I2C2_BAUDRATE(100000)陀螺儀傳感器初始化來到main函數(shù),在使用MPU6050_DMP_Init()函數(shù)初始化之前,需要將I2C2和USART1初始化。
TMR0_USART_Config();//串口接收超時定時器初始化
USART1_Init(57600);//串口1初始化
BSP_I2C2_Init();進入MPU6050_DMP_Init()函數(shù),先將MPU6050的INT引腳進行初始化。MPU6050_PortInit();//MPU6050引腳初始化復位MPU6050,延時100毫秒后喚醒MPU6050。
MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80);//復位MPU6050 DDL_DelayMS(100); MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X00);//喚醒MPU6050后面的就是配置MPU6050一些參數(shù),這些配置是根據(jù)官方工程移植過來,并未改變,詳情代碼請在mpu6050.c文件中查看。
MPU_Set_Gyro_Fsr(3); //陀螺儀傳感器,±2000dps**************************************************************************************** res=MPU_Read_Byte(MPU_DEVICE_ID_REG); if(res==MPU6050_IIC_ADDR)//器件ID正確
{**************************************************************************************** }
elsereturn1; return0;當讀取MPU6050的I2C地址為0x68時,表示陀螺儀初始化成功return0,然后初始化陀螺儀的DMP。mpu_dmp_init()該函數(shù)調(diào)用mpu_init函數(shù)來初始化MPU6050設(shè)備。接著,執(zhí)行一系列操作,包括設(shè)置DMP(數(shù)字運動處理器)所需的傳感器、FIFO(先進先出)緩沖區(qū)、采樣率以及加載固件等。在確保所有操作均成功執(zhí)行后,函數(shù)通過調(diào)用mpu_set_dmp_state(1)來激活DMP功能。一旦DMP功能被成功使能,用戶便可以利用mpu_dmp_get_data函數(shù)來讀取經(jīng)過姿態(tài)解算后的數(shù)據(jù)。陀螺儀的數(shù)據(jù)是通過中斷引腳進行讀取的,在中斷引腳中斷函數(shù)中使用mpu_dmp_get_data(&pitch,&roll,&yaw)函數(shù)獲取陀螺儀值,然后在數(shù)據(jù)標志位MPU_Flag置一,然后關(guān)閉中斷,清除中斷。staticvoidEXTINT_MPU_IrqCallback(void){ if(SET==EXTINT_GetExtIntStatus(MPU_EXTINT_CH)) { if(mpu_dmp_get_data(&pitch,&roll,&yaw)==0) { MPU_Flag=1; INTC_IntCmd(MPU_EXTINT_CH,DISABLE);//關(guān)閉中斷
}
EXTINT_ClearExtIntStatus(MPU_EXTINT_CH); }}mian中的主循環(huán)里延時500ms,通過判斷標志位MPU_Flag是否為1,獲取溫濕度數(shù)據(jù),打印出陀螺儀的值,將標志位清零,開啟中斷。
while(1){if(MPU_Flag==1){temp=MPU_Get_Temperature();//得到溫度值
printf("temp:%d\r\n",temp);printf("pitch:%f\r\n",pitch);printf("roll:%f\r\n",roll);printf("yaw:%f\r\n",yaw);MPU_Flag=0;INTC_IntCmd(MPU_EXTINT_CH,ENABLE);//開中斷
}
DDL_DelayMS(500
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程制圖補考試題及答案
- 高職語文月考試題及答案
- 高空搭設(shè)作業(yè)考試題及答案
- 行政費用預算管理工具長期財務(wù)計劃制定參考
- 專職柜員筆試題目及答案
- 高考誠信考試題及答案大全
- 高級稱職考試題及答案大全
- 農(nóng)行宿遷面試真題及答案
- 2025年山西自考語文試卷及答案
- 服務(wù)顧客滿意度承諾書(6篇)
- 先兆流產(chǎn)課件
- 2025年上海市新能源光伏組件中試車間智能化生產(chǎn)可行性研究報告
- 礦山節(jié)能管理辦法
- 水手考試題庫及答案
- 手足外科護理常規(guī)
- 商業(yè)倫理與社會責任考試題及答案2025年
- 2025年安全生產(chǎn)考試題庫(安全知識)安全培訓課程試題
- 光電成像原理與技術(shù)課件
- hiv生物安全培訓課件
- 2025年中國移動硬盤市場競爭調(diào)研與發(fā)展狀況分析報告
- 懷化注意力培訓課件
評論
0/150
提交評論