2018.09.22
【Webマガジン Vol.26- Sep., 2018】Column: FLIR Lepton で、お手軽?サーマル (1)
WEBマガジン
Lepton User Application
Lepton User Application(以下LUA)は、FLIRとGroupGetsが作成したGUIで、Boson Applicationと同様のインターフェースを提供します。PT1, PT2のRev1.0.0(以降)最新ファームウエアで稼働するようになっています。このアプリケーションを使うためには、後述するLDK-P同梱のPT1, PT2の場合、ファームウエアの書き換えが必要です。
図 3 Lepton User Application
GetThermal
GetThermalは、GroupGetsが提供するPT1, PT2用のサーマル画像ビューワーで、Qtで記述されたソースコードで提供されていますので(Qt5.7以降対応)、build環境が整っていればWindowsでもLinuxでも稼働させることができます。Radiometry付きLeptonを搭載しているPT1, PT2を使った場合は温度表示機能もあります。
そのほかのUVCアプリケーション
Vlcやffmpegのような、よく知られているアプリケーションを使ってサーマル画像を表示させることができます。ただし、あくまでも画像を表示するアプリケーション、ですので、ラジオメトリ付きのLeptonを使ったとしても、それだけで温度表示ができるというわけではありません。
OpenCVはUVCに対応していますから、OpenCVを使ってキャプチャし表示することも可能です。
LDK-P
LDK-Pは、日本のPaltek社が、ハードウエアとしてのPT1, PT2と、Paltek社で開発したソフトウエアを組み合わせ構成しています。PT1, PT2上で稼働するファームウエアは、同社がカスタマイズを行ったものですので、オリジナルのPT1, PT2のものとは異なります。PT1, PT2標準でGroupGetsが提供しているGUIや、LUAよりも、温度情報について等細かな設定や確認を行えます。
ラジオメトリ付きLeptonの場合、GetThermalでは、温度バーグラフが表示されます。LDK-Pでは、画面内の複数ポイントをマウスクリックで指定し、そのポイントの温度をGUI上に表示したり、温度変化に注目したいエリアを設定することで、そのエリア内の最低・最高温度を表示する等表示させることができます。
Breakout Boardの活用
SPIやI2Cは、一般のPC(パソコン)では、内部のセンサやファン制御、BIOS ROM等に使われてはいるものの、ユーザーが直接デバイスを追加する仕組みは用意されていません。このため、Breakout Boardだけを使って汎用のPCに接続し、Windowsを使ってサーマル画像を得ることは、一筋縄ではいきません。一方、Raspberry Piなどの、Linuxが稼働する組込ボードでは、そういった、一般のPCにはない拡張インターフェースがアクセスしやすい形で提供されており、それらを使ったシステム開発を行うこともできます。Webを探索してみると、Breakout Boardを使い、様々な組込み用LinuxボードでLeptonを利用した事例に遭遇することができるのではないかと思います。
FTDI社のFT232はUSB UART IC、すなわちUSBを使って、シリアル通信を行わせるデバイスとして有名ですが、このシリーズの中にはシリアルのほかに、SPI・I2CやGPIOを提供するものがあります。そのようなデバイスを使い、LeptonをPCに接続している事例も少なからずあるようです。
そもそも、FLIRのLepton Maker CommunityからダウンロードできるLepton SDKは、そのようなハードウエアを前提とした作りになっています(Total Phaseという周辺装置メーカーが販売している、AardvarkというUSB-SPI&I2Cアダプタを利用)。従い、このSDKをRaspberry Piなどへ適用するためには、移植作業が必要です。
PT1のエミュレーション(?)
PureEngineering社では、PT1用のファームウエアもgithubで公開しています。PT1ではSTM32F411/412が使われているわけですから、STMicro社のNucleo-F411またはNucleo-F412等とBreakout Boardを接続してLeptonを搭載し、そのファームウエアを使えば、PT1と同じことができそうに思えます。
図4 再現?
Nucleo-F411/F412を使い、SW4STM32などの開発環境でPT1ファームウエアを読み込んだ時、そのまま使えればよいのですが、PT1では、Nucleo-F411/F412とはパッケージが異なるMCUを使っていますから、リターゲットが必要になります。チャレンジできる環境をお持ちの方は、以下からファームウエアを入手してお試しください。
https://github.com/groupgets/purethermal1-firmware
ご利用にあたってはLICENSEについてもご一読を。
Nucleo-F412ではUSB端子が用意されていますが、Nucleo-F411を使った場合、USB端子(UARTにつながっているST-Link側ではなく、F411のUSB端子をUSB Slaveと設定し、USBコネクタ等増設して使用します)のほか、Leptonが使用するのはSPIとI2Cそれぞれ1チャネルだけです。マイコンのインターフェースは他にもありますから、ロケーション情報の取り込みをしたり、プロトコル内蔵タイプのWi-Fiモジュールといったものの利用ができると応用が広がるかもしれません。例えばSPIはもう1チャネルありますから、LCDを搭載し画像表示をすることも可能でしょう。
図5 Nucleo-F411にLeptonとUSBを搭載して(イメージ)
なお、Nucleo-F411/F412の場合、mbedによるNucleo_leptonという他の実装事例も紹介されています。そちらでは、SPIから取り込んだ画像を処理してUARTを使って流し、ホストとなるPC側で画像表示を行っています。80×60とはいえ、8ビットカラーであれば最低38.4Kbitありますから、それほど多くのフレーム数を送ることはできないのではないかと思います。(某技術誌で以前紹介があったのではないかと思います)
次回へ続く・・