WEBマガジン詳細

Webマガジン Vol.26- Sep., 2018

Column: FLIR Lepton で、お手軽?サーマル (1)

初めに

Leptonは、小型の安価な遠赤外線(LWIR)カメラモジュールで、80×60画素のLepton1.x/2.xシリーズと、160×120画素のLepton3.xシリーのラインアップがあります。FLIR社では、Makerコミュニティーサポートとして、このLeptonを使ったデザイン事例を紹介しており、時にはコンテストも行います。Lepton Maker Communityに行ってみてください。
(図1 Leptonシリーズ)
図1 Leptonシリーズ

サイト内、Getting Started – Check out the quick start guidesには、その絵柄が示す通り、Raspberry Pi2とBeaglebone Blackを使ったクイックガイドが掲載されています。これらのサイトを参考に、Leptonを使われている方もおられることと思います。そこではほかにArduinoと記述がありますが、ATmegaクラスのMCUでサポートできるわけではなく、Due(Cortex-M3)、あるいはESP8266、ESP32(Xtensa)を使った、本家Arduinoとは使っているMCUが異なる互換ボードなど、高機能な SoCが搭載され、かつ、Arduino IDEでプログラム開発可能なボード用になります。そのようなボードでアプリケーション開発されておられる事例も見受けられます。

本書では、makerでの事例があるSTM32マイコンと、Linuxが稼働するARM SoCボードでVideo4Linux2を使用してサーマル画像を得ることにフォーカスしてみたいと思います。この2つ、独立なようですが、「適材適所」を考えるうえで、それぞれについて理解しておくと、装置開発にあたって役に立つのではないかと思います。全て述べると、だいぶボリュームが出てしまうので2部構成とし、本書では、まずPureEngineering社・GroupGets社が提供しているLepton関連の製品について述べます。

 

1章 PureThermal

PureEngineering社とGroupGets

PureEngineering社とは、米国にあるmakerで、特にLeptonについて様々なプラットホームをGroupGets社と組んで提供しています。GroupGets社はいわゆる共同購入サイトで、makersを含む製品の仲介商社的な活動と、共同開発のコーディネーションを行っているようです。ここでは、この2社が組んだ製品について、ご紹介してみたいと思います。

 

Breakout Board

Leptonはカメラ「モジュール」で、直接はんだ付けして使うものではなく、ソケットに搭載して使うことが前提となっています。このために、Breakout Boardという、Leptonを搭載するソケットと電源など、Leptonとホスト装置が通信するためのI/FであるSPIとI2Cを引き出すための端子が用意されたボードが用意されています。このボードは、素直に、Leptonの端子を引き出して、Leptonの動作クロックと電源供給を行っているだけです。
(図2 Breakout Board)
図2 Breakout Board

Lepton3以降Leptonは高解像度化され、その分扱いも難しくなっており、基本的に、Lepton3向けのbreakout boardは今後用意されるスケジュールとなっています。現状では、Leptonというデバイスに関する知識と、ソフトウエア開発スキルをお持ちの方向けの位置づけとなります。Lepton Getting StartにあるRaspberry Pi, BeagleBone BlackとBreakout Boardを組み合わせる事例で使われているLeptonは2.5です。Quick Start guideでは、この後に述べるPureThermal2でLepton3.5を動かしており、Lepton3.xとBreakout Boardを組み合わせた事例の掲載は、まだありません。GroupGetsがBreakout Board + Lepton3.xの組み合わせを紹介するかもしれませんが、FLIRがサポートするものではなく、GroupGetsのサポートを受けてください。

 

PocketCam (FOXCAM)

2.5インチほどでしょうか?LCDと同サイズのPIC32ベースのプラットホームにバッテリーを搭載した、コンパクトなデモキットでした。現在では入手できません。

 

PT1, PT2 (PureThermal1, PureThermal2)

PT”2”すなわち2世代目なのですが、その前身であるPT1は、Leptonと通信するSPI・I2Cに加え、USB OTGが搭載されているSTMicro社STM32F411 MCU(PT1後期・PT2ではSTM32F412)をエンジンとして使い、構成されています。USBデバイスとして、WindowパソコンでLeptonのサーマル画像を取り扱えるようにしてくれた「偉大な」システムで、UVCカメラデバイスとしてLeptonを扱えるようになっています。PT1上には、さらなる拡張を行うためのSPIなどの端子が用意されています。通信プロトコルを内蔵している、TELEC認定を受けたWi-Fiモジュールを適用できれば、かなりコンパクトな、Wi-Fi接続のサーマルカメラの試作を行えるようになっていました。

このボードを用いて、Lepton Getting StartにあるQuick Start Guide: Getting Started with Lepton on Windows及びAdvanced Lepton Usage on Windowsが作られています。

単体でPT1, PT2を入手した場合、サーマル画像表示には、以下に述べる、Lepton User Application、GetThermal、またはUVCビデオに対応したアプリケーションを使います。

次のページ

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

図 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 再現?)

図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を搭載して(イメージ))

図5 Nucleo-F411にLeptonとUSBを搭載して(イメージ)

 

なお、Nucleo-F411/F412の場合、mbedによるNucleo_leptonという他の実装事例も紹介されています。そちらでは、SPIから取り込んだ画像を処理してUARTを使って流し、ホストとなるPC側で画像表示を行っています。80×60とはいえ、8ビットカラーであれば最低38.4Kbitありますから、それほど多くのフレーム数を送ることはできないのではないかと思います。(某技術誌で以前紹介があったのではないかと思います)

 

次回へ続く・・

前のページ

初めに

12
ページトップへ戻る