六轴传感器 SH3001

news2024/11/18 14:40:58

SH3001简介

SH3001是Senodia公司生产的一款六轴姿态传感器,可测量芯片自身X、Y、Z轴的加速度以及角速度参数,通过姿态融合,进而得到姿态角。

在这里插入图片描述
三轴加速度计(Accelerometer):测量X、Y、Z轴的加速度。
三轴陀螺仪传感器(Gyroscope):测量X、Y、Z轴的角速度。

在这里插入图片描述
小球完全悬空时,对每个面都没有施加力,所以每个方向的加速度都为0.

在这里插入图片描述
当物体向x+轴运动,小球由于惯性,对x-轴施加力(相反方向)。
哪个面受力,就哪个面产生值。

在这里插入图片描述
低通滤波器允许低于截止频率的信号通过,高于截止频率的信号不能通过,可平滑去噪。

加速度计数据获取:
acc_x = ACC_XDATA_H << 8 | ACC_XDATA_L
acc_y = ACC_YDATA_H << 8 | ACC_YDATA_L
acc_z = ACC_ZDATA_H << 8 | ACC_ZDATA_L

要使数据更精确,通过厂家提供的函数接口,读取补偿系统

SH3001时序

SH3001寻址
在这里插入图片描述

  • 设备地址:固定位+硬件选择位(0110110)0x36
  • 通讯地址:固定位+硬件选择位+数据传输方向位(0x36 << 1)| (R/W)
  • 写操作地址:(01101100)0x6c
  • 读操作地址:(01101101)0x6d

SH3001读取N字节函数

void sh3001_read_nbytes(uint8_t devaddr, uint8_t regaddr, uint8_t length, uint8_t *readbuf)
{
	iic_start(); //主机发送起始信号
	iic_send_byte(devaddr << 1 | 0x00); //主机发送sh3001写操作地址
	iic_wait_ack(); //主机等待sh3001应答
	iic_send_byte(regaddr); //主机发送寄存器地址
	iic_wait_ack(); //主机等待sh3001应答

	iic_start(); //主机发送起始信号
	iic_send_byte(devaddr << 1 | 0x01); //主机发送sh3001读操作地址
	iic_wait_ack(); 

	for(uint8_t i=0; i<length; i++)
	{
		readbuf[i] = iic_read_byte(i == (length-1) ? 0:1); //为1时发送应答信号,为0时发送非应答信号。
	}
	iic_stop();
}

SH3001写入N字节函数

void sh3001_write_nbytes(uint8_t devaddr, uint8_t regaddr, uint8_t length, uint8_t *writebuf)
{
	iic_start(); //主机发送起始信号
	iic_send_byte(devaddr<<1 | 0x00); //主机发送sh3001写操作地址
	iic_wait_ack();
	iic_send_byte(regaddr);
	iic_wait_ack();
	for(uint8_t i=0; i<length; i++)
	{
		iic_send_byte(writebuf[i]);
		iic_wait_ack();
	}
	iic_stop();
}

SH3001驱动步骤 (非中断方式)

  1. 初始化SH3001:调用iic_init()进行IIC接口初始化
  2. 编写SH3001基础读写接口函数:多字节写、多字节读
  3. 重置内部模块:启动驱动、ADC复位、CVA复位(厂家建议)
  4. 配置加速度计、陀螺仪、温度传感器:配置A/G输出频率、量程、截止频率
  5. 选择SH3001电源模式:设置为正常模式(高性能模式)(厂家函数接口)
  6. 读取原始数据:获取加速度计数据、陀螺仪数据、温度数据(更精确得考虑补偿)

在这里插入图片描述

  • SENB连接到VCC,选择使用IIC接口
  • SDO连接到GND,参与决定器件地址

姿态解算

姿态解算指读取传感器数据,实时算出飞行器的姿态角(偏航角yaw、俯仰角pitch、横滚角roll)

利用加速度计测量角度(俯仰角与横滚角):
假设载体处于静止水平放置,此时加速度计仅受重力作用,从Z轴可读到1g数据(g为重力加速度),X轴和Y轴两个方向读到0。

采用多种传感器数据来检测姿态的处理算法被称为“姿态融合”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1089242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++基础入门详解(一)

文章目录 前言命名空间展开命名空间使用C官方命名空间中的输入输出IO流输入输出的使用方法 缺省参数半缺省 函数重载 “你总以为机会无限&#xff0c;所以不珍惜眼前人” 前言 提到C&#xff0c;大部分人都想到的是复杂的语法和大量的规则&#xff0c;相对于java和python等语言…

基于YOLOv8模型的绵羊目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型的绵羊目标检测系统可用于日常生活中检测与定位车辆目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算法训练数据集…

基于simulink的单相光伏系统并网储能控制仿真

本仿真涉及到&#xff1a;基于电导增量法的最佳功率点跟踪算法、蓄电池恒流_恒压充电算法、光伏逆变器并网算法、双向&#xff08;同步&#xff09;DCDC电路设计等知识。 辐照度变化曲线&#xff1a; 模拟仿真&#xff0c;低辐照度情况&#xff0c;蓄电池与光伏逆变器共同向…

软件项目管理实践指南:有效规划、执行和控制

软件项目管理是使软件产品、应用程序和系统成功交付的重要规程。它有助于确保软件在预算内按时开发&#xff0c;同时满足客户的质量和功能需求。 软件项目管理是管理软件项目生命周期的一种有组织的方法&#xff0c;包括计划、开发、发布、维护和支持。它是在满足客户需求的同时…

python:绘制回归预测结果真实值和预测值之间的散点密度图

