SSブログ
前の10件 | -

赤外線遮断検出による動体検知装置

 前記事「侵入者害獣撃退装置」で海外の農場に設置した装置を紹介しましたが、そこでは動体検出に焦電センサーを使っていてその検出距離は最大17m程度だったので実際には余裕を取って14m間隔で設置しました。現地で設置してみて感じたのはやはり検出距離が短いなあという事で、少なくとも30mは欲しいと思いました。
農場ということで日当たりは良いのでソーラー電源を使えることから、以前作った赤外線遮断検知方式のセンサーを改善してより実用的なものにするべく検討することにしました。

赤外線遮断検出装置構成図
IR遮断検出装置構成図.jpg

実機写真
IR遮断検出装置写真.jpg

赤外線リモコン用デバイスを使った動体検知 (1)」、「赤外線リモコン用デバイスを使った動体検知 (2)」では基本的な装置の回路と構造を決めましたが、製作や実際の設置においてちょっと難しかしい面もあったので今回変更しました。
 赤外線送受信間の距離が長くなるとどうしても発光部、受光部の角度の調整が必要なる事があり、これについては見た目は良くないですが発光部・受光部のみをユニットとして分離して取り付け自由度を増し、また設置調整をしやすくしました。
 主回路に繋がる発光・受光ユニットの数は欲張って夫々最大4個対応の回路にしていましたが、1本のポールに4つもあると あるユニットの調整作業中に他のユニットが動いてしまう事もあり作業しずらいので、最大2個接続の回路にしました。

 受光感度を上げるために受光モジュールにレンズ(本来はパワーLED放射光の集光用)を付け、且つレンズ周辺をアルミ蒸着フィルムで覆って内部反射させることで入ってきた光をできるだけ受光できるようにしました。発光側LEDは既に放射角が絞られているのでレンズは使わずそのままで使用しています。
これで赤外線の到達距離は凡そ40mありましたが、実際に安定して使える距離は30乃至35m程度だと思います。
なお、発光ユニットを2個接近して使用すると到達距離は62mあったので実使用距離は50m程度取れそうです。
 設置しやすさは別として、IR LEDの数を増やしたり個々のIR LEDの電流を増やしたりすれば距離はもっと伸ばせると思います。ただその際にはIR送信機のソーラー電源や3.3Vレギュレーターの容量も検討してください。

対応する親機は「各種動体検知装置に対応した統合型親機」で紹介しているものです。

製作関連資料の閲覧・ダウンロードは以下で出来ます。
回路図
送信機製作
受信機製作
ソフトウェア
使用法説明


屋内設置用の製作

 倉庫内に赤外線遮断検出装置を設置したいとの要望があったので屋内使用のものを製作しました。

屋内型の写真
IR遮断検出装置(屋内型) 写真.jpg

・電源はIR送信機、IR受信機共にACアダプターを使用しています。
・遮断検出時は親機への通報と共に赤青のパワーLEDのフラッシングによる警報を発します。
・2線検出/準2線検出用に基板はIR発光器とIR受光器を接続するコネクターを有しています。但しIR受信機の回路は上の記事のものと異なる構成で、2線検出/準2線検出の場合は2つの検出線が同時に遮断された時(AND)のみ検知判定され、いずれかの遮断が遮断されただけでは検知判定されません(OR判定はできない)。

関連資料の閲覧・ダウンロードは以下で出来ます。
回路図
製作方法
ソフトウェア
使用法説明


===== 関連記事 =====
赤外線リモコン用デバイスを使った動体検知 (1)
赤外線リモコン用デバイスを使った動体検知 (2)
各種動体検知装置に対応した統合型親機

>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

侵入者害獣撃退装置

 知人の依頼で海外の農場に侵入者ならびに害獣の撃退装置を設置することになり、次の物を製作したので紹介します。

1. センサー機からの検知信号でフラッシングするLEDフラッシャー。
2. センサー機自体にLEDフラッシングによる警告機能を持たせたもの。
3. 市販の防犯/防獣器の光・音アラームを本体外のセンサー機からの信号にも対応するようにしたもの。

侵入警報装置.jpg
設置機のフラッシング状態(ビデオ) => こちら

ここで言うセンサー機は圃場侵入者検知通報装置で製作したセンサー機(孫機)をベースにしており、上記装置でフラッシングや音の出す以外にも子機を介して親機に検知情報を送る事ができるものです。

無線信号の流れ.jpg


回路図、製作方法、ソフトウエアは以下よりダウンロードできます。
LEDフラッシャー
回路図
製作方法
PICソフト

LEDフラッシャー付きセンサー機
回路図
製作方法
PICソフト

改造害獣撃退器
回路図 & 改造方法
PICソフト


