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模块的测试总结,希望对大家有帮助,如有不足之处还请多多指教~
首先打开在线编程公有库找到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模块的测试总结,希望对大家有帮助,如有不足之处还请多多指教~