Lepton3
2017年8月9日 - 未分類
Lepton3 Moduleは、解像度が160×120あるサーマルセンサーです。従来のLepton2 Moduleの4倍の解像度があります。RaspberryPiに付けて、動かそうとしたら、いろいろトラブルがあったので、動作させる手順を書きます。
解像度が4倍なので、送られてくるデータも4倍です。segmantという単位になっていて、4セグメントあります。segmentの順番を間違うと、正しい画像になりません。
Lepton3モジュールを使うために、pyleptonというコードをダウンロードします。
https://github.com/groupgets/pylepton/tree/lepton3
git clone https://github.com/groupgets/pylepton.git
でダウンロードすると、何故か、pyleptonフォルダーにあるはずの、Lepton3.pyが入っていません。仕方がないので、githubからコピーします。
Lepton2 Moduleの場合は、
pylepton_capture test.png
で、Leoton画像が取得できますが、Lepton3の場合には、修正が必要です。
pylepton_capture
from pylepton import Lepton3
from pylepton import Lepton
def capture(flip_v = False, device = “/dev/spidev0.0”):
with Lepton3(device) as l:
とします。また、pyleptonの下にある、Lepton3.pyも修正が必要です。diffを如何に示します。エラーが出たところを追加しています。
32,36d31
< self._spi_dev = spi_dev
< self._txbuf = np.zeros(Lepton.VOSPI_FRAME_SIZE, dtype=np.uint16)
< self._xmit_struct = struct.Struct(
“=QQIIHBBI”)
< self._msg_size = self._xmit_struct.size
<
51,67d45
< def __enter__(self):
< self._handle = open(self._spi_dev, “w+”)
<
< ioctl(self._handle, SPI_IOC_RD_MODE, struct.pack(“=B”, Lepton.MODE))
< ioctl(self._handle, SPI_IOC_WR_MODE, struct.pack(“=B”, Lepton.MODE))
<
< ioctl(self._handle, SPI_IOC_RD_BITS_PER_WORD, struct.pack(“=B”, Lepton.BITS))
< ioctl(self._handle, SPI_IOC_WR_BITS_PER_WORD, struct.pack(“=B”, Lepton.BITS))
<
< ioctl(self._handle, SPI_IOC_RD_MAX_SPEED_HZ, struct.pack(“=I”, Lepton.SPEED))
< ioctl(self._handle, SPI_IOC_WR_MAX_SPEED_HZ, struct.pack(“=I”, Lepton.SPEED))
<
< return self
<
< def __exit__(self, type, value, tb):
< self._handle.close()
<
82c60
< #print “Garbage frame number resetting…”
後、 pylepton/__init__.pyにも、
__all__ = [“Lepton”]
# relative imports in Python3 must be explicit
from .Lepton import Lepton
from .Lepton3 import Lepton3
Lepton3を追加しておきます。
修正したファイルは、ここからダウンロードできます。