頭の悪いメカ by 藤原麻里菜
「タックルはLチカ」——ラズパイとアメフトを同時に学んでみた
Lピカはタックルだ
江川さん 電子工作の基本的なプログラムでLEDをチカチカ光らせる「Lチカ」というものがありますね。今回はLチカよりもっと基本的な、LEDをピカッと光らす「Lピカ」をやってみましょう。
ラズベリーパイは、GPIOピンが付いていることが特徴でもあります。GPIOとはGeneral-purpose input/outputの略で、接続した機器の数値を読み取ったり、制御したりできます。
Lピカで用意するもの
- LED
- ジャンパワイヤ(メス-オス)
- ブレッドボード
- 抵抗 2200Ω
江川さん まず、電源を供給してLEDを光らせてみましょう。
(1) ブレッドボードにLEDと抵抗をさします。
(2) LEDのマイナス(短い方)をGND(6pin)につなげてください。
(3) LEDのプラス(長い方)を3.3V(1pin)につなげてください。
淺野さん おお、光った。
江川さん LEDに3.3V供給して光らせることができるようになりました。では、次はGPIOとつなげて、プログラムで光らせたり消したりしてみましょう。
(1) 先ほど3.3V(1pin)に接続したLEDのプラスをGPIO2(3pin)につなげます。
藤原 また光っています。
江川さん デフォルトで電気が流れる状態になっているので、つなげると光ります。ラズベリーパイのターミナルを開いてコマンドを打ちましょう。
(2) 制御を開始するために、[ $ echo 2 > /sys/class/gpio/export]を入力。
(3) [ $ echo out > /sys/class/gpio/gpio2/direction]を入力。
淺野さん 消えました!
江川さん コマンド内のoutというのは出力のことです。このコマンドによってラズパイ側が「出力に使うのね」と電気の供給をいったん止めます。
(4) [ $ echo 1 > /sys/class/gpio/gpio2/value]を入力すると、LEDが点灯。
(5) [ $ echo 0 > /sys/class/gpio/gpio2/value]を入力すると、LEDが消灯。
(6) 終了する場合は、[$ echo 2 > /sys/class/gpio/unexport]を入力する。
藤原 おお、プログラムで動くようになった。
江川さん 「1」だと電気が流れて「0」だと止まるという仕組みです。例えば家電製品の電源のオンオフなどにも応用することができますよね。
淺野さん スマートホームが作れる!
江川さん そうなんです。さまざまなことに応用できる、それがLチカです。アメフトで例えるとタックルです。
藤原 タックル……。
江川さん タックルとは、ボールを持って走る敵チームの選手の前進を止める行為です。
藤原 めちゃくちゃ痛そうなやつだ。やりたくない。
タックルの仕方
(1) 相手から目を離さないようにします。
(2) 相手の胸をめがけて体当たりします。低い姿勢のまま下から上に押し上げる感じです。
(3) 相手の背中に手を回し、ショルダーパッドをつかみます。
江川さん これが基本的なタックルです。早速やってみましょう。
藤原 うわああ。
江川さん 全然ダメですね。そんなんじゃ、LEDも制御できません。
淺野さん ラズパイに全く関係ないぞ!
江川さん Lチカと同じで、タックルはさまざまなシチュエーションによって変わってきます。状況によって応じて変えていく、それがLチカとタックルなのです。
藤原 なるほど。