// Accelerometer Settings #define RA_SIZE 3 // number of readings to include in running average of accelerometer readings // Accelerometer Class -- extends the LSM303 Library to support reading and averaging the x-y acceleration // vectors from the onboard LSM303DLHC accelerometer/magnetometer class Accelerometer : public LSM303 { typedef struct acc_data_xy { unsigned long timestamp; int x; int y; float dir; } acc_data_xy; public: Accelerometer() : ra_x(RA_SIZE), ra_y(RA_SIZE) {}; ~Accelerometer() {}; void begin(void) { Wire.begin(); init(); enable(); }; void enable(void); void getLogHeader(void); void readAcceleration(unsigned long timestamp); float len_xy() const; float dir_xy() const; int x_avg(void) const; int y_avg(void) const; long ss_xy_avg(void) const; float dir_xy_avg(void) const; private: acc_data_xy last; RunningAverage ra_x; RunningAverage ra_y; };