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