BMP085を入れました
Dependencies: BMP085_2 SDFileSystem mbed
main.cpp@7:ba3fa64f04e9, 2014-05-19 (annotated)
- Committer:
- yattu0914
- Date:
- Mon May 19 09:33:42 2014 +0000
- Revision:
- 7:ba3fa64f04e9
- Parent:
- 6:3cc5c120fbe3
test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yattu0914 | 0:2c21bfd10524 | 1 | #include "mbed.h" |
yattu0914 | 5:9cfdae50349e | 2 | #include "BMP085.h" |
yattu0914 | 6:3cc5c120fbe3 | 3 | #include "ADXL345_I2C.h" |
yattu0914 | 6:3cc5c120fbe3 | 4 | |
yattu0914 | 1:6dc59f48b649 | 5 | |
yattu0914 | 6:3cc5c120fbe3 | 6 | //SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board |
yattu0914 | 0:2c21bfd10524 | 7 | Serial xbee(p13,p14); // tx, rx |
yattu0914 | 1:6dc59f48b649 | 8 | /*Timeout dater;*/ |
yattu0914 | 7:ba3fa64f04e9 | 9 | LocalFileSystem local("local"); |
yattu0914 | 3:37b076ff27a9 | 10 | Timer timer; |
yattu0914 | 0:2c21bfd10524 | 11 | |
yattu0914 | 0:2c21bfd10524 | 12 | AnalogIn temp_in(p20); |
yattu0914 | 0:2c21bfd10524 | 13 | AnalogIn acc_x(p17); |
yattu0914 | 0:2c21bfd10524 | 14 | AnalogIn acc_y(p18); |
yattu0914 | 0:2c21bfd10524 | 15 | AnalogIn acc_z(p19); |
yattu0914 | 0:2c21bfd10524 | 16 | AnalogIn v_out(p16); |
yattu0914 | 0:2c21bfd10524 | 17 | AnalogIn light_in(p15); |
yattu0914 | 4:5872b6ac17e5 | 18 | BMP085 bmp085(p28, p27); |
yattu0914 | 6:3cc5c120fbe3 | 19 | ADXL345_I2C accelerometer(p9, p10); |
yattu0914 | 6:3cc5c120fbe3 | 20 | Serial pc(USBTX, USBRX); |
yattu0914 | 4:5872b6ac17e5 | 21 | |
yattu0914 | 0:2c21bfd10524 | 22 | |
yattu0914 | 0:2c21bfd10524 | 23 | int main() { |
yattu0914 | 0:2c21bfd10524 | 24 | |
yattu0914 | 0:2c21bfd10524 | 25 | float r_temp, temp; |
yattu0914 | 5:9cfdae50349e | 26 | float vo,ax,ay,az, light,P,t; |
yattu0914 | 1:6dc59f48b649 | 27 | |
yattu0914 | 5:9cfdae50349e | 28 | FILE* fp = NULL; |
yattu0914 | 7:ba3fa64f04e9 | 29 | fp = fopen("/local/CanSat.txt", "a"); |
yattu0914 | 1:6dc59f48b649 | 30 | unsigned count = 0; |
yattu0914 | 6:3cc5c120fbe3 | 31 | |
yattu0914 | 6:3cc5c120fbe3 | 32 | |
yattu0914 | 6:3cc5c120fbe3 | 33 | int readings[3] = {0, 0, 0}; |
yattu0914 | 6:3cc5c120fbe3 | 34 | |
yattu0914 | 6:3cc5c120fbe3 | 35 | |
yattu0914 | 6:3cc5c120fbe3 | 36 | // These are here to test whether any of the initialization fails. It will print the failure |
yattu0914 | 6:3cc5c120fbe3 | 37 | if (accelerometer.setPowerControl(0x00)){ |
yattu0914 | 6:3cc5c120fbe3 | 38 | xbee.printf("didn't intitialize power control\n"); |
yattu0914 | 6:3cc5c120fbe3 | 39 | return 0; |
yattu0914 | 6:3cc5c120fbe3 | 40 | } |
yattu0914 | 6:3cc5c120fbe3 | 41 | //Full resolution, +/-16g, 4mg/LSB. |
yattu0914 | 6:3cc5c120fbe3 | 42 | wait(.001); |
yattu0914 | 6:3cc5c120fbe3 | 43 | |
yattu0914 | 6:3cc5c120fbe3 | 44 | if(accelerometer.setDataFormatControl(0x0B)){ |
yattu0914 | 6:3cc5c120fbe3 | 45 | xbee.printf("didn't set data format\n"); |
yattu0914 | 6:3cc5c120fbe3 | 46 | return 0; } |
yattu0914 | 6:3cc5c120fbe3 | 47 | wait(.001); |
yattu0914 | 6:3cc5c120fbe3 | 48 | |
yattu0914 | 6:3cc5c120fbe3 | 49 | //3.2kHz data rate. |
yattu0914 | 6:3cc5c120fbe3 | 50 | if(accelerometer.setDataRate(ADXL345_3200HZ)){ |
yattu0914 | 6:3cc5c120fbe3 | 51 | xbee.printf("didn't set data rate\n"); |
yattu0914 | 6:3cc5c120fbe3 | 52 | return 0; |
yattu0914 | 6:3cc5c120fbe3 | 53 | } |
yattu0914 | 6:3cc5c120fbe3 | 54 | wait(.001); |
yattu0914 | 6:3cc5c120fbe3 | 55 | |
yattu0914 | 6:3cc5c120fbe3 | 56 | //Measurement mode. |
yattu0914 | 6:3cc5c120fbe3 | 57 | |
yattu0914 | 6:3cc5c120fbe3 | 58 | if(accelerometer.setPowerControl(MeasurementMode)) { |
yattu0914 | 6:3cc5c120fbe3 | 59 | xbee.printf("didn't set the power control to measurement\n"); |
yattu0914 | 6:3cc5c120fbe3 | 60 | return 0; |
yattu0914 | 6:3cc5c120fbe3 | 61 | } |
yattu0914 | 6:3cc5c120fbe3 | 62 | |
yattu0914 | 4:5872b6ac17e5 | 63 | |
yattu0914 | 4:5872b6ac17e5 | 64 | //time_t epoch = 0; |
yattu0914 | 0:2c21bfd10524 | 65 | |
yattu0914 | 4:5872b6ac17e5 | 66 | //fprintf(fp, "E %d \r", epoch); |
yattu0914 | 3:37b076ff27a9 | 67 | timer.start(); |
yattu0914 | 4:5872b6ac17e5 | 68 | |
yattu0914 | 2:e093c70066d0 | 69 | while(1){ |
yattu0914 | 3:37b076ff27a9 | 70 | //epoch = time(NULL); |
yattu0914 | 3:37b076ff27a9 | 71 | float seconds = timer.read(); |
yattu0914 | 2:e093c70066d0 | 72 | temp = temp_in; |
yattu0914 | 2:e093c70066d0 | 73 | vo = v_out/10*33; |
yattu0914 | 2:e093c70066d0 | 74 | ax = acc_x/10; |
yattu0914 | 2:e093c70066d0 | 75 | ay = acc_y/10; |
yattu0914 | 2:e093c70066d0 | 76 | az = acc_z/10; |
yattu0914 | 2:e093c70066d0 | 77 | light = light_in/10*33; |
yattu0914 | 2:e093c70066d0 | 78 | r_temp = temp_in * 3.3 * 100 ; |
yattu0914 | 4:5872b6ac17e5 | 79 | bmp085.update(); |
yattu0914 | 4:5872b6ac17e5 | 80 | P = bmp085.get_pressure(); |
yattu0914 | 4:5872b6ac17e5 | 81 | t = bmp085.get_temperature(); |
yattu0914 | 6:3cc5c120fbe3 | 82 | |
yattu0914 | 4:5872b6ac17e5 | 83 | |
yattu0914 | 4:5872b6ac17e5 | 84 | if (fp != NULL) { |
yattu0914 | 4:5872b6ac17e5 | 85 | fprintf(fp, "S %f ", seconds); |
yattu0914 | 4:5872b6ac17e5 | 86 | fprintf(fp, "T %5.2f ",r_temp); |
yattu0914 | 7:ba3fa64f04e9 | 87 | fprintf(fp, "H %5.2f ",(vo*8-6)/25+0.06); |
yattu0914 | 7:ba3fa64f04e9 | 88 | // fprintf(fp, "X %5.2f ",(ax*33-1.65)/0.66); |
yattu0914 | 7:ba3fa64f04e9 | 89 | // fprintf(fp, "Y %5.2f ",(ay*33-1.65)/0.66); |
yattu0914 | 7:ba3fa64f04e9 | 90 | // fprintf(fp, "Z %5.2f ",(az*33-1.65)/0.66); |
yattu0914 | 7:ba3fa64f04e9 | 91 | accelerometer.getOutput(readings); |
yattu0914 | 7:ba3fa64f04e9 | 92 | fprintf(fp,"X %+4.2f, Y %+4.2f, Z %+4.2f ", |
yattu0914 | 7:ba3fa64f04e9 | 93 | (float((int16_t)readings[0]+18)/256-0.12), |
yattu0914 | 7:ba3fa64f04e9 | 94 | (float((int16_t)readings[1]-4 )/256-0.03), |
yattu0914 | 7:ba3fa64f04e9 | 95 | (float((int16_t)readings[2]+22)/256+0.12)); |
yattu0914 | 4:5872b6ac17e5 | 96 | fprintf(fp, "L %5.2f ",light); |
yattu0914 | 4:5872b6ac17e5 | 97 | fprintf(fp, "P %6.2f ", P); |
yattu0914 | 4:5872b6ac17e5 | 98 | fprintf(fp, "t %6.2f ", t); |
yattu0914 | 5:9cfdae50349e | 99 | fprintf(fp,"\n\r"); |
yattu0914 | 7:ba3fa64f04e9 | 100 | // fclose(fp); |
yattu0914 | 4:5872b6ac17e5 | 101 | }//if |
yattu0914 | 1:6dc59f48b649 | 102 | |
yattu0914 | 5:9cfdae50349e | 103 | if (count % 10 == 0) { |
yattu0914 | 3:37b076ff27a9 | 104 | xbee.printf("S %f ", seconds); |
yattu0914 | 2:e093c70066d0 | 105 | xbee.printf("T %5.2f ",r_temp); |
yattu0914 | 7:ba3fa64f04e9 | 106 | xbee.printf("H %5.2f ",((vo*8-6)/25+0.11)); |
yattu0914 | 6:3cc5c120fbe3 | 107 | // xbee.printf("X %5.2f ",(ax*33-1.65)/0.66); |
yattu0914 | 6:3cc5c120fbe3 | 108 | // xbee.printf("Y %5.2f ",(ay*33-1.65)/0.66); |
yattu0914 | 6:3cc5c120fbe3 | 109 | // xbee.printf("Z %5.2f ",(az*33-1.65)/0.66); |
yattu0914 | 6:3cc5c120fbe3 | 110 | accelerometer.getOutput(readings); |
yattu0914 | 7:ba3fa64f04e9 | 111 | pc.printf("X %+4.2f, Y %+4.2f, Z %+4.2f ", |
yattu0914 | 6:3cc5c120fbe3 | 112 | (float((int16_t)readings[0]+18)/256), |
yattu0914 | 6:3cc5c120fbe3 | 113 | (float((int16_t)readings[1]-4 )/256), |
yattu0914 | 6:3cc5c120fbe3 | 114 | (float((int16_t)readings[2]+22)/256)); |
yattu0914 | 7:ba3fa64f04e9 | 115 | xbee.printf("X %+4.2f Y %+4.2f Z %+4.2f ", |
yattu0914 | 7:ba3fa64f04e9 | 116 | (float((int16_t)readings[0]+18)/256-0.12), |
yattu0914 | 7:ba3fa64f04e9 | 117 | (float((int16_t)readings[1]-4 )/256-0.13), |
yattu0914 | 7:ba3fa64f04e9 | 118 | (float((int16_t)readings[2]+22)/256+0.02)); |
yattu0914 | 7:ba3fa64f04e9 | 119 | xbee.printf("L %5.2f ",light); |
yattu0914 | 4:5872b6ac17e5 | 120 | xbee.printf("P %6.2f ", P); |
yattu0914 | 4:5872b6ac17e5 | 121 | xbee.printf("t %6.2f ", t); |
yattu0914 | 2:e093c70066d0 | 122 | xbee.printf("\n\r"); |
yattu0914 | 2:e093c70066d0 | 123 | }//if |
yattu0914 | 1:6dc59f48b649 | 124 | |
yattu0914 | 2:e093c70066d0 | 125 | ++count; |
yattu0914 | 5:9cfdae50349e | 126 | wait(0.1); |
yattu0914 | 2:e093c70066d0 | 127 | }//while |
yattu0914 | 7:ba3fa64f04e9 | 128 | |
yattu0914 | 1:6dc59f48b649 | 129 | } |