Rev | Line | |
---|
[232] | 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.