ソフトウェア・設定の変更について
 従来2センサー検知(誤検知軽減のため2つのセンサーが一定の時間内に相次いで検出した時のみ検知処理する)では、親機側で孫機の2つのセンサーから送られて来る検出信号を基に検知判定していましたが、LEDフラッシャーや害獣撃退器個々にもこの判定処理をさせると消費電力も増えるのでセンサー機(孫機)で検知判定を行うことにしました。またこれは送信頻度も減らせるのでセンサーが多い時の通信干渉によるエラーリスクの軽減にもなります。
ということでセンサー機(圃場侵入者検知通報装置で言うところの孫機)のPICプログラムは以下の物をお使いください。
なお「LEDフラッシャー付きセンサー機」のPICプログラムにはこの機能を既に盛り込んであります。

圃場侵入者の検知通報装置 (2/2)仕様の孫機用PICソフト

現在「圃場侵入者の検知通報装置 (2/2)」で使用しているPIC16F1827用のみ作ってあり、「圃場侵入者の検知通報装置 (1/2)」で使っているPIC12F1840用の物は準備してありません。必要な場合はPIC16F1827用を参考に作成していただけますようお願い致します。

このプログラムを使用する場合親機の設定方法も変更が必要になります。
このほか子機・孫機のグルーピングとPICプログラム内の設定変更に関する説明も含め下記の資料をご覧ください。

設定資料


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

ESP32からGoogleスプレッドシートへのデータ送信ソフト

 ESP32がセンサー等から取得したデータをGoogle Driveにあるスプレッドシートに送信して記入するサンプルソフトを作りました。
構成はデュアルタスクで、Task1(core 1)ではセンサー等からのデータ取得擬似処理(1秒おき)、Task2(core 0)ではデータをGoogle Spreadsheetへ送信(10秒おき)する処理を行っています。
送信データは日付時間とデータ10個ですが、データ数については必要に応じて加減すれば良いでしょう。(この場合SpreadsheetのApps ScriptとESP32の両方のコード変更が必要ですが難しい内容ではありません。Apps Script変更後は「新しいデプロイ」を行って更新されたウェブアプリURLでESP32スケッチを変更する必要があります。)

諸設定方法とESP32ソフトウェアは下記からダウンロードできます。
スプレッドシート作成とESP32プログラム編集方法
ESP32ソフトウェア

 今までSDカードに保存したデータをちょくちょく取り出していましたが、Google Spreadsheetにあるとどこからでも簡単に見られたりダウンロード出来て結構便利になりました。

 余談ですが「各種動体検知装置に対応した統合型親機」のソフトMODS_ESP32_GLCD.inoにGoogle Spreadsheetへの送信機能を追加したところ、ESP32_MailClient.hライブラリーを使ったメール送信プログラム部とHTTPClient.hライブラリーを使ったGoogle Spreadsheetへの送信プログラム部があると不具合が生じ、その不具合の内容がライブラリーをincludeする順番によって異なる事がありました。
HTTPClient.hを先にincludeするとGoogle Spreadsheetへの送信はできますがメール送信できず、後にincludeするとGuru Meditation Error: Core 0 panic'ed (InstrFetchProhibited)のエラーでリブートを繰り返します。
詳しい事は分かりませんが、両方を使えるようにするのは難しそうなので諦めました。


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

TWELITE標準アプリを使った簡易リモコン

 MONO TWELITE標準アプリを使ったシステムで、親機のある設定項目を子機モードのリモコンから信号を送る度にトグルで変え且つ親機からは現在の設定状態をリモコンに送り返してLED表示する仕様のものを作りました。
これは「各種動体検知装置に対応した統合型親機」で親機が検知時にメールやLINEで通知する機能のON/OFFをリモコンを使って行うために作ったものですが、方法は他の用途にも応用できるかもしれないので紹介します。

図1
TWELITEリモコン.jpg


 図1に「各種動体検知装置に対応した統合型親機」の検知通知機能のON/OFF用に作ったリモコン回路を示します。 写真はこちら

 TWELITEを標準アプリで使うと定期通信で電流消費をするためコイン電池電源では寿命が短くなってしまうので、送信時のみ電源を供給するような回路にしました。
スイッチを押すと一定時間(1.5秒程度) AO3401がONしてTWELITEに電源を供給します。AO3401のONから150mS程度*して2N7002がONしてDI1をLowにすると、TWELITEは検出信号を親機に送ると同時に親機から受信した4bitデータを反転してDO1~DO4に出力します。
*TWELITEは電源が立ち上がるとすぐに初回の定期通信が始まり100mS程度かかるので、DI1のLowにするタイミングは電源立ち上がりから150mS程度経過後になるようにしてあります。

 親機のTWELITEは改造した標準アプリを書き込んで使います。(後述)
正規の標準アプリでは 親機は間欠1秒受信モードの子機から信号を受信すると即座に4ビットのデータ(親機 DO1~DO4)を送り返すようになっていますが、改造標準アプリではこの送り返すデータ用変数を別途作ってその値(D1~D4)をUARTで設定できるようにしてあります。

 親機は検知通知モードがONの時は D4:0, D2:1、OFFの時はD4:1, D2:0をESP32からUART経由で設定しています。
