找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1659|回复: 2
打印 上一主题 下一主题
收起左侧

零知开源分享 - MPU6050六轴数据输出

[复制链接]
跳转到指定楼层
楼主
MPU6050模块应用于零知平台,使用该模块测量三轴加速度和三轴陀螺仪数据。
硬件准备
(1)零知开发板-标准板
  
(2)MPU6050模块
   
(3)杜邦线若干
1、电路连接
模块的SCL和SDA分别与零知标准板的I2C接口连接即A5和A4脚,供电3.3V,其他脚默认。



2、程序烧录
打开零知开发工具,找到相应代码即可。




3、核心代码如下:
  1. /* I2C interface MPU6050 demo
  2. * powered by  零知实验室
  3. */
  4. #include "MPU6050.h"

  5. // 默认I2C地址为 0x68
  6. // AD0 low = 0x68
  7. // AD0 high = 0x69

  8. MPU6050 accelgyro;

  9. int16_t ax, ay, az;//三轴加速度值
  10. int16_t gx, gy, gz;//三轴陀螺仪值

  11. float nax,nay,naz;
  12. float ngx,ngy,ngz;//转换后的实际值

  13. #define LED_PIN LED_BUILTIN
  14. bool blinkState = false;

  15. void setup() {

  16.     Serial.begin(9600);

  17.     // MPU6050初始化设置
  18.     Serial.println("Initializing I2C devices...");
  19.     accelgyro.initialize();

  20.     // verify connection
  21.     Serial.println("Testing device connections...");
  22.         if(accelgyro.testConnection()){
  23.                 Serial.println("MPU6050 connection successful");
  24.         }else{
  25.                 Serial.println("MPU6050 connection failed");
  26.         }
  27.      
  28.     //使用LED进行指示
  29.     pinMode(LED_PIN, OUTPUT);
  30.          
  31. //        accelgyro.setFullScaleAccelRange(MPU6050_ACCEL_FS_16);//加速度参数
  32. //        accelgyro.setFullScaleGyroRange(MPU6050_GYRO_FS_500);//陀螺仪
  33. }

  34. void loop() {
  35.     // 获取原始的数值:三轴加速度值和三轴陀螺仪数值
  36.     accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

  37.     // 分别获取
  38.     //accelgyro.getAcceleration(&ax, &ay, &az);
  39.     //accelgyro.getRotation(&gx, &gy, &gz);

  40.     // 显示打印
  41.     Serial.print(" acc:\t");
  42.     Serial.print(ax); Serial.print("\t");
  43.     Serial.print(ay); Serial.print("\t");
  44.     Serial.print(az); Serial.print("\t");
  45.         Serial.print("\t gyro:\t");
  46.     Serial.print(gx); Serial.print("\t");
  47.     Serial.print(gy); Serial.print("\t");
  48.     Serial.println(gz);
  49.          
  50.         //实际数值转换
  51.         accelgyro.readNormalizeAccel(&nax,&nay,&naz);
  52.         accelgyro.readNormalizeGyro(&ngx,&ngy,&ngz);
  53.         Serial.print("Normalize acc:\t");
  54.     Serial.print(nax); Serial.print("\t");
  55.     Serial.print(nay); Serial.print("\t");
  56.     Serial.print(naz); Serial.print("\t");
  57.         Serial.print("\t Normalize gyro:\t");
  58.     Serial.print(ngx); Serial.print("\t");
  59.     Serial.print(ngy); Serial.print("\t");
  60.     Serial.println(ngz);

  61.     // blink LED to indicate activity
  62.     blinkState = !blinkState;
  63.     digitalWrite(LED_PIN, blinkState);

  64.     delay(300);
  65. }
复制代码
完整工程可到零知实验室官网免费获取。

4、当我们读取到原始数值后需要进行转换才能得到实际的值,完整代码已经做了转换,结果如下:




更多详细资料可到零知实验室官网免费获取。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:421308 发表于 2019-7-26 11:28 | 只看该作者
这个就是转换后的值了
回复

使用道具 举报

板凳
ID:267330 发表于 2019-7-30 08:59 | 只看该作者
这个就是转换后的值了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表