LED表示の向きを変える/sense hatを動かす part4

シェアする

Pocket

リニューアルしました。 2018/10/8

1.向きの設定(Setting orientation)

さて、part4 では、sense hat の向きの設定を行います。

これまでのところ、すべてのテキストと画像が同じように表示され、HDMIポートが最下部に表示されていました。しかし、これは常にSense HAT(特に宇宙空間)の真の方向性とは限りません。したがって、LEDマトリックスの向きを変えたい場合があります。

これは、宇宙では、重力がないので、sense hat もプカプカ浮いて、今まで上だったものが、逆転したり、斜めになったりする場合があるので、それにも対応していますよってことかと、勝手に解釈しています。

(1) set_rotation()メソッド

このコマンドを使用して、Sense HATでLEDマトリクス表示の向きを変更することができます。スクリーンを0、90、180、または270度の4通りの方法で回転します。

たとえば、ディスプレイを180度回転させるには、次のコードを使用します。

sense.set_rotation(180)

(2) sense.flip_h()メソッド、sense.flip_v()メソッド

このコマンドを使用して、画面上の画像を左右に反転することができます。

sense.flip_h()

…または垂直方向。

sense.flip_v()

2.Sense HATのLEDディスプレイを回転させる

(1) 新バージョンでの演習

Sense HATに接続するために記述したコードの下にディスプレイを回転させるコードを追加して、前のステップからピクセル画像の向きを変更します。

from sense_hat import SenseHat

sense = SenseHat()

sense.set_pixel(2, 2, (0, 0, 255))
sense.set_pixel(4, 2, (0, 0, 255))
sense.set_pixel(3, 4, (100, 0, 0))
sense.set_pixel(1, 5, (255, 0, 0))
sense.set_pixel(2, 6, (255, 0, 0))
sense.set_pixel(3, 6, (255, 0, 0))
sense.set_pixel(4, 6, (255, 0, 0))
sense.set_pixel(5, 5, (255, 0, 0))

sense.set_rotation(180)

180度回転させた結果が表示されます。しかし、次の演習と比べると派手さもないし、あまり面白くないですね。

(2) 旧バージョンの演習1

古いチュートリアルに出ていた演習を載せておきます。

最初の演習は、part2で最後にやったプログラムに最終行を追加したものです。sleep 文を入れて、表示される結果を写真撮影しました。

from sense_hat import SenseHat
from time import sleep

sense = SenseHat()sense.clear()
sleep(1)    ◆1

r = [255, 0, 0]
o = [255, 127, 0]
y = [255, 255, 0]
g = [0, 255, 0]
b = [0, 0, 255]
i = [75, 0, 130]
v = [159, 0, 255]
e = [0, 0, 0]

image = [
e,e,e,e,e,e,e,e,
e,e,e,r,r,e,e,e,
e,r,r,o,o,r,r,e,
r,o,o,y,y,o,o,r,
o,y,y,g,g,y,y,o,
y,g,g,b,b,g,g,y,
b,b,b,i,i,b,b,b,
b,i,i,v,v,i,i,b
]

sense.set_pixels(image)    ◆2
sleep(1)

sense.set_rotation(180)    ◆3
sleep(1)

sense.clear()

これなら、クリア(◆1)されて、レインボーが表示され(◆2)、最後に、レインボーが逆転表示(◆3)されるのが、よくわかります。

◆1 ◆2 ◆3

(2) 旧バージョンの演習2

旧チュ-トリアルの演習2です。

次の演習は、文字を回転させます。まずは、文字Jを表示して、0度、90度、180度、270度回転させることを2回繰り返します。

from sense_hat import SenseHat
from time import sleep

sense = SenseHat()

sense.show_letter("J")

angles = [0, 90, 180, 270, 0, 90, 180, 270]
for r in angles:
    sense.set_rotation(r)
    sleep(0.5)

3.簡単なアニメーション

最後の演習ですが、イメージを繰り返し反転させることで簡単なアニメーションを作成することです。

from sense_hat import SenseHat
from time import sleep

sense = SenseHat()

w = [150, 150, 150]
b = [0, 0, 255]
e = [0, 0, 0]i

mage = [
e,e,e,e,e,e,e,e,
e,e,e,e,e,e,e,e,
w,w,w,e,e,w,w,w,
w,w,b,e,e,w,w,b,
w,w,w,e,e,w,w,w,
e,e,e,e,e,e,e,e,
e,e,e,e,e,e,e,e,
e,e,e,e,e,e,e,e
]

sense.set_pixels(image)

while True:
    sleep(1)
    sense.flip_h()

撮影技術が未熟で分かりにくいですが、青い色が左右に動いているのがわかると思います。目が、左右に動くアニメですね。

Raspberry Pi Sense HAT – 6 センサー、8×8 LEDマトリックス、ジョイスティック

新品価格
¥4,200から
(2017/4/19 12:27時点)

LEDにイメージを表示する/sense hatを動かす part3はこちら。
センサーにて環境を感知する/sense hatを動かす part5はこちら。

スポンサーリンク

シェアする

フォローする