Mpy+JY61 陀螺仪:从零实现串口驱动,拆解自定义协议 + 数据可视化全流程

串口解析 JY61 陀螺仪协议帧

1.JY61 六轴陀螺仪介绍

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

2.JY61 串口协议介绍

2.1 数据读取

JY61 上电后就开始工作,通过串口循环发送 1 帧数据(1 帧数据包含 11 个数据包),数据帧格式如下:
image.png
参数含义如下:

  • 帧头 HEADER - 值为 0x55,用以数据同步

  • 数据类型​ Type - 表示数据类型,共有三种,0x51、0x52 和 0x53

    • 0x51​​​ ​​- 表示发送加速度数据
    • 0x52 ​​- 表示发送角速度数据
    • 0x53 ​​- 表示发送角度数据
  • 数据位 DATA - 分为高八位 DATAxH 和低八位 DATAxL 发送,x 取值为 0 到 3,根据数据类型 Type 不同则每个数据位含义不同

    • 数据类型为 0x51 时:
    • 数据类型为 0x52 时:
    • 数据类型为 0x53 时:
  • 校验和​ SUMCRC - SUMCRC=0x55+TYPE+DATA1L+DATA1H+DATA2L+DATA2H+DATA3L+DATA3H+DATA4L+DATA4H

    SUMCRC 为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

  • 带宽设置

  • 水平安装初始化设置

  • 垂直安装初始化设置


posted @ 2026-08-31 12:12  FreakStudio  阅读(13)  评论(0)    收藏  举报