ハードウェア
部屋の照明を自動化してみよう!IchigoJamでセンサーライト
shimizu
今回は、IchigoJamを使った作例をご紹介します。以前取り上げた人感センサーを組み合わせて、部屋に入ったときに自動的に照明を付ける仕組みを作りたいと思います。同様の機能を持つ照明は既に広く普及していますが、パーツを組み合わせて制御を入れることによって、その原理を理解してみましょう。
基本的な構造について
今回作る例では、このような仕組みで照明を制御します。
- IchigoJamで人感センサーの出力を監視し、「反応あり」になるまで待つ。
- 「反応あり」になったら、照明スイッチの脇に貼り付けたサーボモーターを作動させ、回転軸に連結されたサーボホーン(腕のような部分)がスイッチを押す。
- 部屋の照明がつく。
用意するものは以下のとおりです。
- IchigoJam
- 人感センサー(PIRセンサー) 3.3V出力タイプ(型番: HC-SR501)
- サーボモーター SG-90
- ジャンパー線
- ブレッドボード
- モバイルバッテリー(コンセントから電源を取れない場合に便利)
実際に作ってみた
人感センサーとサーボモーターをIchigoJamに接続します。ジャンパー線で、以下の図のように結線します。この他、IchigoJamのMicroUSB端子に電源を繋いでください。
ここで、試しにサーボモーターの動きを確認します。電源を入れて以下のように実行してみてください。
PWM 2,100
ギー!と音を出しながら回転して、あるところで停止するはずです。
サーボモーターは指定した角度まで回転させて止めることができるモーターで、上の例で「100」としている箇所を50~240の間で指定することで、0°~180°の間の角度を取らせることができます。この動きを利用して壁のスイッチを押す仕組みに応用するため、サーボモーターの腕がスイッチの上に来るように貼り付けておきます。
この特性を踏まえた上で、メインとなるプログラムはこちらです。
10 'センサーライト 20 L=0 30 S=IN(1):?S:LED S 40 IF L!=S:GOSUB 100 50 L=S 60 WAIT 5:GOTO 30 100 PWM 2,90 110 WAIT 5 120 PWM 2,45 130 RETURN
全体的には30行目〜60行目を繰り返す構造になっており、30行目では人感センサーの出力を取得しています。変数Sには、反応ありの場合1が、なしの場合は0が入ります。
その値を40行目で以前のセンサー値と比べて、変化があったら100行目からのサブルーチンを実行します。
サブルーチンの中では、スイッチを押下する角度までサーボモーターの腕を回転(PWM 2,90)して元に戻す(PWM 2,45)という処理を行い、物理的にスイッチを押しています。
動作している様子を動画で見るにはこちら。
おわりに
今回はセンサーライトの実例について見てきました。
手を触れずに照明をつけられる便利さを手に入れた割には、パーツの組み合わせや制御プログラムは意外とシンプルなもので実現できることが分かりました。さらに、例えばオン・オフの状態をネットワーク越しに記録・通知することで高齢者の見守り機能を追加できるなど、発想次第でいろいろと発展の余地がありますね。