JY61说明书

image-20210227114556513

产品规格书 :SPECIFICATION

型 号:JY61

描 述:六轴姿态角度传感器

生产执行标准参考

企业质量体系标准: ISO9001:2016标准

倾角仪生产标准:GB/T191SJ 20873-2016

产品试验检测标准:GB/T191SJ 20873-2016

文档目录

1. 产品概述

  • 此六轴模块采用高精度的陀螺加速度计MPU6050,通过处理器读取MPU6050的测量数据然后通过串口输出,免去了用户自己去开发MPU6050复杂的IIC协议,同时精心的PCB布局和工艺保证了MPU6050收到外接的干扰最小,测量的精度最高。

  • 模块内部自带电压稳定电路,可以兼容3.3V/5V的嵌入式系统,连接方便。

  • 采用先进的数字滤波技术,能有效降低测量噪声,提高测量精度。

  • 模块保留了MPU6050的IIC接口,以满足用户访问底层测量数据(加速度、角速度)的需求。

  • 模块内部集成了姿态解算器,配合动态卡尔曼滤波算法,能够在动态环境下准确输出模块的当前姿态,姿态测量精度0.05度,稳定性极高,性能甚至优于某些专业的倾角仪!

  • 采用邮票孔镀金工艺,品质保证,可嵌入用户的PCB板中。

注:本模块不含磁场计,没有磁场的观测量对偏航角进行滤波,所以偏航角度是通过纯积分计算出来的,不可避免地会有漂移现象,只能实现短时间内的旋转角度测量。而X,Y轴角度可以通过重力场进行滤波修正,不会出现漂移现象。

image-20210227114646641

尺寸15.24mmX15.24mm X 2mm
重量0.6g

2. 性能参数

1、电压:3.3V~5V

2、电流:<10mA

3、体积:15.24mm X 15.24mm X 2mm

4、焊盘间距:上下100mil(2.54mm),左右600mil(15.24mm)

5、测量维度:加速度:3维,角速度:3维,角度:3维

6、量程:加速度:±16g,角速度:±2000deg/s,角度X Z轴±180° Y轴±90°。

7、分辨率:加速度:0.0005g,角速度:0.61°/s。

8、测量精度:静态0.05°,动态0.1°。

9、数据输出内容:加速度、角速度、角度。

10、数据输出频率:100HZ(波特率115200)/20HZ(波特率9600)。

11、波特率:9600kps、115200kps(默认)。

