Raspberry Piの素晴らしい点の一つは、豊富なHAT(上部にハードウェアを装着するボード)の存在です。HATはGPIOピンに接続することで、ライト、センサー、モーターなどの追加機能を提供します。Raspberry Pi Foundation独自のSense HATは、子供から大人まで、楽しく教育的なプロジェクトを作りながらプログラミングを学ぶ絶好の機会を提供します。
その名の通り、Raspberry Pi Sense HATには、温度、湿度、圧力、磁力、方位、加速度を測定するセンサーが搭載されています。また、8 x 8の美しいマルチカラーLEDグリッドも搭載されており、テキストをスクロールしたり、ピクセル化された画像を表示したりできます。ジョイスティックは、プロジェクトで使用する基本的な入力を提供します。Sense HATは、初代B+から最新のRaspberry Pi 4まで、Raspberry Piのすべてのモデルに対応しており、子供向けのシンプルながらもパワフルなブロックベース言語であるScratch 3を含む、様々なプログラミング言語で使用できます。
以下では、Scratch 3 を使用して 3 つの異なる Raspberry pi Sense HAT プロジェクトをプログラムする方法を説明します。LED を使用して名前をスクロールし、ジョイスティックを使用して入力をトリガーし、センサーを読み取って温度と方向を取得します。
Raspberry Pi Sense HATプロジェクトに必要なもの
- Raspberry Pi 4(理想的には2GB以上のメモリを搭載したPi 4)。Pi 3B+でも構いませんが、Scratch 3ではパフォーマンスが非常に低下する可能性があります。
- Raspberry Pi Sense HAT(通常30ドル以下)
- Raspberry Piのギア。言うまでもありませんが、Raspberry Piを初めてセットアップする場合は、microSDカードと電源アダプター(Pi 4の場合は3アンペア、5ボルト)が必要です。Raspberry PiをヘッドレスセットアップしてPCからPiを制御することも可能ですが、そうでない場合はキーボード、マウス、モニターが必要になります。
Raspberry Pi Sense HATとScratch 3のセットアップ
1. Sense HATを取り付ける電源を切った状態で、Sense HATをGPIOの40ピンすべてに接続し、ボードがRaspberry Piにぴったり収まるようにします。Sense HATに付属の真鍮製スタンドオフを使用して、ボードをしっかりと固定します。
2. raspi-config で I2C を有効にします(コマンド プロンプトで「sudo raspi-config」と入力し、[Interfacing Options] -> [I2C] に移動します)。その後、再起動します。
3. Scratch 3がまだインストールされていない場合はインストールします。最も簡単な方法は、
sudo apt-get install scratch3
Scratch 3 には、左から右に次の 3 つのメイン セクションがあります。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
- プロジェクトをコーディングするためのブロックは、機能別にグループ化されています。色分けされたブロックは、機能別にフィルタリングできます。また、スプライトの見た目を変更するためのコスチュームタブや、ゲームに関連するサウンドタブもあります。
- 中央の領域は、ブロックをドラッグしてプロジェクトを作成するコーディング領域です。
- 右側のセクションはステージで、プロジェクト内でスプライトが入力に反応し、出力を生成する場所です。ステージの下には、スプライトと背景を管理するセクションがあります。
4. Sense HAT Scratch 3拡張機能をインストールします。Sense HATを使用するには、Scratchが追加ブロックを提供するために使用するコードライブラリである拡張機能をインストールする必要があります。画面左下のアイコンをクリックすると、いくつかの拡張機能が表示されます。Raspberry Pi Sense HATを探してクリックし、インストールしてください。しばらくすると、新しいブロックセクションが表示され、最初のプロジェクトを作成する準備が整います。
Sense HAT 拡張機能の使用に慣れるために、シンプルなスクロール名前プロジェクトを作成します。
1.イベントセクションから「緑の旗がクリックされたとき」をコーディング領域にドラッグします。
2. 「感知」から「あなたの名前は何ですか」ブロックをドラッグし、前のブロックの下に接続します。
3. Sense HATセクションの「テキスト表示」ブロックを「お名前は何ですか?」ブロックに接続します。ユーザーに「こんにちは」と挨拶するだけでなく、名前で呼ぶことも行います。
4. 「演算子」の下にある「join apple banana」ブロックを見つけてドラッグし、表示テキスト内の「hello」という単語を置き換えます。
5. 「apple」を「Hello」に変更します(Helloの後のスペースは重要です)。
6. Sensingから「answer」ブロックをドラッグし、Joinブロックの「banana」セクションの上にドロップします。これにより、「Who are you?」という質問への回答が「answer」という変数に保存され、ユーザーに名前で挨拶する際に使用されます。
7.ステージの上にある緑の旗のアイコンをクリックすると、スプライトが名前を尋ねます。
8.名前を入力すると、Sense HAT が名前で挨拶します。
ジョイスティック入力、Raspberry Pi Sense HATによる温度測定
Sense HATには、入力に使用できるシンプルなジョイスティックが搭載されています。動作をテストするために、シンプルなプロジェクトと、より複雑なプロジェクトをそれぞれ1つずつ作成します。テストプロジェクトは以下のとおりです。
テスト プロジェクトでは、「Sense HAT」セクションにある「ジョイスティックが押し上げられたとき」ブロックを使用します。
1. 「Sense HAT」セクションから「ジョイスティックが押し上げられたとき」ブロックをコーディング領域にドラッグし、ジョイスティックを上から中央に押す方向を変更します。
2. 「Sense HAT」セクションから「色を設定」ブロックを追加します。そして、色を何か面白いものに変更します。
3. 「ディスプレイ..」ブロックを前のブロックに接続します。デフォルトの画像は、Piのロゴのピクセルアートです。
コードが完了したら、PS4 / Xbox Oneのアナログスティックと同じように、ジョイスティックの中央を押してテストしてください。LEDマトリックスにPiのロゴが、選択した色で表示されるはずです。
同じコーディングエリアですが、今度はより複雑なプロジェクトに移ります。このプロジェクトでは、Sense HATに搭載されている温度センサーを使って温度をチェックします。温度を変数に保存し、その変数と比較して、20℃を超えているかどうかを確認します。20℃を超えている場合は、Sense HATに表示されるテキストが赤色で表示されます。20℃を下回っている場合は、青色で表示されます。
1. 「ジョイスティックを上に押したとき」をコーディング領域にドラッグします。
2.変数セクションで「変数を作成」をクリックします。変数名を「temp」とし、デフォルトの設定をそのまま使用します。
3. 「変数を 0 に設定する」をドラッグして、前のブロックの下に配置します。
4.ドロップダウンメニューを使用して「my variable」を「temp」に変更します。
5. 「温度」ブロックをドラッグして、 「変数を設定」ブロックの0の上に配置します。これにより、変数「temp」の内容がSense HATから読み取った現在の温度に更新されます。
6. 「If、then、else」ブロックを追加し、前のブロックに接続します。
7. 「_ > 50」をドラッグして、「if」と「then」の間の空白の図形内に配置します。
8. 「temp」変数ブロックをドラッグして「_ > 50」の最初の空白の上に配置し、50を20に変更します。これは、温度が20℃を超えると何かが起こることを意味します。
9. Sense HAT ブロックの「色を設定」ブロックをブロックの IF 部分に接続し、オプションを赤に変更します。
10. Sense HAT から「テキストを表示」ブロックを接続し、Operators から「結合」ブロックをドラッグして、そのブロックの「Hello!」の上に配置します。
11.テキストの最初のセクションを「気温は」に変更し、2 番目のスペースに別の「結合」ブロックをドラッグします。
12. 「temp」変数をドラッグして次のスペースに配置し、最後のスペースに「C」 と入力します。
13. 気温が20℃以下の場合にアクティブになるelse条件については、カラーブロックとテキストブロックを複製(右クリック)し、Else条件内に配置します。色を変更するのを忘れないでください。
これで、アプリを実行し、ジョイスティックの上を押すとライブ温度データを取得できます。
Raspberry Pi Sense HAT での加速度計検出
最終プロジェクトでは、加速度計を使用して動きを検出し、それを使用して画面上のスプライトを制御します。
1. 「Sense HAT」セクションから「前方に傾けたとき」をコーディング領域にドラッグします 。
2. 「モーション」ブロック領域から「Yを10変更」を接続します。
3. HDMI リードが天井を向くように Pi を傾けると、スプライトが 1 回動きます。
4.これらのブロックを複製し(右クリック)、傾きを後方に変更し、10 を -10 に変更します。
5. HDMI リードが床を向き、猫が下に移動するように Pi を移動します。
6. 右に動かすには、「前に傾けたとき」を「右」に変更し、「モーション」から「Xを10ずつ変更」を選択します。Pi を右に傾けると猫が動きます。
7.コードを複製して変更し、後進時と同様に左に移動するようにします。Raspberry Piを動かしてコードをテストしてください。
これで、Scratch 3 を介して Sense HAT を操作する 3 つの簡単なプロジェクトが完成しました。
この記事はもともと Linux Format Issue 261に掲載されました。
レス・パウンダーは、トムズ・ハードウェアのアソシエイトエディターです。クリエイティブテクノロジストとして、7年間にわたり、老若男女を問わず、教育と啓発のためのプロジェクトを手がけてきました。Raspberry Pi Foundationと協力し、教師向けトレーニングプログラム「Picademy」の執筆・提供にも携わっています。