※この記事は公開から時間が経っているため、現在の環境とは内容が異なる場合があります。
ラズベリーパイ(Raspberry Pi Zero WH)は、Scratch(スクラッチ)を使ってプログラムを作ることもできます。
前回は、Python3を使ってLEDを点滅させるLチカを行いました。
今回は、同じLチカをScratchでも試してみます。
Scratchは、文字でプログラムを書く代わりに、ブロックを組み合わせて処理を作るビジュアルプログラミング環境です。
LEDを点ける、少し待つ、消す、また待つ、といった処理の流れをブロックの並びで表現できるので、プログラムの動きを直感的に理解しやすいのが特徴です。
Python3でLチカをしたときと同じように、Raspberry Piから信号を出して、ブレッドボード上のLEDを点けたり消したりします。
今回の制作内容
今回は、Scratchのブロックを使ってLEDを点滅させます。

大まかな流れは、次の通りです。
- Raspberry Pi Zero WHとブレッドボードを配線する
- Scratchを起動する
- GPIOサーバーを開始する
- Scratchのブロックを並べる
- 緑の旗をクリックしてプログラムを実行する
- LEDが点滅するか確認する
Pythonのコードを書く代わりに、Scratchでは「ブロック」を組み合わせます。
「LEDをつける」「0.5秒待つ」「LEDを消す」「0.5秒待つ」という流れをくり返すと、LEDがチカチカ点滅します。
Scratchとは
Scratch(スクラッチ)は、ブロックを組み合わせてプログラムを作るビジュアルプログラミング環境です。
命令がブロックとして表示されるので、処理の順番を目で追いやすいのが特徴です。
今回使うRaspberry Pi Zero WHの環境では、Scratch 1.4を使ってGPIOを操作します。
この記事では、Scratchそのものの詳しい使い方よりも、Raspberry Piの電子工作として「LEDを点滅させるところ」までを中心にまとめます。
公式サイトはこちらです。

Raspberry PiでScratch 1.4からGPIOを使う方法については、公式ドキュメントもあります。
準備するもの
今回のScratch Lチカで使うものは、Python3でLチカしたときとほぼ同じです。
- Raspberry Pi Zero WH
- microSDカード
- microUSB電源ケーブル
- パソコン
- ブレッドボード
- ジャンパーワイヤー
- 抵抗
- LED
Raspberry Pi Zero WH
Raspberry pi zero WH は、初期設定と環境設定が済んだものを使います。

初期設定はこちらです。

環境設定はこちらです。

microSDカード
Raspberry PiのOSやプログラムを保存するために、microSDカード を使います。

8〜32GB程度のものを目安に使っています。
microUSB電源ケーブル
Raspberry Pi Zero WHの電源用に、microUSB電源ケーブルを使います。

スマホ用のmicroUSB充電ケーブルを使える場合もありますが、電源が弱いと起動が不安定になることがあります。
パソコン
Raspberry Piに接続したり、設定を確認したりするためにパソコンを使います。

この記事では、Raspberry Piの画面をVNC Viewerで表示し、Raspberry Pi上のScratchを操作しています。
ブレッドボード
ブレッドボード は、はんだ付けをしなくても電子部品を差し込んで配線できるボードです。

LEDや抵抗を挿して、ジャンパーワイヤーでRaspberry Piと接続します。
ジャンパーワイヤー
ジャンパーワイヤー は、Raspberry PiのGPIOピンとブレッドボードをつなぐために使います。

抵抗
LEDに流れる電流を制限するために、抵抗を使います。

LEDをRaspberry Piに直接つなぐと、電流が流れすぎてLEDやRaspberry Piを壊してしまう可能性があります。
必ず抵抗を入れて使います。
LED
LEDは、電流を流すと光る部品です。

LEDには向きがあります。
長い足がプラス側、短い足がマイナス側です。
配線方法
回路図と配線は、Python3でLチカしたときと同じ考え方です。
Raspberry Pi Zero WHのGPIO23から信号を出し、抵抗を通してLEDの長い足へつなぎます。
LEDの短い足はGNDへつなぎます。

