【M5stack】thermal camera unitを触ってみる part.1

M5stackでthermal camera unitを購入したんで、そのメモ。



M5stackについてはいずれ記述します。

今回は手に入れたthermal camera unitについて色々触ったメモ。

M5stack grayのport. AにgroveのI2Cで接続して動作をみてみました。

www.switch-science.com
www.switch-science.com


スケッチについてはカスタムライブラリ「M5stack/Unit/THERMAL_MLX90640」をコンパイルして書き込みました。
高周波ノイズ音が聞こえますが、動作は良好でなかなかのサンプリングレートでした。

f:id:Hir0ki:20210114002926j:plain
LCD上に自分の輪郭ができている。顔が高温なのか、赤い。

ただArduino IDEのシリアルモニタで各pixelのデータの読み出しが元のスケッチでは出力されない。
で、いったんデータを出力したいので、スケッチを確認。
Serial.Printしてるあたりを色々検索して、それっぽいところを発見。
THERMAL_MLX90640.inoの326-338行目

/*
       //打印数据
    for(int y = 0;y < ROWS_2;y++)
    {
      for(int x = 0;x < COLS_2;x++)
      {
        Serial.print(pixels_2[y * COLS_2 + x]);
        Serial.print(" ");
      }
      Serial.println("\r\n");
    }
    //-------------------------
   // */ 

コメントアウトされているところのコメント化を外したところ、
シリアルモニタへのデータ出力ができました。

f:id:Hir0ki:20210114004927p:plain
Arduino IDEのシリアルモニタ。pixelの値が出力される。

ですが、出力に少々時間がかかるようで0.5Hzくらいにリフレッシュレートが低下。

このあたりとWSL2でシリアル接続してターミナルに出力する方法については調査中。
コードを読む限り、ROWS_2 = ROWS * 2, COLS_2 = COLS * 2となっているので、
ROWS * COLS = 24 * 32 = 768 pixelの4倍の計算しているようにも見える。
何とか今のpixel数でレートを上げたいですね、