sense hatのジョイスティックを使用して方向を検出してみた

2018年12月10日

前回は、センサーを触ってみましたが、引き続き、ジョイスティックにも触れてみます。

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で遊ぶ!」の記事は次の通りです

スポンサーリンク
この記事を書いた人

60爺

60路を越え、RaspberryPi と出会い、その関係でブログ開設(2017/2~)となりました。始めてみると、コツコツやるのが性に合ってしまい、漢字の記事から家の補修・将棋・windows10関係・別名・言い方などジャンルを拡大して今に至ってます。まだまだ、元気なので新たな話題を見つけて皆様に提供できればと思っています。「プロフィールはこちら