Raspberry Pi(ラズベリーパイ):Lチカ(プログラムでLEDを点滅させる電子工作)

今回は、Raspberry Pi 2 Model B+とScratch(スクラッチ)を使ってLEDをチカチカ点滅させる、いわゆる、「Lチカ」と呼ばれる電子工作についてお話しします。
お急ぎの方も、配線と実行を短くまとめた動画がこのページ最後に埋め込んであるので、是非、ご覧ください。


スポンサードリンク


Lチカ(エルチカ)

LチカはLEDをチカチカ点滅させる電子工作のことです。

Raspbian(ラズビアン)

RaspbianはRaspberry Piの公式Webページhttp://www.raspberrypi.org/downloadsからも入手可能なRaspberry Piで利用できるOS(「オーエス」と読む。基本ソフトのこと)の1つです。
Raspbian は、LinuxをベースとしたOSのDebian(「デビアン」と読む)のRaspberry Pi版です。

ScratchGPIO(スクラッチジーピーアイオー)

Raspberry Piプログラミング言語の開発環境をもともといくつか持っていて、Scratchもその1つです(現状では、Scratch1.4)。
けれども、もともと用意されているScratchにはGPIOを制御する機能が入っていないので、ScratchGPIOを制御したい場合は、まず、それを行うのに必要なライブラリーなどをインストールしておく必要があります。
ScratchGPIOはそのようなものの1つで、Cymplecy(Simplesi)(http://simplesi.net/)が提供するシェルスクリプトと呼ばれるLinuxのコマンドの集合です。
インストール方法は、Raspberry Piの端末アプリ上で、次の2つのコマンドを次の順に入力して実行することで行います。
なお、下の表記で左端の$は端末アプリに自動的に表示される入力促進記号(プロンプト)です。
端末アプリの環境によっては、入力促進記号として別の文字列が表示されます。
コマンドを入力するときは、下の文字列の入力促進記号の次の文字から入力をはじめます。
また、コマンドの入力では半角と全角、大文字と小文字は別のものとして認識されるので、きちんと区別して入力します。
$ sudo wget http://goo.gl/lwxrqdp -O isgh.sh
$ sudo bash isgh.sh
これらを入力して、エンターキーを押して順次実行すると、Raspbianのデスクトップに「Scratch GPIO7」と「Scratch GPIO7plus」のアイコンが増えているのを確認できます。
基本的なGPIOの取り扱いでは、通常、前者を使用します。
ScratchGPIOは、見た目や文法はScratch1.4に準拠していて、それにプラスして、GPIOの各端子の入力や出力の電圧をメッセージ送信や変数に代入を行うブロックなどを使って制御することができます。

今回の電子工作の概要

Raspberry Piは超小型のコンピューターで、電子工作が可能な汎用入出力インターフェイスであるGPIOを持っています。
先日(2016年6月30日)公開したブログ記事Raspberry Pi:ラズベリーパイを電源にしてLEDを点灯するでは、GPIOの端子番号1の3.3Vの電源電圧をそのまま給電用の端子として使用した単純な回路を作って、LEDを点灯させる電子工作(回路をつないでいる間、LEDは点きっぱなし)をご紹介しました。
その電子工作では、入力や出力などをあえて途中で操作する予定がなかったので、プログラムを作って制御する必要はありませんでした
(そのため、ちょっとワイルドですが、点灯をやめるときは線を引っこ抜きました…)。
今回は、そのときの回路の一部分(入力の部分)だけを変えて、さらに、プログラムを作って、入力の電圧を制御して、LEDを点滅させます。
今回は、RaspbianScratchGPIOをインストールしてGPIOの制御に使用しました。

今回の配線(前回2016年6月30日LED点灯の配線との比較)

前回の配線では、給電を3.3Vの電圧を出している端子番号1から行いました。
今回の配線では、給電をScratchGPIOを利用したプログラムで制御したいので、端子番号7(GPIO4)にし、100Ωの抵抗など他の配線はまったく同じにしました。
GPIOの数ある端子の中から端子番号7(GPIO4)を選んだのは、単純に3.3Vの端子の近くだったからと、もっと近いGPIO2とGPIO3が実は内部で抵抗につながっているので通常は使わない端子だったからです。
下図で、赤が前回の配線で使った端子、青が今回の配線で使った端子です。

GPIO図
GPIO図

前回の回路の配線図

ずっと点灯(プログラム無し)配線図
ずっと点灯(プログラム無し)配線図

今回の回路の配線図

Lチカ用に入力のGPIOをGPIO4に変更 配線図
Lチカ用に入力のGPIOをGPIO4に変更 配線図

前回の回路図

ずっと点灯プログラム無し回路図
ずっと点灯プログラム無し回路図

今回の回路図

Lチカ用に入力のGPIOをGPIO4に変更 回路図
Lチカ用に入力のGPIOをGPIO4に変更 回路図

今回のプログラミング

端子番号7(GPIO4)を入力用として、ScratchGPIOプログラムによって入力電圧のオン(デジタル信号の1。3.3V)オフ(デジタル信号の0。0V)を切り替えてLEDをチカチカ点滅させます。
プログラムプロジェクト)は次のように作りました。

Lチカプログラム
Lチカプログラム

このプログラムは、端子番号7番をオンにして1秒待ち、オフにして1秒待ち、をずっと繰り返します。
ScratchGPIOでは、端子番号のオンやオフはメッセージ送信を使って、「pin(端子番号)(on かoff)」のように記述します(この記述方法はいくつかある方法の1つです)。
今回のプログラムではLEDをチカチカ点滅させるのと共に、画面のScratchステージ上の猫のスプライトに、LEDが光っているときは「Light on!!」、光っていないときは「Light off!!」と言わせることにしました。

LチカLighton
LチカLighton
LチカLightoff
LチカLightoff

配線作業(電子工作)と実行の様子

配線作業と実行の様子は以下の動画でご覧いただけます。

コメントを残す