基于bes2300 的六轴传感器mpu6050调试总结
需求
在医疗健康领域,有很多场景需要分析佩戴者的姿势和动作。mpu6050多轴传感器是一个不二的选择。假如想把功耗做的低一些,放在耳机里,bes2300芯片配合mpu6050是一个不错的选择。遗憾的是,这些驱动原厂并没有提供,想使用的话,就需要自己移植和写代码了。
代码解析
这里面的代码分成两个部分,一个是mpu6050的驱动,这部分主要涉及到i2c接口的读写,以及该传感器的寄存器读写。这部分是一个整体,需要把代码移植进去即可。
其次,涉及到i2c的接口部分,该传感器要比纯温度的传感器复杂不少,所以i2c需要配置的地方比较多,一不小心就会搞错。这方面需要深入细致,笔者在这地方踩坑较多。
初始化的代码如下:
mpu6050_sensor_init(); //reset mpu6050
ret = sensor_write(MPU_PWR_MGMT1_REG,0x80); osDelay(100); //wake up mpu6050
ret = sensor_write(MPU_PWR_MGMT1_REG,0x00);
MPU_Set_Gyro_Fsr(3);
MPU_Set_Accel_Fsr(0);
MPU_Set_Rate(50); ret = sensor_write(MPU_INT_EN_REG,0x00); // close all irq
ret = sensor_write(MPU_USER_CTRL_REG,0x00); // i2c master closed
ret = sensor_write(MPU_FIFO_EN_REG,0x00); // close fifo mode
ret = sensor_write(MPU_INTBP_CFG_REG,0x80); //init low en
根据笔者的调试过程来看,这里面有三个技术难点:
i2c的接口是否正确:
bes2300的I2c的接口比较混乱,很多函数需要自己封装,把接口封装好了,并测试是否ok,这个是比较花费时间的地方。
MPU6050寄存器:
该传感器的寄存器比较多,需要配置的参数也不少,这个地方需要细致的配置。
调试心得:
要找两个传感对比,笔者买了两个传感器,发现一个根本无法工作,硬件作比对,比较容易发现问题。

