技術コラム(第22回)焦電型赤外線センサについて

このコラムでは、焦電型赤外線センサについて以下の流れでご説明いたします。

焦電型赤外線センサとは?
焦電型赤外線センサの具体例
焦電型赤外線センサの応用
終わりに

焦電型赤外線センサとは?

焦電型赤外線センサとは、人の検知に用いられるセンサです。家の前やトイレの中など、人を検知すると点灯するライトを見たことはないでしょうか?このようなライトのほとんどに使用されているのが焦電型赤外線センサです。

焦電型赤外線センサ付きライト 写真

人は熱を持っており、その熱が赤外線を発します。焦電型赤外線センサはその赤外線の変化を検出し、人を検知することができます。トイレであまり動かないでいるとライトが勝手に消えた経験はありませんか?これは、人がずっと動かなかったために、赤外線の変化が検出できず、人がいないと判定してしまったために起こる現象です。

焦電型赤外線センサの具体例

世の中には、様々なタイプの焦電型赤外線センサがあります。ここでは、秋月電子通商様などで容易に入手できる一般的なタイプのセンサをご紹介いたします。

メーカー:Nanyang Senba Optical&Electronic Co.,Ltd.
品番:SB612A
電源電圧:3.3~12V※
消費電流:30μA以下
検知距離:最大8m
検知角度:115°

焦電型赤外線センサ 写真

※注意
秋月電子通商様のSB612Aページにデータシートがあります。ただ、仕様変更があったのか、テータシートとセンサ実物には違いがあるので注意が必要です。
センサにはレギュレータが搭載されており、以下の通りとなっています。
 データシート回路図のレギュレータ情報:7530/6203/3.0V
 センサ実物で確認できる型番:7533-1#S0411A
上記からわかる通り、レギュレータの型番がデータシートと実物で異なります。実際に搭載されている7533というレギュレータを調べてみると、おそらく3.3V出力/低ドロップタイプのレギュレータのようです。
センサの電源電圧は3.3~12Vで利用できるという記載になっていますが、レギュレータの都合から3.3Vでは動作が不安定になる可能性があると考えられます。利用する際は、電源電圧への注意が必要です。

センサには、3Pinと2Pinのヘッダピンがついています。
それぞれの構成は以下の通りです。

  • 3Pin側:VCC、出力端子、GND
  • 2Pin側:VCC、出力端子

SB612A ヘッダピン写真

それぞれのピンの役割は以下の通りです。

  • VCC、GND
    電源を接続する端子です。
  • 出力端子(3pin側・有電圧出力)
    赤外線の変化を検出したらHighを出力し、そうでない場合はLowを出力します。
    この出力端子は有電圧出力です。また、このセンサはDelay timeでタイマー時間を設定することができます。動作は以下の通りとなります。
    • 一度Highになるとタイマー時間中はずっとHighのままです。
    • タイマー時間中に赤外線の変化を検出しなかった場合、出力端子はLowになります。
    • タイマー時間中に赤外線の変化を検出した場合、その瞬間からタイマー時間をカウントしなおします。出力端子はHighのままです。
  • 出力端子(2pin側・無電圧出力)
    出力端子(3pin側・有電圧出力)とは違い無電圧出力(オープンコレクタ)となっています。このため、VCCと出力端子(2pin側・無電圧出力)にLEDなどを接続することで直接動作させることができます。

センサにはポテンショメータが3つついています。
それぞれのポテンショメータには以下のような役割があります。

  • Delay time
    上述した通り、タイマー時間を設定できます。
  • Dark sens
    昼光センサの感度を調節できます。
    昼光センサが光を検出すると赤外線センサが停止し、人を検知できなくなります。
  • Sens
    赤外線センサ部の感度を調整できます。
    調整することで、人を検知できる距離や角度が変わります。

SB612A ポテンショメータ写真

焦電型赤外線センサの応用

