Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
Loading...
Searching...
No Matches
airspeed_ets.c File Reference

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)
 

Variables

uint16_t airspeed_ets_raw
 
uint16_t airspeed_ets_offset
 
bool airspeed_ets_valid
 
float airspeed_ets
 
int airspeed_ets_buffer_idx
 
float airspeed_ets_buffer [AIRSPEED_ETS_NBSAMPLES_AVRG]
 
struct i2c_transaction airspeed_ets_i2c_trans
 
static Butterworth2LowPass airspeed_filter
 
volatile bool airspeed_ets_i2c_done
 
bool airspeed_ets_offset_init
 
uint32_t airspeed_ets_offset_tmp
 
uint16_t airspeed_ets_cnt
 
uint32_t airspeed_ets_delay_time
 
bool airspeed_ets_delay_done
 

Detailed Description

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.

Macro Definition Documentation

◆ AIRSPEED_ETS_ADDR

#define AIRSPEED_ETS_ADDR   0xEA

Definition at line 67 of file airspeed_ets.c.

◆ AIRSPEED_ETS_I2C_DEV

#define AIRSPEED_ETS_I2C_DEV   i2c0

Definition at line 98 of file airspeed_ets.c.

◆ AIRSPEED_ETS_LOWPASS_TAU

#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.

◆ AIRSPEED_ETS_NBSAMPLES_AVRG

#define AIRSPEED_ETS_NBSAMPLES_AVRG   20

Definition at line 85 of file airspeed_ets.c.

◆ AIRSPEED_ETS_OFFSET

#define AIRSPEED_ETS_OFFSET   0

Definition at line 73 of file airspeed_ets.c.

◆ AIRSPEED_ETS_OFFSET_MAX

#define AIRSPEED_ETS_OFFSET_MAX   1750

Definition at line 75 of file airspeed_ets.c.

◆ AIRSPEED_ETS_OFFSET_MIN

#define AIRSPEED_ETS_OFFSET_MIN   1450

Definition at line 76 of file airspeed_ets.c.

◆ AIRSPEED_ETS_OFFSET_NBSAMPLES_AVRG

#define AIRSPEED_ETS_OFFSET_NBSAMPLES_AVRG   60

Definition at line 78 of file airspeed_ets.c.

◆ AIRSPEED_ETS_OFFSET_NBSAMPLES_INIT

#define AIRSPEED_ETS_OFFSET_NBSAMPLES_INIT   40

Definition at line 77 of file airspeed_ets.c.

◆ AIRSPEED_ETS_SCALE

#define AIRSPEED_ETS_SCALE   1.8

Definition at line 70 of file airspeed_ets.c.

◆ AIRSPEED_ETS_START_DELAY

#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.

◆ AIRSPEED_ETS_USE_FILTER

#define AIRSPEED_ETS_USE_FILTER   FALSE

Definition at line 81 of file airspeed_ets.c.

Function Documentation

◆ airspeed_ets_downlink()

static void airspeed_ets_downlink ( struct transport_tx trans,
struct link_device dev 
)
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:

◆ airspeed_ets_init()

◆ airspeed_ets_read_event()

◆ airspeed_ets_read_periodic()

Variable Documentation

◆ airspeed_ets

float airspeed_ets

◆ airspeed_ets_buffer

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().

◆ airspeed_ets_buffer_idx

int airspeed_ets_buffer_idx

Definition at line 127 of file airspeed_ets.c.

Referenced by airspeed_ets_init(), and airspeed_ets_read_event().

◆ airspeed_ets_cnt

uint16_t airspeed_ets_cnt

Definition at line 140 of file airspeed_ets.c.

Referenced by airspeed_ets_init(), and airspeed_ets_read_event().

◆ airspeed_ets_delay_done

bool airspeed_ets_delay_done

Definition at line 142 of file airspeed_ets.c.

Referenced by airspeed_ets_init(), and airspeed_ets_read_periodic().

◆ airspeed_ets_delay_time

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().

◆ airspeed_ets_i2c_done

volatile bool airspeed_ets_i2c_done

Definition at line 137 of file airspeed_ets.c.

Referenced by airspeed_ets_init().

◆ airspeed_ets_i2c_trans

struct i2c_transaction airspeed_ets_i2c_trans

◆ airspeed_ets_offset

uint16_t airspeed_ets_offset

◆ airspeed_ets_offset_init

bool airspeed_ets_offset_init

Definition at line 138 of file airspeed_ets.c.

Referenced by airspeed_ets_init(), and airspeed_ets_read_event().

◆ airspeed_ets_offset_tmp

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().

◆ airspeed_ets_raw

uint16_t airspeed_ets_raw

◆ airspeed_ets_valid

bool airspeed_ets_valid

Definition at line 125 of file airspeed_ets.c.

Referenced by airspeed_ets_init(), and airspeed_ets_read_event().

◆ airspeed_filter

Butterworth2LowPass airspeed_filter
static

Definition at line 133 of file airspeed_ets.c.

Referenced by airspeed_ets_init(), and airspeed_ets_read_event().