統合プログラム
Dependencies: mbed Servo BMP180
Landing_Judgement.h@6:6fe6e3554a46, 2021-10-28 (annotated)
- Committer:
- tsubasa_nakajima
- Date:
- Thu Oct 28 13:50:27 2021 +0000
- Revision:
- 6:6fe6e3554a46
- Parent:
- 5:e1001bfc423a
fixed indicate
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
minanao | 0:e7b7def631c2 | 1 | #include "mbed.h" |
minanao | 0:e7b7def631c2 | 2 | #include "BMP180.h" |
tsubasa_nakajima | 6:6fe6e3554a46 | 3 | #include "calculate.h" |
tsubasa_nakajima | 3:a583276d9fef | 4 | #define PIN_SDA D4 |
tsubasa_nakajima | 3:a583276d9fef | 5 | #define PIN_SCL D5 |
tsubasa_nakajima | 3:a583276d9fef | 6 | |
minanao | 0:e7b7def631c2 | 7 | class Landing_Judgement:public BMP180{ |
minanao | 0:e7b7def631c2 | 8 | private: |
tsubasa_nakajima | 1:bb89b58cfa0e | 9 | |
minanao | 0:e7b7def631c2 | 10 | int x ,y ,n1 , n2 ; |
tsubasa_nakajima | 3:a583276d9fef | 11 | int landing_judgement ; |
minanao | 0:e7b7def631c2 | 12 | float h,dp,dt,dp0; |
minanao | 0:e7b7def631c2 | 13 | float a ,b ,dp_ave,dt_ave; |
minanao | 0:e7b7def631c2 | 14 | //hは高度、dpは気圧、dtは温度、dp0は海面気圧 |
minanao | 0:e7b7def631c2 | 15 | |
minanao | 0:e7b7def631c2 | 16 | public: |
minanao | 0:e7b7def631c2 | 17 | /*ここの関数をlanding_judgementの中に入れ込んじゃいます |
minanao | 0:e7b7def631c2 | 18 | //landing()が1を返せば着地、0を返せば未着地 |
minanao | 0:e7b7def631c2 | 19 | int landing(){ |
minanao | 0:e7b7def631c2 | 20 | return landing_judgement; |
minanao | 0:e7b7def631c2 | 21 | } |
minanao | 0:e7b7def631c2 | 22 | */ |
minanao | 0:e7b7def631c2 | 23 | |
minanao | 0:e7b7def631c2 | 24 | //着地判定の計算を開始させる関数 |
tsubasa_nakajima | 6:6fe6e3554a46 | 25 | int land(){ |
tsubasa_nakajima | 4:6e24a1b3edca | 26 | |
tsubasa_nakajima | 4:6e24a1b3edca | 27 | BMP180 bmp180(PIN_SDA,PIN_SCL); |
tsubasa_nakajima | 3:a583276d9fef | 28 | landing_judgement = 0; |
tsubasa_nakajima | 3:a583276d9fef | 29 | x = 0; |
tsubasa_nakajima | 3:a583276d9fef | 30 | y = 0; |
tsubasa_nakajima | 3:a583276d9fef | 31 | n1 = 0; |
tsubasa_nakajima | 3:a583276d9fef | 32 | n2 = 0; |
tsubasa_nakajima | 3:a583276d9fef | 33 | a = 0; |
tsubasa_nakajima | 3:a583276d9fef | 34 | b = 0; |
minanao | 0:e7b7def631c2 | 35 | |
tsubasa_nakajima | 3:a583276d9fef | 36 | for(int i=0;i<15;i++){ |
minanao | 0:e7b7def631c2 | 37 | if(bmp180.ReadData(&dt,&dp)){ |
minanao | 0:e7b7def631c2 | 38 | a = a + dp; |
minanao | 0:e7b7def631c2 | 39 | b = b + dt; |
minanao | 0:e7b7def631c2 | 40 | n1 = n1 + 1; |
minanao | 0:e7b7def631c2 | 41 | n2 = n2 + 1; |
minanao | 0:e7b7def631c2 | 42 | wait(1); |
minanao | 0:e7b7def631c2 | 43 | } |
minanao | 0:e7b7def631c2 | 44 | } |
minanao | 0:e7b7def631c2 | 45 | |
minanao | 0:e7b7def631c2 | 46 | dp_ave = a / n1; |
minanao | 0:e7b7def631c2 | 47 | dt_ave = b / n2; |
minanao | 0:e7b7def631c2 | 48 | dp0 = calculate_dp0(dp_ave,dt_ave); |
minanao | 0:e7b7def631c2 | 49 | |
minanao | 0:e7b7def631c2 | 50 | while(x<10){ |
minanao | 0:e7b7def631c2 | 51 | if(bmp180.ReadData(&dt,&dp)){ |
minanao | 0:e7b7def631c2 | 52 | h = calculate_h(dp0,dp,dt); |
minanao | 0:e7b7def631c2 | 53 | if(h >= 30){ |
minanao | 0:e7b7def631c2 | 54 | x = x + 1; |
minanao | 0:e7b7def631c2 | 55 | } |
minanao | 0:e7b7def631c2 | 56 | wait(1); |
minanao | 0:e7b7def631c2 | 57 | } |
minanao | 0:e7b7def631c2 | 58 | } |
minanao | 0:e7b7def631c2 | 59 | //10秒以上高度30mにいた場合離陸判定 |
minanao | 0:e7b7def631c2 | 60 | |
minanao | 0:e7b7def631c2 | 61 | wait(10); |
minanao | 0:e7b7def631c2 | 62 | |
minanao | 0:e7b7def631c2 | 63 | while(y<10){ |
minanao | 0:e7b7def631c2 | 64 | if(bmp180.ReadData(&dt,&dp)){ |
minanao | 0:e7b7def631c2 | 65 | h = calculate_h(dp0,dp,dt); |
minanao | 0:e7b7def631c2 | 66 | if(h <= 10){ |
minanao | 0:e7b7def631c2 | 67 | y = y + 1; |
minanao | 0:e7b7def631c2 | 68 | } |
minanao | 0:e7b7def631c2 | 69 | wait(1); |
minanao | 0:e7b7def631c2 | 70 | } |
minanao | 0:e7b7def631c2 | 71 | } |
minanao | 0:e7b7def631c2 | 72 | |
minanao | 0:e7b7def631c2 | 73 | wait(5); |
minanao | 0:e7b7def631c2 | 74 | |
minanao | 0:e7b7def631c2 | 75 | landing_judgement = landing_judgement + 1; |
minanao | 0:e7b7def631c2 | 76 | return landing_judgement; |
minanao | 0:e7b7def631c2 | 77 | |
minanao | 0:e7b7def631c2 | 78 | //離陸判定後、10秒以上高度10m以下にいた場合着地判定 |
minanao | 0:e7b7def631c2 | 79 | |
tsubasa_nakajima | 4:6e24a1b3edca | 80 | } |
tsubasa_nakajima | 4:6e24a1b3edca | 81 | }; |