![]()
4.非接触手洗い装置、再び (2021.11.25-2021.11.28)
RasPiのコーナーの「27.非接触手洗い装置」で紹介したのは、RasPiでの制御を前提としたものでした。制御と言っても人感センサーによる検知を受けて、水洗コック開閉モーターを一定間隔のシーケンスでオン/オフするだけの単純なものです。内容から言って、わざわざRasPiを使うまでも無い装置だったわけです。シンプルにこれを実現しようとすれば、まさに今回のPICを使うのが最適な選択です。RasPiへの接続は、電源、GND、センサー入力信号、モーター制御信号の4本だけです。これをPICに置き換えるのは簡単で、I/OとなるGPIO端子を入力用/出力用で2端子用意すれば実現できます。プログラムもLチカと大差無いもので、PIC実用化の第1号は、この装置への搭載に決定しました。

写真の右端に写っているリード線の先にPICの回路を追加します。PasPiから電源供給する形だったリレーやセンサーと共に、PICを駆動する電源が必要なので、別途単三電池3個(4.5V)の電池ボックスも追加します。上の写真では装置のベースとなるアクリル板の下側右部分が空いていて、ここに追加部品を設置できます。このように単体で装置全部が収まってしまうのもPICを使うメリットだと思います。回路は下図の通りで、左半分が今回追加した回路です。電源に電池を使うため、VCCに入れたコンデンサは特には必要ありません。
参考までに、RasPiでのプログラム(Python)を記しておきます。端子等の設定を除けば、プログラムの中核となるのはWhileループの中です。PICのソースプログラムにするには、全体をC言語に置き換えなければなりません。
PICでは次のようになります(CONFIGも含めた全て。ただしコメント文は除く。)。チップは「2.PICを始めよう!」で取り上げたPIC12F675-I/Pを使います。そのため、ヘッダー部分の記述は同じものが使えます。I/O端子はGP1をセンサー入力、GP2をリレー出力に割り当てることにするため、関連部分の設定のみが異なります。プログラムの主要部分は
void main() {
~
}
です。センサーからの入力をチェックして、検知があったらリレー出力を順にオン/オフし、再びセンサーからの入力チェックを繰り返します。Lチカの延長線のプログラムなので、たやすく理解できると思います。
#pragma config FOSC = INTRCIO
#pragma config WDTE = OFF
#pragma config PWRTE = ON
#pragma config MCLRE = ON
#pragma config BOREN = ON
#pragma config CP = OFF
#pragma config CPD = OFF
#include <xc.h>
#define _XTAL_FREQ 4000000
void main() {
ADCON0 = 0;
CMCON = 0x07;
ANSEL = 0;
TRISIO = 0b00000010;
GPIO = 0b00000000;
int value;
while(1) {
value = GPIO1;
if (value != 0) {
GPIO2 = 1;
__delay_ms(2000);
GPIO2 = 0;
__delay_ms(5000);
GPIO2 = 1;
__delay_ms(2000);
GPIO2 = 0;
}
__delay_ms(1000);
}
写真が装置に追加回路を組み込んだ状態です(装置下面視)。電池ボックスは両面テープで、基板はギアボックスのビスを利用して固定しています。
これで風雨にさらされない場所であれば、どこにでも設置できるようになりました。ただし、万能ではありません。この装置は人感センサーを応用する目的で作ったものですが、センサーの指向性が広くて検知感度が高い(40~50センチ離れていても反応)ことから、水栓の真下に手をかざさずとも反応してしまうデメリットがあります。一方で赤外線を感知するため都合が良いメリットもあります。本来なら近接タイプのフォトセンサーを使う方が、目的にかなっていると思うわけですが、目標実現のためには色々なアプローチがあるので、人感センサーを使ったのもその一例に過ぎません。
昨今では自動水栓もずいぶん普及してきて、お店や公共の場等の洗面所やトイレを中心に設置してあるのをよく見かけます。また、コロナ禍もあって手をかざすだけでアルコール消毒液が出るボトルを使う機会も増えています。そういった用途でワンチップマイコンは頻繁に使われて、もはや我々の生活の一部に溶け込んでいます。量産品はマスクROMを内臓して大量生産されるため更に安価ですが、PICがあれば個人レベルでも破格のコストでモノが作れるので、少量生産でPICが使われる用途は、これからもどんどん拡大していくものと思います。
![]()