]> git.gag.com Git - fw/altos/commitdiff
gross hacks to allow CSV export of motor test stand data
authorBdale Garbee <bdale@gag.com>
Sun, 5 May 2019 18:27:03 +0000 (12:27 -0600)
committerBdale Garbee <bdale@gag.com>
Sun, 5 May 2019 18:27:03 +0000 (12:27 -0600)
altoslib/AltosCSV.java
altoslib/AltosEepromRecordFireTwo.java

index a08db23e5e938f9ebe53d93925300f9cc2c2ebab..a8b71085ff0defb3204882f428561b6470b4187d 100644 (file)
@@ -173,29 +173,16 @@ public class AltosCSV implements AltosWriter {
        }
 
        void write_basic_header() {
-               out.printf("acceleration,pressure,altitude,height,accel_speed,baro_speed,temperature,drogue_voltage,main_voltage");
+               out.printf("pressure,thrust");
        }
 
-       double acceleration() { return series.value(AltosFlightSeries.accel_name, indices); }
        double pressure() { return series.value(AltosFlightSeries.pressure_name, indices); }
-       double altitude() { return series.value(AltosFlightSeries.altitude_name, indices); }
-       double height() { return series.value(AltosFlightSeries.height_name, indices); }
-       double speed() { return series.value(AltosFlightSeries.speed_name, indices); }
-       double temperature() { return series.value(AltosFlightSeries.temperature_name, indices); }
-       double apogee_voltage() { return series.value(AltosFlightSeries.apogee_voltage_name, indices); }
-       double main_voltage() { return series.value(AltosFlightSeries.main_voltage_name, indices); }
+       double thrust() { return series.value(AltosFlightSeries.thrust_name, indices); }
 
        void write_basic() {
-               out.printf("%8.2f,%10.2f,%8.2f,%8.2f,%8.2f,%8.2f,%5.1f,%5.2f,%5.2f",
-                          acceleration(),
+               out.printf("%10.2f,%10.2f",
                           pressure(),
-                          altitude(),
-                          height(),
-                          speed(),
-                          speed(),
-                          temperature(),
-                          apogee_voltage(),
-                          main_voltage());
+                          thrust());
        }
 
        void write_battery_header() {
index 38b6c841518983e39a9ff0c8dc73e081a89284f7..e60497c360cbf2b721677e7b3def70b60db86dad 100644 (file)
@@ -47,25 +47,32 @@ public class AltosEepromRecordFireTwo extends AltosEepromRecord {
 
        public static double adc_to_pa(int adc) {
 
-               /* raw adc to processor voltage, then back through the
-                * voltage divider to the sensor voltage
-                */
+//             /* 1600psi sensor measured 2019.04.30, these values based on that */
+//             double ADC_MIN = 405;
+//             double ADC_SLOPE = 1.95;
 
-               double  v = firetwo_adc(adc) * v_adc * (r_above + r_below) / r_below;
+               /* 2500psi sensor measured 2019.04.30, these values based on that */
+               double ADC_MIN = 392;
+               double ADC_SLOPE = 0.46;        /* adc counts per psi */
 
-               /* Bound to ranges provided in sensor */
-               if (v < 0.5) v = 0.5;
-               if (v > 4.5) v = 4.5;
+               /* sensor is asserted to be linear 0 - max psi over ADC_MIN to ADC_MAX */
+               double raw = adc;
+               double psi = ((raw - ADC_MIN) / ADC_SLOPE);
 
-               double  psi = (v - 0.5) / 4.0 * 2500.0;
                return AltosConvert.psi_to_pa(psi);
+
        }
 
        public static double adc_to_n(int adc) {
-               double v = firetwo_adc(adc);
 
-               /* this is a total guess */
-               return AltosConvert.lb_to_n(v * 298 * 9.807);
+               /* sensor looks linear once it "gets going" */
+               double ADC_MIN = 156;           /* first non-zero cal value */
+               double ADC_SLOPE = 3.343;       /* adc counts per lb */
+               double ADC_OFFSET = 26.5;       /* lbs at ADC_MIN */
+
+               double raw = adc;
+               double lb = ((raw - ADC_MIN) / ADC_SLOPE) + ADC_OFFSET;
+               return AltosConvert.lb_to_n(lb);
        }
 
        public void provide_data(AltosDataListener listener, AltosCalData cal_data) {