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 件のコメント:
コメントを投稿