Werte auslesen und in Winkel umrechnen
Fork of Beschleunigungssensor by
Revision 1:f8c0ebd6096c, committed 2015-10-08
- Comitter:
- Heidl
- Date:
- Thu Oct 08 19:25:13 2015 +0000
- Parent:
- 0:d1960beb98fe
- Commit message:
- Werte auslesen und in Winkel umrechnen
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r d1960beb98fe -r f8c0ebd6096c main.cpp --- a/main.cpp Wed Sep 30 16:08:36 2015 +0000 +++ b/main.cpp Thu Oct 08 19:25:13 2015 +0000 @@ -17,7 +17,8 @@ double sinX; int16_t angleX; int16_t gyroXRate; -int16_t gyroXAngle; +int16_t gyroXAngleTemp; +float gyroXAngle; main() { @@ -25,8 +26,9 @@ mpu6050Address = setAddress(MPU6050_DEFAULT_ADDRESS); MPU6050 mpu6050; mpu6050.initialize(); //für Ausgabe in Terminal "//" von debug-Befehlen entfernen + mpu6050.debugSerial.printf("DeviceID: %d", mpu6050.getDeviceID()); //mpu6050.setDLPFMode(MPU6050_DLPF_BW_98); - //mpu6050.setFullScaleGyroRange(MPU6050_GYRO_FS_2000); + mpu6050.setFullScaleGyroRange(MPU6050_GYRO_FS_2000); accelX = mpu6050.getAccelerationX(); //mpu6050.debugSerial.printf("Beschleunigung in x-Richtung: %d\n\r", accelX); sinX = (double)accelX/16384; @@ -34,20 +36,21 @@ //mpu6050.debugSerial.printf("Neigung: %f\n\r", angleX*57.296); Timer stw; stw.start(); -// Timer gyro; gyro.start(); + Timer gyro; gyro.start(); while(1) { CommandHandler(); - /* if (gyro.read_us()>125) + if (gyro.read_us()>125) { gyro.reset(); gyroXRate = mpu6050.getRotationX(); gyroXRate = gyroXRate*0.125+3; - gyroXRate = gyroXRate*0.000125; - gyroXAngle = gyroXAngle + gyroXRate; + gyroXRate = (float)gyroXRate; + gyroXAngleTemp = (float)gyroXRate*0.000125*100; + gyroXAngle = gyroXAngle + gyroXAngleTemp; } -*/ accelX = mpu6050.getAccelerationX(); + accelX = mpu6050.getAccelerationX(); if( (stw.read_ms()>10) ) // 100Hz { // dieser Teil wird mit 100Hz aufgerufen stw.reset(); @@ -57,7 +60,7 @@ // nur wenn vom PC aus das Senden eingeschaltet wurde // wird auch etwas gesendet ua0.WriteSvI16(1, angleX-1); -// ua0.WriteSvI16(2, gyroXAngle); + ua0.WriteSvI16(2, gyroXAngle); } } }