・「各種動体検知装置に対応した統合型親機」ではD1, D3はセンサー子機の電源制御用に使用しているのでリモコン用にはD2, D4を使用しました。
・ON/OFFの状態を(D4,D2) = (0,1) / (1,0)と2bitで扱っているのはリモコンのLED点灯を自然にするためで、LEDの一端をVccまたはGNDに接続する方法では電源遷移時に不要な発光が起きるので好ましくありません。

今親機が検知通知モードONの時にリモコン信号を受信すると即座にD4:0, D2:1を含むデータをリモコンに送り返し(リモコンでは反転してDO4:1, DO2:0になる)、その後ESP32はD4:1, D2:0に設定を変え検知通知モードをOFFにする内部処理を行います。
検知通知モードがOFFの時にリモコン信号を受信すると即座にD4:1, D2:0を含むデータがリモコンに送り返され(リモコンでは反転してDO4:0, DO2:1になる)、その後ESP32はD4:0, D2:1に設定を変え検知通知モードをONにする内部処理を行います。
すなわちリモコンのDO状態により親機の検知通知モードの状態は次のようになり、それに応じたLEDが短く点灯します。
DO4:0, DO2:1 => 検知通知モード ON  赤LED点灯
DO4:1, DO2:0 => 検知通知モード OFF  緑LED点灯


TWELITEの設定

 親機のTWELITEは改造した標準アプリに書き替えます。(TWELITE STAGE使用)
こちらの資料に基づいてソースコードを変更してコンパイルと書き込みを行うか、こちらのフォルダー内のBINファイルを用いて書き込むかしてください。
 
 リモコンのTWELITEはインターラクティブモードで定期通信間隔を10,000mSに変更します。(通電期間の1,500mS以上であればよいと思いますが念のため最大にしておく。)

 TWELITEは複数のチャンネルを使用できるようになっていますが、経験的に 子機の数が多いと1チャンネルで使用する場合より信号の取りこぼしが起きやすいように思います。 
また、親機が複数存在すると子機(リモコン)に送り返されるデータが異なったりする場合があり動作に支障を来すことがあります。
このような事からチャンネルは1チャンネルのみ指定し且つ混信しないようデフォルトチャンネルと異なる番号に設定するのが良いと思います。(インターラクティブモードで行う)


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

PIC&ESP32書き込みツールの製作

 ESP32用書き込みツールPIC用書き込みツールをこれまでに作りましたが、いずれもUSB-シリアル変換モジュールを使っているのでその部分を共用して一体化することにしました。
モジュールとしては USB Micro BコネクターのFT231X搭載モジュール(ESP32用ツールで使用)を使いたかったのですが、信号のレベルが3.3VのみなのでPICによっては使えず*、結局PIC用ツールで使用したFT232RL搭載モジュール(USB mini Bコネクター)を使う事にしました。
*FT231X入力は5Vトレラントなので5V系PICが出力する信号は受信できます。もしFT231Xの出力する3~3.3V程度のHighレベル信号をHighレベルとして扱ってくれる5V系PICであれば問題なく通信できるのでFT321X搭載モジュールも使えると思います。AE-FT231Xを使った場合の回路はこちらのようになると思います。(動作確認はしていません)

回路図を図1に示します。

図1
PIC&ESP32_Writer.jpg

構成としてはPIC用とESP32用とで共用される信号線で切り替えの必要なものをアナログスイッチで切り替えるだけです。

資料は以下で閲覧・ダウンロードできます。
回路図ならびに製作図
使用方法


 回路について若干説明します。
PICのVPP電圧生成回路は電流余裕を得るためにDC-DCコンバーターを使いました。
必要とするPICがあるかどうかわかりませんが、20mA程度は問題なく得られます。
この回路は負荷が小さい時は間欠動作をしますが電圧の安定化はできています。
出力側のC14 チップセラミックコンデンサーはリップル軽減のもので、無くても問題ないリップルレベルかもしれませんが念のために入れてあります。
 VPP生成回路としてはST662Aというチャージポンプ方式で12V/30mA出力するフラッシュメモリー用プログラム電源デバイスがあり、これを使っても良いかもしれません。(その場合は9Vは12Vから三端子レギュレーターで生成する。)

 信号線の切り替えはCMOSアナログスイッチ74HC4053を使っています。 実回路での確認はしていませんがCMOS4000シリーズの4053でも問題ないと思います。
