Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:d2713e1a96b2, 2015-01-28 (annotated)
- Committer:
- jateeq
- Date:
- Wed Jan 28 17:29:19 2015 +0000
- Revision:
- 0:d2713e1a96b2
Initial commit
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| jateeq | 0:d2713e1a96b2 | 1 | #include "mbed.h" |
| jateeq | 0:d2713e1a96b2 | 2 | #include "MPU6050.h" |
| jateeq | 0:d2713e1a96b2 | 3 | #include "ADXL345_I2C.h" |
| jateeq | 0:d2713e1a96b2 | 4 | |
| jateeq | 0:d2713e1a96b2 | 5 | //DigitalOut myled(LED1); |
| jateeq | 0:d2713e1a96b2 | 6 | Serial pc(USBTX, USBRX); |
| jateeq | 0:d2713e1a96b2 | 7 | MPU6050 mpu; |
| jateeq | 0:d2713e1a96b2 | 8 | ADXL345_I2C accelerometer(I2C_SDA, I2C_SCL); |
| jateeq | 0:d2713e1a96b2 | 9 | |
| jateeq | 0:d2713e1a96b2 | 10 | int16_t MPU_ax, MPU_ay, MPU_az; |
| jateeq | 0:d2713e1a96b2 | 11 | int16_t MPU_gx, MPU_gy, MPU_gz; |
| jateeq | 0:d2713e1a96b2 | 12 | |
| jateeq | 0:d2713e1a96b2 | 13 | int main() |
| jateeq | 0:d2713e1a96b2 | 14 | { |
| jateeq | 0:d2713e1a96b2 | 15 | pc.baud(115200); |
| jateeq | 0:d2713e1a96b2 | 16 | |
| jateeq | 0:d2713e1a96b2 | 17 | |
| jateeq | 0:d2713e1a96b2 | 18 | pc.printf("MPU6050 test\n\n"); |
| jateeq | 0:d2713e1a96b2 | 19 | pc.printf("MPU6050 initialize \n"); |
| jateeq | 0:d2713e1a96b2 | 20 | |
| jateeq | 0:d2713e1a96b2 | 21 | mpu.initialize(); |
| jateeq | 0:d2713e1a96b2 | 22 | pc.printf("MPU6050 testConnection \n"); |
| jateeq | 0:d2713e1a96b2 | 23 | |
| jateeq | 0:d2713e1a96b2 | 24 | bool mpu6050TestResult = mpu.testConnection(); |
| jateeq | 0:d2713e1a96b2 | 25 | if(mpu6050TestResult) { |
| jateeq | 0:d2713e1a96b2 | 26 | pc.printf("MPU6050 test passed \n"); |
| jateeq | 0:d2713e1a96b2 | 27 | } else { |
| jateeq | 0:d2713e1a96b2 | 28 | pc.printf("MPU6050 test failed \n"); |
| jateeq | 0:d2713e1a96b2 | 29 | } |
| jateeq | 0:d2713e1a96b2 | 30 | |
| jateeq | 0:d2713e1a96b2 | 31 | int ADXL_readings[3] = {0, 0, 0}; |
| jateeq | 0:d2713e1a96b2 | 32 | |
| jateeq | 0:d2713e1a96b2 | 33 | // These are here to test whether any of the initialization fails. It will print the failure |
| jateeq | 0:d2713e1a96b2 | 34 | if (accelerometer.setPowerControl(0x00)) |
| jateeq | 0:d2713e1a96b2 | 35 | { |
| jateeq | 0:d2713e1a96b2 | 36 | pc.printf("Couldn't intitialize power control\n"); |
| jateeq | 0:d2713e1a96b2 | 37 | } |
| jateeq | 0:d2713e1a96b2 | 38 | //Full resolution, +/-16g, 4mg/LSB. |
| jateeq | 0:d2713e1a96b2 | 39 | wait(.001); |
| jateeq | 0:d2713e1a96b2 | 40 | |
| jateeq | 0:d2713e1a96b2 | 41 | if(accelerometer.setDataFormatControl(0x0B)) |
| jateeq | 0:d2713e1a96b2 | 42 | { |
| jateeq | 0:d2713e1a96b2 | 43 | pc.printf("Couldn't set data format\n"); |
| jateeq | 0:d2713e1a96b2 | 44 | } |
| jateeq | 0:d2713e1a96b2 | 45 | wait(.001); |
| jateeq | 0:d2713e1a96b2 | 46 | |
| jateeq | 0:d2713e1a96b2 | 47 | //3.2kHz data rate. |
| jateeq | 0:d2713e1a96b2 | 48 | if(accelerometer.setDataRate(ADXL345_3200HZ)) |
| jateeq | 0:d2713e1a96b2 | 49 | { |
| jateeq | 0:d2713e1a96b2 | 50 | pc.printf("didn't set data rate\n"); |
| jateeq | 0:d2713e1a96b2 | 51 | } |
| jateeq | 0:d2713e1a96b2 | 52 | wait(.001); |
| jateeq | 0:d2713e1a96b2 | 53 | |
| jateeq | 0:d2713e1a96b2 | 54 | //Measurement mode. |
| jateeq | 0:d2713e1a96b2 | 55 | |
| jateeq | 0:d2713e1a96b2 | 56 | if(accelerometer.setPowerControl(MeasurementMode)) |
| jateeq | 0:d2713e1a96b2 | 57 | { |
| jateeq | 0:d2713e1a96b2 | 58 | pc.printf("Couldn't set the power control to measurement\n"); |
| jateeq | 0:d2713e1a96b2 | 59 | } |
| jateeq | 0:d2713e1a96b2 | 60 | |
| jateeq | 0:d2713e1a96b2 | 61 | while(1) { |
| jateeq | 0:d2713e1a96b2 | 62 | mpu.getMotion6(&MPU_ax, &MPU_ay, &MPU_az, &MPU_gx, &MPU_gy, &MPU_gz); |
| jateeq | 0:d2713e1a96b2 | 63 | accelerometer.getOutput(ADXL_readings); |
| jateeq | 0:d2713e1a96b2 | 64 | |
| jateeq | 0:d2713e1a96b2 | 65 | //writing current accelerometer and gyro position |
| jateeq | 0:d2713e1a96b2 | 66 | pc.printf("MPU: %d;%d;%d;%d;%d;%d\r\n",MPU_ax,MPU_ay,MPU_az,MPU_gx,MPU_gy,MPU_gz); |
| jateeq | 0:d2713e1a96b2 | 67 | pc.printf("ADXL: %i, %i, %i\r\n\n", (int16_t)ADXL_readings[0], (int16_t)ADXL_readings[1], (int16_t)ADXL_readings[2]); |
| jateeq | 0:d2713e1a96b2 | 68 | |
| jateeq | 0:d2713e1a96b2 | 69 | wait(0.01); |
| jateeq | 0:d2713e1a96b2 | 70 | } |
| jateeq | 0:d2713e1a96b2 | 71 | } |