一、陀螺仪简介
陀螺仪是一种感测空间姿态的传感器,是控制小车平衡、判断和调节姿态的核心元件。在实验室中,常用的两种陀螺仪为MPU6050和ICM20602。
陀螺仪的基本组成
陀螺仪的基本组成包括旋转质量、传感器、电子处理单元以及接口和连接。旋转质量是陀螺仪的核心部分,用于感知旋转运动。传感器测量角速度和加速度,电子处理单元处理这些信号,并通过接口与其他设备通信。
陀螺仪的工作原理
陀螺仪的工作原理基于角动量守恒定律。当陀螺仪旋转时,旋转的角速度与受到的扭矩成正比。传感器测量这个角速度,并将其转换为电信号,从而提供姿态和方向信息。
陀螺仪的作用
陀螺仪在智能车中的主要作用包括:
- 与转向环串级使用,增加转向力度;
- 调整平衡车姿态,使车身平衡且能正常转向和前进;
- 作为角度环闭环控制的输入,如过三叉路打60度角;
- 判断车身姿态,调整状态,如感知过环岛的角度变化;
二、MPU6050原理解析
MPU6050是一款六轴传感器,集成了三轴陀螺仪和三轴加速度计。以下是MPU6050的工作原理:
1. 陀螺仪原理
陀螺仪测量的是物体的角速度,即物体绕三个轴的旋转速度。MPU6050中的陀螺仪部分采用微机电系统(MEMS)技术。在MEMS陀螺仪中,一根微小的悬臂梁或振动体受到角速度的作用,导致振动体的振幅发生变化。这个变化通过一些电学或光学传感器转换成电信号,最终被处理电路解释为角速度。
2. 加速度计原理
加速度计测量的是物体在三个轴上的加速度。MPU6050中的加速度计部分同样利用MEMS技术。在加速度计中,通常采用微小的质量块和弹簧系统。当物体发生加速度变化时,质量块受到力的作用,导致弹簧的变形。这个变形通过传感器转换为电信号,最终被处理电路解释为加速度。
3. MPU6050的组合
MPU6050将陀螺仪和加速度计结合在一起,通过微控制器处理这两个传感器的输出数据,从而获得物体的姿态和运动状态。这样的组合使得MPU6050能够提供更为全面的信息,包括旋转角速度和线性加速度。
三、ICM20602原理解析
ICM20602也是一款六轴传感器,包含三轴陀螺仪和三轴加速度计。以下是ICM20602的工作原理:
1. 陀螺仪原理
ICM20602的陀螺仪原理与MPU6050类似,采用MEMS技术。角速度的测量基于微小的振动体在角速度作用下的振动变化。这个变化通过传感器转换为电信号,最终被处理电路解释为角速度。
2. 加速度计原理
ICM20602的加速度计部分同样利用MEMS技术。通过微小的质量块和弹簧系统,加速度的变化导致质量块受到力的作用,引起弹簧的变形。这个变形通过传感器转换为电信号,最终被处理电路解释为加速度。
3. ICM20602的组合
ICM20602通过将陀螺仪和加速度计的输出数据传递给嵌入式微控制器,实现对物体姿态和运动状态的全面感知。这种六轴传感器的组合能够满足对于旋转和线性运动信息的同时获取的需求。
四、基本的使用方法
0.姿态角
-
俯仰角(Pitch角):
- 定义: 俯仰角表示车头绕Y轴翘起的角度。
- 说明: 当车头向上或向下倾斜时,关于车辆横轴(Y轴)的旋转角度即为俯仰角。正值表示车头朝上,负值表示车头朝下。
-
航向角(Yaw角):
- 定义: 航向角表示车身绕Z轴旋转的角度。
- 说明: 航向角描述了车辆绕垂直于地面的轴(通常是Z轴)旋转的情况。正值表示车身顺时针旋转,负值表示逆时针旋转。
-
翻滚角(Roll角):
- 定义: 翻滚角表示侧轮绕X轴抬起的角度。
- 说明: 翻滚角描述了车辆绕横轴(通常是X轴)的旋转状态,即车辆侧翻的角度。正值表示车辆的一侧朝上,负值表示车辆的一侧朝下。
1. 角速度计
在三轴角速度计中,这三个轴通常表示物体绕空间中的三个互相垂直的轴旋转的角速度。具体定义如下:
- X轴(Roll轴): 绕X轴的旋转产生的角速度。
- Y轴(Pitch轴): 绕Y轴的旋转产生的角速度。
- Z轴(Yaw轴): 绕Z轴的旋转产生的角速度。
陀螺仪返回的数据是弧度制的角速度。一般需要对角速度进行积分得到角度,方便使用。但积分会带来误差,需要进行调整。零点漂移是陀螺仪存在的问题之一,需要在每次上电时重新校准。
// 放于定时器中2ms执行一次
void fun() {
Angle_yaw += GZ * 0.00012480f; // 积分得到角度
}
2. 加速度计
在三轴加速度计中,同样是以X轴、Y轴和Z轴为基准,表示物体在空间中的三个方向上的加速度。具体定义如下:
- X轴: 物体在X轴方向上的加速度。
- Y轴: 物体在Y轴方向上的加速度。
- Z轴: 物体在Z轴方向上的加速度。
加速度计返回的加速度并不是一般意义上的加速度,而是一个相对较不稳定的值。通过加速度计可以得到车身的俯仰角,但由于存在干扰信号,不宜过于信赖这个数值。
// 计算加速度计得到的角度
void fun() {
angle_ratio = (double)(AX / (AZ + 0.1));
Angle_acc = (float)(atan(angle_ratio) * 57.29578049); // 57.3=180/3.14
}
结语
六轴陀螺仪结合了三轴陀螺仪和三轴加速度计,是智能车中不可或缺的传感器之一。通过准确测量角速度和加速度,陀螺仪在智能车的平衡、转向和姿态控制等方面发挥着关键作用。使用合适的方法对陀螺仪进行校准和数据处理,能够提高智能车的运动稳定性和性能。
系列文章目录
文章分为三个层次
速通版
是希望通过简化的步骤搭建出寻迹小车,进而了解整个智能车是如何实现的,快速上手,为后续参与智能车竞赛做基础。
如果只是为了完成学校智能车初期培训,做出能简单循迹的小车,可以看这个速通版。
全程引导篇
是讲了做出能够完赛的智能车的整个过程,大部分文章只是简单点拨一下,但是附上了相关的文章链接,方便根据自己的情况深入了解。
全程引导篇,能够带你比较系统地了解整个智能车的制作过程,推荐备赛初期或者有车模之后学习。
详细讲解篇
是全程引导篇的补充,由于全程引导篇是引导性质,文章内容只是点拨,缺乏相应的原理或代码讲解,因此写详细讲解篇作为补充。
详细讲解篇会渗透在全程引导篇中。
速通版
智能小车速通版——手把手教程
全程引导篇
智能小车速通版——教程引导(原版)
智能小车速通版——教程引导
智能车入门——IDE安装以及库函数选用
智能车入门——编程语言(c)的学习
智能车入门——简单驱动常用模块
智能车入门——车模器件篇
智能车入门——模块化编程
智能车入门——跑车前的零碎知识
智能车入门——电磁循迹原理与实现
智能车入门——实现低速完赛
详细讲解篇
智能车入门补充篇
智能车入门补充篇——逐飞开源库介绍
智能车入门补充篇——常见宏定义和使用
智能车入门补充篇——模块化编程
智能车入门补充篇——电感值处理、转向控制与巡线
智能车入门补充篇——元素识别
智能车模块详解——按键及按键调参
智能车模块详解——数据存储与读写(eeprom/flash)
智能车入门——I/O、PWM
智能车入门——中断
智能车入门——编码器
智能车入门——陀螺仪
智能车入门——摄像头和CCD
智能车入门——舵机
(更新中)