【Project】基於stm32+mpu6050的體感遙控車

寫在前面的話

github項目地址https://github.com/Hyf338/Remote-Sensing

Remote-Sensing

基於MPU6050+stm32f103,設計一集遙感和推杆兩種控制模式一體的小車。
Base on mpu6050,designed a car with remote sense.
實物圖

C C


軟件說明
硬件說明
姿態解算

Title

2019集大電協 基於MPU6050的體感遙控車

Background

在玩具製造業中,遙控手柄控制的玩具車佔有很大比重。但是傳統的按鍵手柄控制方式已經很難吸引大衆的眼球。故本項目研究基於陀螺儀的手勢遙感車,它能夠完整地監測遊戲者手的位移和旋轉,利用玩家的手勢姿態來替代繁瑣的按鍵操作,從而實現各種遊戲的操作效果。系統的目的是,利用陀螺儀進行角度檢測,改善繁瑣的按鍵控制方式,改變傳統遙控方式。

工具介紹

工具 描述
Altium Design PCB設計
Keil 軟件編程
123D Design 3D軟件

Introduction

系統功能框圖

系統功能框圖

遙控車流程圖

圖1 遙控車程序流程圖
圖2遙控器程序流程圖

姿態說明部分(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【遙控器程序】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章