マイコン 資料1*1の処理です。全体フロー、センサ及び表示器の通信、ヒートマップの補間処理について書いています。
全体の処理
メインループ内の処理に約 540[msec]かかります。表示に約390msec使用しています。MLX90640のデータ更新とマイコン側の処理(読み出しと表示)は同期していません。
熱電対のA/D変換は100msec毎に行います。
MLX90640との通信
I2C通信(RIIC)プロトコル
MLX90640はI2C通信によりマイコン側と通信します。
・マスタ送信
マイコンからMLX90640へのデータ書き込みはマスタ送信で行います。
・マスタ送受信
マイコンからMLX90640のデータ読み出しはマスタ送受信で行います。
マスタ送信(コントロールレジスタ1(0x800D) へ 0x1981の書き込み)とマスタ送受信(読み出し)の例です。
I2C通信(RIIC)割り込み処理フロー
送受信はCPUの割り込み処理プログラムで行います。
LCDディスプレイ(ILI9488)
SPI通信(RSPI)プロトコル
SPI通信でLCDへデータを表示します。DBI Type-C Option1(3 line)で、9bitのデータをDMA転送します。
資料 2*2 と同じです。
送信データはRGB666となります。資料3 *3
ヒートマップ表示
MLX90640から横32ピクセル、縦24ピクセルの温度情報が得らます。MLXのピクセル毎の情報をそのままLCDへ表示すると小さくなりすぎます。このためMLXの1ピクセルをLCDの10x10ピクセルに拡大して表示します。補間処理(双線形補間 bilinear interpolation)をすると画面が滑らかになります。
・そのまま表示
・拡大表示 (補間なし)
・拡大表示 (補間あり)
双線形補間 (bilinear interpolation)
図17でQの値は、xとyの値から定められています。
4点(a,b),(c,b),(a,d),(c,d)とそのQ値がわかっている場合に、P点(x,y)でのQの 値を補間により求めます。
1) x軸方向に線形補間を行い、R1,R2を求めます。
2) Y軸方向に線形補間を行い、Pを求めます。
表示レイアウト
LCDの表示用座標は左上を(0,0)とします。(図22の青色)
MLX90640のCol,Rowは、Reference tabを下向きにした場合、右上がCol1,Row1となります。(図22の赤色)
表示項目: 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