【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

系统功能框图

系统功能框图

遥控车流程图

遥控车流程图

遥控器流程图

遥控器流程图

扫描二维码关注公众号,回复: 8738581 查看本文章

姿态说明部分(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【遥控器程序】
发布了13 篇原创文章 · 获赞 52 · 访问量 2997

猜你喜欢

转载自blog.csdn.net/weixin_42881419/article/details/104056444