以前の記事「【番外編】Scratch 2の猫に、Raspberry PiのGPIOを調べさせよう!」で、Raspberry Piの各GPIOが既定でプルアップ/プルダウンのどちらに設定されているか調べましたが、その後、最近のRaspbianには”WiringPi“が既にプリインストールされていて、LXTerminalで各GPIOの設定一覧表が出力できることが分かりました。
今回使った部品
- Raspberry Pi 3 Model B × 1
今回は、WiringPiのコマンドでGPIOの設定を確認するだけなので、必要なのはRaspberry Piだけです。
WiringPiのコマンドでGPIOの設定を出力する
LXTerminalを起動し下のコマンドを実行します。
gpio readall
出力の”BCM”列がGPIO番号を示し、”Mode”が入出力設定、”V”がコマンド実行時の状態(High/Low)を表しています。
Raspberry Piの起動後にScratch等でGPIOの設定を変更する前なら、右の通りになっているはずです。
この出力は、「【番外編】Scratch 2の猫に、Raspberry PiのGPIOを調べさせよう!」での調査結果 ↑ や右のSoCのデータシートと一致しています。
Scratch 1.4の操作による出力結果の遷移
【第5回】のときと同じように「Scratch 1.4」を起動してGPIOサーバーを開始しておきます。
LXTerminalでもう一度、下のコマンドを実行します。
gpio readall
ブロック「config17out▼を送る」の実行で、BCM列”17(GPIO17)”番の設定が”IN(入力)”から”OUT(出力)”に変わりました。
LXTerminalでもう一度、下のコマンドを実行します。
gpio readall
ブロック「gpio17on▼を送る」の実行で、GPIO17のV列が”0(Low)”から”1(High)”に変わりました。
画面右上のステージに変数モニター「 gpio4センサーの値 (0) 」が表示されます。
このときのgpio4センサーの値 “0”は、GPIO4の設定が既定では”pullup(1)”だったものが、Scratch 1.4のブロック「config4inputpulldown▼を送る」を実行したことで”pulldown(0)”に変わったことを表しています。
LXTerminalでもう一度、下のコマンドを実行します。
gpio readall
こちらもブロック「config4inputpulldown▼を送る」の実行で、GPIO4のV列が”1(pullup)”から”0(pulldown)”に変わっています。
再起動後の設定を確認する
Scratch 1.4でブロックを実行したことが、Raspbianの再起動でリセットされるか確認する為、タスクバーのメニューアイコンから「Shutdown」をクリックします。
ここでは、「【STEP-21】Raspbianのデスクトップにショートカット追加」で作成したショートカットは使いません。
LXTerminalでもう一度、下のコマンドを実行します。
gpio readall
GPIO4の設定が既定では”pullup”なのに、V列が”0(pulldown)”のままで設定がリセットされていませんでした。
スクリプト停止時の設定リセットのすすめ
Scratch 1.4のプロジェクト実行後に別のプロジェクトを実行した場合、前の設定が残ったままでは意図しない挙動を示すことが有り得るので、プロジェクト停止時には設定をリセットするスクリプトを組み込んでおくことをおすすめします。
今回の事例で再起動後にも設定が残ってしまったブロック「config4inputpulldown▼を送る」の設定をリセットします。
カテゴリー「制御」のブロック「▼を送る」を右クリックして「新規/編集…」を左クリックします。