【君悦智控】 http://RobotControl.taobao.com
高精度 6 轴惯性导航模块说明书
1 产品概述
此六轴模块采用高精度的陀螺加速度计 MPU6050,通过处理器读取 MPU6050 的测量
数据然后通过串口输出,免去了用户自己去开发 MPU6050 复杂的 I2C 协议,同时精心的 PCB
布局和工艺保证了 MPU6050 收到外接的干扰最小,测量的精度最高。
模块内部自带电压稳定电路,可以兼容 3.3V/5V 的嵌入式系统,连接方便。
模块保留了 MPU6050 的 I2C 接口,以满足高级用户希望访问底层测量数据的需求。
采用先进的数字滤波技术,能有效降低测量噪声,提高测量精度。
模块内部集成了姿态解算器,配合动态卡尔曼滤波算法,能够在动态环境下准确输出模
块的当前姿态,姿态测量精度 0.01 度,稳定性极高,性能甚至优于某些专业的倾角仪!
采用邮票孔镀金工艺,品质保证,可嵌入用户的 PCB 板中。
2 性能参数
1、电压:3V~6V
2、电流:<10mA
3、体积:15.24mm X 15.24mm X 2mm
- 1 -
【君悦智控】 http://RobotControl.taobao.com
4、焊盘间距:上下 100mil(2.54mm),左右 600mil(15.24mm)
5、测量维度:加速度:3 维,角速度:3 维,姿态角:3 维
6、量程:加速度:± 2g,角速度:± 250°/s。
7、分辨率:加速度:6.1e-5g,角速度:7.6e-3°/s。
8、稳定性:加速度:0.001g,角速度 0.02°/s。
9、姿态测量稳定度:0.01°。
10、数据输出频率 100Hz。
11、数据接口:串口(TTL 电平),I2C(直接连 MPU6050,无姿态输出)
10、波特率 115200kps。
3 引脚说明:
名称
VCC
RX
TX
GND
SCL
SDA
功能
模块电源,3.3V 或 5V 输入
串行数据输入,TTL 电平
串行数据输出,TTL 电平
地线
I2C 时钟线
I2C 数据线
- 2 -
【君悦智控】 http://RobotControl.taobao.com
4 通信协议
波特率:115200,停止位 1,校验位 0。
4.1 上位机至模块
指令内容
0x01
功能
使用串口,禁用 I2C
备注
用串口连接时需发送 0x01,模块方能输
出数据
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x0a
禁用串口,使用 I2C 接口
发送 0x02,模块将停止输出数据
打开加速度输出
关闭加速度输出
打开角速度输出
关闭角速度输出
打开角度输出
关闭角度输出
陀螺校准
角度初始化
校准陀螺的零位,校准期间需静止
使 Z 轴角度归零
4.2 模块至上位机:
4.2.1 加速度输出:
数据编号
数据内容
0
1
2
3
4
5
6
7
8
9
0x55
0x51
AxL
AxH
AyL
AyH
AzL
AzH
TL
TH
含义
包头
标识这个包是加速度包
X 轴加速度低字节
X 轴加速度高字节
y 轴加速度低字节
y 轴加速度高字节
z 轴加速度低字节
z 轴加速度高字节
温度低字节
温度高字节
校验和
Sum
10
加速度计算公式:
ax=((AxH<<8)|AxL)/32768*2g(g 为重力加速度,可取 9.8m/s2)
ay=((AyH<<8)|AyL)/32768*2g(g 为重力加速度,可取 9.8m/s2)
az=((AzH<<8)|AzL)/32768*2g(g 为重力加速度,可取 9.8m/s2)
温度计算公式:
T=((TH<<8)|TL) /340+36.53 ℃
校验和:
- 3 -
【君悦智控】 http://RobotControl.taobao.com
Sum=0x55+0x51+AxH+AxL+AyH+AyL+AzH+AzL+TH+TL
4.2.2 角速度输出:
数据编号
数据内容
0
1
2
3
4
5
6
7
8
9
10
角速度计算公式:
0x55
0x52
wxL
wxH
wyL
wyH
wzL
wzH
TL
TH
Sum
含义
包头
标识这个包是角速度包
X 轴角速度低字节
X 轴加速度高字节
y 轴加速度低字节
y 轴加速度高字节
z 轴加速度低字节
z 轴加速度高字节
温度低字节
温度高字节
校验和
wx=((wxH<<8)|wxL)/32768*250(°/s)
wy=((wyH<<8)|wyL)/32768*250(°/s)
wz=((wzH<<8)|wzL)/32768*250(°/s)
温度计算公式:
T=((TH<<8)|TL) /340+36.53 ℃
校验和:
Sum=0x55+0x52+wxH+wxL+wyH+wyL+wzH+wzL+TH+TL
4.2.3 角度输出:
数据编号
数据内容
0
1
2
3
4
5
6
7
8
9
0x55
0x53
RollL
RollH
PitchL
PitchH
YawL
YawH
TL
TH
Sum
10
角速度计算公式:
滚转角(x 轴)Roll=((RollH<<8)|RollL)/32768*180(°)
俯仰角(y 轴)Pitch=((PitchH<<8)|PitchL)/32768*180(°)
偏航角(z 轴)Yaw=((YawH<<8)|YawL)/32768*180(°)
温度计算公式:
含义
包头
标识这个包是角度包
X 轴角度低字节
X 轴角度高字节
y 轴角度低字节
y 轴角度高字节
z 轴角度低字节
z 轴角度高字节
温度低字节
温度高字节
校验和
- 4 -
【君悦智控】 http://RobotControl.taobao.com
T=((TH<<8)|TL) /340+36.53 ℃
校验和:
Sum=0x55+0x53+RollH+RollL+PitchH+PitchL+YawH+YawL+TH+TL
注:姿态角结算时所使用的坐标系为东北天坐标系,正方向放置模块,如下图所示。坐
标系的旋转顺序为 z-x-y,即先绕 z 轴转,再绕 x 轴转,再绕 y 轴转。
4.3 数据解析示例代码:
double a[3],w[3],Angle[3],T;
void DecodeIMUData(char chrTemp[])
{
}
switch(chrTemp[1])
{
case 0x51:
a[0] = (((short)chrTemp[3]<<8)|chrTemp[2])/32768.0*2;
a[1] = (((short)chrTemp[5]<<8)|chrTemp[4])/32768.0*2;
a[2] = (((short)chrTemp[7]<<8)|chrTemp[6])/32768.0*2;
T = (((short)chrTemp[9]<<8)|chrTemp[8])/340.0+36.25;
printf("a = %4.3f\t%4.3f\t%4.3f\t",a[0],a[1],a[2]);
break;
case 0x52:
w[0] = (((short)chrTemp[3]<<8)|chrTemp[2])/32768.0*250;
w[1] = (((short)chrTemp[5]<<8)|chrTemp[4])/32768.0*250;
w[2] = (((short)chrTemp[7]<<8)|chrTemp[6])/32768.0*250;
T = (((short)chrTemp[9]<<8)|chrTemp[8])/340.0+36.25;
printf("w = %4.3f\t%4.3f\t%4.3f\t\r\n",w[0],w[1],w[2]);
break;
case 0x53:
}
Angle[0] = (((short)chrTemp[3]<<8)|chrTemp[2])/32768.0*180;
Angle[1] = (((short)chrTemp[5]<<8)|chrTemp[4])/32768.0*180;
Angle[2] = (((short)chrTemp[7]<<8)|chrTemp[6])/32768.0*180;
T = (((short)chrTemp[9]<<8)|chrTemp[8])/340.0+36.25;
printf("Angle = %4.2f\t%4.2f\t%4.2f\tT=%4.2f\r\n",Angle[0],Angle[1],Angle[2],T);
break;
- 5 -
【君悦智控】 http://RobotControl.taobao.com
5 上位机使用方法
选择正确的串口
点开始测量,测量数据就返回了。
陀螺仪校准按钮用于校准陀螺零位,校准时需保持静止。
角度初始化用于让 Z 轴的角度数据归零。
点记录按钮可以将数据保存为文件
- 6 -
【君悦智控】 http://RobotControl.taobao.com
保存的文件在上位机程序的目录下:
数据可以导入到 Exel 或者 Matlab 中进行分析。
6 机械尺寸
- 7 -
【君悦智控】 http://RobotControl.taobao.com
- 8 -