ハードウェア
IchigoJamで人感センサーを使ってみよう!
shimizu
今回は、IchigoJamに人感センサーを繋げて、情報を読み取る方法をご紹介します。このセンサーはPIR(Passive Infra-Red、赤外線感知)センサーと呼ばれるタイプのもので、よくある例として夜間に人が通ると自動的に点灯する防犯用照明(センサーライト)に使われていることで馴染みのあるものです。
センサー情報の読み取り方
IchigoJamは、外部のセンサー回路とデータをやり取りする際にアナログとI2Cの2つの方式が使えます。アナログ方式では、IN2またはBTN端子のアナログ入力値(電圧を元にした数値)を読み取れます。I2C方式では、複数のデバイスとデータを送受できます。
と書きましたが、正確には以下の3通りの方式が使えます。
- デジタル入出力(0 or 1。GPIOとも呼ばれる)
- アナログ入力(電圧0V〜3.3Vの入力が、0~1023の値として取り出せる)
- I2C(複数のデバイスとデータを送受できる)
今回使用するセンサーは、デジタル入力で読み取れるようになっています。
必要なもの
- IchigoJam
- 人感センサー(PIRセンサー) 3.3V出力タイプ(型番: HC-SR501)
- ジャンパー線
実際に使ってみた
人感センサーをIchigoJamに接続します。ジャンパー線で、それぞれ以下のように結線します。
センサー IchigoJam +-----+ +-----+ | GND |====| GND | | OUT |====| IN1 | | +5V |====| 5V | +-----+ +-----+
それでは早速センサーの動作を試してみましょう。IchigoJamの電源を入れ、以下のプログラムを入力して、RUNで実行します。
10 ?IN(1):WAIT 5:GOTO 10
するとセンサーの値が流れて表示され、通常は「0」が出てきますが、センサーの前方で腕を振るなどの動きをすると、それに伴って値が「1」に変わるのが分かります。
「IN(1)」は、IN1端子の入力状態に応じて、0または1の数値を返してくれる命令です。今回は、センサーが感知したかどうかに応じて、反応なしであれば0、反応ありであれば1が返ってきます。
もう少し見た目で分かりやすいように、センサーが感知したらLEDを点灯させてみましょう。センサーの値が0、1なので、これをそのままLED命令に渡せばOKです。以下のプログラムを入力して、RUNで実行します。
動作している様子を動画で見るにはこちら。
10 S=IN(1) 20 ?S:LED S 30 WAIT 5:GOTO 10
おわりに
IchigoJamに人感センサーを繋げて、値を取得する例をご紹介しました。このセンサーを利用すれば、防犯ツールやペットの見守りといった用途の製作に役立つのではないかと思います。私はまだ何に使おうか思案中ですが、良いアイディアがあったらぜひお知らせください!