sense hatのジョイスティックを使用して方向を検出してみた
前回は、センサーを触ってみましたが、引き続き、ジョイスティックにも触れてみます。
Sense HAT では、ジョイスティックが付いています。
このジョイスティックは、押され、保持され、リリースされたときを、上、下、左 、右、中央の5つの異なる方向で検出できます。
これらを検出することで、その動作が特定できます。
さっそく、演習に入ってみます。
ジョイスティックの動きを検出
Sense HAT ジョイスティックは4つのキーボードカーソルキーにマッピングされ、ジョイ スティックの中央クリックは Return キーにマッピングされます。
つまり、ジョイスティックを使用すると、キーボードのキーを押すのとまったく同じ効果が得られます。
下方向は、HDMIポートが下を向いていることを忘れないでください。
それでは、チュートリアル(Using the joystick)に従って動作検証をしてみましょう。
from sense_hat import SenseHat
sense = SenseHat()
while True:
for event in sense.stick.get_events():
print(event.direction, event.action)
ジョイスティックを動かすと、ご覧のような表示がなされます。
方向をLEDマトリクスに表示
ジョイスティックがどの方向に押されたかに応じて、LEDマトリクスに文字U、D、L、Rま たはMのいずれかを表示します。
この動画では、眩しすぎて、何となく文字U、D、L、Rま たはMが表示されているようにしかわからんですな!大変申し訳ありません!
関数呼び出しのトリガ
Sense HATのジョイスティックが特定の方向に動かされるたびに、関数を呼び出すこともできます。
たとえば、ジョイスティックが押し上げられる(direction_up)などの特定のイベントを継続的に取り出し、それに応答して関数を起動するようにプログラムに指示できます。
sense.stick.direction_up = pushed_up
イベントによってトリガーされた関数は、パラメーターを持たないか、またはイベントをパラメーターとして受け取ることができます。
それでは、次の例を動かした結果を動画にしてみました。
このプログラムは、ジョイスティックを押すと、4つの異なる色でLEDマトリックスを満たす表示がなされます。
下で青、右で黄色、上で赤、左で緑でLEDが表示されます。
最後に
sense hatは、ジョイスティックの動きを検出できます。
今回の演習では、ジョイスティックの動きを検出することから始め、その方向をマトリクスに表示したり、ある方向が示された際に関数を呼び出したりしてみました。
中々、複雑な事も出来そうですね。
■「sense hatで遊ぶ!」の記事は次の通りです
ディスカッション
コメント一覧
まだ、コメントがありません