Mpy+JY61 陀螺仪:从零实现串口驱动,拆解自定义协议 + 数据可视化全流程
串口解析 JY61 陀螺仪协议帧
1.JY61 六轴陀螺仪介绍
JY61 是一款基于 MEMS 技术的高性能三维运动姿态测量系统。它包含三轴陀螺仪、三轴加速度计,相比于 MPU6050 六轴陀螺仪模块,JY61 通过自带的微控制器进行了四元数结算和卡尔曼滤波,并支持 UART 和 IIC 两种方式进行通信,通信时采用自定义的协议帧,支持通过串口发送指令包完成传感器的角度归零、校准、休眠等操作。


2.JY61 串口协议介绍
2.1 数据读取
JY61 上电后就开始工作,通过串口循环发送 1 帧数据(1 帧数据包含 11 个数据包),数据帧格式如下:

参数含义如下:
-
帧头 HEADER - 值为 0x55,用以数据同步
-
数据类型 Type - 表示数据类型,共有三种,0x51、0x52 和 0x53
- 0x51 - 表示发送加速度数据
- 0x52 - 表示发送角速度数据
- 0x53 - 表示发送角度数据
-
数据位 DATA - 分为高八位 DATAxH 和低八位 DATAxL 发送,x 取值为 0 到 3,根据数据类型 Type 不同则每个数据位含义不同
- 数据类型为 0x51 时:
![]()
- 数据类型为 0x52 时:
![]()
- 数据类型为 0x53 时:
![]()
- 数据类型为 0x51 时:
-
校验和 SUMCRC -
SUMCRC=0x55+TYPE+DATA1L+DATA1H+DATA2L+DATA2H+DATA3L+DATA3H+DATA4L+DATA4HSUMCRC 为char型,取校验和的低 8 位
这里,需要注意的是:
-
数据是按照 16 进制方式发送的
-
总共有 8 个数据位:每个数据分低字节和高字节依次传送,二者组合成一个有符号的 short 类型的数据。例如数据 DATA1,其中 DATA1L 为低字节,DATA1H 为高字节。转换方法如下:假设 DATA1 为实际的数据,DATA1H 为其高字节部分,DATA1L 为其低字节部分,则:
DATA1=(short)((short)DATA1H<<8 | DATA1L)这里一定要注意 DATA1H 需要先强制转换为一个有符号的 short 类型的数据以后再移位,并且 DATA1 的数据类型也是有符号的 short 类型,这样才能表示出负数
2.2 指令发送
发送指令时按照下列协议进行发送,并且需要注意数据是按照 16 进制方式发送的:
| 协议头 | 协议头 | 命令 |
|---|---|---|
| OxFF | 0xAA | CMD |
可以发送以下指令:
-
Z 轴角度归零
注意,在校准和 z 轴角度清零时,传感器务必保持水平/垂直的静止状态 !

-
加速度计校准
注意,在校准和 z 轴角度清零时,传感器务必保持水平/垂直的静止状态 !

- 休眠和唤醒

- 串口传输模式选择

- IIC传输模式选择

- 波特率设置 115200

- 波特率设置 9600

- 带宽设置

- 水平安装初始化设置

- 垂直安装初始化设置


JY61 是一款基于 MEMS 技术的高性能三维运动姿态测量系统。它包含三轴陀螺仪、三轴加速度计,相比于 MPU6050 六轴陀螺仪模块,JY61 通过自带的微控制器进行了四元数结算和卡尔曼滤波,并支持 UART 和 IIC 两种方式进行通信,通信时采用自定义的协议帧,支持通过串口发送指令包完成传感器的角度归零、校准、休眠等操作。



浙公网安备 33010602011771号