• 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寄存器:
    该传感器的寄存器比较多,需要配置的参数也不少,这个地方需要细致的配置。
    调试心得:
    要找两个传感对比,笔者买了两个传感器,发现一个根本无法工作,硬件作比对,比较容易发现问题。

     

    展望

     该方案集成度高,功耗低,尺寸小等特点,所以很适合做病人的穿戴式设备研究,后面从技术上讲,就是要多加一些传感器进去,能够覆盖不同的场景。

    作者:虚生
    出处:https://www.cnblogs.com/dylancao/
    以音频算法为核心的物联网解决方案提供商 ,提供以音频算法为核心智能硬件产品设计,开发和咨询服务。
    勾搭热线:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188
  • 相关阅读:
    Flink 源码阅读环境搭建并调试 Flink-Clients 模块
    阅读 Flink 源码前必会的知识 SPI 和 Classloader
    如何 debug hive 源码,知其然知其所以然
    Flink SQL 核心概念剖析与编程案例实战
    Apache Flink 如何正确处理实时计算场景中的乱序数据
    Flink 编程接口
    Flink JobManager 和 TaskManager 原理
    一文带你了解 Flink 的基本组件栈
    flink有什么优势值得大家这么热衷
    实时计算数据架构的演变
  • 原文地址:https://www.cnblogs.com/dylancao/p/15726455.html
Copyright © 2020-2023  润新知