Randy 发表于 2012-4-13 10:25 static/image/common/back.gif
这样的数据能清楚表明啥呢?原始数字才好观察!
观察直接测试就好了。 你直接像视频上那样摇晃板子,比如竖直状态看最后值其实就很清楚了。
中间数据封装了实际上也是个不错的事情,不过微调 修正值(我理解为基值)就麻烦点。(毕竟你的板子啥的甚至桌子都不一定能完全做到100%的水平,所以模块也未必能做到)
弘毅 发表于 2012-2-6 17:48 static/image/common/back.gif
当时买的芯片自己焊的,100多点,3三轴数字陀螺仪~~
其他数字陀螺仪都可以替代
现在整合的板子已经很便宜了。9轴模块(其实就是 3轴陀螺仪+3加速度 + 磁场 +气压) 便宜的也才卖到130以内,IIC接口。
只是不知道是否兼容您提供的测试代码。
数据手册看的不是很懂(E文差了点,毕业好多年了都还给老师了)
我测了一下代码,不错,用的是ADXL345,L3G4200D。
仔细阅读了那篇A Guide To using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications.
对那篇算法的过程倒是能够弄清楚,但是为什么那样做就不清楚。
代码中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, RwEst, RwEst);为什么RwEst 前面需要加负号,我感觉是具体的方向变换这块没能够理解。
包括rotateX(HALF_PI * -RwEst);
rotateZ(HALF_PI * RwEst);这块的代码,也是这样。谁能够具体讲讲坐标系以及方向具体怎么看
大哥,看了你这篇之后我又看了这篇教程说的是加速度传感器姿态识别的东西
http://www.starlino.com/imu_guide.html
请问加速度传感器是不是只能做到平稳无额外加速度(重力加速度之外)的情况下的3D识别呢?一旦有额外的抖动,加速度传感器就几乎无能为了了吗?
是不是在姿态识别中加速度传感器做的就只是近似估计重力加速度和加速度传感器模块之间的夹角呢?
陀螺仪和加速度传感器呢,相辅相成吧。。加速度传感器有两个问题。。。。
1,转动时,会有所谓的盲区。小角度重力加速度反应不是很灵敏。
2,快速变动情况下,加速度传感器,反应速度跟不上。(所谓的都抖动不灵敏)
陀螺仪呢,反应很灵敏。。。。。可以用算法算出来快速转动时的角度,但是会有累积误差。。。所以需要加速度传感器进行误差校准。
两者相结合,是一种比较靠谱的动态姿态检测方法。。。单独用加速度传感器,只有静态环境才比较靠谱。
其实高级算法我也不会玩了。。。。偶编程很差的=.=复杂东西还需要大家钻研下。
弘毅 发表于 2012-5-19 16:40 static/image/common/back.gif
陀螺仪和加速度传感器呢,相辅相成吧。。加速度传感器有两个问题。。。。
1,转动时,会有所谓的盲区。小角 ...
恩 我感觉加速度的主要作用就是消除陀螺仪的累积误差。
你好!我在录入时 出现以下错误 Serial.print(10, BYTE);
cacil 发表于 2012-6-3 19:19 static/image/common/back.gif
你好!我在录入时 出现以下错误 Serial.print(10, BYTE);
你用的1.0.1编译器,1.0开始很多命令格式都改了,你换用0022或者0023的IDE就可以了。
好的 谢谢您!
刚学 没能看到有数据在动, 另外板上的TX灯长亮!求解谢谢!
cacil 发表于 2012-6-3 23:17 static/image/common/back.gif
刚学 没能看到有数据在动, 另外板上的TX灯长亮!求解谢谢!
试试processing或者arduino重启之类的,我记得好像是如果没有画面显示,processing启动后,需要按arduino上的复位,重启一下arduino。
弘毅 发表于 2012-6-3 23:20 static/image/common/back.gif
试试processing或者arduino重启之类的,我记得好像是如果没有画面显示,processing启动后,需要按arduino ...
COM3口是这样吗?
serial = new Serial(this, "COM3", 9600);
processing用这条命令直接选择为com3
弘毅 发表于 2012-6-3 23:32 static/image/common/back.gif
serial = new Serial(this, "COM3", 9600);
processing用这条命令直接选择为com3
不知道是否这样serial = new Serial(this, "COM3", 9600); 可以读 但是怎么转动 感应器都没反应不停地在跳那些数! 是不是坏了呢? 谢谢您!
cacil 发表于 2012-6-4 00:04 static/image/common/back.gif
不知道是否这样serial = new Serial(this, "COM3", 9600); 可以读 但是怎么转动 感应器都没反应不停地在 ...
囧,看样子是有读数了,手头有第二个传感器的话,更换测试下。。。没有的话确实不好判断。