2016年12月13日

赤外線グリッドセンサMLX90621

今回は赤外線グリッドセンサMLX90621を試食してみたので、
ご紹介します。

IMG_4085.JPG

赤外線グリッドセンサは安価なサーモカメラという感じです。
非接触で物体の温度の分布を取得することができます。


Digikey等で日本国内で購入できる
赤外線グリッドセンサとして下記があります。
MLX90621 解像度16x4 Digikey MELEXIS製 5千円程度
検出角で3種類有

D6T44L06 解像度4x4 Digikey オムロン製 7千円程度
8x1の解像度も有

がありますが、日本では個人で購入できないようです。



※参考
ガチなサーモカメラモジュール
FLIR LEPTON 秋月電子通商は80x60で高解像度
ただ、価格も10倍、5万円弱・・・



環境はこれまで同様、
・STM32F303K8
 +SW4STM32(System Workbench for STM32)
 +STM32CubeMX(F3_1.6.0)
です。



赤外線グリッドセンサMLX90621のデータ資料を見ると、
I2Cの通信に少し癖があることが分かりました。

一般的な通信としては
デバイスアドレス1byte+レジスタ1byte+デバイスアドレス1byte+データXXbyte
という流れです。

一方、
赤外線グリッドセンサMLX90621は一部の通信では
デバイスアドレス1byte+レジスタ4byte+デバイスアドレス1byte+データXXbyte
という感じでレジスタが4byteです。

STM32のHALライブラリではI2Cの関数として
HAL_I2C_Mem_Read
HAL_I2C_Mem_Write
が用意されており、簡単に通信可能ですが
レジスタ長が1byteもしくは2byteです。
4byteには対応していません。

そのため、HALライブラリのI2Cを一部、変更して
レジスタ長が3byteと4byteに対応させました。
※MLX90621自体は3byteは未使用

HAL_I2C_Mem_Read2
I2C_RequestMemoryRead2
stm32f3xx_hal_i2c.c に作成。

#define I2C_MEMADD_SIZE_24BIT           (0x00000003U)
#define I2C_MEMADD_SIZE_32BIT           (0x00000004U)
stm32f3xx_hal_i2c.hに追加しました。


追加した関数の詳細やMLX90621の処理の詳細は
STM32F303_i2c_MLX90621.zipを参考にどうぞ。
パスはブログ名です。


実際にハンダごてを観察してみた結果を
UartでPCへ出力してエクセルの条件書式カラースケールで
色分けしてみました。


temp.png

中心付近が200度程度になっていることが分かります。
物体によって放射率が異なるため、
補正しないと温度として正しく読めませんが、
温度の分布を得るには十分だと思いました。


温度補正の他に画素補間技術等で
更に高分解能にしてみるのも面白いと思います。


I2Cの通信に少し癖がありましたが、
ライブラリ関数を少し手直しするだけで動作できました。

最近、秋月から発売されたシリアルカメラと組み合わせて
応用ができそうです。





posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック