sense hatの取付けとLEDにテキスト表示を実施

※一部チュートリアルに合わせて記事を見直しました! 2018/10/6

1.sense hat 取付

半年前に購入して、そのまま放っておいた sense hat に気づいたので開封しました。

そして、速攻で取付けを開始しました。付属のスペーサーを使用して Raspberry Pi に sense hat を固定します。

さくさくと取付けが終わったので、さっそく動かしてみましょう。

2.チュートリアル

チュートリアルは、以前見た時と大幅に変わっています。

このチュートリアルに従って、本記事もリニューアルしていきます。

3.ソフトウェア インストール

チュートリアルの「What you will need」に、ハードウェア、ソフトウェア別に必要な機器及びソフトウェアが記載されています。

(1) ハードウェア

  • Raspberry Pi
  • Sense HAT

まあ、当たり前といっちゃなんですが、これら二つ(Raspberry Pi、Sense HAT)が出ています。これらがなければ何も進まないですから!

(2) ソフトウェア

pythonプログラムのための「Python 3」と、sense HAT 用の「Sense HAT for Python 3」が必須です。

  • Python 3
  • Sense HAT for Python 3

Sense HAT パッケージを RaspberryPi にインストールしましょう。

sudo aptitude install sense-hat

4.LEDにテキスト表示

次に、チュートリアルの「Displaying text」ですね。sense hat上にテキストを表示します。

(1) Sense HATにメッセージを表示

最初は、「Show a message on the Sense HAT」です。

windows から、TeraTerm を使用して ssh で RaspberryPi に入り、ディレクトリを作成した後、プログラムを入力し実行してみました。

pi@raspberrypi:~ $ sudo mkdir python_pg
pi@raspberrypi:~ $ cd python_pg
pi@raspberrypi:~/python_pg $ sudo vi main.py
from sense_hat import SenseHat
sense = SenseHat()
sense.show_message("Hello world")

プログラム実行には python3 コマンドを使用します。以下のコマンドです。

pi@raspberrypi:~/python_pg $ python3 main.py

実行結果は次のようになりました。

定番の “Hello world” ですね。白文字で表示されますが、まぶしくて、じっと見ていると目に痛いです。

(2) Sense HATに色を表示

次に「Displaying a colour on the Sense HAT」です。

ここで示されたプログラムを実行すると、LEDマトリックスは明るい白になります。

from sense_hat import SenseHat
sense = SenseHat()

r = 255
g = 255
b = 255

sense.clear((r, g, b))

変数 r、g、及び b は赤、緑、青の色を表します。それらの値は、各色の明度を指定します。各値は0〜255の間で指定できます。

上記のコードでは、各色の最大値が使用されているため、結果は白となります。

数字を色で表現するという解説が載っています。いくつかの色について、何を指定すればいいか書いてあります。

上記プログラムで、r = 255、g = 0、b = 0 に変更して実行した結果がこちらです。赤一色になりました。

(3) sense.show_messageコマンド

さて、このsense.show_messageコマンドですが、複数(チュートリアルでは3つ)のパラメータを持っていて、スピード(scroll_speed)、文字の色(text_color)、背景色(back_color)を指定できるようです。

チュートリアルにあるプログラムを設定し、再度、実行します。

pi@raspberrypi:~/python_pg $ sudo vi 2.py
from sense_hat import SenseHat
sense = SenseHat()
yellow = (255, 255, 0)
blue = (0, 0, 255)
message = "Astro Pi is awesome!!"
speed = 0.1
sense.show_message(message, speed, text_colour=yellow, back_colour=blue)
pi@raspberrypi:~/python_pg $ python3 2.py

今度は、スピードが早くなり、文字色が黄色、バックの色64個のLEDが青く光ります。ウーン、やっぱり、まぶしいですね。

プログラムが終わっても、バックの色がそのままですよ。これは、いやだなーー。だもんで、rebootしちゃいました。

(4) 表示文字を繰り返し流す

今までは、文字が流れますが一度きりでした。そこで、一度、流した文字を繰り返し流れるように、プログラムを修正しました。while文を使用しています。

from sense_hat import SenseHat
sense = SenseHat()
yellow = (255, 255, 0)
blue = (0, 0, 255)
message = "Astro Pi is awesome!!"
speed = 0.05
while True:
 sense.show_message(message, speed, text_colour=yellow, back_colour=blue)

黄色い”Astro Pi is awesome!!”が、青い背景の下、いつまでも流れていきます。Ctrl + Cで止めましょう。

途中で止めるので、pythonのエラーが出ますが、気にせず、先に行きます。

5.一文字表示

(1) LEDマトリックス上に1文字を表示

次は、LEDマトリクス上に英文字を一字表示します。sense.show_letterコマンドですね。先ほどと同様、三つのパラメータを持ちます。今回は、文字色のみ指定して、背景色は指定していません。

from sense_hat 
import SenseHat 

sense = SenseHat()sense.show_letter("J",text_colour=[255, 0, 0]) 

実行すると、マトリクス上に文字Jが赤く表示され続けます。演習としては、あまり、面白くない。最新のチュ-トリアルでは、Z が表示されるようです。

こちらも、Ctrl + Cで、プログラムを中断し、次に進みます。

(2) LEDマトリックス上に1文字を4回色別に表示

次に、この命令を4回続けて、マトリクス上に文字を4つ、それぞれ1秒間表示します。最後に、マトリクスを初期状態にしています。

from sense_hat import SenseHat
from time import sleep
sense = SenseHat()
red = (255, 0, 0)
blue = (0, 0, 255)
green = (0, 255, 0)
black = (0, 0, 0)
white = (255, 255, 255)sense.show_letter("O", red)
sleep(1)
sense.show_letter("M", blue)
sleep(1)
sense.show_letter("G", green)
sleep(1)
sense.show_letter("!", black, white)
sleep(1)
sense.clear()

(3) ランダム関数を使用して文字色を変える

最後に、ランダム変数を使って、それぞれの文字色を変化させるプログラムが載っております。

from sense_hat import SenseHat
from time import sleep
from random import randint

sense = SenseHat()
r = randint(0,255)
sense.show_letter("O", text_colour=[r, 0, 0])
sleep(1)

r = randint(0,255)
sense.show_letter("M", text_colour=[0, 0, r])
sleep(1)

r = randint(0,255)
sense.show_letter("G", text_colour=[0, r, 0])
sleep(1)

sense.show_letter("!", text_colour=[0, 0, 0], back_colour=[255, 255, 255])
sleep(1)

sense.clear()

参考
ラズパイ女子44回

sense hatの最新記事8件