极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9830|回复: 2

请问各位老师一个关于MPU6050的问题

[复制链接]
发表于 2012-12-14 21:32:58 | 显示全部楼层 |阅读模式
我按照论坛中几位老师的帖子尝试Arduino和Processing组合演示姿态。
其中参考了几位老师的帖子:arduino学习笔记37 - Arduino Uno + MPU6050首例整合性6轴演示实验。MPU6050姿态识别【抛砖】,引'弘毅''Randy'等人【抛玉】。arduino学习笔记28 - ITG3200 ADXL345做姿态识别实验等,但是现在卡在里如下几个地方
1.Arduino代码部分,Arduino代码部分好像很简单就下面这几行:
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"

MPU6050 accelgyro;

int16_t ax, ay, az;
int16_t gx, gy, gz;

char str[512];

void setup() {
    Wire.begin();
    Serial.begin(9600);
    accelgyro.initialize();
}

void loop() {
    accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
    sprintf(str, "%d,%d,%d,%d,%d,%d,%d", ax, ay, az, gx, gy, gz);  
    Serial.print(str);
    Serial.write(byte(10));
    delay(50);
}

但是不知道为什么输出很慢,在PC上看就是一个数5,而且一个一个的蹦很慢的蹦。但是要是去掉这一行:
sprintf(str, "%d,%d,%d,%d,%d,%d,%d", ax, ay, az, gx, gy, gz);  
再把Serial.print(str);改成Serial.print(ax);似乎输出一下就正常了。
2.不管我怎么捣鼓似乎Processing都接受不到Arduino的数据。COM口也看过了是对的。
3.Processing代码部分中这一行是什么意思:
//myPort = new Serial(this, "/dev/ttyUSB0", 9600);  它和我指定串口那行
//myPort = new Serial(this, Serial.list()[2], 9600);
有什么区别呢,
盼望各位老师回答
回复

使用道具 举报

发表于 2012-12-15 13:27:41 | 显示全部楼层
比特率设置有问题...
回复 支持 反对

使用道具 举报

发表于 2012-12-15 16:48:26 | 显示全部楼层
sprintf(str, "%d,%d,%d,%d,%d,%d,%d", ax, ay, az, gx, gy, gz); 写错了,6个变量,7个输出
/dev/ttyUSB0, 是Linux的表示方法
Serial.list()[2],列出可用串口,用第2个
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 13:39 , Processed in 0.039563 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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