CMOSアナログスイッチはOFF時の入力インピーダンスが高くノイズを拾いやすいので直接基板外部に出るラインにはサージ対策として47Ωを入れてあります。

 ResetとProgram ボタンは、ESP32プログラム時に何らかの原因で自動で書き込みモードにならない時にマニュアルで書き込みモードにする時やESP32をリセットする時に使用します。(ESP32書き込みツールの製作 参照)

 PICとESP32の切換えスイッチが小さくてちょっと貧弱です。ちょっと大きめのスイッチを探したのですがケースの蓋に当たって蓋が閉まらなくなるのでやむを得ず現状品を使っています。いろいろな店で探せばもっと良いスイッチがあるかもしれません。


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

PICライター(PICerFT)の製作

 私の製作物の中でPICを使ったものはそのソフトウェアを提供していますが、それをPICに書き込む安価なツールが欲しいという方がおられるかもしれません。
純正のツールはデバッガー機能もあるので高価ですので 書き込み機能だけで安価なものを作れないかインターネットで探してみたところ、PICerFT という素晴らしいものがありましたので作ってみました。

PIC_Writer.jpg

 今回PICライターを製作するにあたり、これまでのいろいろなものを製作した際に購入した部品が結構余ってたので USBシリアル変換器AE-UM232R以外は新規購入しないというコンセプトでチャレンジしました。従いまして今回製作したものはオリジナルのPICerFT回路とは部品や回路が異なる箇所があります。
今のところ PIC12F1840, PIC16F1827, PIC24FJ64GA002, dsPIC33FJ64GP802 での書き込みは問題なくできていますが、他のデバイスについては検証できていませんので推奨できる回路ではありません。
回路と部品についてはあくまでもオリジナルのものを推奨しますが、抵抗器についてはチップに変えても良いのではないかと思います。その際には今回紹介している基板サイズと構造でも収納できると思いますので何らか参考になる部分があるかもしれません。

資料は以下で閲覧・ダウンロードできます。
回路図ならびに製作図
使用方法

 PICライターの部品コストは1,500円程度ですが、部品によってはパッケージ(複数個入り)購入なのでそれで計算すると2,500円程度かかると思われます。

今回製作した回路について説明します。

・ VPP電圧の元電圧生成にQ1 (2SC1815)でスイッチング動作していますが、安易に異なるトランジスターを用いるとスイッチング性能が悪かったりドライブ条件が不適当でQ1が発熱して発煙や発火に至る事があります。(この際Q1がショートモードで壊れるとL1を大きな電流が流れてL1も発煙・発火を起こす可能性があります。)
またスイッチング特性の低下やオン抵抗が増えたりすると十分な出力電圧が得られないこともあります。(L1の特性も出力電圧に影響します)
こういったことからQ1, L1についてはオリジナル回路で使われている部品を使うのが無難です。
私の製作した回路ではオリジナルと異なるものを使っていますが、オシロスコープで波形を確認したり部品の温度を確認して使っています。ただし同じ型のトランジスターでも個体差があるので推奨はできません。

・ VPP電圧生成に可変電圧レギュレーターNJM11100をIC2に使っていますがオリジナルでは12Vと9Vのツェナーダイオード 2本だけです。ツェナーを持ち合わせていれば当然それを使ったのですが、無かったのでNJM11100を使いました。
始めはNJM11100の電圧検出抵抗(R11~R14)は現在の値の1/10の値で構成していましたが、負荷が重くてIC2の入力電圧が低下して9Vの出力が出ませんでした。そこで電圧検出回路の抵抗を10倍したところ、9Vは出るようになったのですが未だ12Vは出ませんでした。更なる負荷の軽減のためR3,R4,R8の抵抗値を大きくし Q2をPチャンネルFET(AO3401)にしたら12Vが得られるようになりました。
但し、実際にVPP電圧12V品のPICを繋いで負荷を増やしたときに十分な電圧が出るかどうかは そういうデバイスを持っていないので確認しておりません。
<2023.10.14記> VPP電圧生成に関しては「PIC&ESP32書き込みツールの製作」で使っている回路やST662Aを使う回路などにするとVPP電流が大きめのデバイスでも安心して使えます。

