narumi tatsuya
/
shit
shit
main.cpp@0:617cc23cd899, 2020-11-28 (annotated)
- Committer:
- naruu
- Date:
- Sat Nov 28 12:20:52 2020 +0000
- Revision:
- 0:617cc23cd899
shit;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
naruu | 0:617cc23cd899 | 1 | #include "mbed.h" |
naruu | 0:617cc23cd899 | 2 | #include "BMP180.h" |
naruu | 0:617cc23cd899 | 3 | #include <math.h> |
naruu | 0:617cc23cd899 | 4 | #include <stdio.h> |
naruu | 0:617cc23cd899 | 5 | |
naruu | 0:617cc23cd899 | 6 | #define PIN_SDA D4 |
naruu | 0:617cc23cd899 | 7 | #define PIN_SCL D5 |
naruu | 0:617cc23cd899 | 8 | Serial pc(SERIAL_TX,SERIAL_RX,921600); |
naruu | 0:617cc23cd899 | 9 | Serial xbee(D1,D0); |
naruu | 0:617cc23cd899 | 10 | DigitalOut FET(D9); |
naruu | 0:617cc23cd899 | 11 | DigitalIn flight(D6); |
naruu | 0:617cc23cd899 | 12 | DigitalOut SW(D7); |
naruu | 0:617cc23cd899 | 13 | |
naruu | 0:617cc23cd899 | 14 | |
naruu | 0:617cc23cd899 | 15 | int main(){ |
naruu | 0:617cc23cd899 | 16 | float x8; |
naruu | 0:617cc23cd899 | 17 | FET=0; |
naruu | 0:617cc23cd899 | 18 | SW=1; |
naruu | 0:617cc23cd899 | 19 | flight==1; |
naruu | 0:617cc23cd899 | 20 | |
naruu | 0:617cc23cd899 | 21 | myled=1; |
naruu | 0:617cc23cd899 | 22 | |
naruu | 0:617cc23cd899 | 23 | while(1) { |
naruu | 0:617cc23cd899 | 24 | if(flight==1) { |
naruu | 0:617cc23cd899 | 25 | wait(10); |
naruu | 0:617cc23cd899 | 26 | } |
naruu | 0:617cc23cd899 | 27 | |
naruu | 0:617cc23cd899 | 28 | else{ |
naruu | 0:617cc23cd899 | 29 | if(flight==1) { |
naruu | 0:617cc23cd899 | 30 | wait(10); |
naruu | 0:617cc23cd899 | 31 | } |
naruu | 0:617cc23cd899 | 32 | else{ |
naruu | 0:617cc23cd899 | 33 | myled=0; |
naruu | 0:617cc23cd899 | 34 | SW = 0; |
naruu | 0:617cc23cd899 | 35 | printf("こんにちわ!"); |
naruu | 0:617cc23cd899 | 36 | break; |
naruu | 0:617cc23cd899 | 37 | } |
naruu | 0:617cc23cd899 | 38 | |
naruu | 0:617cc23cd899 | 39 | |
naruu | 0:617cc23cd899 | 40 | |
naruu | 0:617cc23cd899 | 41 | } |
naruu | 0:617cc23cd899 | 42 | } |
naruu | 0:617cc23cd899 | 43 | BMP180 bmp180(PIN_SDA,PIN_SCL); |
naruu | 0:617cc23cd899 | 44 | float pressure,temperature,altitude; |
naruu | 0:617cc23cd899 | 45 | xbee.printf("\rstart!\n\r"); |
naruu | 0:617cc23cd899 | 46 | bmp180.Initialize(27,BMP180_OSS_ULTRA_HIGH_RESOLUTION);//27は府大の海抜高度 |
naruu | 0:617cc23cd899 | 47 | xbee.printf("initialization complete!\n\r"); |
naruu | 0:617cc23cd899 | 48 | |
naruu | 0:617cc23cd899 | 49 | while(1){ |
naruu | 0:617cc23cd899 | 50 | if(bmp180.ReadData(&temperature,&pressure)){ |
naruu | 0:617cc23cd899 | 51 | float x4,x5,x6,x7,a,b; |
naruu | 0:617cc23cd899 | 52 | a = pressure; |
naruu | 0:617cc23cd899 | 53 | b = temperature; |
naruu | 0:617cc23cd899 | 54 | x4 = 1019.11 / a; //海面気圧を気圧でわる |
naruu | 0:617cc23cd899 | 55 | x5 = powf(x4, 0.1902225); //5.257ぶんの1 |
naruu | 0:617cc23cd899 | 56 | x6 = 273.15 + b; //絶対温度 |
naruu | 0:617cc23cd899 | 57 | x7 = (x5 - 1) * x6; |
naruu | 0:617cc23cd899 | 58 | x8 = x7 / 0.0065; |
naruu | 0:617cc23cd899 | 59 | altitude = x8; |
naruu | 0:617cc23cd899 | 60 | |
naruu | 0:617cc23cd899 | 61 | |
naruu | 0:617cc23cd899 | 62 | xbee.printf("Altitude(m)\t:%.3f\n\r",altitude); |
naruu | 0:617cc23cd899 | 63 | xbee.printf("--------------------------------\n\r"); |
naruu | 0:617cc23cd899 | 64 | wait(1); |
naruu | 0:617cc23cd899 | 65 | break; |
naruu | 0:617cc23cd899 | 66 | }else{ |
naruu | 0:617cc23cd899 | 67 | xbee.printf("NO DATA\n\r"); |
naruu | 0:617cc23cd899 | 68 | xbee.printf("---------------------------\n\r"); |
naruu | 0:617cc23cd899 | 69 | wait(1); |
naruu | 0:617cc23cd899 | 70 | } |
naruu | 0:617cc23cd899 | 71 | } |
naruu | 0:617cc23cd899 | 72 | while(i<10){ |
naruu | 0:617cc23cd899 | 73 | if(bmp180.ReadData(&temperature,&pressure)){ |
naruu | 0:617cc23cd899 | 74 | float y4,y5,y6,y7,y8,c,d; |
naruu | 0:617cc23cd899 | 75 | float speed; |
naruu | 0:617cc23cd899 | 76 | |
naruu | 0:617cc23cd899 | 77 | c = pressure; |
naruu | 0:617cc23cd899 | 78 | d = temperature; |
naruu | 0:617cc23cd899 | 79 | y4 = 1019.11 / c; //海面気圧を気圧でわる |
naruu | 0:617cc23cd899 | 80 | y5 = powf(y4,0.1902225); |
naruu | 0:617cc23cd899 | 81 | y6 = 273.15 + d; |
naruu | 0:617cc23cd899 | 82 | y7 = (y5 - 1) * y6; |
naruu | 0:617cc23cd899 | 83 | y8 = y7 / 0.0065; |
naruu | 0:617cc23cd899 | 84 | altitude = y8; |
naruu | 0:617cc23cd899 | 85 | speed = (x8 - y8)/1; |
naruu | 0:617cc23cd899 | 86 | |
naruu | 0:617cc23cd899 | 87 | xbee.printf("Altitude(m)\t:%.3f\n\r",altitude); |
naruu | 0:617cc23cd899 | 88 | xbee.printf("Speed(m/s)\t:%.3f\n\r",speed); |
naruu | 0:617cc23cd899 | 89 | xbee.printf("--------------------------------\n\r"); |
naruu | 0:617cc23cd899 | 90 | x8 = y8; |
naruu | 0:617cc23cd899 | 91 | wait(1); |
naruu | 0:617cc23cd899 | 92 | i++; |
naruu | 0:617cc23cd899 | 93 | if(speed<=0){ |
naruu | 0:617cc23cd899 | 94 | break; |
naruu | 0:617cc23cd899 | 95 | }} |
naruu | 0:617cc23cd899 | 96 | else{ |
naruu | 0:617cc23cd899 | 97 | xbee.printf("NO DATA\n\r"); |
naruu | 0:617cc23cd899 | 98 | wait(1); |
naruu | 0:617cc23cd899 | 99 | } |
naruu | 0:617cc23cd899 | 100 | } |
naruu | 0:617cc23cd899 | 101 | FET=1; |
naruu | 0:617cc23cd899 | 102 | wait(20); |
naruu | 0:617cc23cd899 | 103 | FET=0; |
naruu | 0:617cc23cd899 | 104 | return 0; |
naruu | 0:617cc23cd899 | 105 | } |