電電高専生日記

高専生活・電子工作・プログラミングの活動記録。とっくに高専生ではない
2014-10-20 (Mon)

Raspberry PiのGPIO制御が楽しい

Raspberry Piには、マイコンと同じようにGPIOピン(汎用入出力端子)が付いています。これをプログラムで制御できるんですね。
色々調べて、以下のようなシェルスクリプトファイルを作りました。任意のGPIOピンの出力レベルを任意のレベルにするスクリプトを書いたつもりです。

#!/bin/sh
#$1...GPIOピン番号
#$2...出力レベル(1, 0)
echo gpio$1 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio$1/direction
echo $2 > /sys/class/gpio/gpio$2/value

で、実行すると、期待した動作はしてくれたんですが、
echo write error invalid argument
とかなんとか出てきました。
exportで作ろうとしたファイルが既に作られているのが原因かなと思い、逐一削除するように以下を付けたしました。

echo gpio$1 > /sys/class/gpio/unexport

そしたら今度は動作もしなくなったんですね。ちょっとシェルスクリプトについて勉強すれば解決するのかも知れませんが、もう諦めてライブラリ使うことにしました。
いくつかライブラリはあるようですが、とりあえずwiringPiというライブラリをインストールしました。
で、これが凄く簡単に書けるんですね。
GPIO13番を出力モードにして出力レベルをHighにする場合、以下のように書けるようです。

gpio -g mode 13 out
gpio -g write 13 1

簡単だし分かりやすい。入力モードはin、レベルの読み込みはreadという引数を付ければいいみたいです。
これをPHPに埋め込んで、スマホなどで遠隔操作できるラジコンなどを作れそうです。

電子工作チックなことをした方が楽しいので、Node.jsの勉強は捗らなさそうです。というかNode.jsが難しすぎる。もっと身の丈に合ったことをした方がいいと思いました。

[Tag] * RaspberryPi
Last Modified : 2014-10-20

Comment






非公開コメント