JY901S 9轴姿态角度传感器模块

JY901S 9轴姿态角度传感器模块

JY901S 简介

模块集成高精度的陀螺仪、加速度计、地磁场传感器,采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法,能够快速求解出模块当前的实时运动姿态。 采用先进的数字滤波技术,能有效降低测量噪声,提高测量精度。模块内部集成了姿态解算器,配合动态卡尔曼滤波算法,能够在动态环境下准确输出模块的当前姿态,姿态测量精度静态 0.05 度,动态 0.1 度,稳定性极高,性能甚至优

于某些专业的倾角仪! 模块内部自带电压稳定电路,工作电压 3.3v~5v,引脚电平兼容 3.3V/5V 的嵌入式系统,连接方便。支持串口和 IIC 两种数字接口。方便用户选择最佳的连接方式。串口速率

2400bps~921600bps 可调,IIC 接口支持全速 400K 速率。最高 200Hz 数据输出速率。输入内容可以任意选择,输出速率 0.1~200HZ 可调节。保留 4 路扩展端口,可以分别配置为模拟输入,数字输入,数字输出,PWM 输出等功能。具备 GPS 连接能力。可接受符合 NMEA-0183 标准的串口 GPS 数据,形成 GPS-IMU组合导航单元。采用邮票孔镀金工艺,可嵌入用户的 PCB 板中。

4 层 PCB 板工艺,更薄、更小、更可靠。

模块特性

  • 电压:3.3V~5V
  • 电流:<25mA
  • 测量维度:加速度:3 维,角速度:3 维,磁场:3 维,角度:3 维,气压:1 维(JY-901B),GPS:3 维(接 GPS 模块)。
  • 量程:加速度:±2/4/8/16 g(可选),角速度:±250/500/1000/2000 °/s(可选),角度 X、Z 轴±180°,Y 轴±90°。
  • 稳定性:加速度:0.01g,角速度 0.05°/s。
  • 姿态测量稳定度:0.01°。
  • 数据输出内容:时间、加速度、角速度、角度、磁场、端口状态、气压(JY-901B)、高度(JY-901B)、经纬度(需连接 GPS)、地速(需连接 GPS)。
  • 数据输出频率 0.1Hz~200Hz。
  • 数据接口:串口(TTL 电平,波特率支持 2400、4800、9600(默认)、19200、38400、57600、115200、230400、460800、921600),I2C(最大支持高速 IIC 速率 400K)
  • 扩展口功能:模拟输入(0~VCC)、数字输入、数字输出、PWM 输出(周期 1us-65535us,分辨率 1us)。

引脚说明

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

IIC通讯

模块有串口通讯和IIC通讯2种方式,这里主要说下IIC通讯方式。

JY-901 模块可以完全通过 IIC 进行访问,IIC 通信速率最大支持 400khz,从机地址为为7bit,默认地址为 0x50,可以通过串口指令或者 IIC 写地址的方式更改。IIC 总线上面可以挂多个 GY-901 模块,但需提前将模块的 IIC 地址修改为不同的地址。

IIC读写寄存器代码示例

javascript 复制代码
//读取指定设备 指定寄存器的 Lenght个值
u8 IICreadBytes(u8 dev, u8 reg, u8 length, u8 *data){
    u8 count = 0;	
	IIC_Start();
	IIC_Send_Byte(dev<<1);	  
	IIC_Wait_Ack();
	IIC_Send_Byte(reg);  
    IIC_Wait_Ack();	  
	IIC_Start();
	IIC_Send_Byte((dev<<1)+1);  
	IIC_Wait_Ack();
    for(count=0;count<length;count++)
    {		
    	if(count!=length-1)data[count]=IIC_Read_Byte(1);  
		else  data[count]=IIC_Read_Byte(0);	 
	}
    IIC_Stop();
    return count;
}
//将多个字节写入指定设备指定寄存器
u8 IICwriteBytes(u8 dev, u8 reg, u8 length, u8* data)
{   u8 count = 0;
	IIC_Start();
	IIC_Send_Byte(dev<<1);	   
	IIC_Wait_Ack();
	IIC_Send_Byte(reg);   
	IIC_Wait_Ack();	  
	for(count=0;count<length;count++){
		IIC_Send_Byte(data[count]); 
		IIC_Wait_Ack(); 
 }
	IIC_Stop();
    return 1; 	
}
相关推荐
天月风沙21 分钟前
PX4 | 无人机关闭磁力计罗盘飞行(yaw estimate error报错解决方法)
单片机·嵌入式硬件·mcu·无人机
计蒙不吃鱼3 小时前
星闪开发之Server-Client 指令交互控制红灯亮灭案例解析(SLE_LED详解)
嵌入式硬件·物联网·iot·星闪·星闪开发
想搞嵌入式的小白4 小时前
STM32 NVIC中断控制器
stm32·单片机·嵌入式硬件·nvic
A-花开堪折4 小时前
Android7 Input(十)View 处理Input事件pipeline
android·嵌入式硬件
深圳市尚想信息技术有限公司5 小时前
【深尚想】OPA855QDSGRQ1运算放大器IC德州仪器TI汽车级高速8GHz增益带宽的全面解析
单片机·嵌入式硬件
陕西艾瑞科惯性技术有限公司6 小时前
让飞行姿态 “可感知”:为什么无人机需要三轴陀螺仪?
嵌入式硬件·机器学习·机器人·无人机·pcb工艺
代码总长两年半6 小时前
STM32----IAP远程升级
stm32·单片机·嵌入式硬件
广药门徒6 小时前
STM32手册上标称的18MHz GPIO翻转速度和你实际测量到的速度之间的差异是预期之内且合理的
单片机·嵌入式硬件
广药门徒6 小时前
在使用一些不用驱动大电流的设备就可以用stm32的自己的上下拉但是本身上下拉不就是给iicspi这些他通信给信号的吗中怎么还跟驱动能力扯上了有什么场景嘛
stm32·单片机·fpga开发
jz_ddk7 小时前
[zynq] Zynq Linux 环境下 AXI BRAM 控制器驱动方法详解(代码示例)
linux·运维·c语言·网络·嵌入式硬件