ITmedia NEWS > STUDIO >
連載
» 2020年10月09日 07時00分 公開

名刺サイズの超小型PC「ラズパイ」で遊ぶ(第29回):ラズパイの拡張ボード「Sense HAT」で遊んでみよう

気温や湿度、気圧の他、ジャイロスコープ、磁気センサー、加速度センサーを搭載しているラズパイ向け拡張ボード「HAT」を紹介します。

[岩泉茂,ITmedia]

 ラズパイを開発しているラズベリーパイ財団が提供しているラズパイ向け拡張ボード「HAT」(Hardware Attached on Top)のラインアップに「Sense HAT」というものがあります。

 Sense HATは、宇宙でのラズパイ活用を目指す「Astro Pi」プロジェクトのために作られたデバイスで、気温や湿度、気圧の他、ジャイロスコープ、磁気センサー、加速度センサーを搭載しています。表面には8×8のカラーLEDが取り付けられており、それぞれの色で点灯できる他、文字も表示できます。ラズベリーパイ財団のWebサイトには丁寧なチュートリアルがあり、サンプルプログラムも掲載しています。

 そこで今回は、このサンプルプログラムを紹介しながら、Sense HATで遊んでみたいと思います。

Sense HAT Raspberry Pi 3/4 Moddel Bにちょうどよい「Sense HAT」
Sense HAT 電源を入れると七色に表示される

Sense HATに文字を表示する

 Sense HATを取り付けてラズパイに電源を入れると、64個のLEDがカラフルに点灯し、OSの起動完了とともにLEDが消灯します。まずはここに文字を表示させてみましょう。

 文字を表示するためには「sense.show_message」コマンドを使います。以下のように入力して「mojitest.py」などのファイル名で保存しましょう。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from sense_hat import SenseHat
sense = SenseHat()
sense.show_message("Hello world")
sense.clear()

 ファイルを保存したら以下のコマンドを入力します。

$ python mojitest.py

 プログラムを走らせると、Sense HATに「Hello world」という文字が左に流れたでしょうか。このように簡単な入力で文字を表示させることができます。

色を変えて文字を表示する

 冒頭で紹介した通り、Sense HATにはカラーLEDが取り付けられているので文字の色を変えて表示できます。文字の色は下のようなパラメーターで設定します。

カラー
255 0 0
0 255 0
0 0 255
255 255 0
255 0 255 マゼンタ
0 255 255 シアン

 プログラムでは以下のように記述します。

red = (255, 0, 0)
blue = (0, 0, 255)
green = (0, 255, 0)
white = (255, 255, 255)
yellow = (255, 255, 0)

 これを踏まえて、カラーの違う文字が表示されるプログラム「colortest.py」を作ってみましょう。「while true」文を使って無限ループさせます。Ctrl+Cでプログラムを止めることができます。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from sense_hat import SenseHat
from time import sleep
sense = SenseHat()
red = (255, 0, 0)
blue = (0, 0, 255)
green = (0, 255, 0)
white = (255, 255, 255)
yellow = (255, 255, 0)
try:
    while True:
        sense.show_letter("L", red)
        sleep(1)
        sense.show_letter("a", blue)
        sleep(1)
        sense.show_letter("u", green)
        sleep(1)
        sense.show_letter("r", white)
        sleep(1)
        sense.show_letter("a", yellow)
        sleep(1)
except KeyboardInterrupt:
    sense.clear()

 プログラムを記述したら、以下のコマンドで走らせましょう。

$ python colortest.py

 「Laura」という文字が、違う色で表示されればOKです。

ランダムに文字の色を変える

 では応用編として、先ほどのプログラムを改造してランダムに色を表示してみましょう。「random」ライブラリを追加するとともに、関数「pick_random_colour()」を定義して色をランダムに表示するようにします。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from sense_hat import SenseHat
from time import sleep
from random import randint
sense = SenseHat()
# Generate a random colour
def pick_random_colour():
  random_red = randint(0, 255)
  random_green = randint(0, 255)
  random_blue = randint(0, 255)
  return (random_red, random_green, random_blue)
try:
  while True:
    sense.show_letter("L", pick_random_colour())
    sleep(1)
    sense.show_letter("a", pick_random_colour())
    sleep(1)
    sense.show_letter("u", pick_random_colour())
    sleep(1)
    sense.show_letter("r", pick_random_colour())
    sleep(1)
    sense.show_letter("a", pick_random_colour())
    sleep(1)
except KeyboardInterrupt:
    sense.clear()

 プログラムを記述したら「randomcolor.py」などの名前で保存し、以下のコマンドで走らせてみましょう。

$ python randomcolor.py

 今度は「Laura」という文字の色がランダムに変わって表示されます。

色が変わって表示される

 次回はSense HATに用意されている湿度・気圧センサーを使って気温や湿度、気圧を測定する方法についてご紹介します。

Copyright © ITmedia, Inc. All Rights Reserved.