0

作为使用德州仪器 TM4C123G LaunchPad 的机器人项目的一部分,我正在尝试与MPU-6050进行交互。我正在从 Energia 上传代码并使用串行监视器查看原始数据输出,但是当我将其上传到微控制器并运行它时,我只收到以下输出:

Initialising I2C devices...

这是我要运行的代码:

#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>

MPU6050 accelgyro;

void Setup_MPU6050()
{
  Wire.begin();
  Serial.println("Initialising I2C devices...");
  accelgyro.initialize();
  Serial.println("Testing device connections...");
  Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");
}

void Update_MPU6050()
{
  int16_t ax, ay, az;
  int16_t gx, gy, gz;
  accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  Serial.print("i");Serial.print("\t");
  Serial.print(ax);Serial.print("\t");
  Serial.print(ay);Serial.print("\t");
  Serial.print(az);Serial.print("\t");
  Serial.print(gx);Serial.print("\t");
  Serial.print(gy);Serial.print("\t");
  Serial.println(gz);
  Serial.print("\n");
}

void setup()
{
  Serial.begin(115200);
  Setup_MPU6050();
}

void loop()
{
  Update_MPU6050();
}

分线板上的引脚连接到 Launchpad,如下所示:

VDD -> 引脚 1 (3.3v)

接地 -> 引脚 12 (接地)

INT -> 引脚 34 (PF0)

FSYNC -> 无

SCL -> 引脚 13 (PD0)

SDA - > 引脚 14 (PD1)

VIO -> 无

时钟 -> 无

ASCL -> 无

ASDA -> 无

我从GitHub获得了 MPU6050 和 I2Cdev 库,并从github.com/codebendercc/arduino-library-files/blob/master/libraries/Wire/Wire.h获得了 Wire 库,但我认为无论是wire.begin( )accelgyro.initialize()方法运行不正常?在使用这种语言进行编程时,我是一个相对初学者,但我正在承担一项雄心勃勃的任务,即为我申请的奖学金创建一个机器人,因此希望能在这个主题领域提供一些帮助。

4

1 回答 1

0

我刚遇到和你一样的问题。这是一个有用的链接: 在此处输入链接描述 我引用了它并在 Wire.begin() 之前添加了一些代码 - 就像 在此处输入图像描述 然后我上传并运行它,它完美地工作。还有一点需要注意,不使用 DMP 时不能连接 INT 引脚,但使用 DMP 时必须连接 INT 引脚。

我试着解释一下。为什么要添加两行代码?该库来自 Arduino,尽管 Energia 在大多数情况下与 Arduino 编程兼容,但并非总是如此。所以我们应该明确地赞扬一些东西。

以及为什么要注意中断。因为我们在使用DMP的时候,如果不接INT引脚,就不能正常工作。

于 2017-03-24T10:23:29.080 回答