・ RST信号(AE-UM232RのRI#出力)はLowレベルの出力が若干高い様でQ4にはコレクター電流が流れます。R3の値を大きくしたのでわずかなコレクター電流でもQ2をONするに十分なゲート電圧を生じていたので、R15を追加してQ4のベース電流を減らして(すなわちコレクター電流を減らして)Q2のONを防いでいます。


<2023.10.12記>
PICとESP32兼用書き込みツールを作りました。こちら参照。

===== 関連記事 =====
ESP32書き込みツールの製作


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

MONO TWELITE信号強度測定器の製作

 MONO TWELITEを使った装置の電波放射特性を同じくTWELITEを使った受信機が出力するLQI値を使って簡単に測定しようと「ESP32 & 2.8" G_LCD一体型ユニットの製作(2)」で作った受信装置を使ってみたのですが、被測定物の向きを変えて測る度に受信装置のところに読みに行かなければならなかったり、人が近づくことでLQI値が変動したりして不便でしたので、受信装置からWiFi でUDPを使ってデータを送信できるようにしようと考えました。
そしてこの際、以前やりかけて中断していた子供の「宝探しゲーム」(アマチュア無線でやるフォックスハンティングのようなもの)用の機能も追加して測定器(受信機)を完成しておくことにしました。

写真1は完成した受信機の外観で、図1は回路構成です。

写真1 TWELITE信号強度測定器
SignalMeter.jpg


図1 システムダイヤグラム
信号レベルメーターシステム図.jpg


関連資料は以下からダウンロードできます。
・回路図
・基板作製方法
・組み立て方法
・使用方法
・ソフトウェア

 ゲーム機能も持たせたのでちょっと複雑になっていますが、 UDPでのデータ送信だけであれば至ってシンプルでICはTWELITE, ESP32と3.3V Regだけで構成できます。

 ゲーム用の受信機は以前「ESP32 & 2.8" G_LCD一体型ユニットの製作(2)」で作製したものを使って信号強度をグラフィックLCDに表示したものを作ったのですが、天気の良い日に外に出て使ってみたら周囲の明るさに埋もれて画面が全く見えず使い物になりませんでしたので今回はLEDバーを使う事にしました。
 音量でも距離感をつかめないかと思い信号強度に応じてデジタルボリュームで音量操作をしてみたのですが、LEDバーと同じ20ステップでボリュームカーブ特性を持たせても1ステップの違いが余りはっきりとせず駄目でした。
そこで信号強度に応じて周波数を変えるようにしたところ1ステップの違いでも分かりやすくなりました。


ゲームモードについて

 送信機のTWELITE CUEをアンテナを上にして高さ約 1.5mに設置した場合、受信機(信号強度測定器)が検出できた距離は CUEの信号出力設定がTX1 で凡そ6m、TX2が凡そ20mでした。TX3は30m以上ですが測定場所が狭かったので距離は測定していません。
受信機を地面の高さにすると通信距離は短くなるので、送信機の電波が飛び過ぎの時は設置位置を低くして対応する方法も考えられます。

 プレイする場所の広さによって送信機の信号出力を選択しますが、出力が大きすぎると受信できる範囲が広すぎて目的物の存在範囲を絞り込みづらくなったり 受信機の信号検出LED(緑)が多く点灯して煩わしさを感じるかもしれません。
また実際に公園で使ったところ、フェンスなどの金属物による反射が影響する様で思わぬところで電波が強くなり惑わされることがありました。
こうしたことから出力は必要以上には大きくしない方が良さそうです。
逆に金属物のある近くには送信機を設置しないようにします。家の中で使ってみたところ鉄骨が使われているので送信機の位置がなかなか見つかりませんでした。ビルの中でも同様だと思います。

 受信機のLEDバーは、目安としてTX1の場合の青ゾーンは凡そ5m以内、TX2,TX3の場合の青ゾーンは凡そ10m以内になるようにしてあります。ただしこれはTWELITE CUEを改造したものを送信機に使った場合で、アンテナの異なる他のTWELITEを使った場合は当てはまりません。その場合はプログラム内のLEDバー用閾値の見直しをしてください。

 今回送信機にTWELITE CUEを使ったのはたまたま手元にあったこともあるのですが、基板アンテナも付き小型でコンパクトな仕様になっているからです。加速度センサーや磁気センサーも載っているのでこの用途にはもったいないのですが、他のTWELITEを買ってもケースや基板、電池ホルダーの取り付けなどをする手間やコストを考えるとあまり変わらなくなってしまうのではないかと思います。(CUEは税込み約2500円)
もちろん他のTWELITEでも良いのですが、アプリは標準アプリにしたり モード設定ピンの接続変更が必要になったりする思います。(「使用法」の「TWELITE設定」を参照してください。)


電池寿命
 
 単三ニッケル水素電池(Fujitsu HR-3UTHC, Ni-MH 2450mAh)をフル充電して動作時間を調べました。
(TWELITE送信機は0.33秒間隔で送信)

・受信機エンジニアモード、LEDバーはシングルモードで0.33秒おきのWiFi UDP通信をした場合で 13.5時間。
・受信機ゲームモード、LEDバーはマルチモード(20 LED全て点灯)で 12時間。
・受信機ゲームモード、LEDバーはシングルモード(青LED1個点灯)で 18.5時間。

LEDバーはマルチモードで点灯数が多いとWiFiより消費電流が多いようです。

TWELITE CUE送信機側は正確な時間は測定していませんが、新品のコイン電池(Golden Power CR2032)を使い送信出力TX2設定で3日間ぐらい連続使用できました。


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

自作焦電センサー回路を使った動体検知(3/3)

 今回は自作センサー回路のユニットを使った子機の製作方法について書きます。

 超高感度フレネルレンズは径が大きいので誤検出対策のための遮光筒が長くなり、収納用の塩ビパイプの径も大きくなります。
そのため以前作った子機では塩ビパイプに呼び径75(外形89mm)の物を使いましたが、サイズが結構大きくなり また塩ビ材の値段も高くなってしまったので、せめてもう一サイズ小さくしたいとの思いがありました。
そこで今回は呼び径65(外形76mm)の塩ビ材を用いて子機を作り、遮光筒の長さが短くなった影響やPICを使った処理の効果等をしばらく使って様子を見ることにしました。 どうしても筒が短いという事であれば、格好は悪くなりますが筒の部分だけ長くすれば対応もできます。

写真1 製作した実験機
焦電センサー子機.jpg

上の写真1は今回製作した実験機です。(実際に設置する場合は劣化を防ぐためにペイントしていますが、これはペイント前の状態です。)

収納ケースを小さくするために電源はソーラーパネルとニッケル水素電池(サイズ的には単4 x3本に近い)を使っています。
回路的には乾電池でも問題ないのですが、単1、単2または単3電池を複数本収納するスペースがなく、あえて使おうとすれば現在のケースの長さ(約21cm)を7cmぐらい長くする必要があり、大きくもなり格好も良くありません。
ソーラーパネルはAmazonで購入した Fielect製 5V 0.15W の物を使っていますが、SharpのLR0GC02 に置き換えても使えます。 LR0GC02では結構電力余裕があるので日光直射時間が短くても十分な充電ができ(もしかしたら散乱光のみでも十分な充電ができるかもしれません)、屋外の子機ではほとんど場合乾電池を使わずソーラー電源で行けるのではないかと思います。

 製作に関する資料は以下からダウンロードできます。
基板の製作方法
子機の製作方法


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

自作焦電センサー回路を使った動体検知(2/3)

 自作焦電センサー回路を使った動体検知(1) では電池で長時間駆動できる焦電センサー回路の実験機を作りました。
今回はそのセンサー回路が検出時に出力する検出パルスの処理について書きます。

 D203BのようなDual素子焦電センサーは検出物の移動する方向によって出力信号が定常時から”上昇してから下降”するか”下降してから上昇”します。そこで上昇検出用閾値を設定したコンパレーターと下降検出用閾値を設定したコンパレーターにセンサー出力信号を入力しておけば上昇時、下降時にそれぞれのコンパレーターから検出パルスが出力されます。
(個人的には上昇検出を上側検出または+側検出と呼び、下降検出を下側検出また-側検出と呼んでいます。)
移動体を検出した場合の検出パルスの特徴として上側検出パルスと下側検出パルスが連続して生成される(移動体の向きによって順番が逆になる)と言う事があり、これまで私の作った装置ではこの”異極パルスの連続検出時にのみ移動体を検出したと判断”することで誤検出を軽減しています。( => 猿検知通報装置の製作 の 2.検出方法参照。)

 最初に作った「猿検知通報装置の製作」では異極パルスの連続出力があるかを回路(ハードウェア)で判定し 連続検出がある時のみ信号を無線で親機に送っていましたが、「猿検知通報装置の製作(電池寿命改善品) 」以降では極性に関わらずセンサー検出パルスがあるとそれを親機に送信し 親機側で連続した異極パルスの受信があるかどうか判断するようにしました。
この方式は回路簡素化と消費電流を減らす目的で行ったのですが前者の方式に比べ 送信頻度が多くなるので、子機の数が増えると親機の受信数が増えて信号を取りこぼす可能性が生じます。(子機は検出パルス受信時以外にも10秒に1回の定期通信もしています)

ということで やはり子機側で異極パルスの連続出力の検出を行えるようにすることにしましたが、今回はハードウェアによる判定回路ではなくPICを使った判定を行うことにしました。
そして折角PICを使うのですから、プログラムで誤検出軽減の可能性を探って行きたいと思います。
(できれば現在誤検知対策で行っている2センサー検知( => 猿検知通報装置の製作 の 2.検出方法参照)を行わないで済むようにしたいです。)

図1 検出判定条件
検出判定条件.jpg


== 回路図 ==

 図2に検出パルスを生成するコンパレーター回路、検出パルスから移動体の検出判定とTWELITEへの検出信号送信を行うPIC回路、 無線送信デバイスのTWELITE回路並びに電源回路の回路図を示します。センサー2入力に対応しています。
(コンパレーター回路はセンサーユニットの基板に載せるスペースが無かったのでこちらの基板に移動しています。この際センサー信号ラインには両基板側で47Ωの抵抗を挿入してサージからデバイスを保護しています。)

図2 検出信号処理 & TWELITE送信回路
信号処理&送信回路.jpg

 焦電センサー回路は電源がノイジーだとエラーを起こしがちなのでこの回路専用のレギュレータを入れてあります。
PICやTWELITEの電源用にもレギュレータを入れてありますがこれはTWELITEに過電圧がかからないようにするためのものです。
3Vでなくても3.6V以下の出力のレギュレータであれば使えます。


== PICソフト ==

 PIC12F1840用ソフトウェアはこちらからダウンロードできます。
<2023.10.02記> 「PICライター(PICerFT)の製作」でPICライターの自作方法を紹介しています。 

 PICでは連続で異極性検出パルスを受信したかどうか、またその時間間隔などを調べて検出判定を行うようにしてあります。(図1)
従来の判定方法はパルスを受信した時点から次に異極のパルスを受信するまでの時間がある時間内(たとえば3秒内)であれば検出したと判定していましたが、今回は連続異極パルスの夫々の時間幅及び両パルスの時間間隔を判定条件として使えるようにしました。 これは適当な条件を設定することで できるだけ対象とする移動体のみを検出して他の物は検出判定しないようにできないか実験するためのもので、まだ効果の程は分かりません。
第2パルスの時間幅を判定条件に設定するとそのパルスがノンアクティブになるまで判定が行われないので判定が遅れる感じがすることがあります。

 TWELITEのデジタル入力端子への信号は2つの信号がアクティブ(Low)になるタイミングによっては後の入力は反映されずに親機に送信されないということがあります。
そこでPICでは2つのセンサーの検出結果は必要な時間間隔を空けてTWELITEに送り、親機への確実な送信ができるようにしてあります。

 PICは検出パルスが来た時のみwake upして動作し 通常はsleepモードなので消費電流は小さいです。


== TWELITEの設定 ==

 TWELITEは 標準アプリを使用します。(購入時は標準アプリになっている)
図1の結線の場合”間欠10秒モード”なので特に設定は要りません。
”間欠1秒モード”(M1とM2 Open)や”間欠受信1秒モード”(M2 Open)の場合はインターラクティブモードで間欠時間を 10,000ms に設定します。


== 親機 ==

親機は「猿検知通報装置関連まとめ」内で紹介しているものや「各種動体検知装置に対応した統合型親機」のものを使用してください。
その際 設定ファイル内の回路タイプ設定は PaPIRs 仕様で設定してください。


== 性能確認 ==

 PICソフトの時間的判定条件(タイムフィルター)を設定して検出性能を調べてみました。

(検出距離と検出率)
図3に結果を示します。

図3 検出距離と検出率
センサー検出距離と検出率.jpg

 センサーから16m以上の距離で NJU77552G の方が S-89431 より検出率が良いのはアンプのノイズ性能の差によるものと思われます。(やはり検出確度を上げるには低ノイズアンプを用いた方が良いという当然の帰結なのですが、S-89431 も用途によっては検出距離を短めに考慮するなどして使えると思います。)

一方センサーに近い領域ではセンサー信号が大きかったり飽和したりで閾値を超える時間が長くなり(検出パルス幅が大きくなる)、今回の設定である最大2.5秒では短かったものと思われます。(初めに1.5秒設定で渡来したところ検出エラーが多かったので2.5秒にしたのですが。)
実際には人が直角に横断するのではなく斜めに横断する場合などを考慮するともう少し長めに設定にしても良かったかもしれませんが、長くすると理屈の上では誤検出率も上がり また判定時間も長くなるので今回はこのままにすることにしました。

(誤検出率)
 図1に示す従来の時間的判定条件のセンサーと今回の時間的判定条件のセンサーとを意図的に風で揺れるの枝に向けて検出状態を見たところ、一見したところでは後者の方が検出頻度が低かったです。しかし、誤検出要因はいろいろあるので 実際に設置して様々な誤検出要因に遭遇させた結果を長期観察してみたいと思います。


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

自作焦電センサー回路を使った動体検知(1/3)

 これまで私の動体検知装置に関する記事(猿検知通報装置の製作猿検知通報装置の製作(電池寿命改善品) など)では初めは自作の焦電センサー回路を使っていましたが、途中より製作が簡単である事から専らPanasonicのPaPIRsを使う事が多くなっていました。
最近、以前購入しておいた超高感度フレネルレンズ AE-01(AK-FL1)を使いきってしまおうと自作回路を組むことにしたのですが、 以前使っていたOPアンプ NJU7014 は簡単に入手できず また値段も高いので置き換えることにしました。

OPアンプとコンパレーターは秋月電子で購入できるものの中から電池による長時間駆動を考えて消費電力が小さいものを選び、OPアンプはNJU77552GとS-89431BCFM-H4DTFU (以降S-89431と呼びます)、コンパレータはNJU77242RB1を使って実際に回路を作ってみました。
初期の回路ではOPアンプ NJU7014を信号増幅とコンパレータ用途に使っていましたが、今回はコンパレータは専用ICにしました。

表1 デバイスの消費電流
消費電流.jpg

表1に各デバイスの消費電流を示します。
これまで使っていたNJU7014に比べるとNJU77552Gは消費電流が大きくなっていますが、それでもNJU77552GとNJU77242RB1で構成される回路の消費電流はPaPIRsのEKMCシリーズより小さいので電池寿命的にはEKMCシリーズより長持ちすると思います。
S-89431BCFM-H4DTFU は極めて消費電流が小さく、電池寿命を大きく伸ばせると期待して実験することにしました。


== 回路構成 ==

NJU77552G、S-89431BCFM-H4DTFUを使った回路を図1に示します。

図1 焦電センサー回路
焦電センサー回路.jpg

電源はここには書いてありませんがこの焦電センサー回路専用の3V レギュレーターから供給しています。

焦電センサーメーカーの資料などでは2段目のOPアンプは反転構成にしてありますが、ここでは以前作ったNJU7014用回路構成をそのまま使っています。 NJU7014は出力電流が小さく、反転アンプの比較的低い入力抵抗ではゲインが食われて十分な増幅ができませんでした。

人が移動したときの焦電センサー出力信号の周波数成分は0.1~10Hz程度らしい(こちらの記事)ので、オペアンプ回路の定数はこの記事を参考にしました。

図2 OPアンプノイズ
OPアンプノイズ.jpg

NJU77552G、S-89431共にNJU7014に比べると低周波ノイズ が大きく(特にS-89431は大きい = 図2)、そのためセンサー信号がコンパレーター閾値近くになると検出パルスのチャタリングを生じます。
チャタリングがあっても回路によっては無視して問題ないようにする事もできますが、今回は後段にPICを繋いで割り込み処理を考えているので処理負荷軽減のためにチャタリングを押さえたく、コンパレーターにヒステリシス特性を持たせました。
このためコンパレータ周辺の回路が複雑になっていて、FETによるバッファ兼インバータ回路を追加も必要になりました。

閾値電圧及びヒステリシス電圧の生成回路は高インピーダンスで微小電流なので注意が必要です。
オシロスコープのプローブを当てただけで電圧は変わってしまうので、例えば閾値の電圧を調べるにはコンパレータへのセンサー信号入力とコンパレータ出力の夫々にオシロスコープのプローブを繋ぎ、センサー信号を変化させてコンパレータ出力に検出パルスを生じせしめ その立上がり/立下りにおけるセンサー信号の電圧を読み取るようにします。
ダイオードは同じ型名でも個体間差があるかもしれませんし、異なる型の場合は一層違いが生じるかもしれませんのでオシロスコープでの確認がどうしても必要になります。

以下は図1の回路の閾値実測結果です。
上側検出ON閾値: 1.78V
上側検出OFF閾値: 1.64V ヒステリシス 0.14V (1.78-1.64)
下側検出ON閾値: 1.26V
下側検出OFF閾値: 1.38V ヒステリシス 0.12V (1.38-1.26)

検出ONの閾値はわずかに上側にシフトしていますが、たまたまセンサー信号のOPアンプ出力平均電圧が上側(Vdd/2 = 1.5Vより上)に少しずれているのでこのままにしました。(ちなみにOPアンプ出力の平均電圧を変えるには5番ピンに繋がるバイアス抵抗の値を変えればできます。)

上側下側の検出OFF閾値は、OPアンプの平均出力電圧が常にそれらの間にあるように設定し 且つ必要なヒステリシスが得られる範囲で出来るだけ検出ON閾値に近い電圧に設定します。
そうなっていないと検出時にアクティブになった検出パルスがノンアクティブに戻らなかったり、戻るのに時間が長くかかる事があります。

コンパレーター回路が複雑になり従来のセンサーユニットの基板に回路を載せきれなくなったので、コンパレーター回路は次の段の基板に搭載しました。


== 検出距離 ==

(測定方法)
・NJU7014は従来の回路(猿検知通報装置の製作(電池寿命改善品)の図1)
・NJU77552G、S-89431は図1の回路
・センサー高さ 約45cm
・大人が秒速 1.5m程度で歩いてセンサー前方を横断し、検出可能なセンサーからの最大距離を測定。
・検出方法は異極順次検出パルス方式(猿検知通報装置の製作 の 2.検出方法参照。)

(結果)
いずれも 約26m で同等。

検出距離は天気、気温、背景など環境に影響され、ここに示す値は常に得られるものではありません。 26mという値は比較的良い環境条件下のものと思います。


== 結論 ==

 NJU77552G、S-89431は検出距離に関しては従来使ってきたNJU7014と同等。
但し、ノイズが比較的大きいのでそれによる誤検出あるいは本来検出すべきところ検出できないなどが起きかねず、これについて調査が必要。


次回は検出パルスの処理について書きます。
その検討の中で上記のNJU77552G、S-89431の検出確度を見て行きたいと思います。


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー
前の10件 | -