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; 	
}
相关推荐
智者知已应修善业1 小时前
【51单片机用数码管显示流水灯的种类是按钮控制数码管加一和流水灯】2022-6-14
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
智商偏低8 小时前
单片机之helloworld
单片机·嵌入式硬件
青牛科技-Allen9 小时前
GC3910S:一款高性能双通道直流电机驱动芯片
stm32·单片机·嵌入式硬件·机器人·医疗器械·水泵、
森焱森11 小时前
无人机三轴稳定控制(2)____根据目标俯仰角,实现俯仰稳定化控制,计算出升降舵输出
c语言·单片机·算法·架构·无人机
白鱼不小白11 小时前
stm32 USART串口协议与外设(程序)——江协教程踩坑经验分享
stm32·单片机·嵌入式硬件
S,D11 小时前
MCU引脚的漏电流、灌电流、拉电流区别是什么
驱动开发·stm32·单片机·嵌入式硬件·mcu·物联网·硬件工程
芯岭技术14 小时前
PY32F002A单片机 低成本控制器解决方案,提供多种封装
单片机·嵌入式硬件
youmdt15 小时前
Arduino IDE ESP8266连接0.96寸SSD1306 IIC单色屏显示北京时间
单片机·嵌入式硬件
嘿·嘘15 小时前
第七章 STM32内部FLASH读写
stm32·单片机·嵌入式硬件
Meraki.Zhang15 小时前
【STM32实践篇】:I2C驱动编写
stm32·单片机·iic·驱动·i2c