Line | |
---|
1 | // Accelerometer Settings
|
---|
2 | #define RA_SIZE 3 // number of readings to include in running average of accelerometer readings
|
---|
3 |
|
---|
4 | // Accelerometer Class -- extends the LSM303 Library to support reading and averaging the x-y acceleration
|
---|
5 | // vectors from the onboard LSM303DLHC accelerometer/magnetometer
|
---|
6 | class Accelerometer : public LSM303
|
---|
7 | {
|
---|
8 | typedef struct acc_data_xy
|
---|
9 | {
|
---|
10 | unsigned long timestamp;
|
---|
11 | int x;
|
---|
12 | int y;
|
---|
13 | float dir;
|
---|
14 | } acc_data_xy;
|
---|
15 |
|
---|
16 | public:
|
---|
17 | Accelerometer() : ra_x(RA_SIZE), ra_y(RA_SIZE) {};
|
---|
18 | ~Accelerometer() {};
|
---|
19 | void begin(void) {
|
---|
20 | Wire.begin();
|
---|
21 | init();
|
---|
22 | enable();
|
---|
23 | };
|
---|
24 | void enable(void);
|
---|
25 | void getLogHeader(void);
|
---|
26 | void readAcceleration(unsigned long timestamp);
|
---|
27 | float len_xy() const;
|
---|
28 | float dir_xy() const;
|
---|
29 | int x_avg(void) const;
|
---|
30 | int y_avg(void) const;
|
---|
31 | long ss_xy_avg(void) const;
|
---|
32 | float dir_xy_avg(void) const;
|
---|
33 | private:
|
---|
34 | acc_data_xy last;
|
---|
35 | RunningAverage<int> ra_x;
|
---|
36 | RunningAverage<int> ra_y;
|
---|
37 | };
|
---|
Note:
See
TracBrowser
for help on using the repository browser.