2013年5月12日日曜日

RaspberryPiのGPIOでLEDを点灯

RaspberryPiのGPIOを扱う練習で、LEDの点灯をしてみます。

1. LEDの接続


GPIOの出力を確認するためのLEDを接続します。SoCのGPIOに直接接続されるので、電流制限抵抗を付けるのを忘れないでください。ローコストのボードとは言え、あっさり壊してしまってはもったいないですからね。だいたい数百オームでOKだと思いますが、気になる場合は使用するLEDのVFを調べて、GPIOのソース電流に収まるよう抵抗値を決める必要があります。今回は根拠ナシですがとりあえず470Ωを選びました。


抵抗を接続する足はLEDのアノード側、カソード側どちらでもOKですが、足の長さがわからなくなるので、LEDの極性を忘れないように気をつけます。(なお画像のようにハンダ付けしなくても、ブレッドボードを使ってもOKです。)


LEDをRaspberryPiに接続します。基板上のGPIOコネクタのうち、GPIOとGNDが隣り合っている13ピン、14ピンを使います。LEDのアノード側を基板内側の13ピン(GPIO) 、カソード側を基板外側の14ピン(GND)に接続します。


私の使用しているRaspberryPiはRev.2.0なので、13ピンはSoCのGPIO27に接続されています。回路図こちらのWikiにリンクがあります。

2. コマンドで点灯してみる


DebianのRaspberryPi向け改変版のRaspbianでは、ファイル入出力を通してRaspberryPiのGPIOをコントロールすることができます。Raspbianを使うには、ここからRaspbianのイメージをダウンロードし、Win32 Disk ImagerなどでSDカードに焼いてから、RaspberryPiのカードスロットに挿して起動します。

起動したら、まずログイン。HDMIで画面表示してUSBキーボードを使ってもいいですし、LAN接続してSSHを使ってもいいです。 ユーザー名はpi、パスワードはraspberryになっています。

ログインしたら、下記のようにコマンドします。
まずsuでスーパーユーザーに変更。続いて、/sys/class/gpio/ディレクトリの下のexportファイルにピン番号を指定すると、対応するgpioのディレクトリが作成されます。directionファイルで入出力方向を指定した後、valueファイルへの入力でGPIOの出力をON/OFFすることができます。


このように、ファイル入出力で操作できることで、 コマンドだけでなく、およそファイル入出力の機能を持った言語であれば、CでもPythonでも、同様の操作を行うことができます。
次に、C++によるGPIO操作のプログラムを試してみます。

3. プログラムによる点滅


まずはソースファイルを作成しエディタでソースコードを入力。
ARM用のクロスコンパイラでビルドします。ツールチェインのインストールはこちらの記事の「2. ARMコンパイラのインストール」をご参照ください。コンパイルできたら、バイナリをRaspberryPiにロードします。RaspberryPiをホストマシンと同じLANに接続しておけばSSHが利用できるので、SCPでコピーします。
ロードされたバイナリをRaspberryPiで実行します。まずは実行可能なようにパーミッションを変更。続いてスーパーユーザーでバイナリを実行します。
LEDが点滅を始めます。


参考情報
Creating a "Blinking LED" project for Raspberry PI

0 件のコメント:

コメントを投稿