微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > MPU6050测试

MPU6050测试

时间:10-02 整理:3721RD 点击:
今天测试一下6轴加速度传感器MPU6050,主要验证库文件能否兼容我的模块。


首先打开在线编程公有库找到MPU6050并复制到自己的私有库里。
然后新建一个工程:


打开工程后在工程中添加已经保存的库:


然后就开始编辑自己的代码了:


代码就在下面展示了:
/*该头文件引用由IntoRobot自动添加.*/
#include <MPU6050/MPU6050.h>

#define SERVO_DATA_STATUS   "channel/widget1_0/data/watch_x"  //手机APP显示数据
#define SERVO_DATA1_STATUS   "channel/widget1_0/data/watch_y" //手机APP显示数据
#define SERVO_DATA2_STATUS   "channel/widget1_0/data/watch_z" //手机APP显示数据
//默认使用 SDA--D8  SCL--D9
MPU6050 mpu6050;        //我连接是D1--D2
//加速度计的x y z的值
int16_t acc_x_temp,acc_y_temp,acc_z_temp;  
//陀螺仪的x y z的值
int16_t gyro_x_temp,gyro_y_temp,gyro_z_temp;  
void setup()
{
    //启动I2C
        Wire.begin();
//        SerialUSB.begin(115200);        //    初始化虚拟串口
        delay(500);
        mpu6050.begin();               //初始化MPU6050
//    delay(100);
}
void loop()
{
        // 获取6轴数据,并输出
        mpu6050.getMotion6(&acc_x_temp, &acc_y_temp, &acc_z_temp, &gyro_x_temp, &gyro_y_temp, &gyro_z_temp);
       
//   SerialUSB.printf("X = %d,Y = %d,Z = %d\r\n",acc_x_temp,acc_y_temp,acc_z_temp);     //   串口打印数据
//   SerialUSB.printf("a = %d,b = %d,c = %d\r\n",gyro_x_temp,gyro_y_temp,gyro_z_temp);
    IntoRobot.publish(SERVO_DATA_STATUS,acc_x_temp);
    IntoRobot.publish(SERVO_DATA1_STATUS,acc_y_temp);
    IntoRobot.publish(SERVO_DATA2_STATUS,acc_y_temp);      //APP显示各轴数据
}
连接好电路:


然后上电,下面是串口打印助手显示的数据:


下面是手机APP显示的数据:


用手轻轻转动模块各轴数据立刻发生变化。
以上就是关于MPU6050模块的测试。
总结一下:经过测试公共库里的MPU6050代码完全兼容我的MPU6050模块,关于模块的代码没有做任何的修改,添加后调用即可使用,在测试过程中遇到了一些小问题,比如APP上的数据显示,只能显示正数,没法设置显示负数。这个问题还有待我去继续研究,APP的设计界面无法完全显示,不知道是不是我电脑设置的问题,不能将菜单里的控件完全显示出来,在设计操作的时候非常麻烦,要将网页的上面设置为无边框才能看到下面几个控件,不知道其他的小伙伴是不是也遇到这种问题,要是有好的解决办法记得分享~还有就是控件不是很够用,就只有几种不知道是不是版权的问题,好了以上就是今天MPU6050模块的测试总结,希望对大家有帮助,如有不足之处还请多多指教~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top