(3)初めにLeptonは、小型の安価な遠赤外線(LWIR)カメラモジュールで、80×60画素のLepton1.x/2.xシリーズと、160×120画素のLepton3.xシリーズのラインアップがあります。本書は、Leptonを使ってお手軽(?)にサーマルイメージを得るPart.3、小型のLinuxボードを用いてLeptonを動かしてみる、最終回になります。ELECというボードメーカーにはなじみが薄かったとしても、NanoPiと聞くと知っている方もおられることと思います。SoCを搭載したボードになっています。Webは直販サイトにもなっていますが、新しいSoC使ってどんどんボードは開発されてくるし、その価格にも驚かされます。NEOと、Video4Linuxを使って、Lepton1.5からサーマル画像を撮り込んでみたいと思います。SPIとI2Cを利用できるようになっていれば、RaspberryPiなどでも同じことは実現できますし、ここで紹介するのは、元々RaspberryPi上で開発されているプロジェクトです。Lepton2.5までは、本章に記載の方法で動作するはずです。NEOハードウエア1.2GHz動作のCortex-A7を4コア内蔵するSoC、AllWinner社のH3が搭載されている小型のボードで、512MbytesのDDR3が搭載されているバージョンを使いました。OTG(microAB)×1、Ethernetなどがあります。OTG端子から供給するか、写真のようにピンヘッダから供給します(緑と白のワイヤ)。2A以上供給必要、となっていますが、この試験開発においては、もうちょっと容量が少ないものでも、USBペリフェラルもなくそれほどガンガンCPUパワー使ってはいないためなのか、トラブルなく動作しています。Boardの場合OSの準備MicroSDでブートします。Xenialを利用できます。どちらでも本稿は実現できると思いますが、この作業過程ではカーネルモジュールのbuildがあるため、より多く経験しているほうを選んでください。私はStretchを選びました。OSパッケージをインストール&アップデートしたら、デバイスツリーによってSPIとI2Cを有効にします。NanoPiの場合armbian-configを使って、SPI(spidev)とI2C(i2c0)が有効であることを確認し、/boot/armbianEnv.txtを編集して、spi0が有効になるようにしてください。param_spidev_spi_bus=0再起動後、spidevが作られたことを確認して下さい。デフォルトカーネルではちゃんとspidevが作られましたが、devモードのカーネル(デフォルトカーネルより少し新しいカーネル)ではspidevが作られず、使うことができませんでした。Kit?)を利用しているようです。ある、それぞれのプラットホーム用に用意されたソフトウエアを使います。Pi上にcloneしておいてください。ここではv4l2leptonを使います。このv4l2leptonでは、Leptonが出力する画像そのままではなく、いわゆる「サーマル画像」として、見て使うデータへと変換が行われています。Leptonがデフォルトで出力するraw14データの場合、画像をイメージとして表示しようとすると、14bitのモノクロ画像になります。滑らかに表示されることとなり、結果、画像としてはコントラスト(メリハリ)が低下して見えます。ご覧ください)このため、v4l2lepton内で8bit階調データへと、変換テーブルを用いて変換しています。デフォルトではironblackという階調(というか色調)が設定されており、このほかには、rainbow、grayscaleを、ソース書き換えで選択できるようになっています。繰り返しますが、これはLeptonが着色しているわけではなく、v4l2leptonが着色していますので、新たなカラーテーブルを自分で定義することも可能です。Blackともに、ディスプレイ接続を前提として構成された事例を紹介しています。NEOでは、SPI等使ってLCDモジュールを接続することは可能ではありますが、標準ではディスプレイは搭載されていません。同様に、ネットワークカメラ的な仕立てをまずは考えます。Leptonは、VoSPIにより画像を送ります。ビデオカメラがSPIに繋がれる、という形になります。使いますので、同様cloneしてください。これで、VoSPIからキャプチャした画像を、V4L2を介してデバイスファイルへと流し込むことができます。V4l2loopbackはLepton専用ではなく、他の画像処理プログラムで利用されたことがあるかもしれません。Buildについては、v4l2loopback、v4l2lepton、ともに、同時にダウンロードされるReadmeを参照ください。全体像なお、v4l2loopbackはカーネルモジュールの形態をとりますので、Linuxカーネルのbuild環境が必要です。Armbianの場合は、走行しているカーネル用のヘッダファイルを追加インストールして、buildします。