需求

 在医疗健康领域,有很多场景需要分析佩戴者的姿势和动作。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调试总结的更多相关文章

  1. Arduino101学习笔记(十三)—— 101六轴传感器

    一.相关API 1.begin:需要在其他CUIREIMU前调用 //***************************************************************** ...

  2. 如何利用小熊派获取MPU6050六轴原始数据

    摘要:使用小熊派开发板,通过硬件IIC与MPU6050六轴传感器模块通信,完成相应寄存器配置,成功获取陀螺仪.加速度计数据. 本问主要讲述使用小熊派开发板+MPU6050六轴传感器,获取加速度计以及陀 ...

  3. 六轴加速度传感器MPU6050官方DMP库到瑞萨RL78/G13的移植

    2015年的电赛已经结束了.赛前接到器件清单的时候,看到带防护圈的多旋翼飞行器赫然在列,又给了一个瑞萨RL78/G13的MCU,于是自然联想到13年的电赛,觉得多半是拿RL78/G13做四旋翼的主控, ...

  4. 【.NET 与树莓派】六轴飞控传感器(MPU 6050)

    所谓"飞控",其实是重力加速度计和陀螺仪的组合,因为多用于控制飞行器的平衡(无人机.遥控飞机).有同学会问,这货为什么会有六轴呢?咱们常见的不是X.Y.Z三轴吗?重力加速度有三轴, ...

  5. STM32—驱动六轴MPU6050输出欧拉角

    文章目录 一.MPU6050介绍 1.MPU6050与陀螺仪.加速度计的关系: 2.整体概括 3.引脚说明 4.基本配置及相关寄存器 电源管理寄存器1 陀螺仪配置寄存器 加速度计配置寄存器 FIFO使 ...

  6. 借助Visual Studio Code提高基于ActionScript的LayaAir HTML5游戏的调试效率

    借助Visual Studio Code提高基于ActionScript的LayaAir HTML5游戏的调试效率 使用Visual Studio Code(VS Code)调试的优势 借助VS Co ...

  7. 《Visual C++ 2010入门教程》系列六:VC2010常见调试技术

    <Visual C++ 2010入门教程>系列六:VC2010常见调试技术   犹豫了好久,最终还是决定开始这一章,因为我不清楚到底有没有必要写这样的一章,是应该在这里说明一些简单的调试方 ...

  8. ubuntu基于VSCode的C++编程语言的构建调试环境搭建指南

    ubuntu基于VSCode的C++编程语言的构建调试环境搭建指南 首先安装g++ sudo apt install g++ 检查是否安装成功: 在插件栏安装插件c/c++.code runner: ...

  9. [算法][三轴、六轴、九轴传感器算法分析] 1、分享一个三轴加速计matlab动态可视化脚本

    一.有啥用 这里用的是LIS3DH三轴加速计,输出为X.Y.Z轴的加速度,通过串口连接电脑,电脑里运行matlab脚本通过串口实时获取数据并做可视化显示. 这里虽然是针对LIS3DH的,其实稍作修改即 ...

  10. Simulink S-Function的使用(以串口接收MPU6050六轴陀螺仪参数为实例)

    S-Function 允许使用自定义C/C++函数作为传递函数,具有可移植性.也可以同样利用MATLAB函数进行相同的运算,看开发者熟悉程度而定. 项目流程 由系统串口接收数据包. 通过S-Funct ...

随机推荐

  1. 46从零开始用Rust编写nginx,数据还能这么传,多层代理(IP多级代理)搭建

    wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 负载均衡, 静态文件服务器,websocket代理,四层TCP/UDP转发,内网穿透等,会将实 ...

  2. Python 潮流周刊第 38 期(摘要)+赠书5本

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  3. 2.3 实验:用linxerUnpack进行通用脱壳--《恶意代码分析实战》

    Lab01-03.exe     实验内容:   1.将文件上传到http://www.VirusTotal.com 进行分析并查看报告.文件匹配到了已有的反病毒软件特征吗?   2.是否有这个文件被 ...

  4. go中的 位预算,反码、补码、原码

    https://baike.baidu.com/item/%E4%BD%8D%E8%BF%90%E7%AE%97/6888804 首先关于"位运算",看下百度百科就行了. 总结:在 ...

  5. .NET Core开发实战(第35课:MediatR:让领域事件处理更加优雅)--学习笔记

    35 | MediatR:让领域事件处理更加优雅 核心对象 IMediator INotification INotificationHandler 这两个与之前的 Request 的行为是不一样的, ...

  6. JS 20道概念虽老但也略有收获的JS基础题,快速做题,高效复习,不妨试试?

    壹 ❀ 引 在7月21交接完所有工作后,我也进入了休年假的阶段(没用完的8天年假),看似休息内心的紧张感反而瞬间加倍,到今天为止也面了几家,好消息是工作机会特别特别多,一封简历没投,面试邀请源源不断, ...

  7. NC51222 Strategic game

    题目链接 题目 题目描述 Bob enjoys playing computer games, especially strategic games, but sometimes he cannot ...

  8. Docker进阶之02-Swarm集群入门实践

    Docker集群概述 Docker集群有2种方案: 1.在Docker Engine 1.12之前的集群模式被称为经典集群,这是通过API代理系统实现的集群,目前已经不再维护. 2.自Docker E ...

  9. 在Windows10中安装解压版MySQL 8.X

    在Windows 10中安装解压版的MySQL 8.X实现步骤: 1.下载MySQL安装包:https://dev.mysql.com/downloads/mysql/ 解压到指定目录,比如:D:\o ...

  10. 细说Spring框架之核心01-概述

    官网:https://spring.io/projects/spring-framework 文档:https://docs.spring.io/spring-framework/docs/curre ...