极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 弘毅

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

  [复制链接]
发表于 2012-6-20 22:15:13 | 显示全部楼层
弘毅 发表于 2012-6-20 21:55
角速度,或者重力加速度这些量。

谢谢大神!!开始试验!!!
回复 支持 反对

使用道具 举报

发表于 2012-6-20 22:34:06 | 显示全部楼层
弘毅 发表于 2012-6-20 21:55
角速度,或者重力加速度这些量。

再问BOSS一个问题,那个gyro跟ACC的偏移量的问题,数值传感器仿品了输出的是'0'么?因为偶做测试的时候用模拟传感器的放平输出是 509/510 也就是中置电压(0-1023)/2 那么offset应该怎么算?
回复 支持 反对

使用道具 举报

发表于 2012-7-22 13:42:15 | 显示全部楼层
大概看懂了。。。过两天器件到了就做做看。。或说这里女滴好少
回复 支持 反对

使用道具 举报

发表于 2012-7-22 19:44:05 | 显示全部楼层
就女孩子这个点就要回帖一下。先感谢该帖给了我这两IC的帮助。客气不说,回正题。这种利用ITG修正ADXL的算法,的确能令ADXL的读数很圆滑,不漂不抖,不收非重力的干扰。但却有个一个缺点,就是只支持三维中的上半卦限(1234卦限),当IC转到下半卦限(5678卦限)的时候,就镜像回去上半卦限。
回复 支持 反对

使用道具 举报

发表于 2012-7-22 19:48:31 | 显示全部楼层
楼上有位仁兄用FreeSixIMU的算法能完全支持三维所有的卦限,这个是很有用的。感谢弘毅大哥和这位仁兄给我的帮助。
回复 支持 反对

使用道具 举报

发表于 2012-7-31 17:23:35 | 显示全部楼层
同问48楼的问题,老大能帮我们解答下么,我目前遇到了一下几个问题,希望能得到boss的帮助啊
1、如果说RwAcc是加速度计输出的加速度值,gyro是角速度值,那RwGyro是什么呢?我怎么感觉和加速  
   度计的各轴有点儿像呢?
2、最终的RwEst数值怎么理解呢?
3、rotateX()这个函数我查过,当里面为正参数时候,绕着X轴逆时针旋转相应的弧度,那voiddrawCube
    ()里面只有rotateX()和rotateZ(),为啥没有rotateY(),没想明白,陷入死角了,boss帮点播下吧
===========================================================
仔细阅读了那篇A Guide To using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications.

对那篇算法的过程倒是能够弄清楚,但是为什么那样做就不清楚。

代码中
ARDUINO CODECOPYline(0, 0, 0, 1, 0, 0);  line(0, 0, 0, 0, -1, 0);  line(0, 0, 0, 0, 0, 1);  line(0, 0, 0, -RwEst[0], RwEst[1], RwEst[2]);
  line(0, 0, 0, 1, 0, 0);
  line(0, 0, 0, 0, -1, 0);
  line(0, 0, 0, 0, 0, 1);
  line(0, 0, 0, -RwEst[0], RwEst[1], RwEst[2]);
为什么RwEst[0] 前面需要加负号,  我感觉是具体的方向变换这块没能够理解。

包括
ARDUINO CODECOPYrotateX(HALF_PI * -RwEst[0]);  rotateZ(HALF_PI * RwEst[1]);
  rotateX(HALF_PI * -RwEst[0]);
  rotateZ(HALF_PI * RwEst[1]);
这块的代码,也是这样。谁能够具体讲讲坐标系以及方向具体怎么看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-1 17:57:32 | 显示全部楼层
成可风 发表于 2012-7-31 17:23
同问48楼的问题,老大能帮我们解答下么,我目前遇到了一下几个问题,希望能得到boss的帮助啊
1、如果说RwA ...

额。。。其实为什么这么用,我也还没弄懂,现在也晕着=.=也是直接用的别人的算法。。。那几篇英文文档到现在都没有勇气去翻译。。。
回复 支持 反对

