【番外編】Scratch 2の猫に、Raspberry PiのGPIOを調べさせよう!

0
1052

【第5回】の「Scratch 1.4」ではブロック「config4inputpulldown▼を送る」を使って、GPIO4番端子を内部のプルダウン抵抗を有効化した入力端子として設定しましたが、「Scratch 2」には、このような設定がありません。

そこで、Raspberry Piの各GPIOが既定でプルアップ/プルダウンのどちらに設定されているかを事前に「Scratch 2」の猫に調べさせることにしました。

今回使った部品

  • Raspberry Pi 3 Model B × 1
  • 40Pinフラットリボンケーブル
  • 40Pin T型GPIO拡張ボード
  • ブレットボード × 1
  • ジャンプワイヤー(オス/オス) × 1

実体配線図

Raspberry Piとブレッドボードは【第2回】で紹介したT型GPIO拡張ボードで接続します。

今回、他に使用する部品はジャンプワイヤー(オス/オス) × 1本だけです。図では、GPIOの2番と21番を接続していますが、最初は21番の方だけに接続しておいてください。

Raspberry PiのGPIOを調べるプロジェクトを作る

【第1回】と同じ「Scratch 2」を起動しますが、事前に拡張機能の”Pi GPIO”を追加しておく必要はありません。

メニューバーから「ファイル▼」→「Load Project」をクリックします。

別画面で「最近開いたファイル」が表示されるので、今回のプロジェクトのベースとする【第9回】で作ったプロジェクト”LED_PIR.sb2″を選択して、「開く」ボタンをクリックします。

「Replace contents of the current project?」画面が現れるので、「OK」ボタンをクリックすると、画面左上のプロジェクト名と共にスクリプトエリアにプロジェクトが表示されます。

ブロック「もし<>なら」の内側に抱え込まれたブロックを外に出します。

出したブロックの「 (0.1) 秒待つ」から下を切り離します。

ブロック「もし<>なら」を右クリックして削除します。

ブロック「 (0,1) 秒待つ」を右クリックして削除します。

ブロック「set gpio (17) to output low▼」を右クリックして削除します。

ブロック「set gpio (17) to output high▼」を右クリックして削除します。

ブロック「もし<gpio (17) is high?>なら「」でなければ「」」をブロック「ずっと」の内側に抱え込ませます。

カテゴリー「見た目」のブロック「 (Hello!) と言う 」をブロック「もし<gpio (17) is high?>なら「」でなければ「」」の上側の凹に嵌め込ませます。

カテゴリー「見た目」のブロック「 (Hello!) と言う 」をブロック「もし<gpio (17) is high?>なら「」でなければ「」」の下側の凹に嵌め込ませます。

上側のブロック「 (Hello!) と言う 」の”Hello!”を”pullupだよ!”で上書きします。

下側のブロック「 (Hello!) と言う 」の”Hello!”を”pulldownじゃないか!”で上書きします。

ブロック「もし<gpio (17) is high?>なら「」でなければ「」」の”17″を”21″で上書きします。

カテゴリー「その他」のブロック「set gpio (  ) to output high▼」をブロック「緑の旗がクリックされたとき」の下に割り込ませます。

ブロック「set gpio (  ) to output high▼」の”(  )”に”21″を入力します。

ブロック「set gpio (21) to output high▼」の”▼”をクリックし、”input”を選択します。

スクリプトを実行してGPIOの設定を調べる

ステージ上の緑の旗をクリックすると、スクリプトが実行されます。

ジャンプワイヤーをGPIO21番だけに接続した状態で、緑の旗をクリックすると、ステージ上の猫は「pulldownじゃないか!」と言います。これでGPIO21番は既定でpulldownに設定されていることが確認できました。

ジャンプワイヤーのもう一方の端子をGPIO2番に接続すると、ステージ上の猫が「pullupだよ!」と言うので、GPIO2番は既定でpullupに設定されていることが確認できます。

続けてジャンプワイヤーのもう一方の端子をGPIO3~27番端子に接続したときの猫の発言で各端子毎の既定の設定が確認できます。

このプロジェクトでRaspberry PiのGPIOを調べた結果が下です。これは、SoCの仕様とも一致しています。

画面上中央の「赤丸」ボタンをクリックして、スクリプトを停止します。

作成したプロジェクトを保存する

プロジェクトを上書き保存する為、メニューバーの「ファイル▼」→「プロジェクトを保存」をクリックします。

項目「名前:」の入力蘭に今回のプロジェクト名を入力し、「保存」ボタンをクリックします

今回、プルアップ/プルダウン指定がない「Scratch 2」で各GPIO毎の既定の設定が確認できたので、次回からのプロジェクト作成に、この結果を役立てたいと思います。