ソースを参照

added smoothed gyroZ

eLandon_Miix 4 年 前
コミット
d71d75b7ed
3 ファイル変更7 行追加0 行削除
  1. 2 0
      include/imu.h
  2. 4 0
      src/imu.cpp
  3. 1 0
      src/main.cpp

+ 2 - 0
include/imu.h

@@ -33,6 +33,8 @@ extern Smoothed<float> yaw_smooth;
 extern Smoothed<float> pitch_smooth;
 extern Smoothed<float> roll_smooth;
 
+extern ResponsiveAnalogRead gyro_rar;
+
 extern ResponsiveAnalogRead yaw_rar;
 extern ResponsiveAnalogRead pitch_rar;
 extern ResponsiveAnalogRead roll_rar;

+ 4 - 0
src/imu.cpp

@@ -67,6 +67,8 @@ Smoothed<float> yaw_smooth;
 Smoothed<float> pitch_smooth;
 Smoothed<float> roll_smooth;
 
+ResponsiveAnalogRead gyro_rar(-1, false, 0.000001);
+
 ResponsiveAnalogRead yaw_rar(-1, true, 0.001);
 ResponsiveAnalogRead pitch_rar(-1, true);
 ResponsiveAnalogRead roll_rar(-1, true);
@@ -209,6 +211,7 @@ void setup_imu()
     pitch_smooth.begin(SMOOTHED_EXPONENTIAL, 10);
     roll_smooth.begin(SMOOTHED_EXPONENTIAL, 10);
 
+    gyro_rar.setAnalogResolution(4096);
     yaw_rar.setAnalogResolution(3600);
     pitch_rar.setAnalogResolution(3600);
     roll_rar.setAnalogResolution(3600);
@@ -285,6 +288,7 @@ void handle_imu()
     pitch_smooth.add(pitch);
     roll_smooth.add(roll);
 
+    gyro_rar.update(gyroZ + 2048);
 
     yaw_rar.update(10.*yaw);
     pitch_rar.update((int)10*pitch);

+ 1 - 0
src/main.cpp

@@ -234,6 +234,7 @@ void loop() {
   if(current_time-sensor_last_sent>sensor_rate){
     sensor_last_sent = current_time;
     sendOSC_3f("/gyro", gyroX, gyroY, gyroZ);
+    sendOSC("/gyro_smooth", gyro_rar.getValue()-2047);
     sendOSC_3f("/acc", accX, accY, accZ);
     sendOSC_3f("/ahrs", yaw_ahrs, pitch_ahrs, roll_ahrs);
     sendOSC_3f("/ahrs_fixed", yaw, pitch, roll);