Python & Raspberry Pi 開発ブログ ☆彡

PythonとRaspberry Piの基本的な使い方をわかりやすく解説。初心者、入門者必見!!

Raspberry Pi + Scratch 3でLEDを光らせる

scratch3

ブログ管理者のP.Hです!

今回は最近話題のScratchの使い方を紹介したいと思います。
学校教育でもプログラム思考を教える時代になりました。Raspbery Piはもともと教育用途を想定していますし、プログラム入門としては最適だと思います。それでは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のインストール方法については、下記記事をご覧ください。

www.raspberrypirulo.net

Scratch3を起動する

下記画面の青丸をクリックして、scratch3を起動します。

execute scratch3

基本的な動かし方

簡単な流れは以下のようです。

  1. 青丸のエリアで個別の動作(ブロック)を選ぶ
  2. 緑丸のエリアで個別の動作を繋げる(プログラムする)
  3. 実行する ⇒ 黄丸のエリアのスプライトくんが動作する

scratch3 window

スプライトくん(猫)を動かす

起動すると下記の画面が表示されます。まずは、右側に表示されているスプライトくん(猫)を動かしてみます。

  • 青丸の"動き"のタブをクリックします。
  • 緑丸の"10歩動かす"をクリックします。スプライトくんが右に動きます。
  • 黄丸の"15度回す"クリックしてみてください。左回転で15度動きます。

scratch block click

左側の動作が書いたブロックをクリックするとスプライトくんがブロックに書かれている通りに動きます。次は、この1つ1つの動作を繋げて、プログラムします。

プログラムして、スプライトくんを自由自在に動かす

  • 青丸の"イベント"のタブをクリックします。
  • 緑丸の"旗(マーク)が押されたとき"を真ん中のエリアにドラッグアンドドロップします。

scratch3 conbine

  • 青丸の"動き"のタブをクリックします。
  • 緑丸の"10歩動かす"を真ん中のエリアにドラッグアンドドロップします。また、数値の部分をクリックして、値を100歩に変更します。
  • 緑丸の"15度回す"を真ん中のエリアにドラッグアンドドロップします。また、数値の部分をクリックして、値を90度に変更します。
  • 下記の写真のようにブロックを繋げます。上から、"旗(マーク)が押されたとき" ⇒ "100歩動かす" ⇒ "90度回す"の順番です。

scratch3 program

  • 緑丸の旗(マーク)をクリック。スプライトくんが向いている方向に100歩動いて、向きを90度回転します。2つの動作を連続で動かすことができました。

scratch3 run

Scratch3でLEDを光らせる

スプライトくんを動かすことができましたので、次はLEDを光らせてみましょう。

拡張機能のインストール

scratch3には拡張機能があり、Raspbery PiのGPIOを簡単に操作できるようになっています。下記の手順で拡張機能をインストールします。
※GPIOとは汎用入出力のことで、出力をON/OFFすればLEDを光らせることができます。また入力状態を読み取れば、スイッチのON/OFF状態を読み取ることができます。

  • 黄丸をクリックします。

scratch extension

  • 青丸のRaspberry Pi GPIOをクリックします。

scratch3 extension gpio

  • 左側のタブにRaspbery Pi GPIOのタブが追加されます。また、GPIOを操作するブロックが4つ追加されます。

scratch3 extension gpio block

LEDを接続する

下記記事のようにLEDを接続します。

www.raspberrypirulo.net

プログラムを作成する

  • 下記写真のようにプログラムを作ります。

scratch3 led

以下のような動きになります。

  1. gpio:26番の出力をhigh ⇒ LEDが点灯する
  2. 3秒待つ
  3. gpio:26番の出力をlow ⇒ LEDが消灯する
  4. 3秒待つ
  5. 上記1~4を繰り返す

実行する

画面右上の旗ボタンをクリックします。LEDが3秒間隔で点灯、消灯を3秒間隔で繰り返します。scratchでLチカができましたね! 停止する時は、画面右上の赤丸のボタンをクリックします。

スイッチを押すとスプライトくんが動く

スイッチを接続する

GPIO16番(36ピン)とGND(34ピン)にスイッチを接続します。

プログラムを作成する

下記写真のようにプログラムを作ります。 scratch3 switch

以下のような動きになります。

  1. gpio:16番の入力をプルアップ設定にする ⇒ 何も繋がっていない(スイッチOFF)時に、Highになるようにgpio16番を設定
  2. gpio16番がhighからlowか確認する
    ⇒high(スイッチがOFF)なら、スプライトくんを10歩動かして、gpio26をhigh(LEDを点灯)にする
    ⇒low(スイッチがON)なら、スプライトくんを-10歩動かして、gpio26をlow (LEDを消灯)にする
  3. 5秒待つ
  4. 上記2~3を繰り返す

これでスイッチと連動させて、スプライトくんを動かしたり、LEDを光らせることができるようになりました。スイッチを複数つければ、スイッチ毎にいろいろな動作をさせることができますね。

LEDを光らせたり、スイッチのON/OFFする等、動きがあるとプログラムの勉強も楽しくできると思います。scrachの需要が今後増えそうですので、触ってみてはいかがでしょうか。