文章目錄
寫在前面的話
github項目地址:https://github.com/Hyf338/Remote-Sensing
Remote-Sensing
基於MPU6050+stm32f103,設計一集遙感和推杆兩種控制模式一體的小車。
Base on mpu6050,designed a car with remote sense.
Title
2019集大電協 基於MPU6050的體感遙控車
Background
在玩具製造業中,遙控手柄控制的玩具車佔有很大比重。但是傳統的按鍵手柄控制方式已經很難吸引大衆的眼球。故本項目研究基於陀螺儀的手勢遙感車,它能夠完整地監測遊戲者手的位移和旋轉,利用玩家的手勢姿態來替代繁瑣的按鍵操作,從而實現各種遊戲的操作效果。系統的目的是,利用陀螺儀進行角度檢測,改善繁瑣的按鍵控制方式,改變傳統遙控方式。
工具介紹
工具 | 描述 |
---|---|
Altium Design | PCB設計 |
Keil | 軟件編程 |
123D Design | 3D軟件 |
Introduction
系統功能框圖
遙控車流程圖
姿態說明部分(MPU6050)
MPU6050(3軸陀螺儀、3軸加速度計)
MPU-6000(6050)爲全球首例整合性6軸運動處理組件,相較於多組件方案,免除了組合陀螺儀與加速器時間軸之差的問題,減少了大量的封裝空間。當連接到三軸磁強計時,MPU-60X0提供完整的9軸運動融合輸出到其主I2C或SPI端口(SPI僅在MPU-6000上可用)。
3軸加速度計
加速度傳感器實際上是用MEMS技術檢測慣性力造成的微小形變。它檢測的是它受到的慣性力(包括重力!重力也是慣性力)。
加速度傳感器不會區分重力加速度與外力加速度。
- 一個物體做自由落體時 在X軸受到一個外力作用 產生g的加速度 這時候x y z 軸的輸出分別是 g,0,0
- 物體被x軸朝下靜止放在水平面上 x y z 軸的輸出也分別是 g,0,0
3軸陀螺儀
陀螺儀是測角速度的傳感器。MPU6050帶有三個陀螺儀,每個陀螺儀各自負責相應軸的轉動速度,也就是檢測圍繞每個軸轉動的速度。
我們要將角速度對時間積分才能得到角度 。看到積分 我想敏感的同學馬上就能發現一個致命的問題 積分誤差
- 積分時間:積分時間Dt越小,輸出角度越準
- 器件本身的誤差:假設陀螺儀固定不動,理想角速度值是0dps(degree per second),但是有一個偏置0.1dps加在上面,於是測量出來是0.1dps,積分一秒之後,得到的角度是0.1度,1分鐘之後是6度,還能忍受,一小時之後是360度,轉了一圈
所以說 陀螺儀在短時間內有很大的參考價值
陀螺儀與加速度計的配合使用
加速度計是極易受外部干擾的傳感器,但是測量值隨時間的變化相對較小。陀螺儀可以積分得到角度關係,動態性能好,受外部干擾小,但測量值隨時間變化比較大。可以看出,它們優缺點互補,結合起來纔能有好的效果。無論工作多久 加速度傳感器如果沒收到外部干擾 它測的就一定是準的! 陀螺儀雖不會受到外部干擾 可是時間長了 由於積分誤差累計 它的值就全錯了!
所以兩個數據融合的方法就是 設計算法在短時間尺度內增加陀螺儀的權值,在更長時間尺度內增加加速度權值,這樣系統輸出角度就更真實了再通俗點說 就是 隔一段時間 用加速度傳感器的值修正一下陀螺儀的積分誤差 然後在隔的這段時間內 用陀螺儀本身的角度積分
Hardware
- 主控與外設描述
硬件 | 描述 |
---|---|
芯片型號 | STM32F103 |
UART | ZIGBEE |
UART | HC-05 |
IIC | MPU6050 |
SPI | oled |
-
車載主控板
-
手持遙控器
目錄說明
+——Marine craft
|---- 3D model: 【設計文檔】
|----+ hardware:【電路設計】
| ├──STM32_Controller 【車載主控板】
| ├──Remote control 【遙控器】
|---+ software:【軟件設計】
| ├──Remote vehicle【遙感車程序】
| ├──Remote control【遙控器程序】