10
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

赤外線アレイセンサAMG8833(Grid-EYE)のデータを表示

Posted at

今回やること

前回でAMG8833(Grid-EYE)のデータ取得ができましたが、ただ数字が出るだけだったので画像として表示してみようと思います。

2次元配列データの可視化

matplotlibを使って2次元配列を表示させます。

amg8833.py
# -*- coding: utf-8 -*-

import time
import busio
import board

import adafruit_amg88xx

import matplotlib.pyplot as plt

# I2Cバスの初期化
i2c_bus = busio.I2C(board.SCL, board.SDA)

# センサーの初期化
sensor = adafruit_amg88xx.AMG88XX(i2c_bus, addr=0x68)

# センサーの初期化待ち
time.sleep(.1)

# imshowでsensor.pixelsの2次元配列データを表示させる
fig = plt.imshow(sensor.pixels, cmap="inferno")
plt.colorbar()

plt.show()

実行すると画像が表示されます。
センサーの上部で手をパーにしてかざして実行しました。

$ python3 amg8833.py

bicubic補間を使ってみる

とりあえず熱画像っぽいのは表示することができましたが、AMG8833は8x8ピクセルのため解像度が低すぎてよくわからないので、bicubic補間を使ってみます。
imshowのinterpolationオプションでbicubicを指定すると補間されます。

amg8833.py
# -*- coding: utf-8 -*-

import time
import busio
import board

import adafruit_amg88xx

import matplotlib.pyplot as plt

# I2Cバスの初期化
i2c_bus = busio.I2C(board.SCL, board.SDA)

# センサーの初期化
sensor = adafruit_amg88xx.AMG88XX(i2c_bus, addr=0x68)

# センサーの初期化待ち
time.sleep(.1)

# 8x8ピクセルの画像とbicubic補間をした画像を並べて表示させる
plt.subplots(figsize=(8, 4))

# データ取得
sensordata = sensor.pixels

# 8x8ピクセルのデータ
plt.subplot(1, 2, 1)
fig = plt.imshow(sensordata, cmap="inferno")
plt.colorbar()

# bicubic補間したデータ
plt.subplot(1, 2, 2)
fig = = plt.imshow(sensordata, cmap="inferno", interpolation="bicubic")
plt.colorbar()

plt.show()

実行すると、オリジナルと補間画像の2枚が並んで表示されます。

$ python3 amg8833.py

Figure_2.png

少しは手の形がわかるようになったかなと思います。

動画にしてみる

1枚の静止画では何かと不便なので、ループさせて動画にしてみます。

amg8833.py
# -*- coding: utf-8 -*-

import time
import busio
import board

import adafruit_amg88xx

import matplotlib.pyplot as plt

# I2Cバスの初期化
i2c_bus = busio.I2C(board.SCL, board.SDA)

# センサーの初期化
sensor = adafruit_amg88xx.AMG88XX(i2c_bus, addr=0x68)

# センサーの初期化待ち
time.sleep(.1)

# 8x8ピクセルの画像とbicubic補間をした画像を並べて表示させる
plt.subplots(figsize=(8, 4))

# ループ開始
while True:
    # データ取得
    sensordata = sensor.pixels

    # 8x8ピクセルのデータ
    plt.subplot(1, 2, 1)
    fig = plt.imshow(sensordata, cmap="inferno")
    plt.colorbar()

    # bicubicのデータ
    plt.subplot(1, 2, 2)
    fig = plt.imshow(sensordata, cmap="inferno", interpolation="bicubic")
    plt.colorbar()

    # plt.showだと止まってしまうので、pauseを使用
    # plt.clfしないとカラーバーが多数表示される
    plt.pause(.1)
    plt.clf()

手を左から右に動かして撮影してみました。

$ python3 amg88333.py

vJ1V2GMUXPXJASCorNWY1570759864-1570759904.gif

10
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?