2017年度の製作を開始します。
Dependencies: BufferedSoftSerial2 SDFileSystem-RTOS mbed mbed-rtos INA226_ver1
Fork of keiki2016ver5 by
Fusokukei.h@77:ba2dac12ce56, 2017-06-30 (annotated)
- Committer:
- tsumagari
- Date:
- Fri Jun 30 09:52:07 2017 +0000
- Branch:
- SDandCadenceThread
- Revision:
- 77:ba2dac12ce56
- Parent:
- 57:d415d463a605
- Child:
- 76:2ac3d145942f
7/1TF?no pc.printf
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
taurin | 0:085b2c5e3254 | 1 | #ifndef FUSOKUKEI_H |
taurin | 0:085b2c5e3254 | 2 | #define FUSOKUKEI_H |
taurin | 0:085b2c5e3254 | 3 | |
taurin | 0:085b2c5e3254 | 4 | #include "mbed.h" |
taurin | 0:085b2c5e3254 | 5 | |
taurin | 7:9415448ae9ca | 6 | |
tsumagari | 51:f391d3a02397 | 7 | #define AIR_K 0.14737 |
taurin | 7:9415448ae9ca | 8 | #define AIR_N 1.12 |
taurin | 0:085b2c5e3254 | 9 | #define AIR_A 1.4314 |
taurin | 0:085b2c5e3254 | 10 | #define AIR_B 0.209 |
taurin | 0:085b2c5e3254 | 11 | #define AIR_SUM_NUM 20 |
taurin | 0:085b2c5e3254 | 12 | #define AIR_BUFFER 30 |
taurin | 0:085b2c5e3254 | 13 | |
taurin | 0:085b2c5e3254 | 14 | float airSpeed = 0.0; |
taurin | 0:085b2c5e3254 | 15 | float airSpeed_ave = 0.0; |
taurin | 0:085b2c5e3254 | 16 | float airSpeed_max = 0.0; |
taurin | 0:085b2c5e3254 | 17 | int air_counter = 0; |
taurin | 0:085b2c5e3254 | 18 | float air_sum[AIR_SUM_NUM] = {0.0}; |
taurin | 0:085b2c5e3254 | 19 | |
taurin | 0:085b2c5e3254 | 20 | class Fusokukei{ |
taurin | 0:085b2c5e3254 | 21 | protected: |
taurin | 0:085b2c5e3254 | 22 | |
taurin | 0:085b2c5e3254 | 23 | public: |
taurin | 0:085b2c5e3254 | 24 | float make_ave(float s[], int n){ |
taurin | 0:085b2c5e3254 | 25 | float p = 0; |
taurin | 0:085b2c5e3254 | 26 | int i; |
taurin | 0:085b2c5e3254 | 27 | for(i = 0; i < n; i++){ |
taurin | 0:085b2c5e3254 | 28 | p += s[i]; |
taurin | 0:085b2c5e3254 | 29 | } |
taurin | 0:085b2c5e3254 | 30 | if(n != 0) |
taurin | 0:085b2c5e3254 | 31 | return p / n; |
taurin | 0:085b2c5e3254 | 32 | else |
taurin | 0:085b2c5e3254 | 33 | return 0; |
taurin | 0:085b2c5e3254 | 34 | } |
taurin | 0:085b2c5e3254 | 35 | |
taurin | 0:085b2c5e3254 | 36 | void calcAirSpeed(float x){ |
tsumagari | 57:d415d463a605 | 37 | air_sum[air_counter % AIR_SUM_NUM] = 0.0529*x;//2017 5/27 校正 |
tsumagari | 57:d415d463a605 | 38 | /*(float)AIR_K * (float)pow((double)x, 1 / AIR_N);*/ |
taurin | 0:085b2c5e3254 | 39 | if(air_counter % AIR_SUM_NUM == 0) |
taurin | 0:085b2c5e3254 | 40 | air_counter = 0; |
taurin | 0:085b2c5e3254 | 41 | airSpeed_ave = make_ave(air_sum, AIR_SUM_NUM); |
taurin | 7:9415448ae9ca | 42 | //airSpeed = airSpeed_ave*AIR_A+AIR_B; |
taurin | 7:9415448ae9ca | 43 | airSpeed=airSpeed_ave; |
taurin | 0:085b2c5e3254 | 44 | if(airSpeed > airSpeed_max) |
taurin | 0:085b2c5e3254 | 45 | airSpeed_max = airSpeed; |
taurin | 0:085b2c5e3254 | 46 | air_counter++; |
taurin | 0:085b2c5e3254 | 47 | } |
taurin | 0:085b2c5e3254 | 48 | }; |
tsumagari | 51:f391d3a02397 | 49 | #endif |
tsumagari | 51:f391d3a02397 | 50 | //#ifndef FUSOKUKEI_H |
tsumagari | 51:f391d3a02397 | 51 | //#define FUSOKUKEI_H |
tsumagari | 51:f391d3a02397 | 52 | // |
tsumagari | 51:f391d3a02397 | 53 | //#include "mbed.h" |
tsumagari | 51:f391d3a02397 | 54 | // |
tsumagari | 51:f391d3a02397 | 55 | // |
tsumagari | 51:f391d3a02397 | 56 | //#define AIR_K 4.70591884 //0.14737 |
tsumagari | 51:f391d3a02397 | 57 | //#define AIR_N 1.12 |
tsumagari | 51:f391d3a02397 | 58 | //#define AIR_A 1.4314 |
tsumagari | 51:f391d3a02397 | 59 | //#define AIR_B 0.209 |
tsumagari | 51:f391d3a02397 | 60 | //#define AIR_SUM_NUM 3 |
tsumagari | 51:f391d3a02397 | 61 | //#define AIR_BUFFER 30 |
tsumagari | 51:f391d3a02397 | 62 | // |
tsumagari | 51:f391d3a02397 | 63 | //float airSpeed = 0.0; |
tsumagari | 51:f391d3a02397 | 64 | //float airSpeed_ave = 0.0; |
tsumagari | 51:f391d3a02397 | 65 | //float airSpeed_max = 0.0; |
tsumagari | 51:f391d3a02397 | 66 | //int air_counter = 0; |
tsumagari | 51:f391d3a02397 | 67 | //float air_sum[AIR_SUM_NUM] = {0.0}; |
tsumagari | 51:f391d3a02397 | 68 | // |
tsumagari | 51:f391d3a02397 | 69 | //class Fusokukei{ |
tsumagari | 51:f391d3a02397 | 70 | // protected: |
tsumagari | 51:f391d3a02397 | 71 | // |
tsumagari | 51:f391d3a02397 | 72 | // public: |
tsumagari | 51:f391d3a02397 | 73 | // float make_ave(float s[], int n){ |
tsumagari | 51:f391d3a02397 | 74 | // float p = 0; |
tsumagari | 51:f391d3a02397 | 75 | // int i; |
tsumagari | 51:f391d3a02397 | 76 | // for(i = 0; i < n; i++){ |
tsumagari | 51:f391d3a02397 | 77 | // p += s[i]; |
tsumagari | 51:f391d3a02397 | 78 | // } |
tsumagari | 51:f391d3a02397 | 79 | // if(n != 0) |
tsumagari | 51:f391d3a02397 | 80 | // return p / n; |
tsumagari | 51:f391d3a02397 | 81 | // else |
tsumagari | 51:f391d3a02397 | 82 | // return 0; |
tsumagari | 51:f391d3a02397 | 83 | // } |
tsumagari | 51:f391d3a02397 | 84 | // |
tsumagari | 51:f391d3a02397 | 85 | // void calcAirSpeed(int x){ |
tsumagari | 51:f391d3a02397 | 86 | // air_sum[air_counter % AIR_SUM_NUM] = (float)AIR_K * (float)pow((double)(x/150.0), 1 / AIR_N); |
tsumagari | 51:f391d3a02397 | 87 | // |
tsumagari | 51:f391d3a02397 | 88 | // airSpeed_ave = make_ave(air_sum, AIR_SUM_NUM); |
tsumagari | 51:f391d3a02397 | 89 | // |
tsumagari | 51:f391d3a02397 | 90 | // //airSpeed = airSpeed_ave*AIR_A+AIR_B; |
tsumagari | 51:f391d3a02397 | 91 | // airSpeed=airSpeed_ave; |
tsumagari | 51:f391d3a02397 | 92 | // if(airSpeed > airSpeed_max) |
tsumagari | 51:f391d3a02397 | 93 | // airSpeed_max = airSpeed; |
tsumagari | 51:f391d3a02397 | 94 | // if(air_counter % AIR_SUM_NUM == 0){ |
tsumagari | 51:f391d3a02397 | 95 | // air_counter = 0; |
tsumagari | 51:f391d3a02397 | 96 | // } |
tsumagari | 51:f391d3a02397 | 97 | // air_counter++; |
tsumagari | 51:f391d3a02397 | 98 | // } |
tsumagari | 51:f391d3a02397 | 99 | //}; |
tsumagari | 51:f391d3a02397 | 100 | //#endif |