60歳からの電子工作ノート

生涯学習として取り組んでいます。

「熱電対付きサーモグラフィの試作(ファームウェア 1/2)」

マイコン 資料1*1の処理です。全体フロー、センサ及び表示器の通信、ヒートマップの補間処理について書いています。

 

全体の処理

図1. 全体フロー

図2. 割り込み一覧

メインループ内の処理に約 540[msec]かかります。表示に約390msec使用しています。MLX90640のデータ更新とマイコン側の処理(読み出しと表示)は同期していません。

熱電対のA/D変換は100msec毎に行います。

図3. 処理時間

MLX90640との通信

I2C通信(RIIC)プロトコル

MLX90640はI2C通信によりマイコン側と通信します。

図4. MLX90640 I2C通信

・マスタ送信

マイコンからMLX90640へのデータ書き込みはマスタ送信で行います。

図5. マスタ送信

・マスタ送受信

マイコンからMLX90640のデータ読み出しはマスタ送受信で行います。

図6. マスタ送受信

マスタ送信(コントロールレジスタ1(0x800D) へ 0x1981の書き込み)とマスタ送受信(読み出し)の例です。

図7. マスタ送信、マスタ送受信の例

I2C通信(RIIC)割り込み処理フロー

 送受信はCPUの割り込み処理プログラムで行います。

図8. RIIC割込みフロー(MLX90640用) 1/3

図9. RIIC割り込みフロー(MLX90640用) 2/3

図10. RIIC割り込みフロー(MLX90640用) 3/3

LCDディスプレイ(ILI9488)

SPI通信(RSPI)プロトコル

SPI通信でLCDへデータを表示します。DBI Type-C Option1(3 line)で、9bitのデータをDMA転送します。

資料 2*2 と同じです。

送信データはRGB666となります。資料3 *3

図11. DBI Type-C Option1(3 line)(9bit )

図12. RGB666のデータ送信
ヒートマップ表示

MLX90640から横32ピクセル、縦24ピクセルの温度情報が得らます。MLXのピクセル毎の情報をそのままLCDへ表示すると小さくなりすぎます。このためMLXの1ピクセルLCDの10x10ピクセルに拡大して表示します。補間処理(双線形補間 bilinear interpolation)をすると画面が滑らかになります。

図13. LCDへの表示比較

・そのまま表示

図14. そのまま表示 1:1(MLX:LCD)

・拡大表示 (補間なし)

図15.  拡大表示(補間なし) 1:10(MLX:LCD)

・拡大表示 (補間あり)

図16. 拡大表示(補間あり) 1:10(MLX:LCD)
双線形補間  (bilinear interpolation)

資料4*4を参考にしました。資料5*5にも説明があります。

図17. 双線形補間

図17でQの値は、xとyの値から定められています。
4点(a,b),(c,b),(a,d),(c,d)とそのQ値がわかっている場合に、P点(x,y)でのQの 値を補間により求めます。

1) x軸方向に線形補間を行い、R1,R2を求めます。

図18.  補間処理 1

2) Y軸方向に線形補間を行い、Pを求めます。

図19. 補間処理 2

Excel VBAのプログラム

図20. 補間処理のプログラム (Excel VBA)

図21. 補間処理のテスト 実行前と実行後
表示レイアウト

LCDの表示用座標は左上を(0,0)とします。(図22の青色)

MLX90640のCol,Rowは、Reference tabを下向きにした場合、右上がCol1,Row1となります。(図22の赤色)

図22. 表示レイアウトとMLX90640のcol,row

表示項目: Em:放射率, Ta:周囲温度(MLX90640測定), Tr: Reflected temperature

                Ch1~Ch4:各熱電対の測定温度, CJT:Cold junction temperature

 

*1:資料1「RX23E-Aグループ ユーザーズマニュアル ハードウェア編 ( R01UH0801JJ0120 Rev.1.20)」

*2:資料2「新ペルチェ制御用ボードの試作 ソフトウェア2」 https://vabc.hatenadiary.jp/entry/2023/05/15/164238

*3:資料3「ILI9488 ドライバデータシート」http://www.lcdwiki.com/res/MSP3520/ILI9488%20Data%20Sheet.pdf

*4:資料4 https://x-engineer.org/bilinear-interpolation/

*5:資料5 https://risalc.info/src/linear-bilinear-interporation.html#bil