愛知県稲沢市在住の【中小企業診断士✖️IoTプロフェッショナルコーディネーター】が、ものづくりの楽しさをお伝えする《がちゃラボ》です。
今回は、Raspberry pi にインストールされているScratchを使って、GPIOに繋がれたLEDを制御する方法をお伝えします。
Scratchでおなじみのネコのキャラクターの動きに合わせて、LEDが点灯・消灯するようにします。画面の中の世界と現実世界を繋げるような事にチャレンジしましょう。
Raspberry pi でLEDを制御するために準備するもの
準備するものとしては、以下のページに記載されているものになります。Raspberry pi と LED 、抵抗にジャンプワイヤ・ブレッドボードを準備します。
そして、上記ページを参考にRaspbrry pi にLEDを繋げてください。上記ページの通りであれば、GPIO02にLEDが繋がれると思います。以降も、それ前提で記事を書いていきます。
Raspberry pi にScratchをインストール
Rasbianのフルサイズ版をインストールしているようであれば良いですが、もしScratchが入っていないようであれば、以下の通りにインストールしてください。
Raspberry pi のアップデート
まずはRaspberry pi自体のアップデート(最新化)を行いましょう。コンソール を立ち上げ、以下の通りにコマンドを入力していきましょう。
sudo apt-get update
sudo apt-get dist-upgrade
Scratchのインストール
次にScratchをインストールします。使うのは Scratch 2 です。最新のバージョンをインストールしましょう。
sudo apt-get install scratch2
これでScratch 2がインストールされました。ここまでできたら、一度Raspberry piを再起動しましょう。
Raspberry pi用のScratch起動
Raspberry pi では、Scratchは以下の通りに立ち上げてください。メニューのプログラミングの中に Scratch 2 というのがあるので、それをクリックします。
上記がRaspberry pi 用のScratchの画面です。ノートPCやタブレットでプログラミングを楽しんだことがある人なら、感覚で操作方法は理解できると思います。
Raspberry pi のScratchでGPIOを制御する
では、Scratch を使いプログラムを組んでいきましょう。Raspberry pi版のScratchでは、パソコンやタブレットで楽しむScratchとは異なり、拡張機能としてGPIOを制御するためのブロックが準備されています。
まずは、拡張機能である GPIO を制御するためのブロックを追加しましょう。
Raspberry pi 用 Scratch で拡張機能を追加
Raspberry pi 用のScratchで拡張機能を追加する場合は、『その他』から追加していきます。
そして『拡張機能を追加』というボタンをクリックします。すると、「Extension Library」という画面がでるので、『Pi GPIO』を選びます。
これで、Scratch でGPIOを制御するためのブロックが追加されました。
Pi GPIOブロックを使ってプログラムを組んでみる
Pi GPIOには、2つのブロックがあります。 【set gpio】ブロックと 【gpio *** is high?】 ブロックです。
Raspberry pi のGPIOポート番号の指定と、High出力・Low出力・Inputを指定 | GPIOポートがHighであるか調べる |
今回はGPIO 02にLEDを繋いでいるので、上記ブロックではGPIO 2を選択して使います。【set gpio】ブロックでは、GPIO 02を指定するとともに、LEDを点けたい場合は「output high」を、LEDを消したい場合は「output low」を指定します。
Scratch を使いLEDを点滅させるプログラムを作成する
このブロックと従来のScratchのブロックを使って、LEDを点滅させるプログラムを作りました。猫のスプライトを左右に走らせて、端に着いて跳ね返るたびにLEDをON・OFFさせます。
もし「はしにふれた」なら、のブロックの中で、GPIO 02を制御しています。もし、GPIO 02がHighなら(LEDが点灯していたら)Lowにする(LEDを消す)、もしGPIOがLowならHighにするというプログラムを組みました。
はしについたら、というのが2か所登場するので、もう少しすっきりとしたプログラムにできるような気もしますね。
作ったプログラムをテストしてみる
それでは、緑の旗を押して作ったプログラムを実行してみましょう。実行すると、猫のキャラが走り回り端で折り返すたびにLEDが点滅すると思います。
さいごに
今回はRaspberry pi用のScratchを使って、LEDを制御しました。これを応用すると、センサをInputとして指定し、そのON・OFFによりLEDだけでなくモータを制御するなどの使い方ができそうですね。
Scratchはビジュアル型プログラミング言語で視覚的に分かりやすいですし、子供向けの授業なんかでも使えそうですよね。
コメント