なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

Arduinoで赤外線アレイセンサ「Grid-EYE」から2次元の温度データを取得する

Posted by arms22 on 2016年01月03日 10  0

IMGP1082

Grid-EYEはPanasonicが開発した赤外線センサで8x8(64画素)の2次元の温度データを出力します(上写真、四角い窓の缶パッケージ)。視野角60度で広範囲の温度が計測できます。電子レンジやエアコン、また静止した人体の検出も可能なのでデジタルサイネージなどにも使われています。



とある伝でこのICのサンプルを頂いたのでサーモグラフィーを作ってみました。Grid-EYEで取得した2次元の温度データをProcessingを使って表示しています(詳細はサンプルコード2)。


回路


GridEyeサンプル回路
industrial.panasonic.com/cdbs/www-data/pdf/ADI8000/ADI8000CJ1.pdfより引用

Arduinoとの接続
2)SDA -- A4 または SDA
3)SCL -- A5 または SCL
4)INT -- 2番 または 3番
9)VDD -- 3.3V
6)GND -- GND

SDA/SCL/INT端子は10kΩの抵抗でプルアップします。その他のコンデンサ・抵抗は推奨回路どおり接続します。INTピンは割り込み信号を出力する端子です。設定した閾値を超えた時、または下回った時にLOWレベルを出力します。今回は使用しないので未配線でもOKです。電源はAMG883xなら3.3V、AMG885xなら5.0Vを接続します。


ライブラリ

Grid-EYEからピクセル毎の温度を読み込むためのライブラリを作りました。下記URLからzipファイルをダウンロードしてください。ライブラリをインストールするにはArduinoのメニューからスケッチ > Include Library > Add .ZIP Library...を選択し、先ほどダウンロードしたzipファイルを選びます。

arms22/GridEye
https://github.com/arms22/GridEye/archive/master.zip


サンプル1

Arduinoでピクセル温度データを読み込むサンプルです。サーミスタ温度とピクセル温度データを読み込み、シリアル通信で温度を文字列として送信します。シリアルモニタでサーミスタ温度とピクセル温度データが確認できます。サーミスタ温度を読み出す関数thermistorTemp()の戻り値はint型で1LSB=0.0625度です。ピクセル温度データを読み出す関数pixelOut()の第1引数には温度データを格納するint型配列を渡します。1LSB=0.25度です。



サンプル2

Processingを使ってサーモグラフを表示するサンプルです。Arduinoでピクセル温度データを読み込み、シリアル通信で1ピクセルを2バイトのshort型で下位バイト・上位バイトの順で送信します。温度データの送信前に2バイトのヘッダ(0x55、0xaa)をデータの区切りとして送信します。Processing側では130バイトのデータ(ヘッダ2バイト+ピクセル温度データ64*2)がバッファに溜まるのを待ちます。130バイト受信したらヘッダを受信したか確認します。ヘッダを受信したらピクセル温度データを変数に格納します。
受信したピクセル温度データはサーモグラフっぽく見せるために色と温度の対応を調整するのが結構大変でした。Processing側のコードはPythonで記述しています。



赤外線アレイセンサ Grid-EYE | 電子デバイス・産業用機器 | Panasonic
http://industrial.panasonic.com/jp/products/sensors/built-in-sensors/grid-eye


↓本格的なモノは結構高いですな。。



Ads by Google

10 Comments

says...""
このモジュールは個人でも購入可能ですか?
2016.02.25 11:47 | URL | #- [edit]
arms22 says..."Re: タイトルなし"
小売店では販売されていないようなので難しいと思います。

2016.03.10 23:52 | URL | #- [edit]
says...""
やはりそうなんですね… コメントありがとうございました。
2016.03.12 00:39 | URL | #- [edit]
arms22 says..."Re: タイトルなし"
条件付きでもいいから小売りで買えるといいのですが、、
2016.03.13 17:06 | URL | #- [edit]
sho says...""
アリババで売ってますね
2016.12.26 01:20 | URL | #DjcLvXrU [edit]
arms22 says...""
最近RSでも取り扱いはじまりましたね。
http://jp.rs-online.com/web/c/semiconductors/sensor-ics/proximity-sensor-ics/
2016.12.26 07:13 | URL | #j7sy4omY [edit]
says..."管理人のみ閲覧できます"
このコメントは管理人のみ閲覧できます
2017.01.02 18:40 | | # [edit]
arms22 says..."Re: 教えてくださいませんか?"
サンプル2の2つ目のスケッチはProcessing用でPythonで書いていいます。
ダウンロード直後のProcessingはjavaモードしかないのでPythonモードを追加してください。
たしか新しいスケッチを開いたあと、右上のプルダウンボタンからモードの追加でPythonモードのダウンロードが行えたはずです。。
ダウンロードが終わったらPythonモードに切り替えてスケッチを貼り付けてください。

下記の行は適宜書き換えてください。
1か2になると思います。たぶん。。

portIndex = 3 # 環境に合わせて変更してください
2017.01.05 23:27 | URL | #- [edit]
sho says..."まだ動きません"
すぐに御回答頂いたようでありがとうございました.
いま,気が付きました.
仰るとおりに動かしているつもりですが…
なんせ,まったくの初心者でして…
こちらでは,com8になるのですが,それをarduinoが専有したまま,Processingの方からそのデータを読めるのでしょうか?
基本的にやり方が間違っているのかも知れませんが…
grid_eye_view.inoを動かしたままgrid_eye_view.pydeを動かすのですよね.
なお,read_grid_data.inoは正常にデータを読み込んでくれています.

どうか,よろしくお願いいたします.

2017.01.22 15:18 | URL | #DjcLvXrU [edit]
arms22 says..."Re: まだ動きません"
arduinoからProcessingにグリッドデータをシリアルポート経由で送っています。
grid_eye_view.pydeがシリアルポートを開けなくなるので、
arduino ソフトウェアのシリアルモニタは閉じてください。
2017.01.23 20:12 | URL | #- [edit]

Leave a reply






管理者にだけ表示を許可する

該当の記事は見つかりませんでした。