焦電型赤外線センサを離れた場所に設置し、手元のPCでセンサの様子を確認する人感デバイスを作ってみました。(”たいチャレ”でご紹介したものと同じです。)

人感デバイス概要

人感デバイス写真

PC-デバイス間の通信には無線モジュールを利用しました。
 デバイス側:TWELITE DIP
 PC側:MONOSTICK
ファームウェアにはメーカーで用意されている無線タグアプリ (App_Tag)を利用します。
ファームウェアの書き込みが必要なので、TWELITE R2も必要になります。
設置しやすくするため、デバイスは電池駆動としました。また、無線モジュールを搭載する基板を作り、それらを収納する筐体を3Dプリンタで作りました。筐体の外側は見栄えをよくするため白で塗装しています。

無線モジュール搭載基板

また、基板の回路図は右記の通りとなります。
主要な部品は、

  • 電池
  • レギュレータ
  • センサ
  • 無線モジュール

というシンプルな構成になっています。

人感デバイス 回路図

回路図上のCN1、CN2コネクタへの接続は以下の通りです。

コネクタ
部品番号
コネクタ
ピン番号
接続先
CN11電池のプラス
CN12電池のマイナス
CN21センサのVCC(3pin側)
CN22センサの出力端子(2pin側・無電圧出力)
CN23センサのGND(3pin側)

無線モジュールファームウェア書き込み&設定手順

TWELITE DIP(デバイス側)のファームウェア書き込み

TWELITE DIP(デバイス側)にファームウェアを書き込みます。姉妹サイトである無線モジュール.comにも手順が記載されています(ただし、書き込むファームウェアは今回のものと別)。興味のある方はご覧ください。

(1)「TWELITE STAGE APP」をインストールする。
モノワイヤレス様から「TWELITE STAGE SDK」をダウンロードし、任意フォルダに解凍します。

(2)TWELITE DIPを差し込んだTWELITE R2をPCに接続する。

(3)「TWELITE STAGE APP」を起動する。
手順(1)で解凍したフォルダの中の「TWELITE_Stage.exe」を起動します。起動するとウィンドウが二つ表示されます。

(4)1:TWELITE R2(R257MHQS)を選択する。
シリアルポート選択と表示されているウィンドウ(下図右側)の「1:TWELITE R2(R257MHQS)」をマウスでクリックします。

TWELITE STAGE APPシリアルポート選択画面

(5)2:アプリ書換を選択する。
手順(4)と同じウィンドウに表示されている「2:アプリ書換」をマウスでクリックします。

TWELITE STAGE APP機能選択画面

(6)3:TWELITE APPSビルド&書換を選択する。
手順(4)と同じウィンドウに表示されている「3:TWELITE APPSビルド&書換」をマウスでクリックします。

TWELITE STAGE APPアプリ書換方法選択画面

(7)6:App_Tagを選択する。
手順(4)と同じウィンドウに表示されている「6:App_Tag」をマウスでクリックします。

TWELITE STAGE APPアプリ選択画面

(8)1:App_Tag_EndDevice_Inputを選択する。
手順(4)と同じウィンドウに表示されている「1:App_Tag_EndDevice_Input」をマウスでクリックします。

TWELITE STAGE APPアプリ選択画面2

(9)完了画面を確認し、PCから無線モジュールを外す。
コンパイルと書き込みが始まります。下図の画面が表示されれば書き込み完了です。ウィンドウを閉じて、PCから外してください。

TWELITE STAGE APP書込完了画面

TWELITE DIP(デバイス側)の設定

TWELITE DIPの設定をします。設定にはインタラクティブモードに入る必要があります。ただ、インタラクティブモードに入るにはI/Oピンをいじる必要があります。今回はI/Oピンをいじらなくてもできる、OTA機能を利用して設定を変更します。
OTA機能とは、MONOSTICKから無線を飛ばしてTWELITE DIPの設定を変更できる機能です。
※MONOSTICKはPC側に利用する無線モジュールですが、まずは設定変更のために利用します。
 TWELITE DIP設定後、PC側として利用するためのファームウェアを書き込みます。

