Raspberry Pi + Scratch 3でLEDを光らせる プログラミングの勉強をしよう!
この記事の内容はRaspberry Pi 4と3の両方で動作確認済みです
ブログ管理者のP.Hです!
今回は最近話題のScratchの使い方を紹介したいと思います。
学校教育でもプログラム思考を教える時代になりました。Raspbery Piはもともと教育用途を想定していますし、プログラム入門としては最適だと思います。それではScratch3って、LEDを光らせる方法を詳しく紹介していきます。
- Scratch 3 のインストール
- Scratch3を起動する
- 基本的な動かし方
- スプライトくん(猫)を動かす
- プログラムして、スプライトくんを自由自在に動かす
- Scratch3でLEDを光らせる
- スイッチを押すとスプライトくんが動く
プログラミングというと難しそうなイメージですが、Scratch3ではソースコードを書くことはありません。ブロックをつなぎ合わせることで、プログラミングが可能です。それでは早速、Scratch3を使ってみましょう。
Scratch 3 のインストール
RaspbainのOSイメージには下記の2つがあります。
- Raspbian Buster with desktop and recommended software
- Raspbian Buster with desktop
Raspbian Buster with desktop and recommended softwareのイメージには、scratch3がインストールされています。scratch3を使いたい方はこちらのOSをインストールしましょう。
OSのインストール方法については、下記記事をご覧ください。
Scratch3を起動する
下記画面の青丸をクリックして、scratch3を起動します。
基本的な動かし方
簡単な流れは以下のようです。
- 青丸のエリアで個別の動作(ブロック)を選ぶ
- 緑丸のエリアで個別の動作を繋げる(プログラムする)
- 実行する ⇒ 黄丸のエリアのスプライトくんが動作する
スプライトくん(猫)を動かす
起動すると下記の画面が表示されます。まずは、右側に表示されているスプライトくん(猫)を動かしてみます。
- 青丸の"動き"のタブをクリックします。
- 緑丸の"10歩動かす"をクリックします。スプライトくんが右に動きます。
- 黄丸の"15度回す"クリックしてみてください。左回転で15度動きます。
左側の動作が書いたブロックをクリックするとスプライトくんがブロックに書かれている通りに動きます。次は、この1つ1つの動作を繋げて、プログラムします。
プログラムして、スプライトくんを自由自在に動かす
- 青丸の"イベント"のタブをクリックします。
- 緑丸の"旗(マーク)が押されたとき"を真ん中のエリアにドラッグアンドドロップします。
- 青丸の"動き"のタブをクリックします。
- 緑丸の"10歩動かす"を真ん中のエリアにドラッグアンドドロップします。また、数値の部分をクリックして、値を100歩に変更します。
- 緑丸の"15度回す"を真ん中のエリアにドラッグアンドドロップします。また、数値の部分をクリックして、値を90度に変更します。
- 下記の写真のようにブロックを繋げます。上から、"旗(マーク)が押されたとき" ⇒ "100歩動かす" ⇒ "90度回す"の順番です。
- 緑丸の旗(マーク)をクリック。スプライトくんが向いている方向に100歩動いて、向きを90度回転します。2つの動作を連続で動かすことができました。
Scratch3でLEDを光らせる
スプライトくんを動かすことができましたので、次はLEDを光らせてみましょう。
拡張機能のインストール
scratch3には拡張機能があり、Raspbery PiのGPIOを簡単に操作できるようになっています。下記の手順で拡張機能をインストールします。
※GPIOとは汎用入出力のことで、出力をON/OFFすればLEDを光らせることができます。また入力状態を読み取れば、スイッチのON/OFF状態を読み取ることができます。
- 黄丸をクリックします。
- 青丸のRaspberry Pi GPIOをクリックします。
- 左側のタブにRaspbery Pi GPIOのタブが追加されます。また、GPIOを操作するブロックが4つ追加されます。
LEDを接続する
下記記事のようにLEDを接続します。
プログラムを作成する
- 下記写真のようにプログラムを作ります。
以下のような動きになります。
- gpio:26番の出力をhigh ⇒ LEDが点灯する
- 3秒待つ
- gpio:26番の出力をlow ⇒ LEDが消灯する
- 3秒待つ
- 上記1~4を繰り返す
実行する
画面右上の旗ボタンをクリックします。LEDが3秒間隔で点灯、消灯を3秒間隔で繰り返します。scratchでLチカができましたね! 停止する時は、画面右上の赤丸のボタンをクリックします。
スイッチを押すとスプライトくんが動く
スイッチを接続する
GPIO16番(36ピン)とGND(34ピン)にスイッチを接続します。
プログラムを作成する
下記写真のようにプログラムを作ります。
以下のような動きになります。
- gpio:16番の入力をプルアップ設定にする ⇒ 何も繋がっていない(スイッチOFF)時に、Highになるようにgpio16番を設定
- gpio16番がhighからlowか確認する
⇒high(スイッチがOFF)なら、スプライトくんを10歩動かして、gpio26をhigh(LEDを点灯)にする
⇒low(スイッチがON)なら、スプライトくんを-10歩動かして、gpio26をlow (LEDを消灯)にする - 5秒待つ
- 上記2~3を繰り返す
これでスイッチと連動させて、スプライトくんを動かしたり、LEDを光らせることができるようになりました。スイッチを複数つければ、スイッチ毎にいろいろな動作をさせることができますね。
LEDを光らせたり、スイッチのON/OFFする等、動きがあるとプログラムの勉強も楽しくできると思います。scrachの需要が今後増えそうですので、触ってみてはいかがでしょうか。