まえがき
集合住宅、戸建てに関わらず足場を組む規模の修繕工事では窓の防犯対策が特に気になります。24GHZ帯マイクロ波はガラス窓を通過しますので、マイクロ波ドップラーセンサを屋内から窓越しに設置して、屋外で動きのあるものを捕らえることが出来ます。使用したマイクロ波センサモジュールがNJR4265(サイト内参照ページ)です。屋内・屋外にて使用できます。
ただし、動きに反応しますので風で動く物はきちんと固定することが大事ですし、猫が足場に上ってきても反応するでしょう。
ドップラーセンサの設置
写真の様に窓ガラスに直接両面テープで止めて固定します。修繕工事等の一時的な防犯用途ですので両面テープとしました。使用する両面テープは剥がす事も考えて「強力接着でも取りやすい」と謳っているものにしました。(ニトムズはがせる両面テープ)
両面テープを使用した理由はもうひとつあり、ガラスに出来るだけ密着させたいのです。隙間があると電波が室内に漏れて室内の動きを誤って捕らえてしまうことがあるのです。
また大抵の窓は「引き違い窓」だと思います。開けるときにセンサがぶつかるため、このセンサが取り付けられるのはどちらか片方の窓となります。
ケースから出ている2つのコネクタは6極の電話モジュラーコネクタで、電源供給と接近/離反信号の取り出しをしています。電話モジュラーコネクタが2つあるのは数珠つなぎに複数台を接続するためです。
当方が決めた仕様のひとつに日光の当たる窓には設置しないことがあります。センサが高温になりますので自動車用電子機器並の高温特性が必要なため設計も難しいと思われます。大規模修繕中に特化したのは、足場の外に防護シートを取り付ける前提があるため夏場でも日光が遮断されるからです。
ドップラーセンサー設定機
NJR4265モジュールは閾値設定(センサー感度の設定)が出来ます。UARTの場合1から999の範囲です。この設定はセンサーを窓に設置した後、一つ一つ行う必要があります。窓の外には足場があり目隠しシートで覆われている想定ですが微妙に環境が異なりますのでどの程度の距離で検知するかの調整が必要です。一人で設定するため屋外から(足場から)窓に向かってセンサーに手のひら等を接近させたり離したりして設定閾値を決められるよう「設定機」を作りました。
設定機からドップラーセンサーへ閾値を送る方法は赤外線リモコンです。キーボードと液晶により閾値を設定し送信します。右の写真は赤外線LEDで3個の直列LEDを1組としてケース正面と底面の2箇所に付けました。
ドップラーセンサの概要
NJR4265モジュールはUARTを使用してPIC18F25K22が制御しています。NJR4265モジュールの閾値設定用(センサー感度の設定)の赤外線リモコン受信モジュールは、屋内と屋外のどちらからでも出来るように受光部は2つあります。
「屋外側」は窓に接しますので結露対策として、ケース内側から透明アクリル板を接着しています。下左の写真はアクリル板を接着した後のものではみ出した接着剤が白くなっています。
赤外線が窓ガラス通過出来るかを型ガラス(透明ではない凸凹したガラスでかつ防音用の合わせガラス)で試したところ1メートル以上離れていても通信出来ました。屋外から調整する場合、足場の幅分の距離まで届けば良く壁面から足場の外まで凡そ1メートル程度ですので十分でしょう。
赤外線リモコンの通信は単純なUART/300BPIで、設定機側PICマイコン(PIC16F1823)のDSM(Data Signal Modulator)により38KHZで変調しています。受信は38KHZ復調器が入ったGP1UXC41QSを使用することでUART/300BPI出力をそのまま取り出しました。
余談ですが、窓の外には面格子が取り付けてありまして金属の格子を避けるようセンサを格子間に設置したところ、面格子の影響は受けませんでした。
ポイント
筐体に関するポイントとしてはシールドケースを使用することです。当初、市販のプラスチックケースで試しましたがガラスに反射した一部の電波が室内に回り込んでしまい、室内の動きを捕らえてしまいました。
窓ガラスに直接貼り付けますので冬場の結露を考慮すると市販のアルミケースでは重いですし防水が面倒です。そこでタカチ電機工業のESW型シールドプラスチックケースを使用しました。これはケース内側に電解メッキが施されています。更にNJR4265モジュールをケースの丁度中央に配置することで屋内へ漏れようとする電波を均等に遮蔽しています。遮蔽を考慮するならばガラスに接する面積は大きいほど良いのですが今回は100o×65o×35oで試しています。窓ガラスと接する面にあるNJR4265モジュールやLED等の穴は内側からアクリル板を当て接着剤で固定することで防水を実現しました。
閾値設定はNJR4265のUARTから行いました。1(低感度)から999(高感度)迄の範囲で設定出来ますが、当方が試したところでは255程度まで絞りました。少しでも感度を上げると室内のカーテンやプラインドの揺れにも反応しましたので、いかに室内へ電波が漏れないようにするかが重要なようです。
ドップラーセンサーの回路
フラットパッケージのPICのためICSPプログラミング用にコネクタを出しています。
ICSPプログラミング時にシステム電源はOFFにしており、5V供給がプログラマーからとなるためその供給された5Vがシステム内に回らぬようKHS22のスイッチで切れるようにしています。
込み入っているのは屋内用と屋外用のLEDや赤外線受光部があるためで大まかには UARTを2つ使用しているだけです。
2つのUARTの精度をそれなりに維持するため外部クリスタルによるクロックとしました。
UART1にはNJR4265を接続しています。UART2(RX2のみ)には赤外線受光部(GP1UXC41QS)を接続しており、その経路には赤外線受光部の屋外用と屋内用を切換えるためゲート(74HC02)があります。
RA2と3はオープンコレクタのトランジスタに接続され電話用モジュラーコネクタにより外部へインターフェースされます。
RA4と5は識別コード設定用で、窓同士が近い場合、隣の赤外線信号を受けないようにするためのものです。設定機側で変更出来るようにしており一致したらデータとして使用します。
RA0で赤外線受光部及びLEDの屋内外切換えを行っています。屋外から見たときLEDが表示しない用に出来ます。
RA1でRA2と3の外部出力をON/OFFしてします。センサー設定時等で一時的に外部出力を止めたい場合に使用することを想定しています。
MLCRとRB7に接続されているダイオードと抵抗はICSPプログラミング時の保護用で、 回路内への流入阻止が目的でVFが小さいSBDを使用しました。順方向電流は僅かなので予測VFは0.2V未満です。PIC18F25K22のMCLRピンInput High Voltage Min.は0.8VDDなので3.3V×0.8=2.64V 3.3V-0.2V=3.1Vと条件は満たしました。直列の抵抗はダイオードが壊れたときの予備です。
回路図の最後にドップラーセンサー設定機からのデータ仕様を記載しました。ドップラーセンサー側でのエラーチッェクのため補数データを載せて送信しています。受信側で補数を使ってエラーチッェクを行います。
ドップラーセンサーのプログラム(CCS C)のソース(NJR4265sensor.c)
UARTを2つ定義するときは下記のようにストリーム識別子を用いました。
#use rs232(省略, STREAM=njr4265)
#use rs232(省略, STREAM=ir)
トラブルシュート(1)
2つのUARTの内赤外線は無線なのでエラーが起きやすいと考えて、センサー(赤外線受信機)と設定機(赤外線送信機)の間に障害物を入れて故意に受信エラーを起こす実験をしたところ、恐らくWDTによる再起動がかかってしまいました。そこで#use rs232の定義内に「ERRORS」を追加して再起動を回避しました。CCSマニュアルには「エラーが発生するとポートをリセットします」と記載がありました。勿論ここでのエラーはUARTの物理 エラーのことでどこかの1ビットが反転した場合エラーにはなりませんが、補数データを使用してプログラムにてチェックをしています。
トラブルシュート(2)
NJR4265から「ERコマンド」を時々受信しました。閾値設定作業時にセンサーからは「移動物検知コマンド」が、設定機からは「設定変更コマンド」がそれぞれ頻繁に送信されます。このことからNJR4265からの「移動物検知コマンド」とPICからの「設定変更コマンド」が同時に発生し処理しきれなくなると仮説を立て「移動物検知コマンド」を止めることを試みました。閾値を1に設定するのです。(@SP1と@SM1)少し無駄にも思えますが、本来の閾値を設定する前に一度止めるのです。このようにしたら「 ERコマンド」を受信しなくなりました。
テスト用ドップラーセンサー設定機の回路とCCS Cプログラム
PICのDSM部分がわかりやすいよう、液晶もキーボードもないテスト回路とプログラムを示します。
RA0と1は識別コード設定用です。
RC3とRA3、4、5は押しボタンスイッチです。
RA5はスイッチを押す度に(閾値=閾値+1)した値を1回だけ送信します。長押しすると( 閾値=閾値+10)値を繰り返し送信します。RA4はスイッチを押す度に(閾値=閾値-1)値を1回だけ送信します。長押しすると(閾値=閾値-10)値を繰り返し送信します。閾値の下限は1で上限は999で、閾値の初期値は設定機プログラム内のものです。
RA3とRC3はスイッチ押す毎にコードを送信します。コードとはセンサーに対する「コマンド」のようなものです。閾値は10ビットデータですが1000から1023は未使用です。 閾値で使用しない部分に意味を持たせており、1005は+1、1013は+10、1009は-1、 1017は-10と決め、センサープログラム内で持っている閾値に+1から-10をさせるものです。
300BPSを38KHZで変調させた結果はTXから出力されますのでトランジスタで赤外線LED ×3つをドライブします。本番用赤外線LED電流制限抵抗は170mAで計算していますので38KHZでの変調出力ではなく直流が流れるとLED等が壊れますので、テスト中は100 Ωを使用しました。
UARTを変調させるCCS Cの元となったプログラムは下記のサイトにありました。PICの機能でDSM(Data SignalModulator)を使用しています。https://www.ccsinfo.com/forum/viewtopic.php?t=50356
上記を元に作ったこの回路のCCS CプログラムがIrsend16F1823.cです。