【ラズパイ】ジョイスティックを使ってみる。

こちらの記事を参考にしています。

https://github.com/raspberrypilearning/astro-pi-guide/blob/master/inputs-outputs/joystick.md

サンプルプログラムを少しアレンジしています。

from sense_hat import SenseHat
sense = SenseHat()
sense.clear()

x, y = 0, 0
clear = [0, 0, 0]
colours = [[255,0,0], [0,255,0], [0,0,255], [255,255,0], [255,0,255], [0,255,255]]
colour = 0
sense.set_pixel(x, y, colours[colour])

while True:
    for event in sense.stick.get_events():
        #print(event.direction, event.action)
        sense.set_pixel(x, y, colours[colour])
        if event.action == 'pressed' and event.direction == 'up':
            if y > 0:
                sense.set_pixel(x, y, clear)
                y -= 1
                sense.set_pixel(x, y, colours[colour])
        if event.action == 'pressed' and event.direction == 'down':
            if y < 7:
                sense.set_pixel(x, y, clear)
                y += 1
                sense.set_pixel(x, y, colours[colour])
        if event.action == 'pressed' and event.direction == 'right':
            if x < 7:
                sense.set_pixel(x, y, clear)
                x += 1
                sense.set_pixel(x, y, colours[colour])
        if event.action == 'pressed' and event.direction == 'left':
            if x > 0:
                sense.set_pixel(x, y, clear)
                x -= 1
                sense.set_pixel(x, y, colours[colour])
        if event.action == 'pressed' and event.direction == 'middle':
            colour += 1
            if colour == len(colours):
                colour = 0
            sense.set_pixel(x, y, colours[colour])

これを実行すると、8×8のLEDディスプレイに1ドットの点が現れ、スティックを倒した方向に点が移動し、ジョイスティックを押すと、色が変わります。

そろそろできることが限られてきたので、次回はちょっとIoTっぽいことをしましょうかね。

0

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください