|
Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Driver for the EagleTree Systems Airspeed Sensor v3 connected via an I2C port. More...
#include "sensors/airspeed_ets.h"#include "state.h"#include "mcu_periph/i2c.h"#include "mcu_periph/uart.h"#include "mcu_periph/sys_time.h"#include "pprzlink/messages.h"#include "modules/core/abi.h"#include "modules/datalink/downlink.h"#include <math.h>#include "modules/datalink/telemetry.h"#include "filters/low_pass_filter.h"
Include dependency graph for airspeed_ets.c:Go to the source code of this file.
Macros | |
| #define | AIRSPEED_ETS_ADDR 0xEA |
| #define | AIRSPEED_ETS_SCALE 1.8 |
| #define | AIRSPEED_ETS_OFFSET 0 |
| #define | AIRSPEED_ETS_OFFSET_MAX 1750 |
| #define | AIRSPEED_ETS_OFFSET_MIN 1450 |
| #define | AIRSPEED_ETS_OFFSET_NBSAMPLES_INIT 40 |
| #define | AIRSPEED_ETS_OFFSET_NBSAMPLES_AVRG 60 |
| #define | AIRSPEED_ETS_USE_FILTER FALSE |
| #define | AIRSPEED_ETS_NBSAMPLES_AVRG 20 |
| #define | AIRSPEED_ETS_LOWPASS_TAU 0.15 |
| Time constant for second order Butterworth low pass filter Default of 0.15 should give cut-off freq of 1/(2*pi*tau) ~= 1Hz. | |
| #define | AIRSPEED_ETS_I2C_DEV i2c0 |
| #define | AIRSPEED_ETS_START_DELAY 0.2 |
| delay in seconds until sensor is read after startup | |
Functions | |
| static void | airspeed_ets_downlink (struct transport_tx *trans, struct link_device *dev) |
| void | airspeed_ets_init (void) |
| void | airspeed_ets_read_periodic (void) |
| void | airspeed_ets_read_event (void) |
Driver for the EagleTree Systems Airspeed Sensor v3 connected via an I2C port.
The device Measures airspeed from 4m/s to 156m/s with about 0,5 m/s resolution
Notes: Connects directly to a flightcontroller board I2C port. Has signal level conversion build in. Multiple sensors can be chained together. Sensor may be in the default or in 3rd-party mode. If set to 3rd-party mode you must define AIRSPEED_ETS_3RD_PARTY_MODE.
To set sensor to 3rd-party mode one can use the supplied Jumper, read Eagletree original manual on how to do this.
Sensor module wire assignments: Red wire: 5V White wire: Ground Yellow wire: SDA Brown wire: SCL
Definition in file airspeed_ets.c.
| #define AIRSPEED_ETS_ADDR 0xEA |
Definition at line 67 of file airspeed_ets.c.
Definition at line 98 of file airspeed_ets.c.
| #define AIRSPEED_ETS_LOWPASS_TAU 0.15 |
Time constant for second order Butterworth low pass filter Default of 0.15 should give cut-off freq of 1/(2*pi*tau) ~= 1Hz.
Definition at line 94 of file airspeed_ets.c.
| #define AIRSPEED_ETS_NBSAMPLES_AVRG 20 |
Definition at line 85 of file airspeed_ets.c.
| #define AIRSPEED_ETS_OFFSET 0 |
Definition at line 73 of file airspeed_ets.c.
| #define AIRSPEED_ETS_OFFSET_MAX 1750 |
Definition at line 75 of file airspeed_ets.c.
| #define AIRSPEED_ETS_OFFSET_MIN 1450 |
Definition at line 76 of file airspeed_ets.c.
| #define AIRSPEED_ETS_OFFSET_NBSAMPLES_AVRG 60 |
Definition at line 78 of file airspeed_ets.c.
| #define AIRSPEED_ETS_OFFSET_NBSAMPLES_INIT 40 |
Definition at line 77 of file airspeed_ets.c.
| #define AIRSPEED_ETS_SCALE 1.8 |
Definition at line 70 of file airspeed_ets.c.
| #define AIRSPEED_ETS_START_DELAY 0.2 |
delay in seconds until sensor is read after startup
Definition at line 104 of file airspeed_ets.c.
Definition at line 81 of file airspeed_ets.c.
|
static |
Definition at line 144 of file airspeed_ets.c.
References airspeed_ets, AIRSPEED_ETS_ID, airspeed_ets_offset, airspeed_ets_raw, dev, foo, and offset.
Referenced by airspeed_ets_init().
Here is the caller graph for this function:Definition at line 159 of file airspeed_ets.c.
References airspeed_ets, airspeed_ets_buffer, airspeed_ets_buffer_idx, airspeed_ets_cnt, airspeed_ets_delay_done, airspeed_ets_delay_time, airspeed_ets_downlink(), airspeed_ets_i2c_done, airspeed_ets_i2c_trans, AIRSPEED_ETS_LOWPASS_TAU, AIRSPEED_ETS_NBSAMPLES_AVRG, airspeed_ets_offset, airspeed_ets_offset_init, AIRSPEED_ETS_OFFSET_NBSAMPLES_AVRG, AIRSPEED_ETS_OFFSET_NBSAMPLES_INIT, airspeed_ets_offset_tmp, airspeed_ets_raw, airspeed_ets_valid, airspeed_filter, DefaultPeriodic, foo, I2CTransDone, init_butterworth_2_low_pass(), register_periodic_telemetry(), i2c_transaction::status, and SysTimeTimerStart.
Here is the call graph for this function:Definition at line 214 of file airspeed_ets.c.
References airspeed_ets, airspeed_ets_buffer, airspeed_ets_buffer_idx, airspeed_ets_cnt, airspeed_ets_i2c_trans, AIRSPEED_ETS_ID, AIRSPEED_ETS_NBSAMPLES_AVRG, AIRSPEED_ETS_OFFSET, airspeed_ets_offset, airspeed_ets_offset_init, AIRSPEED_ETS_OFFSET_MAX, AIRSPEED_ETS_OFFSET_MIN, AIRSPEED_ETS_OFFSET_NBSAMPLES_AVRG, airspeed_ets_offset_tmp, airspeed_ets_raw, AIRSPEED_ETS_SCALE, airspeed_ets_valid, airspeed_filter, i2c_transaction::buf, GpsState::course, GpsState::fix, foo, gps, GpsState::gspeed, GpsState::hmsl, I2CTransDone, LlaCoor_i::lat, GpsState::lla_pos, LlaCoor_i::lon, GpsState::ned_vel, pprzLogFile, stateSetAirspeed_f(), i2c_transaction::status, GpsState::tow, update_butterworth_2_low_pass(), GpsState::week, and NedCoor_i::z.
Referenced by AirspeedEtsEvent().
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 198 of file airspeed_ets.c.
References AIRSPEED_ETS_ADDR, airspeed_ets_delay_done, airspeed_ets_delay_time, AIRSPEED_ETS_I2C_DEV, airspeed_ets_i2c_trans, AIRSPEED_ETS_START_DELAY, foo, i2c_receive(), I2CTransDone, stateSetAirspeed_f(), i2c_transaction::status, SysTimeTimer, and USEC_OF_SEC.
Here is the call graph for this function:| float airspeed_ets |
Definition at line 126 of file airspeed_ets.c.
Referenced by airspeed_ets_downlink(), airspeed_ets_init(), and airspeed_ets_read_event().
| float airspeed_ets_buffer[AIRSPEED_ETS_NBSAMPLES_AVRG] |
Definition at line 128 of file airspeed_ets.c.
Referenced by airspeed_ets_init(), and airspeed_ets_read_event().
| int airspeed_ets_buffer_idx |
Definition at line 127 of file airspeed_ets.c.
Referenced by airspeed_ets_init(), and airspeed_ets_read_event().
| uint16_t airspeed_ets_cnt |
Definition at line 140 of file airspeed_ets.c.
Referenced by airspeed_ets_init(), and airspeed_ets_read_event().
| bool airspeed_ets_delay_done |
Definition at line 142 of file airspeed_ets.c.
Referenced by airspeed_ets_init(), and airspeed_ets_read_periodic().
| uint32_t airspeed_ets_delay_time |
Definition at line 141 of file airspeed_ets.c.
Referenced by airspeed_ets_init(), and airspeed_ets_read_periodic().
Definition at line 137 of file airspeed_ets.c.
Referenced by airspeed_ets_init().
| struct i2c_transaction airspeed_ets_i2c_trans |
Definition at line 130 of file airspeed_ets.c.
Referenced by airspeed_ets_init(), airspeed_ets_read_event(), airspeed_ets_read_periodic(), and AirspeedEtsEvent().
| uint16_t airspeed_ets_offset |
Definition at line 124 of file airspeed_ets.c.
Referenced by airspeed_ets_downlink(), airspeed_ets_init(), and airspeed_ets_read_event().
| bool airspeed_ets_offset_init |
Definition at line 138 of file airspeed_ets.c.
Referenced by airspeed_ets_init(), and airspeed_ets_read_event().
| uint32_t airspeed_ets_offset_tmp |
Definition at line 139 of file airspeed_ets.c.
Referenced by airspeed_ets_init(), and airspeed_ets_read_event().
| uint16_t airspeed_ets_raw |
Definition at line 123 of file airspeed_ets.c.
Referenced by airspeed_ets_downlink(), airspeed_ets_init(), and airspeed_ets_read_event().
| bool airspeed_ets_valid |
Definition at line 125 of file airspeed_ets.c.
Referenced by airspeed_ets_init(), and airspeed_ets_read_event().
|
static |
Definition at line 133 of file airspeed_ets.c.
Referenced by airspeed_ets_init(), and airspeed_ets_read_event().