Skip to main content

Grove - 人体存在センサー (AK9753)

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Grove - 人体存在センサーは、人間の体やその他の赤外線物体の存在を検出するために使用できます。さらに、4つの量子型赤外線センサーと特性補償用の集積回路(IC)で構成されているため、赤外線物体の動きや赤外線物体が移動する相対位置を検出することができます。統合されたアナログ-デジタルコンバーターは16ビットのデータ出力を提供します。このモジュールは数フィートの距離での人体検出に適しています。

当社のウェブサイトでは多くの赤外線センサーを見つけることができますが、このセンサーは最も興味深いものの1つです。特定のアルゴリズムを使用することで、ジェスチャー認識を実現することも可能です。ぜひお楽しみください。

特徴

  • 4つの赤外線要素を備えた量子型赤外線センサー
  • I2Cバスへの16ビットデジタル出力
  • 統合された温度センサー
  • 割り込み機能
  • 低消費電力

仕様

項目
動作電圧3.3V / 5V
動作温度-30℃ ~ 85℃
人体存在検出範囲< 3m
赤外線出力解像度16ビット
温度測定範囲-10℃ ~ 60 ℃
インターフェースI2C
I2Cアドレス0x64(デフォルト)
0x65 / 0x66(設定可能)

典型的な用途

  • 人体検出
  • 近接センサー
  • 動作検出

ハードウェア概要

ピンアウト

回路図

電源

AK9763は低動作電圧(1.71~3.63V)で動作するため、安定した3.3Vを提供するためにXC6206P332MRチップを使用しています。XC6206P33の入力範囲は1.8Vから6.0Vまでなので、このモジュールはArduinoで3.3Vと5Vの両方で使用することができます。

双方向レベルシフター回路

これは、I2Cバスの異なる電圧セクションを接続するための典型的な双方向レベルシフター回路です。このセンサーのI2Cバスは3.3Vを使用しますが、ArduinoのI2Cバスが5Vを使用する場合、この回路が必要になります。上記の回路図では、Q1Q2はNチャネルMOSFET 2N7002Aで、双方向スイッチとして機能します。この部分をよりよく理解するために、AN10441を参照することができます。

対応プラットフォーム

ArduinoRaspberry Pi
caution

上記で対応していると記載されているプラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム向けのソフトウェアライブラリやコード例のみを提供しています。すべての可能なMCUプラットフォーム向けにソフトウェアライブラリやデモコードを提供することはできません。そのため、ユーザー自身でソフトウェアライブラリを作成する必要があります。

はじめに

Arduinoで遊ぶ

ハードウェア

必要な材料

Seeeduino V4.2Base ShieldGrove - Human Presence Sensor (AK9753)
画像を入力してください画像を入力してください画像を入力してください
今すぐ購入今すぐ購入今すぐ購入
note

1 USBケーブルを優しく差し込んでください。そうしないとポートが損傷する可能性があります。内部に4本のワイヤーがあるUSBケーブルを使用してください。2本のワイヤーしかないケーブルではデータを転送できません。使用しているケーブルが不明な場合は、こちらをクリックして購入できます。

2 Groveモジュールは購入時にGroveケーブルが付属しています。Groveケーブルを紛失した場合は、こちらをクリックして購入できます。

  • ステップ 1. Grove - Human Presence Sensor (AK9753) を Grove-Base Shield の I2C ポートに接続します。

  • ステップ 2. Grove - Base Shield を Seeeduino に差し込みます。

  • ステップ 3. USBケーブルを使用して Seeeduino をPCに接続します。

note

Grove Base Shield がない場合は、以下のようにこのモジュールを直接 Seeeduino に接続することもできます。

SeeeduinoGroveケーブルGrove - Human Presence Sensor (AK9753)
GNDGND
5V または 3.3VVCC
SDASDA
SCL黄色SCL

ソフトウェア

caution

Arduinoを初めて使用する場合は、開始する前にArduinoの使い方を必ずご覧ください。

  • ステップ 1. Grove_Human_Presence_Sensor ライブラリをGithubからダウンロードします。

  • ステップ 2. ライブラリのインストール方法を参照して、Arduino用のライブラリをインストールします。

  • ステップ 3. Arduino IDEで File --> Examples --> Grove Human Presence Sensor Library をクリックすると、4つのデモを見つけることができます。

Example1-BasicReading: この例では、4つのIRセンサーの生データ(uint16_t)を読み取り、これらの生データをシリアルに表示します。
Example2-PlotDiff: 生データを読み取り、シリアルプロッターにプロットします。
Example3-DetectPresence: IRオブジェクトの存在を検出します。
Example4-PlotMovement: 動きを検出し、シリアルプロッターにプロットします。

または、コンピュータ上のフォルダ C:XXXX\Arduino\libraries\Grove_Human_Presence_Sensor-master\examples にあるデモを見つけることができます。XXXX はArduino IDEをインストールした場所です。

  • ステップ 4. デモを1つ選び、コードをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。

次に何が起こるか確認してみましょう:


Example1-BasicReading:

Example1コードをアップロードしたら、Arduino IDEの Serial Monitor を開きます。Tool-> Serial Monitor をクリックするか、++ctrl+shift+m++ キーを同時に押します。ボーレートを 9600 に設定してください。
以下の結果が表示されます:

