|
- // User data functions. Modify these functions for your data items.
- #include "UserTypes.h"
- #include "Wire.h"
- #include "I2Cdev.h"
- #include "MPU6050.h"
- //------------------------------------------------------------------------------
- MPU6050 mpu;
- static uint32_t startMicros;
- // Acquire a data record.
- void acquireData(data_t* data) {
- data->time = micros();
- mpu.getMotion6(&data->ax, &data->ay, &data->az,
- &data->gx, &data->gy, &data->gz);
- }
-
- // setup AVR I2C
- void userSetup() {
- #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
- Wire.begin();
- Wire.setClock(400000);
- #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
- Fastwire::setup(400, true);
- #endif
- mpu.initialize();
- }
-
- // Print a data record.
- void printData(Print* pr, data_t* data) {
- if (startMicros == 0) {
- startMicros = data->time;
- }
- pr->print(data->time- startMicros);
- pr->write(',');
- pr->print(data->ax);
- pr->write(',');
- pr->print(data->ay);
- pr->write(',');
- pr->print(data->az);
- pr->write(',');
- pr->print(data->gx);
- pr->write(',');
- pr->print(data->gy);
- pr->write(',');
- pr->println(data->gz);
- }
-
- // Print data header.
- void printHeader(Print* pr) {
- startMicros = 0;
- pr->println(F("micros,ax,ay,az,gx,gy,gz"));
- }
|