(1)MONOSTICKにファームウェアを書き込みます。
MONOSTICKにApp_Tag_EndDevice_Input_OTAというファームウェアを書き込みます。手順は「TWELITE DIP(デバイス側)のファームウェア書き込み」と同様です(無線モジュール名とファームウェア名が異なるだけです)。
書き込み完了後、ウィンドウをクリックするとターミナルウィンドウに設定画面(インタラクティブモード)に切り替わります。

TWELITE STAGE APP設定画面

(2)設定値を変更します。
コマンド、設定値を順番に入力しEnterキーを押せば設定されます。設定完了後、コマンド「S」で保存してください。
変更すべき設定値を以下表にまとめます(下記表以外の設定値は初期値のままで構いません。)。設定値の詳細はAppTagアプリのページを参照してください。

コマンド機能変更後設定値備考
x送信出力の設定0x311桁目:送信出力(0~3)数字が多いほど電波強度が上がります
2桁目:再送回数(0~9)
今回は、遠くまで飛ばせるようにするため電波強度を上げました。
その代わり電池の消費を抑えるため、再送回数は1回にしています。
oオプションビットの設定0x01様々な設定ができます。
初期値(0x11)では別アプリとの通信になってしまうため変更が必要です。
mセンサ種別の設定0xFE今回はHighやLowを出力するセンサを利用するため、ボタンモードに設定しました。
pセンサ固有パラメータの設定20:DI1の立ち下がりエッジを検出
1:DI1の立ち上がりエッジを検出
2:DI1の立ち下がりエッジ、DI2の立ち上がりエッジを検出
4:TWELITE SWING用設定(起動後ただちにパケット送信し、スリープを行わない)
※DI1やDI2はTWELITE DIPのIOピンです。
今回はDI1とDI2にセンサの出力端子を接続し、
人の検知/非検知の両方を通知できるようにしました。

(3)TWELITE DIPの設定を変更します。
TWELITE DIPを差し込んだTWELITE R2をPCに接続してください。すると、MONOSTICKから設定値が送られます。成功すると、SUCCESSと表示されます。設定値を送る際は、モジュール同士をかなり近づけないと失敗するときがあります。

TWELITE STAGE APP OVA設定成功画面

MONOSTICK(PC側)のファームウェア書き込み

「TWELITE DIP(デバイス側)のファームウェア書き込み」の手順と同様に、App_Tag_Parent_MONOSTICKというファームウェアを書き込みます。
ファームウェア書き込み完了後、画面をクリックすると通信が始まり、ターミナルに通信結果が表示されます。
MONOSTICKは設定変更しなくてもそのまま使えます。

TWELITE STAGE APP MONOSTICK動作画面

動作確認

人感デバイスの動作確認を行います。セッティングは以下の通り行いました。

  1. ファームウェアの書き込み&設定変更を行ったTWELITE DIPを人感デバイスの基板に乗せる
  2. 人感デバイスに電池を入れる
  3. 人感デバイスを天井に設置する
  4. 人感デバイスの下にMONOSTICKを接続したPCを設置する
    ただし、Wi-Fiなど他の電波の影響を避けるため、MONOSTICKは延長USBケーブル(1m)を介しててPCと接続。TWELITE DIPとMONOSTICKの距離は2mほど離れた状態。

動作確認は、センサに搭載されているポテンショメータを変更して複数回行いました。
結果は以下の通りです。

ポテンショメータ デフォルト状態

センサのすべてのポテンショメータを時計回りに最大まで回した状態(デフォルト状態)で試験を行いました。
結果は以下の通りとなりました。

TWELITE STAGE APP MONOSTICK動作画面2

ターミナル(左側ウィンドウ)には、MONOSTICKを接続してからの経過時間が表示されます。::ts=○○という表記の○○部分の数字が経過時間(秒)を示します。また、データを受信したときは”::rc=…”から始まるデータがターミナルに表示されます。
上記画像では、”::rc=…”は3回表示されているため、データを3回受信していることがわかります。受信したデータには以下のような意味があります。

