はじめに
簡単に温度測定をしようと Lepton 3.5 を使っています。
当初思っていたほど『簡単』ではなかったことについて
いろいろ書いている記事の3回目です。
私の最新ブランチ
ここ↓です。
こんな感じ↓に fork し伸びています。
前回の記事からの主な変更点
- 自分の開発用ブランチ develop を作成
- raspberrypi_video から再利用可能な部分を raspberrypi_libs/lepton として分離
- ブランチ save_png_file を develop にマージ
- raspberrypi_video とは別に save_file で追加
- サポートするファイル形式を2種追加(PNG + CSV/PGM)
ところで何度?
始めたきっかけは『簡単に温度測定』すること。
表示形式ごとの取り扱いの違い
- 画像(PNG)を見るだけじゃ、何度かわからない
- 画像(PGM)形式は、テキスト処理も可能な画像として便利かと思ったけど使いにくい
- 生データだとデータレンジ幅が広すぎで画像として見えないが、境界を強調すればわかるレベル
- データレンジ幅を狭めれば画像として使えるが、これでは温度の取り扱いに関しては PNG と大差ない
- テキストデータ(CSV)形式は、処理するには使いやすい形式でした。
- 個々の値も確認できる
- 範囲を広げて閾値を設定すれば画像らしくも見える(当然、画像にだって変換可能)
取得値について
- CSV形式でデータを見ると、値の幅は約28000~約31000となっている
-
提供されている資料には Raw14 もしくは RGB888 って書いてある(「4.2.2 VoSPI Protocol – Lepton 1.5, 1.6, 2.0 and 2.5」など参照)
- ソースコード見ているから Raw14 のデータであることは知っている
- Raw14 は 14ビットのデータなので、範囲は 0~16384
- 取得した値と資料に書かれている内容が違う!のは、英語資料の読み込み不足(私の英語力不足が根本原因)
- デフォルト動作を理解できていなかった(以下がデフォルト)
- Raw14 モードが選択
- AGC off
- TLinear モードが選択(←これが 16 bit データ!)
- デフォルト動作を理解できていなかった(以下がデフォルト)
TLinear について
TLinear mode changes the pixel output from representing scene flux in 14-bit
digital counts to representing scene temperature values in Kelvin (multiplied by a scale factor to include
decimals).
For example, with TLinear mode enabled with a resolution of 0.01, a pixel value of 30000 signifies that
the pixel is measuring 26.85°C (300.00K – 273.15K).
Lepton はデフォルト設定だと、思いのほか使いやすい設定であることが分かった。
温度(摂氏)=値/100 - 273.15
- 今回の取得データ範囲が、約28000~約31000 ということは、約7℃から約37℃ってこと。
- 人の体温が測定できているので、当初の目的『Leptonを使っての簡易温度測定』は達成できているね!