12、数据接口:串口(TTL电平),IIC(直连MPU6050芯片,无姿态角度输出

注:模块的数据输出频率只有两种:100HZ(波特率115200)和20HZ(波特率9600)。

3. 引脚说明

名称功能
VCC模块电源,3.3V或5V输入
RX串行数据输入,TTL电平
TX串行数据输出,TTL电平
GND地线
SCLIIC时钟线
SDAIIC信号线

4. 轴向说明

如上图所示,模块的轴向在上图右上方标示出来,向右为X轴,向上为Y轴,垂直与模块向外为Z轴。旋转的方向按右手法则定义,即右手大拇指指向轴向,四指弯曲的方向即为绕该轴旋转的方向。X轴角度即为绕X轴旋转方向的角度,Y轴角度即为绕Y轴旋转方向的角度,Z轴角度即为绕Z轴旋转方向的角度。

5. 硬件连接方法

硬件连接视频

5.1串口(TTL)连接

与计算机连接,需要USB转TTL电平的串口模块。推荐以下两款USB转串口模块:
六合一串口模块

六合一

三合一串口模块
三合一

1.USB-TTL/三合一串口模块:把模块和USB-TTL连接好,在插到电脑上。模块和USB-TTL连接方法是:模块的VCC TX RX GND 分别于USB串口模块的+5V/3V3 RX TX GND对应相接,注意TX和RX需要交叉,即TX接RX,RX接TX。

2.六合一模块:模块拨码开关1拨至ON,拨码开关2拨至2,开关S1拨至other(丝印)。模块的VCC TX RX GND 分别于六合一模块的+5V/3V3 RX TX GND对应相接,注意TX和RX需要交叉,即TX接RX,RX接TX。六合一USB-TTL模式拨码如下:

5.2 连单片机

6. 上位机使用方法

上位机使用视频
上位机下载地址

6.1 使用方法

注意,上位机无法运行的用户请下载安装.net framework4.0:

通过USB转串口模块连接上电脑打开上位机,安装好串口模块对应的驱动CP210X或者CH340以后,可以再设备管理器中查询到对应的端口号,
下图安装的是CH340驱动设备管理器显示如下:

安装CP210X驱动设备管理器显示如下:

三合一驱动程序为CH340,驱动下载地址

六合一驱动为CP2102,驱动下载地址

在【资料包/上位机】中,打开MiniIMU.exe软件,点击串口选择菜单,选择刚才设备管理器里面看到的COM号。

在上位机软件上点击波特率菜单选择波特率115200,选择完成后,点击“打开”选项卡,上位机左下角显示COM10 open success,baud 115200,表示串口已打开,上位机软件上即可出现数据。

点击三维按钮,可以调出三维显示界面,显示模块的三维姿态。

6.2 模块校准

注意:必须在上位机上能正常接收到数据才能进行设置。

模块使用前,需要对模块进行校准。模块的校准包括Z轴归0、加计校准。

6.2.1 Z轴归0

Z轴归0是使模块Z轴角度初始状态为相对0度角,模块使用前和Z轴漂移较大的情况下可以进行Z轴归0校准,模块上电时Z轴会自动归0。

上位机Z轴归0方法如下:首先模块静止放置,点击配置打开配置栏,在配置栏里面的“Z轴归零”选项,模块数据栏里面可以看到Z轴角度回到0°。

6.2.2 加计校准

加计校准用于去除加速度计的零偏。传感器在出厂时都会有不同程度的零偏误差,需要手动进行校准后,测量才会准确。

加计校准方法如下:首先使模块保持水平静止,点击加计校准,1~2秒后模块加速度三个轴向的值会在0
0 1左右,X 和Y轴角度在0°左右。校准后X Y轴角度就更精确了。

注意:Z轴水平静止的时候是有1个G的重力加速度的。

6.3 设置通信波特率

模块支持多种波特率,默认波特率为115200。设置模块的波特率需要在软件与模块正确连接的基础上,在配置栏的通信速率下拉框中选择需要更改的波特率。波特率115200时模块回传速率为100HZ,波特率为9600时模块回传速率为20HZ。

注意:更改以后,模块在原来的波特率下已经不输出数据了,要重新在上位机上选择已经更改过的波特率,才会输出数据。

6.4 记录数据

传感器模块内部不带存储芯片,数据可以通过上位机来记录保存。

使用方法:点记录—开始按钮可以将数据保存为文件

点击停止按钮,出现如图所示的弹窗:

点击确定,即打开保存的文件,如下图所示:

保存的文件在上位机程序的目录下Data1911211190029.txt:

文件开头有标明数据对应的值,Time代表时间,ax ay az分别表示 x y z三个轴向上的加速度, wx wy wz分别表示 x y z三个轴向上的角速度,Anglex Angley Anglez分别表示 x y z三个轴向的角度,T代表时间。

数据可以导入到Excel或者Matlab中进行分析。在Matlab环境下运行上位机根目录下的“Matlab绘图.m”文件,可以绘制数据曲线图。

021015vlkinb2g6di6dahq

6.5 安装方向

模块默认安装方向为水平安装,当模块需要垂直放置时,可以用垂直安装设置。

垂直安装方法:垂直安装时,把模块绕X轴旋转90°垂直放置,在上位机配置栏里面“安装方向”选项中选择“垂直”。设置完成后要进行校准才能使用。

6.6 休眠及解休眠

休眠:模块暂停工作,进入待机状态。休眠后可以降低功耗。

解休眠:模块从待机状态进入工作状态。

使用方法:模块默认为工作状态,在上位机配置栏里面点击“休眠”选项,进入休眠状态,再点击“休眠”选项,模块解除休眠。

注:休眠后再解除休眠模块的Z轴或归0,相当于重新上电了,所以Z轴会归0。

6.7 静止阀值及测量带宽

静止阀值:模块静止时,陀螺仪芯片测量的角速度是有微小变化的。静止阀值的作用是当角速度小于阀值时,模块输出角速度为0。(注意角速度在匀速转速的情况下,输出有问题,推荐在匀速转动下用61P)

使用方法:在上位机配置栏里面点击“静止阀值”选项,即可设置阀值。模块默认为0.122°/s。

测量带宽:模块只输出测量带宽以内的数据,大于带宽的数据会自动滤除。

使用方法:在上位机配置栏里面点击“测量带宽”选项,即可设置。默认为10HZ。

注:静止阀值和测量带宽一般为默认的就可以了,不需要去设置。

6.8 设置IIC模式

JY61模块支持IIC模式,IIC总线是直接连接MPU6050芯片的,所以IIC只输出陀螺仪芯片的原始数据,即三轴加速度和三轴角速度,不能输出姿态角度。

在上位机配置栏里面把模式转换成为IIC模式,模块将释放MPU6050的IIC总线,用户可以通过IIC访问MPU6050芯片。如果收到0x55 0x50开头的数据包,说明模块已经进入到了IIC模式。

说明:IIC访问方式参考MPU6050数据手册,硬件连接方面需要接4.7K的上拉电阻。

数据编号数据内容含义
00x55包头
10x50标识模块进入IIC模式
20x00
30x01
40x00
50x02
60x00
70x03
80x00
90x04
10Sum校验和

7. 通信协议

电平:TTL电平(非RS232电平,若将模块错接到RS232电平可能造成模块损坏)

波特率:115200/9600,停止位1,校验位0。

7.1 上位机至模块

指令内容功能备注
0xFF 0xAA 0x52角度初始化使Z轴角度归零
0xFF 0xAA 0x67加速度计校准校准加速度零偏
0xFF 0xAA 0x60休眠及解休眠待机模式和工作模式
0xFF 0xAA 0x61使用串口,禁用IIC设置为串口输出
0xFF 0xAA 0x62禁用串口,使用IIC接口设置为IIC接口输出
0xFF 0xAA 0x63波特率115200,回传速率100HZ设置波特率为115200
0xFF 0xAA 0x64波特率9600,回传速率20HZ设置波特率为9600
0xFF 0xAA 0x65水平安装模块水平放置
0xFF 0xAA 0x66垂直安装模块垂直放置

说明:

1.模块上电以后需先保持静止,模块内部的MCU会在模块静止的时候进行自动校准(消除陀螺零漂),校准以后Z轴的角度会重新初始化为0,Z轴角度输出为0时,可视为自动校准完成的信号。

2.出厂默认设置使用串口时,波特率115200,帧率100Hz(100HZ指的是1秒回传100个加速度、角速度、角度数据包)。配置可通过上位机软件配置,因为所有配置都是掉电保存的,所以只需配置一次就行。

7.2 模块至上位机

模块发送至上位机每帧数据分为3个数据包,分别为加速度包,角速度包和角度包,3个数据包顺序输出。波特率115200时每隔10ms输出1帧数据。

7.2.1 加速度输出:

数据编号数据内容含义
00x55包头
10x51标识这个包是加速度包
2AxLX轴加速度低字节
3AxHX轴加速度高字节
4AyLY轴加速度低字节
5AyHY轴加速度高字节
6AzLZ轴加速度低字节
7AzHZ轴加速度高字节
8TL温度低字节
9TH温度高字节
10Sum校验和

加速度计算公式:

ax=((AxH<<8)|AxL)/32768*16g(g为重力加速度,可取9.8m/s2)

ay=((AyH<<8)|AyL)/32768*16g(g为重力加速度,可取9.8m/s2)

az=((AzH<<8)|AzL)/32768*16g(g为重力加速度,可取9.8m/s2)

温度计算公式:

T=((TH<<8)|TL) /340+36.53 ℃

校验和:

Sum=0x55+0x51+AxH+AxL+AyH+AyL+AzH+AzL+TH+TL

说明:

  1. 数据是按照16进制方式发送的,不是ASCII码。

  2. 每个数据分低字节和高字节依次传送,二者组合成一个有符号的short类型的数据。例如X轴加速度数据Ax,其中AxL为低字节,AxH为高字节。转换方法如下:

    假设Data为实际的数据,DataH为其高字节部分,DataL为其低字节部分,
    那么:Data=((short)DataH<<8)|DataL。这里一定要注意DataH需要先强制转换为一个有符号的short类型的数据以后再移位,并且Data的数据类型也是有符号的short类型,这样才能表示出负数。

详细解算示例

7.2.2 角速度输出:

数据编号数据内容含义
00x55包头
10x52标识这个包是角速度包
2wxLX轴角速度低字节
3wxHX轴加速度高字节
4wyLY轴加速度低字节
5wyHY轴加速度高字节
6wzLZ轴加速度低字节
7wzHZ轴加速度高字节
8TL温度低字节
9TH温度高字节
10Sum校验和

角速度计算公式:

wx=((wxH<<8)|wxL)/32768*2000(°/s)

wy=((wyH<<8)|wyL)/32768*2000(°/s)

wz=((wzH<<8)|wzL)/32768*2000(°/s)

温度计算公式:

T=((TH<<8)|TL) /340+36.53 ℃

校验和:

Sum=0x55+0x52+wxH+wxL+wyH+wyL+wzH+wzL+TH+TL

7.2.3 角度输出:

数据编号数据内容含义
00x55包头
10x53标识这个包是角度包
2RollLX轴角度低字节
3RollHX轴角度高字节
4PitchLY轴角度低字节
5PitchHY轴角度高字节
6YawLZ轴角度低字节
7YawHZ轴角度高字节
8TL温度低字节
9TH温度高字节
10Sum校验和

角速度计算公式:

滚转角(x轴)Roll=((RollH<<8)|RollL)/32768*180(°)

俯仰角(y轴)Pitch=((PitchH<<8)|PitchL)/32768*180(°)

偏航角(z轴)Yaw=((YawH<<8)|YawL)/32768*180(°)

温度计算公式:

T=((TH<<8)|TL) /340+36.53 ℃

校验和:

Sum=0x55+0x53+RollH+RollL+PitchH+PitchL+YawH+YawL+TH+TL

注:

  1. 姿态角解算时所使用的坐标系为东北天坐标系,正方向放置模块,如下图所示向右为X轴,向上为Y轴,垂直模块向外为Z轴。欧拉角表示姿态时的坐标系旋转顺序定义为Z-Y-X,即先绕Z轴转,再绕Y轴转,再绕X轴转。

  2. 滚转角的范围虽然是±180度,但实际上由于坐标旋转顺序是Z-Y-X,在表示姿态的时候,俯仰角(Y轴)的范围只有±90度,超过90度后会变换到小于90度,同时让X轴的角度大于180度。详细原理请自行百度欧拉角及姿态表示的相关信息。

  3. 由于三轴是耦合的,只有在小角度的时候会表现出独立变化,在大角度的时候姿态角度会耦合变化,比如当Y轴接近90度时,即使姿态只绕Y轴转动,X轴的角度也会跟着发生较大变化,这是欧拉角表示姿态的固有问题。

7.3 数据解析示例代码:

double a[3],w[3],Angle[3],T;
void DecodeIMUData(unsigned char chrTemp[])
{
    switch(chrTemp[1])
    {
        case 0x51:
            a[0] = (short(chrTemp[3]/8|chrTemp[2]))/32768.0*16;
            a[1] = (short(chrTemp[5]/8|chrTemp[4]))/32768.0*16;
            a[2] = (short(chrTemp[7]/8|chrTemp[6]))/32768.0*16;
            T = (short(chrTemp[9]/8|chrTemp[8]))/340.0+36.53;
            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;
            T = (short(chrTemp[9]/8\|chrTemp[8]))/340.0+36.53;
            printf("a = %4.3f\t%4.3f\t%4.3f\t\r\n",a[0],a[1],a[2]);
            printf("Angle = %4.2f\t%4.2f\tT=%4.2f\r\n",Angle[0],Angle[1],T);
            break;
    }
}

7.4 嵌入式环境下解析数据实例

分成两个部分,一个是中断接收,找到数据的头,然后把数据包放入数组中。另一个是数据解析,放在主程序中(以下为AVR单片机代码,不同单片机读取寄存器略有差异,需根据实际情况调整)。

7.4.1 中断部分:

unsigned char Re_buf[11],counter=0;
unsigned char sign;
interrupt [USART_RXC] void usart_rx_isr(void) //USART串行接收中断
{
    Re_buf[counter]=UDR;//不同单片机略有差异
    if(counter==0&&Re_buf[0]!=0x55) return; //第0号数据不是帧头,跳过
    counter++;
    if(counter==11) //接收到11个数据
    {
        counter=0; //重新赋值,准备下一帧数据的接收
        sign=1;
    }
}

7.4.2 主程序部分:

float a[3],w[3],angle[3],T;
extern unsigned char Re_buf[11],counter;
extern unsigned char sign;
while(1)
{
    if(sign)
    {
        sign=0;
        if(Re_buf[0]==0x55) //检查帧头
        {
            switch(Re_buf [1])
            {
                case 0x51:
                a[0] = (short(Re_buf [3]/8| Re_buf [2]))/32768.0*16;
                a[1] = (short(Re_buf [5]/8| Re_buf [4]))/32768.0*16;
                a[2] = (short(Re_buf [7]/<8| Re_buf [6]))/32768.0*16;
                T = (short(Re_buf [9]/8| Re_buf [8]))/340.0+36.53;
                break;
                case 0x52:
                w[0] = (short(Re_buf [3]/8| Re_buf [2]))/32768.0*2000;
                w[1] = (short(Re_buf [5]/8| Re_buf [4]))/32768.0*2000;
                w[2] = (short(Re_buf [7]/8| Re_buf [6]))/32768.0*2000;
                T = (short(Re_buf [9]/8| Re_buf [8]))/340.0+36.53;
                break;
                case 0x53:
                angle[0] = (short(Re_buf [3]/8| Re_buf [2]))/32768.0*180;
                angle[1] = (short(Re_buf [5]/8| Re_buf [4]))/32768.0*180;
                angle[2] = (short(Re_buf [7]/8| Re_buf [6]))/32768.0*180;
                T = (short(Re_buf [9]/8| Re_buf [8]))/340.0+36.53;
                break;
            }
        }
    }
}

具体程序代码可以参考资料里的示例代码。

8. 联系我们

06

深圳维特智能科技有限公司

WitMotion ShenZhen Co., Ltd

JY61姿态角度传感器

电话: 0755-33185882

邮箱: wit@wit-motion.com

网站: www.wit-motion.com

店铺: https://robotcontrol.taobao.com

地址: 广东省深圳市宝安区松岗镇星际家园宏海大厦

  • 5
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值