記号意味
rc中継機のSID(中継していない場合は0x80000000)
lqLQI(電波通信品質を示す値)
数値の目安:50未満(悪い)、50~100(やや悪い)、100~150(良好)、150以上(アンテナ近傍)
ct続き番号
ed子機SID
id子機論理デバイスID
ba子機の電源電圧(mV)
btDI1の状態

つまり、bt値に注目してみると、
bt=0000のとき、人非検知
bt=0001のとき、人検知
という事になり、人を検出することができます。実際の人の有無とターミナルの表示が対応していることも確認できました。

Delay time変更

次に、ポテンショメータのDelay timeを反時計回りに15°回して動作確認しました。Delay time以外のポテンショメータはデフォルトです。
確認は以下の手順で行いました。

  1. 初めにbt=0000を検出するまで待つ(じっとしている)
  2. 1.の状態になったらすぐセンサに向かって手を振る
  3. bt=0001を検出したら、bt=0000を検出するまで待つ(じっとしている)

”ポテンショメータ デフォルト状態”でも同様の手順で確認を行いました。”ポテンショメータ デフォルト状態”と今回を比較すると、b=0001を検出してからbt=0000を検出するまでが長くなったことがわかります。

TWELITE STAGE APP MONOSTICK動作画面3

さらにポテンショメータを回転させると、b=0001を検出してからbt=0000を検出するまでの時間がさらに延びていくことも確認できました。
データシートには、ポテンショメータの電圧と時間の関係が載っています。利用する際はそちらもご覧ください。

Dark sens変更

同様にポテンショメータのDark sensを変更して動作を確認しました。Dark sens以外のポテンショメータはデフォルトです。

部屋の照明をつけた状態で、Dark sensを反時計回りに少しずつ回して確認しました。
人感デバイスは照明のそばに設置したのですが、Dark sensを90°程回すと人検知しなくなりました。
次に、Dark sensの設定を維持したまま、照明を消してセンサに向かって手を振りました。
すると、今度は人検知できることが確認できました。

このように、Dark sensを調整すれば、部屋の照明がついていないときだけ人検知することができます。

Sens変更

同様にポテンショメータのSensを変更して動作を確認しました。Sens以外のポテンショメータはデフォルトです。

Sensを反時計回りに少しずつ回して確認しました。
人感デバイスと人の距離はおよそ2mほど離れているのですが、Sensを10°程回すと人検知しなくなりました。
さらに5°程回すと、50cm程度の位置まで近づかないと人検知できなくなりました。

このように少し回しただけで検知距離が大きく変わります。利用条件にもよるかもしれませんが、やや調整が難しいと思います。

動作確認まとめ

焦電型赤外線センサのポテンショメータを調整すれば、状況に応じて使い方を変えられることがわかりました。また、センサと無線モジュールと組み合わせれば、人を検知するデバイスが簡単に作れることもわかりました。人を検知できるようになると、他デバイスと組み合わせ様々な製品が作ることができます。ぜひ焦電型赤外線センサを使ってみてください。

終わりに

本技術コラムでは焦電型赤外線センサについて取り上げました。組込開発.comでは他にも様々なセンサを利用した開発が可能です。また、無線モジュールを利用した開発も承っております。センサと無線モジュールを利用した開発実績は以下リンクよりご確認ください。

また、姉妹サイトである、無線モジュール.comでは、無線モジュールの販売や案件に合わせた無線モジュールの提案を行っております。ご興味ある方は是非ご覧ください。

投稿者プロフィール

ソフト担当T
ソフト担当T
メインはソフト担当ですが、筐体設計も担当します。プログラミング言語はPythonやC言語の経験が多いです。また、たいチャレ(詳細は右バーナー参照)にも参加しており、日々、様々なことを学びながら業務に取り組んでいます。