使用道具 举报

发表于 2012-8-7 21:48:13 | 显示全部楼层
楼主,我是新手,请问加载字体时需要怎么做?具体一点
-------------------------------------------------------------
// 加载字体,字体必须在代码文件同目录下的data文件夹中
  font = loadFont("CourierNew36.vlw");
---------------------------------------------------------
显示的错误是 could not load the font  
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-7 22:16:42 | 显示全部楼层
YANG 发表于 2012-8-7 21:48
楼主,我是新手,请问加载字体时需要怎么做?具体一点
------------------------------------------------ ...

这个字体在processing目录下可以找到。直接搜索~
回复 支持 反对

使用道具 举报

发表于 2012-8-12 13:07:18 | 显示全部楼层
本帖最后由 rellay 于 2012-8-12 13:11 编辑

各位大神,IIC读ITG3205时,读到数据都为0,IIC地址用的是0x68,
  1. //单字节读取*****************************************
  2. unsigned char Single_Read(unsigned char SlaveAddress,unsigned char REG_Address)
  3. {   unsigned char REG_data;            
  4.         if(!I2C_Start())return FALSE;
  5.     I2C_SendByte(SlaveAddress); //I2C_SendByte(((REG_Address & 0x0700) >>7) | REG_Address & 0xFFFE);//设置高起始地址+器件地址
  6.     if(!I2C_WaitAck()){I2C_Stop();test=1; return FALSE;}
  7.     I2C_SendByte((u8) REG_Address);   //设置低起始地址      
  8.     I2C_WaitAck();
  9.     I2C_Start();
  10.     I2C_SendByte(SlaveAddress+1);
  11.     I2C_WaitAck();

  12.         REG_data= I2C_RadeByte();
  13.     I2C_NoAck();
  14.     I2C_Stop();
  15.     //return TRUE;
  16.         return REG_data;

  17. }                                       
复制代码
if(!I2C_WaitAck()){I2C_Stop();test=1; return FALSE;}
测得test=1,是什么情况??

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-12 14:06:15 | 显示全部楼层
rellay 发表于 2012-8-12 13:07
各位大神,IIC读ITG3205时,读到数据都为0,IIC地址用的是0x68,if(!I2C_WaitAck()){I2C_Stop();test=1; re ...

AD0与GND相连,地址是0x68,与VCC相连地址是0x69~~这两个你都试试。
回复 支持 反对

使用道具 举报

发表于 2012-8-12 15:19:13 | 显示全部楼层
弘毅 发表于 2012-8-12 14:06
AD0与GND相连,地址是0x68,与VCC相连地址是0x69~~这两个你都试试。

en ,试过了呢,还是不行诶
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-12 15:52:35 | 显示全部楼层
rellay 发表于 2012-8-12 15:19
en ,试过了呢,还是不行诶

额。。。。检查模块有没有上拉电阻,没有自己加上,再不行。。。是不是模块是有问题的。
回复 支持 反对

使用道具 举报

发表于 2012-8-13 11:31:34 | 显示全部楼层
本帖最后由 成可风 于 2012-8-13 11:32 编辑
弘毅 发表于 2012-8-12 15:52
额。。。。检查模块有没有上拉电阻,没有自己加上,再不行。。。是不是模块是有问题的。


老大,问下你测试这个姿态模块的时候,时间间隔interval是多少?你视频显示的是16,什么单位的呢,我自己重新测试的时候,整个下来大概需要180ms,很是奇怪?求解惑啊,每个程序段都去计时检查了,文中算法这块检测的时间都是上100ms的,不知道是不是定时器出错呢,来确认下
回复 支持 反对

使用道具 举报

发表于 2012-8-13 21:38:46 | 显示全部楼层
老大,能把两个模块的参考方向:加速度计的三个方向 和陀螺仪的绕3个轴的方向正负 截图个高清图看下么  我感觉我弄错了两个器件的相对坐标
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 01:11 , Processed in 0.053717 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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