ロボカップジュニアサッカー IRM2121を用いた専用パルスボールを検知するためのライブラリ
Dependents: BallCheck_IRM2121_InterrputInAdd CatPot_SensorRight
Pingのライブラリを参考にしました。 RoboCupJuniorSoccerにおけるボール検知をまとめて行うために作成したライブラリ。
距離に応じて微妙に値が変わるようになりました。 まともに使えます。
なお、このライブラリには、interruptinの機能を拡張するためのライブラリが含まれています。 そのため、必要なときだけピン変化割り込みに入ることが可能となっています。
値に応じて関数ポインタとかすれば距離によって値かわるようにできるかも if文で十分かもしれません
Diff: IRM2121.h
- Revision:
- 2:40101fcb6d44
- Parent:
- 1:b25c8ac20d5b
- Child:
- 3:711dde7b4c12
--- a/IRM2121.h Fri Dec 05 14:51:05 2014 +0000 +++ b/IRM2121.h Mon Jan 05 05:51:24 2015 +0000 @@ -17,13 +17,13 @@ * IRM2121 IR(p21); * * int main() { - * int range; + * int length; * while(1) { * * IR.Set(); - * wait_ms(10); - * range = IR.Read(); + * wait_ms(20); //check _Busy 1 &_Valid 0 ....config just wait time. + * length = IR.Read(); * } * } * @endcode @@ -36,18 +36,27 @@ */ IRM2121(PinName IRM_PIN); + /** Set a IRM2121 Interrupt Pin * * @param none */ void Set(void); + /** Read the result * * @param none */ - int Read(void); + /** + * Check two flags( _Valid, _Busy ) + * + * @param none + */ + void ReturnVB(bool *valid, bool *busy); + + protected: interruptin_mod _event; @@ -56,7 +65,7 @@ bool _Flag; bool _Valid; bool _Busy; - int _Time; + unsigned int _Time; void _Start(void); void _Stop (void);