今回の配線は、次の流れです。
GPIO23(ピン16) → 抵抗 → LEDの長い足(+)
LEDの短い足(-) → GND
抵抗は、LEDに流れる電流を制限するために入れます。
図では220Ω程度の抵抗を例にしています。手元の部品やLEDの種類によって適切な値は変わりますが、最初のLチカでは220〜330Ω程度の抵抗が使われることが多いです。
LEDの向きに注意する
LEDには向きがあります。
- 長い足:アノード(+)
- 短い足:カソード(-)
今回の配線では、LEDの長い足を抵抗側、短い足をGND側へつなぎます。
向きが逆だとLEDは光りません。
配線写真
写真で見ると、このような配線になります。

写真にはカメラに接続している金色のケーブルも見えますが、今回のLチカでは使っていません。
配線するときは、電源を切った状態で作業します。
線を挿し間違えたまま電源を入れると、LEDが光らないだけでなく、部品を壊してしまう可能性もあります。
Scratchでプログラミングする
配線ができたら、ScratchでLEDを点滅させるプログラムを作ります。
今回作るブロックの流れは、次のようなイメージです。

Scratchでは、文字のコードを入力する代わりに、ブロックをドラッグして並べます。
今回のプログラムは、次の流れです。
緑の旗がクリックされたとき
config23out を送る
ずっと
gpio23on を送る
0.5秒待つ
gpio23off を送る
0.5秒待つ
config23out は、GPIO23を出力として使うための設定です。
gpio23on は、GPIO23の出力をONにします。
gpio23off は、GPIO23の出力をOFFにします。
このONとOFFをくり返すことで、LEDが点滅します。
Scratchを起動する
Raspberry Pi Zero WHを起動し、メニューからScratchを開きます。
[プログラミング] → [Scratch]

インストールされているScratch 1.4が起動します。

Scratchの画面とカテゴリー
Scratchの画面には、ブロックのカテゴリーがあります。
たとえば「制御」カテゴリーをクリックすると、制御に関係するブロックが表示されます。
表示されたブロックを中央のスクリプトエリアへドラッグして、プログラムを作っていきます。

Scratchでは、カテゴリーごとにブロックの色が分かれています。
色で種類を見分けられるので、慣れていない状態でも探しやすいです。
Lチカプログラムを作る
ここから、LEDを点滅させるブロックを並べていきます。
緑の旗がクリックされたときブロックを置く
まずは、プログラムをスタートさせるブロックを置きます。
「制御」カテゴリーから、次のブロックをドラッグします。
緑の旗がクリックされたとき

このブロックの下に、LEDを点滅させるためのブロックをつなげていきます。
config23outを送るブロックを作る
次に、GPIO23を出力として使うためのブロックを作ります。
「〜を送る」ブロックを置きます。

「〜を送る」ブロックの▼をクリックし、「新規/編集」を選びます。

メッセージ名に、次のように入力します。
config23out

OKをクリックすると、config23outを送る ブロックができます。

config23out は、GPIO23を出力として使うための設定です。
GPIO番号の23を使うので、Raspberry Piの物理ピン番号16とは数字が違う点に注意します。
LEDをONにするブロックを作る
LEDを点灯させるには、GPIO23をONにします。
送るメッセージ名は、次のようにします。
gpio23on
このブロックを実行すると、GPIO23がONになり、LEDが点灯します。
LEDをOFFにするブロックを作る
LEDを消灯させるには、GPIO23をOFFにします。
送るメッセージ名は、次のようにします。
gpio23off
このブロックを実行すると、GPIO23がOFFになり、LEDが消灯します。
0.5秒待つブロックを入れる
LEDを点けたあと、すぐに消してしまうと点滅が見えにくくなります。
そこで、ONとOFFの間に待ち時間を入れます。
0.5秒待つ
「1秒待つ」ブロックの数字部分をクリックすると、待ち時間を変更できます。
ブロック全体
最終的には、このようなブロックになります。

