From 63fa2605cc00648511e2cc1a5d234b64b980e49a Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Sun, 5 May 2019 12:27:03 -0600 Subject: [PATCH] gross hacks to allow CSV export of motor test stand data --- altoslib/AltosCSV.java | 21 ++++--------------- altoslib/AltosEepromRecordFireTwo.java | 29 ++++++++++++++++---------- 2 files changed, 22 insertions(+), 28 deletions(-) diff --git a/altoslib/AltosCSV.java b/altoslib/AltosCSV.java index d09ad93b..4a21f2bc 100644 --- a/altoslib/AltosCSV.java +++ b/altoslib/AltosCSV.java @@ -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() { diff --git a/altoslib/AltosEepromRecordFireTwo.java b/altoslib/AltosEepromRecordFireTwo.java index 7b772e9a..165fbc1a 100644 --- a/altoslib/AltosEepromRecordFireTwo.java +++ b/altoslib/AltosEepromRecordFireTwo.java @@ -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) { -- 2.30.2