ロボカップジュニアサッカー IRM2121を用いた専用パルスボールを検知するためのライブラリ
Dependents: BallCheck_IRM2121_InterrputInAdd CatPot_SensorRight
Pingのライブラリを参考にしました。 RoboCupJuniorSoccerにおけるボール検知をまとめて行うために作成したライブラリ。
距離に応じて微妙に値が変わるようになりました。 まともに使えます。
なお、このライブラリには、interruptinの機能を拡張するためのライブラリが含まれています。 そのため、必要なときだけピン変化割り込みに入ることが可能となっています。
値に応じて関数ポインタとかすれば距離によって値かわるようにできるかも if文で十分かもしれません
IRM2121.h
- Committer:
- ryuna
- Date:
- 2014-11-09
- Revision:
- 0:fd5c1ea78a7c
- Child:
- 1:b25c8ac20d5b
File content as of revision 0:fd5c1ea78a7c:
#ifndef MBED_IRM_H #define MBED_IRM_H #include "mbed.h" /** IRM2121 class, based on an InterruptIn pin, and a timer * use RoboCup Junior Soccer to find PULSE BALL. * Example: * @code * // Set interrupt and read sensor. * #include "mbed.h" * #include "IRM2121.h" * * IRM2121 IR(p21); * * int main() { * int range; * while(1) { * * IR.Send(); * wait_ms(10); * range = IR.Read(); * } * } * @endcode */ class IRM2121 { public: /** Create a IRM2121 object connected to the specified InterruptIn pin * * @param IRM_PIN InterruptIn pin to connect to */ IRM2121(PinName IRM_PIN); /** Set a IRM2121 Interrupt Pin * * @param none */ void Set(void); /** Read the result * * @param none */ int Read(void); protected: InterruptIn _event; Timer _timer; bool _Flag; bool _Valid; bool _Busy; int _Time; void _Start(void); void _Stop (void); }; #endif