【第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
メニューバーから「ファイル▼」→「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の仕様とも一致しています。
画面上中央の「赤丸」ボタンをクリックして、スクリプトを停止します。
作成したプロジェクトを保存する
プロジェクトを上書き保存する為、メニューバーの「ファイル▼」→「プロジェクトを保存」をクリックします。
項目「名前:」の入力蘭に今回のプロジェクト名を入力し、「保存」ボタンをクリックします