このシリーズも【第3回】からは「Scratch 1.4」のPWM出力を使った”Lチカ”の進化を追及してきましたが、今回は一旦、「Scratch 2」に戻って、「Scratch 2」でもできることを確認してみたいと思います。
今回使った部品
- Raspberry Pi 3 Model B × 1
- 40Pinフラットリボンケーブル
- 40Pin T型GPIO拡張ボード
- ブレットボード × 1
- LED × 1
- 抵抗 220Ω × 1
- 人感センサー ( HC-SR501:焦電型赤外線センサーモジュール )
- ジャンプワイヤー(オス/オス) × 2
- ジャンプワイヤー(オス/メス) × 3
実体配線図
予め、新たなプロジェクトを別名で保存しておく
【第1回】と同じ「Scratch 2」を起動しますが、事前に拡張機能の”Pi GPIO”を追加しておく必要はありません。
メニューバーから「ファイル▼」→「Load Project」をクリックします。
別画面で「最近開いたファイル」が表示されるので、【第3回】で作ったプロジェクト”LED_SW.sb2″を選択して、「開く」ボタンをクリックします。
拡張子”.sb2″が「Scratch 2」で作ったプロジェクトで、拡張子”.sb”は「Scratch 1.4」で作ったプロジェクトです。
「Replace contents of the current project?」画面が現れるので、「OK」ボタンをクリックすると、画面左上のプロジェクト名と共にスクリプトエリアにプロジェクトが表示されます。
間違えて上書きしてしまわないように、予めメニューバーの「ファイル▼」→「プロジェクトを保存」をクリックし、別プロジェクトとして保存しておきます。
フォルダ「pi」が開くので、新しいプロジェクトの保存先のフォルダをダブルクリックします。
項目「名前:」の入力蘭に拡張子”.sb2″はそのままで今回のプロジェクト名を入力し、「保存」ボタンをクリックします。
人感センサーからの入力で"Lチカ"をon/off
スクリプトエリアのブロック「<スペースキー▼が押された>」を右クリックして削除します。
ブロックパレットのブロック「<gpio ( ) is high?>」をスクリプトエリアのブロック「もし<>なら「」」の”<>”に当て嵌めます。
ブロックパレットのブロック「<gpio ( ) is high?>」をスクリプトエリアのブロック「もし<gpio ( ) is high?>なら「」」の” ( ) “に人感センサーからの入力端子のGPIO番号”4″を入力します。
スクリプトを実行してみる
ステージ上の緑の旗をクリックすると、スクリプトが実行されます。
人感センサーに手をかざすと、【第3回】ではチャタリング対策として割り込ませたブロック「 (0.1) 秒待つ」のおかげで偶然、”Lピカ”が”Lチカ”になっていました。
但し、人感センサーからの入力が”1″から”0″になるタイミングでLEDが消灯したり、点灯したままになったりしてしまいます。
今回は「Scratch 2」でも、GPIOを入力端子として利用できることを確認できたのが収穫でした。
画面上中央の「赤丸」ボタンをクリックすると、スクリプトが停止します。
但し、「赤丸」ボタンをクリックするタイミングでLEDが消灯したり、点灯したままになったりしてしまいます。
作成したプロジェクトを上書き保存する
プロジェクトを上書き保存する為、メニューバーの「ファイル▼」→「プロジェクトを保存」をクリックします。
フォルダ「pi」が開くので、このプロジェクトの保存先のフォルダをダブルクリックします。
項目「名前:」の入力蘭に、このプロジェクト名が表示されていることを確認して、「保存」ボタンをクリックします。
「上書きしてもよろしいですか?」画面が現れるので、「置き換える」ボタンをクリックします。
今回、「Scratch 2」でも外部デバイスからの入力で、スクリプトをコントロールできることが分かりましたが、次回は【番外編】として、「Scratch 2」を使ってRaspberry PiのGPIOの仕様を調べておきたいと思います。