【9.18】平衡小车制作

       拖了太长时间了啊,一个是数学建模比赛(想写经历简介现在还没写),另一个是综测测算(班长逃不掉的责任),还有前几天积累的作业。终于,终于,今天终于空闲了,所以马上开始了平衡小车的准备,这个小车很久之前已经买好了,前几天也抽时间组装了一下,一直没时间调试学习。话不多说,开始整理今天的学习内容。

一、阅读资料、整体把握

        先打开了平衡车的配套资料,先进行了浏览,有个整体把握。

        1.平衡车整体结构

        平衡车,显而易见的有几个必须的结构:两个带编码的电机,电机驱动,陀螺仪,单片机,电源

        电机驱动模块采用tb6612,控制两个370电机。通过查资料我了解到tb6612比L298N更好(我自己也这样认为,因为以前用L298N烧了好几块单片机,有心理阴影了。。。当然是因为操作不当);采用MPU6050读取角度,结合电机的负反馈完成平衡车的PID控制;电源采用的是三节18650,12V供电,通过一个稳压模块同时给单片机供电;主控单片机仍然是老朋友stm32f103c8t6。

        2.读原理介绍文档

        使用网上购买的小车,一定要把内部结构搞清楚,不然后续在进行操作的时候很容易出低级错误。先看懂接线,记下哪个模块是由哪个引脚控制的;再读注意事项,比如我买的这个就是mpu和OLED共用一个iic,所以在使用的时候必须要插上屏幕。

        3.烧录程序

        在主控板上找到预留的SWD烧录引脚,将示例程序烧录进去。注意在烧录之前要进行魔术棒配置,我用的是 st-link,但是示例程序里配置的是DAP-link,导致我开始烧录不进程序,还以为是程序出错了(=。=)

        当然烧录进去是站不起来的,还是需要自己调PID。

二、MPU6050详细原理

其实相当于复习了,再学一遍还是能学到一些当时没能理解的东西

(1)简介

MPU6050是一种常用的集成式惯性测量单元(Inertial Measurement Unit,简称IMU)芯片,由Invensense(现为TDK)公司设计和制造。它集成了三轴加速度计和三轴陀螺仪,用于检测和测量物体的线性加速度和角速度。

MPU6050采用数字式输出,并通过I2C(或SPI)接口与微控制器或其他外部设备通信。它以高精度和低功耗为特点,广泛应用于姿态感知、运动追踪、手势识别、无人机、机器人和虚拟现实等领域。

以下是MPU6050的主要技术指标和功能特性:

1. 三轴加速度计:
   - 可测量X、Y、Z三个轴向上的线性加速度。
   - 可测量静态重力加速度并用于姿态测量。

2. 三轴陀螺仪:
   - 可测量X、Y、Z三个轴向上的角速度。
   - 可测量物体的姿态变化和旋转速度。

3. 数字输出:
   - 可通过I2C(或SPI)接口与主控芯片通信。
   - 输出的数据经过内部模数转换处理,并以数字信号的形式提供给外部设备。

4. 高精度和低功耗:
   - 加速度计和陀螺仪均具有高精度的测量性能。
   - 优化的功耗管理,可在低功耗模式下运行。

5. 内置温度传感器:
   - 集成了温度传感器,可测量芯片的温度。

        由于其小巧、易于集成和优秀的性能,MPU6050被广泛应用于许多嵌入式系统和项目中,从智能手机、游戏控制器到无人机和机器人等。

        MPU6050是一个比较老的产品,在市场上仍然有许多相关的资料和库可以供参考和使用,但在选择时,也可以考虑更新的惯性测量单元芯片,如MPU9250和MPU6050的升级版本MPU9255等。

(2)学习内容

        MPU6050中集成了加速度计,可以测算物体在x,y,z轴上的加速度,一般记作acc_x,acc_y,acc_z。也集成了陀螺仪,可以测算物体绕x,y,z轴旋转的角速度,一般记作gyro_x,gyro_y,gyro_z。

        一般情况下我们在使用MPU6050去测物体的姿态的时候,通常是使用欧拉角,即俯仰角、翻滚角和偏航角。

这里先简单介绍一下欧拉角:

俯仰角、翻滚角和偏航角是描述物体在空间中旋转姿态的三个基本欧拉角。

1. 俯仰角 (Pitch):
   俯仰角是指物体绕着其横轴(通常是X轴)旋转的角度。俯仰角描述了物体前后方向上的倾斜程度。当物体的前部向上倾斜时,俯仰角为正值;当物体的前部向下倾斜时,俯仰角为负值。

2. 翻滚角 (Roll):
   翻滚角是指物体绕着其纵轴(通常是Y轴)旋转的角度。翻滚角描述了物体左右方向上的旋转。当物体向右侧倾斜时,翻滚角为正值;当物体向左侧倾斜时,翻滚角为负值。

3. 偏航角 (Yaw):
   偏航角是指物体绕着其竖直轴(通常是Z轴)旋转的角度。偏航角描述了物体的方向或航向旋转。当物体顺时针旋转时,偏航角为正值;当物体逆时针旋转时,偏航角为负值。

这些欧拉角通常用于描述空间中三维物体的旋转姿态或方位。通过使用陀螺仪、加速度计或其他惯性传感器,可以测量并计算出物体在三个方向上的角度。

需要注意的是,欧拉角具有固有的局限性,如万向锁问题。在某些情况下,当俯仰角接近正负90度时,翻滚角和偏航角之间会出现耦合,导致失去一个自由度的旋转。

为了克服这些问题,还可以使用四元数或旋转矩阵等其他形式的姿态表示来更有效地描述物体的旋转姿态。

虽然MPU6050不能直接给出欧拉角角度,但是可以通过一些方法计算。

1.通过四元数计算

通过导入MPU6050官方库empl可以通过返回的四元数计算欧拉角。

具体方法可以参考b站物联网小学妹的视频

2.采用滤波算法

我所使用的示例代码就是用了卡尔曼滤波

今天还没学会〇〇(> <)〇〇

留个位置放链接()

over!!!

        今天就到这里了,在一些资料的整理上花了不少时间,但现在已经步入正轨了,现在就是先要看懂代码,期待开始调PID的那一天,离成功就不远了(哦吼吼吼!)

        明天满课(T_T)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值