展望
该方案集成度高,功耗低,尺寸小等特点,所以很适合做病人的穿戴式设备研究,后面从技术上讲,就是要多加一些传感器进去,能够覆盖不同的场景。博客园虚生版权所有,谢绝抄袭。
基于bes2300 的六轴传感器mpu6050调试总结的更多相关文章
- Arduino101学习笔记(十三)—— 101六轴传感器
一.相关API 1.begin:需要在其他CUIREIMU前调用 //***************************************************************** ...
- 如何利用小熊派获取MPU6050六轴原始数据
摘要:使用小熊派开发板,通过硬件IIC与MPU6050六轴传感器模块通信,完成相应寄存器配置,成功获取陀螺仪.加速度计数据. 本问主要讲述使用小熊派开发板+MPU6050六轴传感器,获取加速度计以及陀 ...
- 六轴加速度传感器MPU6050官方DMP库到瑞萨RL78/G13的移植
2015年的电赛已经结束了.赛前接到器件清单的时候,看到带防护圈的多旋翼飞行器赫然在列,又给了一个瑞萨RL78/G13的MCU,于是自然联想到13年的电赛,觉得多半是拿RL78/G13做四旋翼的主控, ...
- 【.NET 与树莓派】六轴飞控传感器(MPU 6050)
所谓"飞控",其实是重力加速度计和陀螺仪的组合,因为多用于控制飞行器的平衡(无人机.遥控飞机).有同学会问,这货为什么会有六轴呢?咱们常见的不是X.Y.Z三轴吗?重力加速度有三轴, ...
- STM32—驱动六轴MPU6050输出欧拉角
文章目录 一.MPU6050介绍 1.MPU6050与陀螺仪.加速度计的关系: 2.整体概括 3.引脚说明 4.基本配置及相关寄存器 电源管理寄存器1 陀螺仪配置寄存器 加速度计配置寄存器 FIFO使 ...
- 借助Visual Studio Code提高基于ActionScript的LayaAir HTML5游戏的调试效率
借助Visual Studio Code提高基于ActionScript的LayaAir HTML5游戏的调试效率 使用Visual Studio Code(VS Code)调试的优势 借助VS Co ...
- 《Visual C++ 2010入门教程》系列六:VC2010常见调试技术
<Visual C++ 2010入门教程>系列六:VC2010常见调试技术 犹豫了好久,最终还是决定开始这一章,因为我不清楚到底有没有必要写这样的一章,是应该在这里说明一些简单的调试方 ...
- ubuntu基于VSCode的C++编程语言的构建调试环境搭建指南
ubuntu基于VSCode的C++编程语言的构建调试环境搭建指南 首先安装g++ sudo apt install g++ 检查是否安装成功: 在插件栏安装插件c/c++.code runner: ...
- [算法][三轴、六轴、九轴传感器算法分析] 1、分享一个三轴加速计matlab动态可视化脚本
一.有啥用 这里用的是LIS3DH三轴加速计,输出为X.Y.Z轴的加速度,通过串口连接电脑,电脑里运行matlab脚本通过串口实时获取数据并做可视化显示. 这里虽然是针对LIS3DH的,其实稍作修改即 ...
- Simulink S-Function的使用(以串口接收MPU6050六轴陀螺仪参数为实例)
S-Function 允许使用自定义C/C++函数作为传递函数,具有可移植性.也可以同样利用MATLAB函数进行相同的运算,看开发者熟悉程度而定. 项目流程 由系统串口接收数据包. 通过S-Funct ...
随机推荐
- 遥感图像处理笔记之【Machine Learning CS-433 - Class Project 2 - Road Segmentation - EPFL】
遥感图像处理学习(8) 前言 遥感系列第8篇.遥感图像处理方向的学习者可以参考或者复刻 本文初编辑于2024年1月2日 本文再编辑于2024年1月4日:附作者改进U-Net网络图片:文字补充说明 20 ...
- Windows配置PHP的MongoDB扩展
环境 Windows 10 PHP 5.6.40/8.1.11 配置 下载MongoDB扩展 下载地址:https://pecl.php.net/package/mongodb 下载PHP版本对应的扩 ...
- PHP中目录操作函数
PHP中目录操作函数 1.是否是目录 is_dir 判断给定文件名是否是一个目录 $path = dirname(__FILE___); echo is_dir($path) ? '目录' : ' ...
- 教你用JavaScript实现搜索展开
欢迎来的我的小院,恭喜你今天又要涨知识了! 案例内容 利用JavaScript实现搜索框的移动展开. 演示 学习 <!DOCTYPE html> <html lang="e ...
- 优化利器In-Memory开启和效果
本文主要介绍Oracle In-Memory 选件,Oracle在12.1.0.2就已经推出了In-Memory这个选件,现在通常会建议所有使用19.8及之后版本的用户,有条件都要留给In-memor ...
- 《ASP.NET Core 微服务实战》-- 读书笔记(第3章)
第 3 章 使用 ASP.NET Core 开发微服务 微服务定义 微服务是一个支持特定业务场景的独立部署单元.它借助语义化版本管理.定义良好的 API 与其他后端服务交互.它的天然特点就是严格遵守单 ...
- [Ngbatis源码学习][SpringBoot] 由BeanFactoryPostProcessor想到
由BeanFactoryPostProcessor想到 在看Ngbatis源码时看到了对BeanFactoryPostProcessor后置处理器的使用,对其的使用并不是很了解,在此做一些学习和总结. ...
- Spring Boot 1.5.x 结合 JUnit5 进行接口测试
在Spring Boot 1.5.x中,默认使用Junit4进行测试.而在对Controller进行接口测试的时候,使用 @AutoConfigureMockMvc 注解是不能注入 MockMvc 对 ...
- NC201613 Jelly
题目链接 题目 题目描述 Nancy喜欢吃果冻! Nancy钻进了一个 \(n \times n \times n\) 的果冻里,她想从(1,1,1)一路上.下.左.右.前.后六个方向吃到(n,n,n ...
- Lambda 表达式总结
1 Lambda 表达式简介 Lambda 表达式是 JDK 8 的新特性,主要用于简化匿名内部类的定义,帮助用户方便.高效地书写优雅的代码. Lambda 表达式实现的必须是一个接口,并且接 ...