车上的“小陀螺”

智能车 猫叔叔 5个月前 (01-25) 114次浏览 已收录 扫描二维码

各位小伙伴们新年好哦,许久不见甚是想念。趁着假期忙里偷闲悄悄更新一期智能车相关的教程篇,这期我们来聊聊“陀螺仪那些事”。

 

“传感器是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出。”这是网上对传感器的定义,在第 14 届的智能车比赛中,对传感器的种类和数量不做限制。在某知名购物网站上随手一搜,光是跟智能车相关的结果就有多达 90+页的搜索结果。在这些结果中,不得不提其中最具代表性的一个,也是所有组别或多或少都可能用到的一个传感器——陀螺仪传感器(又称运动传感器)。

 

选购

之所以先谈选购其实是因为这其中所涉及的坑还是比较多的,而且价格跨度较大,刚入门的小白看到搜索结果中快 80+页的结果,十有八九是懵逼状态的。

其实我们这边说的陀螺仪传感器在实际使用中其实是陀螺仪传感器与线性加速度传感器的组合使用,陀螺仪传感器是测角速度的,而加速度传感器是测线性加速度的,这是两个不一样的物理量。同时由于测量方法的问题,加速度计在较长时间的测量值是正确的,而在较短时间内由于信号噪声的存在会产生误差;陀螺仪在较短时间内则比较准确而较长时间则会有与漂移。因此,在实际使用时通常需要两者(相互调整)来确保航向的正确。现在一般的姿态方面的惯性应用,如 IMU(惯性测量单元),在实际模块上是由三轴陀螺仪传感器和三轴加速度计组合而成。

而六轴传感器中做的最好的要属 InvenSense 公司的产品了,以价格最实惠且应用比较广的传感器 MPU6050(GY-521)为例,它全球首例整合性 6 轴运动处理组件,它就是将一个三轴陀螺仪传感器和一个三轴加速度计封装在同一个芯片中(3 个角速度轴,三个加速度轴,如图 1 所示)。

图 1 MUP6050 的 6 轴示意图

毕竟是毕竟早期的产品了,其开发商 InvenSense 后面又推出了新款的 6 轴运动传感器——ICM20602 就是其中之一,但是相较 MPU6050,关于 ICM20602 的开发资料网上很少,使用上 MPU6050 和 ICM20602 相类似,可以参考 MPU6050 来使用 ICM20602,但要注意两者之间有个重大的不同:ICM20602 没有集成内置 IMU 解算单元(Inertial Measurement Unit),当然价格也翻了几倍,不过这两款传感器在智能车的制作过程中都算是比较常见的。

以上所说的都是运动传感器,如果是买现成的模块,还有可能在模块上集成 51 或者 STM32 之类的单片机,在模块上直接进行数据处理,但是这类模块的价格比较感人,而且智能车的规则有进行限制,在这就先不进行展开论述。

 

通信方式的选择

通信是一个将传感器获取到的数据传回主控制器的过程,如果是单片机与传感器之间直接进行通信的话,一般有 I2C 与 SPI 两种方式;MPU6050 只支持 I2C 接口通信,而 ICM20602 支持 I2C 与 SPI 两种方式。

I2C 总线是由 Philips 公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。SPI 接口的全称是”Serial Peripheral Interface”,意为串行外围接口,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比 I2C 总线要快,速度可达到几 Mbps。

以上是网上对这两种协议的介绍,简单来说就是:使用I2C协议进行通信除了电源(VCC&GND)以外只用 2 条线(SCL 时钟线和 SDA 数据线)传输速度比较慢,SPI除了电源(VCC&GND)以外还要再接四根线(MOSI – 主器件数据输出&从器件数据输入,MISO – 主器件数据输入&从器件数据输出,SCLK –时钟信号,NSS – 从器件使能信号),总体速度比I2C更快。

对于我本人的使用来说,一般是能用 SPI 就用 SPI,实在用不了再考虑 I2C,因为数据的读取速度会影响到系统整体的响应。

数据处理与分析

对于数据处理,根据刚刚的介绍跟个人使用经验,一般分为软件解算与硬件解算两种;

硬件解算是 MPU6050 所特有的一种功能,MPU6050 芯片内自带了一个数据处理子模块 DMP,已经内置了滤波算法,可以通过I2C协议往 6050 的内置寄存器中写入特定的指令来开启这一功能,然后直接通过I2C读到解算过后的姿态数据;

软件解算则是直接读取运动传感器的原始姿态数据(三轴加速度与三轴角速度),然后在单片机中进行一系列的滤波(如一阶卡尔曼)与IMU 算法解算来得到整体的姿态。

图 2 陀螺仪用于实际测量的示意图

浅谈应用

简单说说部分运用,以智能车为例,在处理部分赛道上的元素时,陀螺仪的辅助可以大大提高效率(如处理圆环时可以通过 IMU 计算小车沿着运动方向运动了多少度),在姿态的控制上除了可以用于平衡车类,还能应用于减少过弯时的飘移等,更多应用等你去探索……

图 3 去南京比赛的剪影

 

本期内容到此就先告一段落了,喜欢我的文章请记得关注我哦,
不定时更新好玩有意思的内容。 :mrgreen: 

皮皮猫的窝 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:车上的“小陀螺”
喜欢 (3)