作者:CSDN @ _养乐多_ 对博客《python:使用卷积神经网络(CNN)进行回归预测》中的,回归预测结果真实值和预测值之间的散点密度图升级了一下。 如下图所示, 文章目录 一、完整代码二、参考一、完整代码 def plot(y_test, y_test_predict, method):d

SAP MM学习笔记34 - 请求书照合中的支付保留(发票冻结)

上次学习了 请求书照合中 如何修改 带勘定设定Category的发票&#xff0c;并举了 K&#xff1a;原价Center 的例子。 SAP MM学习笔记33 - 请求书照合中修改 带勘定设定Category&#xff08;科目分配&#xff09;的发票_东京老树根的博客-CSDN博客 日月如梭&#xff0c;倏忽之间…

JMeter性能测试,完整入门篇

1. Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言&#xff0c;JMeter小巧轻便且免费&#xff0c;逐渐成为了主流的性能测试工具&#xff0c;是每个测试人员都必须要掌握的工具之一。 本文为JMeter性能测试完整入门篇&…

【【萌新的SOC学习之AXI DMA环路测试介绍】】

萌新的SOC学习之AXI DMA环路测试介绍 AXI DMA环路测试 DMA(Direct Memory Access&#xff0c;直接存储器访问)是计算机科学中的一种内存访问技术。它允许某些计算机内部的硬件子系统可以独立地直接读写系统内存&#xff0c;而不需中央处理器&#xff08;CPU&#xff09;介入处…

【atoi函数详解】

文章目录 一. 什么是atoi函数二. 模拟实现函数atoi三. 总结atoi 一. 什么是atoi函数 atoi函数是将常量字符串转化为整数 int atoi(const char str);* 注意&#xff1a;该函数的返回值为int&#xff0c;所以不能超过int范围&#xff0c;如果数字很大超过就会截断&#xff0c;返…

手搭手Mybatis-Plus数据迁移至TDSQL

环境介绍 技术栈 springbootmybatis-plusdruidbaomidoumysqloracle 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 1.8 Spring Boot 2.7.13 mybatis 2.3.1 Navicat测试连接TDSQL 开启访问外网 IDEA环境搭建 pom.xml所需依赖 <dependencies><dep…

计算机毕业设计选什么题目好?springboot 试题库管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

element ui el-table表格复选框,弹框关闭取消打勾选择

//弹框表格复选框清空 this.$nextTick(()>{this.$refs.table.clearSelection();})<el-table ref"table" v-loading"crud.loading" :header-cell-style"{ color: #FFF, background: #333 }":cell-style"{ color: #FFF, background: #3…

【Java 进阶篇】JavaScript 日期和时间详解

JavaScript是一种强大的编程语言&#xff0c;它不仅可以用于处理文本和数字&#xff0c;还可以处理日期和时间数据。在本篇博客中&#xff0c;我们将深入探讨JavaScript中日期和时间的处理方式。不管你是在网页开发、移动应用开发&#xff0c;还是服务端开发&#xff0c;处理日…

Linux 查看CPU架构及内核版本

涉及arch命令和/proc/version文件 1 查看CPU架构 有些软件的安装需要和CPU架构相匹配&#xff0c;如JDK等等&#xff0c;所以需要确定主机的CPU架构类型。可使用命令arch查看Linux系统的CPU架构&#xff0c;如下&#xff1a; arch 12 查看内核版本 文件/proc/version中包含系…

四、RIP动态路由实验

拓扑图&#xff1a; 基本ip的配置已经配置好了&#xff0c;接下来对两台路由器配置rip协议&#xff0c;两台PC进行跨网段通讯 RIPv1版本只能识别ABC的大类网段&#xff0c;不能区分子网掩码&#xff0c;v2版本可以识别子网掩码 首先进入R1&#xff0c;进入rip&#xff0c;宣告…

来入门一下C语言打印Hello World

&#x1f4da;目录 安装程序官网下载软件启动程序运行代码解决乱码 安装环境IntelliJ Clion 安装程序 IntelliJ ClionVisual Studio…等 由于使用的主开发软件是IntelliJ的产品&#xff0c;所以这一次也使用旗下的IntelliJ Clion当做C的开发编程&#xff0c;当然更推荐你们使用…

App自动化测试环境搭建

目录 1、java jdk安装 2、node.js安装 3、安装模拟器安装 4、Android SDK 安装 5、Appium-Server安装 6、appium客户端安装  7、Appium-Python-Client安装 只做记录和注意点&#xff0c;详细内容不做解释 环境&#xff1a;winappium夜神模拟器python 需要用到的工具&a…

树和二叉树 | 一些遇到的小问题

1. TreeNode<T> &a TreeNode<T> &a是一个引用&#xff0c;指向类型为T的TreeNode节点。这个引用可以用来修改或访问该节点的值或属性。 2. *BiTree是什么意思&#xff1a; typedef struct BiTNode{ char data;struct BiTNode* lchild, * rchild; }BiT…

8中间件-Redis、MQ---基本

中间件&#xff08;Middleware&#xff09;是指位于客户端和服务器端之间的软件&#xff0c;用于处理请求和响应&#xff0c;以及提供额外的功能和服务。中间件可以用于各种不同的应用程序&#xff0c;例如Web应用程序、消息传递系统、数据库管理系统等。 在Web应用程序中&…

pycharm远程调试运行程序出现No such file or directory:解决办法

太离谱了&#xff01;&#xff01;&#xff01;&#xff01; 首先还是配置这里 然后重点来了&#xff0c;root path这里填上代码文件夹路径 然后mapping这里就不要再加了&#xff01;&#xff01;&#xff01;因为这个会和上面的root path拼在一起&#xff01;&#xff01;&am…