GP2Y0A21YK0F IRsensor 用ライブラリ
Dependents: NHK2019_mae_v6 NHK2019_main_v6 NHK2019_usiro_v6 NHK2019_mae_v6 ... more
IRsensor.h@5:022e7ea6eea9, 2019-08-29 (annotated)
- Committer:
- skouki
- Date:
- Thu Aug 29 02:29:59 2019 +0000
- Revision:
- 5:022e7ea6eea9
- Parent:
- 4:004bdb88ab3e
- Child:
- 6:4d4e1ea317f5
updata_Doxygen
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
skouki | 5:022e7ea6eea9 | 1 | #ifndef IRSENSOR_H |
skouki | 5:022e7ea6eea9 | 2 | #define IRSENSOR_H |
skouki | 5:022e7ea6eea9 | 3 | |
skouki | 5:022e7ea6eea9 | 4 | #include"mbed.h" |
skouki | 5:022e7ea6eea9 | 5 | |
skouki | 4:004bdb88ab3e | 6 | /** |
skouki | 4:004bdb88ab3e | 7 | * @file IRsensor.h |
skouki | 4:004bdb88ab3e | 8 | * @brief SHARP 2Y0A21を使ったIR距離測定 |
skouki | 4:004bdb88ab3e | 9 | * |
skouki | 4:004bdb88ab3e | 10 | * Example : |
skouki | 4:004bdb88ab3e | 11 | * @code |
skouki | 4:004bdb88ab3e | 12 | * #include"mbed.h" |
skouki | 4:004bdb88ab3e | 13 | * #include"IRsensor.h" |
skouki | 4:004bdb88ab3e | 14 | * |
skouki | 4:004bdb88ab3e | 15 | * IRsensor ir1(PC_1); |
skouki | 4:004bdb88ab3e | 16 | * |
skouki | 4:004bdb88ab3e | 17 | * Serial pc(USBTX,USBRX,115200); |
skouki | 4:004bdb88ab3e | 18 | * |
skouki | 4:004bdb88ab3e | 19 | * int main() |
skouki | 4:004bdb88ab3e | 20 | * { |
skouki | 4:004bdb88ab3e | 21 | * ir1.startAveraging(255); |
skouki | 4:004bdb88ab3e | 22 | * while(1){ |
skouki | 4:004bdb88ab3e | 23 | * float dis = ir1.getDistance(); |
skouki | 4:004bdb88ab3e | 24 | * float ave_dis = ir1.get_Averagingdistance(); |
skouki | 4:004bdb88ab3e | 25 | * pc.printf("dis:%4.4f[cm]||ave_dis:%4.4f[cm]\n\r",dis,ave_dis); |
skouki | 4:004bdb88ab3e | 26 | * |
skouki | 4:004bdb88ab3e | 27 | * } |
skouki | 4:004bdb88ab3e | 28 | * } |
skouki | 4:004bdb88ab3e | 29 | * @endcode |
skouki | 4:004bdb88ab3e | 30 | */ |
skouki | 0:d0a252247fec | 31 | |
skouki | 4:004bdb88ab3e | 32 | /** |
skouki | 4:004bdb88ab3e | 33 | * @brief SHARP 2Y0A21を使ったIR距離測定のクラス |
skouki | 4:004bdb88ab3e | 34 | */ |
skouki | 0:d0a252247fec | 35 | class IRsensor{ |
skouki | 0:d0a252247fec | 36 | public: |
skouki | 4:004bdb88ab3e | 37 | /** |
skouki | 4:004bdb88ab3e | 38 | * @brief コンストラクタ |
skouki | 4:004bdb88ab3e | 39 | * @param pin Pint that can do analogin |
skouki | 4:004bdb88ab3e | 40 | */ |
skouki | 0:d0a252247fec | 41 | IRsensor(PinName pin); |
skouki | 4:004bdb88ab3e | 42 | |
skouki | 4:004bdb88ab3e | 43 | /** |
skouki | 4:004bdb88ab3e | 44 | * @brief センサの値を取得 |
skouki | 4:004bdb88ab3e | 45 | * @return voltage |
skouki | 4:004bdb88ab3e | 46 | */ |
skouki | 4:004bdb88ab3e | 47 | float getVoltage(); |
skouki | 4:004bdb88ab3e | 48 | |
skouki | 4:004bdb88ab3e | 49 | /** |
skouki | 4:004bdb88ab3e | 50 | * @brief センサの値を距離変換し取得 |
skouki | 4:004bdb88ab3e | 51 | * @return originaldistance |
skouki | 4:004bdb88ab3e | 52 | */ |
skouki | 2:35b3dd6f7f17 | 53 | float getDistance(); |
skouki | 4:004bdb88ab3e | 54 | |
skouki | 4:004bdb88ab3e | 55 | /** |
skouki | 4:004bdb88ab3e | 56 | * @brief 距離の平均化設定 |
skouki | 4:004bdb88ab3e | 57 | * @param averaging_range averaging range 1~255 |
skouki | 4:004bdb88ab3e | 58 | */ |
skouki | 4:004bdb88ab3e | 59 | void startAveraging(uint8_t averaging_range); |
skouki | 4:004bdb88ab3e | 60 | |
skouki | 4:004bdb88ab3e | 61 | /** |
skouki | 4:004bdb88ab3e | 62 | * @brief 平均化した距離を取得 |
skouki | 4:004bdb88ab3e | 63 | * @return distance_average |
skouki | 4:004bdb88ab3e | 64 | */ |
skouki | 2:35b3dd6f7f17 | 65 | float get_Averagingdistance(); |
skouki | 0:d0a252247fec | 66 | |
skouki | 0:d0a252247fec | 67 | private: |
skouki | 2:35b3dd6f7f17 | 68 | void threadloop_get_distance(); |
skouki | 2:35b3dd6f7f17 | 69 | void threadloop_averaging_distance(); |
skouki | 2:35b3dd6f7f17 | 70 | void compute_distance(); |
skouki | 2:35b3dd6f7f17 | 71 | void getInputvoltage(); |
skouki | 2:35b3dd6f7f17 | 72 | void changeVtoD(); |
skouki | 2:35b3dd6f7f17 | 73 | void computeaverage(); |
skouki | 2:35b3dd6f7f17 | 74 | |
skouki | 2:35b3dd6f7f17 | 75 | float voltage; |
skouki | 2:35b3dd6f7f17 | 76 | float originaldistance; |
skouki | 2:35b3dd6f7f17 | 77 | float* data; |
skouki | 2:35b3dd6f7f17 | 78 | float distance_sum; |
skouki | 2:35b3dd6f7f17 | 79 | float distance_average; |
skouki | 2:35b3dd6f7f17 | 80 | uint8_t bufferSize; |
skouki | 2:35b3dd6f7f17 | 81 | uint8_t bufferpoint; |
skouki | 2:35b3dd6f7f17 | 82 | Thread thread_get_distance; |
skouki | 2:35b3dd6f7f17 | 83 | Thread thread_averaging_distance; |
skouki | 0:d0a252247fec | 84 | AnalogIn a_in; |
skouki | 2:35b3dd6f7f17 | 85 | |
skouki | 0:d0a252247fec | 86 | }; |
skouki | 0:d0a252247fec | 87 | |
skouki | 0:d0a252247fec | 88 | #endif |