流れとしては、次の通りです。
1. GPIO23を出力として使う
2. LEDをONにする
3. 0.5秒待つ
4. LEDをOFFにする
5. 0.5秒待つ
6. 2〜5をくり返す
Scratchでプログラムを実行する
ブロックができたら、プログラムを実行します。
GPIOサーバーを開始する
このプログラムでは、ScratchからRaspberry PiのGPIOを操作します。
そのため、実行する前にGPIOサーバーを開始します。
Scratch 1.4のメニューバーから、次の順番でクリックします。
[編集] → [GPIOサーバーを開始]

コマンドの gpioserveronを送る を実行しても、同じようにGPIOサーバーを開始できます。
プログラムを開始する
GPIOサーバーを開始したら、Scratch画面の右上にある緑の旗をクリックします。

プログラムが動くと、LEDが0.5秒ごとに点灯・消灯します。
プログラムを止める
プログラムを止めるときは、赤い丸をクリックします。

赤い停止ボタンを押すと、Scratchのプログラムが止まります。
動作確認
LEDが点いたり消えたりして、チカチカ点滅すれば成功です。
うまく光らない場合は、次の点を確認します。
LEDの向きは合っているか
LEDは向きが逆だと光りません。
長い足がプラス側、短い足がマイナス側です。
GPIO番号は合っているか
この記事では、GPIO23を使っています。
Scratchのメッセージ名も、GPIO23に合わせて次のようにします。
config23out
gpio23on
gpio23off
23 の部分を間違えると、意図したピンが動きません。
GPIOサーバーを開始しているか
ScratchからGPIOを操作するには、GPIOサーバーを開始する必要があります。
LEDが反応しない場合は、[編集] → [GPIOサーバーを開始] を実行しているか確認します。
抵抗を入れているか
LEDには必ず抵抗を入れます。
抵抗なしで直接つなぐと、LEDやRaspberry Piを壊してしまう可能性があります。
GNDにつながっているか
LEDの短い足側がGNDにつながっているか確認します。
Raspberry Piには複数のGNDピンがあります。
どのGNDを使ってもGNDとしては同じですが、配線図と照らし合わせながら確認すると分かりやすいです。
だんだん明るさが変わるLED
Scratchでは、LEDを点ける・消すだけでなく、明るさを変える動きも作れます。
PWMというしくみを使うと、LEDがだんだん明るくなったり、だんだん暗くなったりするように見せることができます。
PWMについては、こちらの記事でも紹介しています。

Scratchでは、GPIO出力をON/OFFではなく、0〜1024の数値で指定します。

bright変数を作る
明るさを変えるために、bright という変数を作ります。
「変数」カテゴリーをクリックし、「新しい変数を作る」ボタンをクリックします。

変数名に次のように入力します。
bright
画面の右側に bright 変数が表示されます。
必要に応じて、スライダー表示に変更し、最大値を1024に設定します。
gpio23pwmを使う
PWMでGPIO23を制御するときは、gpio23pwm を使います。
「演算」カテゴリーのブロックを組み合わせて、gpio23pwm と bright の値を送ります。

最終的に、次のようなブロックができます。

このブロックを使うと、LEDの明るさを段階的に変えられます。
まとめ
Raspberry Pi Zero WHで、Scratchを使ってLEDを点滅させるLチカを行いました。
今回の流れは、次の通りです。
- LEDと抵抗をブレッドボードに配線する
- Raspberry Piとブレッドボードをつなぐ
- Scratch 1.4を起動する
- GPIOサーバーを開始する
config23outでGPIO23を出力に設定するgpio23onとgpio23offを使ってLEDをON/OFFする- 緑の旗をクリックしてLEDが点滅するか確認する
Scratchを使うと、ブロックを並べながら処理の流れを確認できます。
PythonのコードでLチカする方法とは見え方が違いますが、やっていることは同じです。
Raspberry PiからLEDを制御する基本を、別の方法でも確認できました。
次は、WebIOPiを使って、スマホからラズベリーパイを操作する方法を紹介します。

Python3でLチカする方法はこちらです。

ラズベリーパイで使う電子部品はこちらにまとめています。

制作ノート全体はこちらです。