Grove - Human Presence Sensor example
1:[432], 2:[288], 3[248], 4:[384], temp[20.87], millis[109]
1:[424], 2:[296], 3[232], 4:[400], temp[20.87], millis[215]
1:[448], 2:[280], 3[224], 4:[360], temp[20.87], millis[319]
1:[424], 2:[280], 3[224], 4:[368], temp[20.87], millis[424]
1:[440], 2:[256], 3[248], 4:[376], temp[20.87], millis[530]
1:[440], 2:[280], 3[224], 4:[384], temp[20.75], millis[634]
1:[464], 2:[296], 3[216], 4:[392], temp[20.75], millis[740]
1:[416], 2:[288], 3[240], 4:[376], temp[20.75], millis[844]
1:[432], 2:[288], 3[216], 4:[392], temp[20.75], millis[950]
1:[440], 2:[296], 3[208], 4:[384], temp[20.75], millis[1055]
1:[424], 2:[248], 3[192], 4:[376], temp[20.75], millis[1160]
1:[432], 2:[264], 3[200], 4:[384], temp[20.75], millis[1265]
1:[440], 2:[248], 3[208], 4:[352], temp[20.75], millis[1371]
1:[400], 2:[256], 3[192], 4:[320], temp[20.75], millis[1475]
1:[368], 2:[208], 3[152], 4:[296], temp[20.75], millis[1581]
1:[608], 2:[384], 3[368], 4:[560], temp[20.75], millis[1686]
1:[1320], 2:[912], 3[736], 4:[960], temp[20.75], millis[1790]
1:[2168], 2:[1664], 3[1336], 4:[1752], temp[20.75], millis[1896]
1:[2544], 2:[2192], 3[2112], 4:[2376], temp[20.75], millis[2001]
1:[2536], 2:[2256], 3[2280], 4:[2520], temp[20.75], millis[2107]
1:[2144], 2:[2064], 3[2168], 4:[2328], temp[20.75], millis[2212]

1:[] は IR センサー1の測定データを意味し、2:[] は IR センサー2の測定データ、3:[] は IR センサー3の測定データ、4:[] は IR センサー4の測定データを意味します。これらのパラメータ値の範囲は -32767 から 32767 です。このパラメータは検出された赤外線の強度を反映します。赤外線の強度が強いほど、パラメータ値は大きくなります。

temp[] は統合温度センサーの測定データを意味し、範囲は -10℃ から +60℃ です。

millis[109] は、このプログラムが開始されてからのシステム時間を意味し、Arduino によって提供されます。


Example2-PlotDiff

例2のコードをアップロードした後、Arduino IDE の Serial Plotter を開きます。Tool-> Serial Plotter をクリックするか、++ctrl+shift+l++ キーを同時に押します。ボーレートを 9600 に設定してください。
以下の結果が表示されます:

この例では、4つのIRセンサーのデータを読み取り、それを電流(pA)に変換し、diff13diff24 を Arduino IDE の Serial Plotter にプロットします。

diff13 = IR1 - IR3 // 青い線
diff24 = IR2 - IR4 // 赤い線


Example3-DetectPresence

例1のコードをアップロードした後、Arduino IDE の Serial Monitor を開きます。Tool-> Serial Monitor をクリックするか、++ctrl+shift+m++ キーを同時に押します。ボーレートを 9600 に設定してください。
以下の結果が表示されます:

Grove - Human Presence Sensor example
o o x o millis: 16949
o x x o millis: 17050
x x x x millis: 17153
x x x x millis: 17254
x x x x millis: 17355
x x x x millis: 17457

この例では、IRオブジェクトの存在を検出します。検出はセンサー値の微分に基づいています。微分がしきい値を超える場合、センサーの視野内にIRオブジェクトが入ったと判断します。各チャンネルの微分は以下の式で計算されます:

$$ derivativeIR1= \Delta IR1 / \Delta t $$

$\Delta t$ は時間間隔を表し、$\Delta IR1$ はその時間間隔中のIRセンサー1の出力値の変化を表します。

出力では、O は検出なし、X は検出ありを意味します。出力の順序はIRセンサーの物理的な配置に対応しています。
例:

o o x o

これは、3番目のIRセンサーがIRオブジェクトを検出し、他のセンサーは検出しなかったことを意味します(IRオブジェクトは上部から来た可能性があります)。IRセンサーの物理的な配置は Pin Out で確認できます。


Example4-PlotMovement

例4のコードをアップロードした後、Arduino IDE の Serial Plotter を開きます。Tool-> Serial Plotter をクリックするか、++ctrl+shift+l++ キーを同時に押します。ボーレートを 9600 に設定してください。
以下の結果が表示されます:

検出は、IR1_IR3 または IR2_IR4 の差分値の微分に基づいています。IR1_IR3 または IR2_IR4 の微分は以下の式で計算されます:

$$ derivativeIR1_IR3=\Delta (IR1-IR3)/\Delta t $$

図中の各曲線の意味は以下の通りです:(順番に)

  • diff13 // IR1-IR3、青い線
  • 方向1-3の動き // derivativeIR1_IR3、赤い線
    (パルス、正のパルスは1から3への動きを意味し、負のパルスは3から1への動きを意味します)
  • diff24 // IR2-IR4、緑の線
  • 方向2-4の動き // derivativeIR1_IR3、オレンジの線
    (パルス、正のパルスは2から4への動きを意味し、負のパルスは4から2への動きを意味します)

回路図オンラインビューア

リソース

技術サポートと製品ディスカッション


弊社製品をお選びいただきありがとうございます!製品をご利用いただく際にスムーズな体験を提供するため、さまざまなサポートを提供しております。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。
Loading Comments...