新人,实际操作第一贴:希望大家都指点;
硬件: 2560 + L3G4200D 通过串口出数据
程序:- #include <Wire.h>
- #include <L3G4200D.h>
- #define EMAoffset 0.05
- #define Gyr_Gain 0.076335877862595 // 1/131,250dps
- float angleG;
- float G_offset;
- float gyroSpeed;
- unsigned long timer = 0;
- L3G4200D gyro;
- void setup() {
- Serial.begin(9600);
- Wire.begin();
- gyro.enableDefault();
- delay(500);
- }
- void loop() {
- long o_timer = timer;
- timer = millis();
- int dt = timer - o_timer;
- gyro.read();
- G_offset = EMAoffset *(gyro.g.x - 55) / 131 + (1-EMAoffset) * G_offset; // 55是零飘!
- gyroSpeed = (gyro.g.x - 55) / 131 - G_offset;
- angleG = angleG + gyroSpeed * dt / 1000;
- Serial.print("angle_x: ");
- Serial.print(angleG,6);
- Serial.println(";");
- delay(100);
- }
复制代码 -----------------------------
程序是这里抄一段那里抄一节的.......
以下是静止姿态下的数据:
300秒后的部份数据:
angle_x: -0.082909;
angle_x: -0.094338;
angle_x: -0.099327;
angle_x: -0.092924;
angle_x: -0.078706;
angle_x: -0.081498;
angle_x: -0.094481;
angle_x: -0.104794;
angle_x: -0.108485;
angle_x: -0.109038;
angle_x: -0.107340;
angle_x: -0.118301;
angle_x: -0.091469;
angle_x: -0.082499;
angle_x: -0.090327;
angle_x: -0.069584;
angle_x: -0.054315;
angle_x: -0.040415;
angle_x: -0.032438;
angle_x: -0.039052;
angle_x: -0.039357;
angle_x: -0.048523;
angle_x: -0.052087;
angle_x: -0.052481;
angle_x: -0.040162;
angle_x: -0.025613;
angle_x: -0.040640;
angle_x: -0.040863;
angle_x: -0.050689;
angle_x: -0.033056;
-------------------------------
动态情况下,曲线也很好看,就是不会上图........
------------------------------
有一个问题:
从动态回到静止,角度数据从(+/- XX -----0),不能很快回零,会有一个明显的延时!
我没有加速度传感器,就想利用这个陀螺仪加上LEGO的积木,组一个SEGWAY,不知道这个有没有影响?
|