极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 弘毅

arduino学习笔记28 - ITG3200 ADXL345做姿态识别实验

  [复制链接]
发表于 2013-11-16 11:41:24 | 显示全部楼层
希望牛人整理出processing绘制围绕x/y/z三个轴转动的程序。不需要无关的处理,搞乱视线。只需要由下位机读取的三个角度,用processing绘制围绕x/y/z三个轴转动的程序。
回复 支持 反对

使用道具 举报

发表于 2013-11-16 11:49:41 | 显示全部楼层
求,不要算法的,processing处理绕三轴转动的程序,越简单越好,实在没有时间和精力去整processing了。实时给出三个角度,processing处理处理就行了。
回复 支持 反对

使用道具 举报

发表于 2013-11-16 11:51:21 | 显示全部楼层
楼主,整些算法放在processing中,严重干扰,看processing的程序呀。
回复 支持 反对

使用道具 举报

发表于 2013-11-16 12:00:56 | 显示全部楼层
能否搞个processing,直接绕三轴实时转动的程序?下位机实时给出三个角度,processing实时接收三个角度绕三轴转动,画个长方体转动。不需要在processing处理什么复杂的算法,扰乱视线,影响看程序。
回复 支持 反对

使用道具 举报

发表于 2013-11-16 18:14:18 | 显示全部楼层
太麻烦了,如何通过串口把arduino中的float数据上传到processing中,并还原为float数据。
回复 支持 反对

使用道具 举报

发表于 2013-11-17 11:44:14 | 显示全部楼层
高手救命,如何把arduino中的float数据通过串口,传到processing中,并还原为float?????
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-23 21:55:06 | 显示全部楼层
kingone 发表于 2013-11-17 11:44
高手救命,如何把arduino中的float数据通过串口,传到processing中,并还原为float?????

可以试试firmata协议,arduino ide中有库
回复 支持 反对

使用道具 举报

发表于 2013-11-30 16:36:12 | 显示全部楼层
您好,请问此姿态识别器是否可以实现高度的识别,也就是手动调整硬件的高度时,电脑上显示的高度状态是否也可以改变?
回复 支持 反对

使用道具 举报

发表于 2013-12-16 11:59:55 | 显示全部楼层
弘毅大神,请问如果改用mpu6050,您的processing程序需要修改吗?具体是哪些方面需要修改呢?小弟急求啊~~~跪谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-17 22:05:24 | 显示全部楼层
kidy 发表于 2013-12-16 11:59
弘毅大神,请问如果改用mpu6050,您的processing程序需要修改吗?具体是哪些方面需要修改呢?小弟急求啊~~~跪 ...

mpu6050有别人写好的processing程序。。。貌似是个茶壶的。。。你搜搜
回复 支持 反对

使用道具 举报

发表于 2013-12-17 22:26:11 | 显示全部楼层
弘毅 发表于 2013-12-17 22:05
mpu6050有别人写好的processing程序。。。貌似是个茶壶的。。。你搜搜

茶壶?请问是在工坊里吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-18 09:53:32 | 显示全部楼层
kidy 发表于 2013-12-17 22:26
茶壶?请问是在工坊里吗?

不是。。我记得是在国外看到过。。。
回复 支持 反对

使用道具 举报

发表于 2014-4-15 16:46:19 | 显示全部楼层
kingone 发表于 2013-11-17 11:44
高手救命,如何把arduino中的float数据通过串口,传到processing中,并还原为float?????

我用的是mpu6050,输出数据时使用
  sprintf(str, "%d,%d,%d,%d,%d,%d\n",ax,ay,az,gx,gy,gz);  
  Serial.print(str);  

在processing中,使用回调函数来完成数据的读入,(试过其他方法,都不能有效的将这六个值读入,经常会发生少读或多读的情况)
void setup()
{
println("setup...");
  size(VIEW_SIZE_X, VIEW_SIZE_Y, P3D);
  myPort = new Serial(this, Serial.list()[0], 38400);
  font = loadFont("CourierNewPSMT-48.vlw");
  myPort.bufferUntil('\n');  //buffer until meet '\n', then call the event listener
}  

再定义回调函数中计算数值
void serialEvent(Serial p) {

  inputString = p.readString();
  
  inputStringArr = split(inputString, ',');

   if (inputStringArr.length ==6)
   {
     RwAcc[0] = float(inputStringArr[0]) / 256.0;      
     RwAcc[1] = float(inputStringArr[1])/ 256.0;      
     RwAcc[2] = float(inputStringArr[2])/ 256.0;      
  
     Gyro[0] = float(inputStringArr[3]) / 14.375;      
     Gyro[1] = float(inputStringArr[4]) / 14.375;      
     Gyro[2] = float(inputStringArr[5]) / 14.375;  
   }  
   else
   {
     println("Data Error");
   }
}
这样就能读出完整的数据了。
参见http://guoyunhe.me/zh/2013/03/10/arduino-processing/
回复 支持 反对

使用道具 举报

发表于 2014-4-20 11:02:45 | 显示全部楼层
此贴永垂不朽!!!!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2014-4-24 16:03:42 | 显示全部楼层
您好,我给您留过言,希望能加您qq,304729680,您后一段在processing的程序我试了下,我的有报错,而且我用的是10DOF模块,不知道和您用的有什么区别,希望能和您交流,谢谢!
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-28 07:00 , Processed in 0.045423 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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