今日学习使用JY901B智能9轴加速度计陀螺仪角度传感器
本文会先使用上位机获取数据作演示,后介绍它的数据表发送原理。
文章提供详细的原理讲解,测试工程下载,代码讲解,本人有多注释的习惯,希望对大家有帮助。
我的JY901B智能9轴加速度计陀螺仪角度传感器是买的维特智能的传感器,这么小一片要120多,他们提供了上位机演示软件.
具体的驱动可以在我STM32F103C8T6的专栏中有文章会提到,
官方演示视频地址:
维特智能9轴加速度计陀螺仪角度传感器数据快速上手_哔哩哔哩_bilibili
JY901B介绍与基本参数:
下图是JY901B,它长这样,下面了解一下它的一些基本我们必须知道的参数
首先看到商家的产品描述,来挖掘重要信息:
1.第1~3条并不重要,主要说明了这个陀螺仪的精度高,稳定
2.第4条告诉我们支持串口和IIC俩种通信方式
3.第6条告诉我们它的数据回传效率是可以改变的,这个可以通过它的上位机软件进行方便修改,或者使用它的通信格式,发送相关协议进行修改
4.水平垂直的安装方式是可以调整的
5.最后的说明很重要:远离磁场干扰的区域与物块!
随后商家介绍了各个三轴角度的精度,以及三轴角度是怎么定义的:
这里有个右手螺旋定则,拇指Z轴发现,四指X轴正方向
下面是引脚与轴向定义:
这里我们知道它四周的四个脚D0~D3是可以连接其他GPS模块之类的传感器的
模组参数:
电气参数:
USB驱动,我们今日学习的传感器需要CH340驱动,他们其余一有部分需要CP2102,这个需要注意安装好在连接串口调试
与上位机的连接与演示:
首先正确连接陀螺仪与串口转换器:
打开一个普通的串口助手查看一下它的数据:
发现传回来一些数据,暂时我们不去理解它,后面介绍:
随后我们关闭刚才的串口,打开他们提供的上位机软件测试:
这样可以给我们更直观的三轴坐标的概念:
协议解读:
协议解读官方文档:
WIT私有协议 · 深圳维特智能科技有限公司
此处我们只需找到我们需要的寄存器列表, 从第五列知道他们都是R(只读)的,他们就是可供读取的寄存器,可以从中了解到我们需要的数据:
以下是我们今日需要尝试读取内容的寄存器:
三轴角度:
三轴加速度:
协议格式:
上位机数据解析:
经过刚才的协议解读,我们现在再将其连接上上位机,尝试用上位机串口软件接受的数据进行分析运算一遍:
这一刻接收到的数据应该拆分为三部分来看:
部分一: 55 51 ```````
部分二: 55 52 ```````
部分三: 55 53 ```````
我们需分区处理数据,按照手册说好的,移位处理:
此处必须注意 存储区的溢出与否,适当进行 强制类型转 和 与或置零 操作、先乘再除 等经验手法,否则计算必定会莫名出错!
部分一是加速度输出(55 51 ):
加速度X=(AxH<<8) | AXL) / 32768*16g
(g为重力加速度,可取9.8m/s2)加速度Y=(AyH<<8) | AyL)/32768*16g
(g为重力加速度,可取9.8m/s2)加速度Z=(AZH<<8)|AZL)/32768*16g
(g为重力加速度,可取9.8m/s2)
温度计算公式:
温度=(TH<<8)|TL)/100℃
部分二是角速度输出(55 52 ):
角速度X=(WxH<<8)|WxL)/32768*2000°/s
角速度Y=(WyH<<8)|WyL)/32768*2000°/s
角速度Z=(WzH<<8)|WZL)/32768*2000°/s
(非蓝牙产品,该数据无效)
电压计算公式:电压=(VolH<<8|VolL)/100℃
部分三是角度输出( 55 53):
滚转角X=(RollH<<8)1 RollL)/32768*180
俯仰角Y=(PitchH<<8|PitchL)/32768*180
偏航角Z=(YawH<<8|YawL)/32768*180
上位机下载:
https://download.csdn.net/download/qq_64257614/88291037?spm=1001.2014.3001.5503