プログラムと電子工作の置き場、たまにコラム

日々のスニペットやMaker's系のプログラムを置いてきます。

Raspberry PiでLED点灯(Lチカ)してみよう。

-------------------------------------------------------------------------------------------

本ブログのキットを販売しています。

mrprc.stores.jp

---------------------------------------------------------------------------------------------

 

プログラミングやLinuxが初心者の方を主な対象にしておりますので、

回りくどいプログラムや説明になっております。ご了承願います。

使い方

Raspberry Piの初期設定を終えて早速ログインしましょう。

インストールまでの道のりは、別の記事ををご覧ください。

Raspberry PiへのRaspbianインストール - Raspberry Pi 電子工作

 

簡単なLED点灯 

ブレットボードに次のような回路図を作成してください。

Raspberry Pi model B を想定しております。

 

Raspberryとブレットボードをmale to femaleジャンパーで接続しましょう。

RaspberryのGroundにさしたワイヤーはブレッドボードのマイナス列に接続してください。 もう1つのGPIO端子は今回、#25を使いました。LEDはアノード(足が長い)カソード(足が短い)がありますので注意してください。

間違った箇所に接続し電流を流すと最悪、本体の故障につながります。

接続をきちんと確認してからプログラムを実行しましょう。

アノードからカソードへは電流は流れます。アノードはプラス側にカソードはマイナス側に接続してください。

ここでGPIOとは汎用入出力のことです。つまり、Raspberry PiのGPIOピンで外部との信号のやり取りを行うことになります。また、Linuxにおいては、チップ上のレジスターを直接操作するのではなく、仮想ファイルにアクセスすることによっておこないます。以下ではその方法を早速見てみましょう。

 

GPIO端子の#25はアノード側に接続します。

[注意]Raspberry Pi2ではGPIOピンにも変更があります。以下の図でご確認ください。

f:id:yuriai0001:20150524180432p:plain

 

f:id:yuriai0001:20131203183856p:plain

※ワイヤーの色は無関係です

回路の準備が終わるったところで、今後はターミナル(端末)で作業を行います。

今後の作業ではroot権限が必要になる作業を行います。rootになるためには、太字の部分をタイプしてください。

pi@raspberrypi ~$ sudo su

root@raspberrypi:/home/pi#

root@という形になれば成功しています。

これからRaspberrypiにLEDライトを使うピンを教えてあげます。

また太字の部分をタイプしていってください。

今回は25のピンを使うことにしましょう。
root@raspberrypi:/home/pi# echo 25 > /sys/class/gpio/export

ここで出てくるecho というのは引数を標準出力(ここではターミナル)に出力するためのコマンドです。試しに、

root@raspberrypi:/home/pi# echo "Hello world

とすると、ターミナルに文字列が出力されます。

Linuxの根幹的な概念としてストリーム(流れ)をつなぐという考えがあります。

例えば、

root@raspberrypi:/home/pi# echo 25 > /sys/class/gpio/export

では、標準出力(ターミナル)に出力される25というのを今回は、GPIOの仮想ファイルに出力先を変えています。これでRaspberry PiはGIPOの25を使う仮想ファイルの準備ができたことになります。

cd というコマンドを使いディレクトリを移動します。
root@raspberrypi:/home/pi# cd /sys/class/gpio/gpio25

このままでは、GPIOはInputに使うのかOutputに使うのか、まだ宣言されていません。そこで最後にGPIO25を出力に設定します。
root@raspberrypi:/sys/class/gpio/gpio25# echo out > direction

 

準備完了です。

これで、1もしくは0を書き込むことによってGPIOのON/OFFが設定できるようになりました。

 

root@raspberrypi:/sys/class/gpio/gpio#25 echo 1 > value

LEDが点滅していることを確認してください。

今度は消灯してみましょう。

root@raspberrypi:/sys/class/gpio/gpio#25 echo 0 > value 

もう一度点灯しましょうか。

root@raspberrypi:/sys/class/gpio/gpio#25 echo 1 > value

 

これであなたはRaspberry PiでLEDの点灯、消灯を行えるようになりました。

自由自在とまではいきませんが、LEDを操ることができるようになったのです。

 

キットに同封されてるのはLEDだけではありません。

押し込み型のスイッチもあります。

袋から取り出してみましょう。スイッチなので当然押すことができます。

今度は、これを使ってみましょう。

 

f:id:yuriai0001:20140416182748j:plain

 

 

今度は24のピンを使うことにしました。

24ピンはスイッチの上に接続しましょう。

10Kの抵抗も使います。抵抗のカラーを見ながら選んでください。

抵抗のカラーはこちらをご覧ください。

キットに同封されている、抵抗は4色ですが、表は3色です。いずれの抵抗も片方の端は金色になっていますが、それは許容差を表すものなので、それ以外の3色で判断してください。

抵抗のカラーコード [渡辺電工工作室]

root@respberrypi:/sys/class/gpio/gpio#25 echo 24 > /sys/class/gpio/export

ディレクトリを移動します。

root@respberrypi:/sys/class/gpio/gpio#25 cd sys/class/gpio/gpio24

今度はecho in ですね。つまりINPUTです。

スイッチからの情報を受け取りたいのです。

root@raspberrypi:/sys/class/gpio/gpio#24 echo in > direction

今度は catというコマンドを使い現在のピンの情報を出力してみましょう。

root@raspberrypi:/sys/class/gpio/gpio#24 cat value

=> 0

押し込んだ場合はどうなるでしょうか。

root@raspberrypi:/sys/class/gpio/gpio#24 cat value

=> 1

スイッチのON/OFF情報が1と0で出力されているのがわかりますね。

お疲れ様でした。

 

おっと、最後に1つだけ作業が残ってます。ファイルは開いたら閉じるまでが一連の作業です。

GPIO25ピンと24ピンはunexportをしておきましょう。

echo 25 > /sys/class/gpio/unexport

echo 24 > /sys/class/gpio/unexport

ハック ラズベリーパイ Raspberry Pi2 スターターキット

ハック ラズベリーパイ Raspberry Pi2 スターターキット

続きはRaspberry PiとRubyでLチカでどうぞ。

Rubyというプログラミング言語を使ってLEDの操作を行ってみましょう。

 

本ブログの無断転機や本Blogを利用しての利益を得ることを禁止します。