前回はLEDを点けるところまで出来ましたね。
今回はチカチカさせるところをやります。
といっても、配線はとっても簡単。
前回P1-01(3.3V電源)に繋いでいた線をP1-07(GPIO4)に変えるだけです。
つまりこう。
あとは、プログラム側から制御するだけです。
今回はシェルスクリプトで制御してみます。
たとえば、こんなスクリプトを書いて /var/tmp/ltika.sh として保存。
#!/bin/bash
echo 4 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio4/direction
gpio4=/sys/class/gpio/gpio4/value
val=0
while :
do
val=`expr \( $val + 1 \) % 2`
echo $val > $gpio4
sleep 1
done
$ chmod +x /var/tmp/ltika.sh
$ /var/tmp/ltika.sh
実行権限をつけて実行すると、1秒間隔でLEDがチカチカしましたよ!!
(このスクリプトは無限ループなので、終了するにはctrl+cなどでSIGINTを送ってください)
ポイントは、以下の三点。
- /sys/class/gpio/export
- 使用の開始("4"をリダイレクトすることで、GPIO4を使えるようにする。停止する場合は同様にunexportに出力する)
- /sys/class/gpio/gpio4/direction
- 入出力設定("out"をリダイレクトすることで、出力に設定。入力にする場合は"in"をリダイレクトする)
- /sys/class/gpio/gpio4/value
- 出力値(入出力設定が"出力"の場合は、1をリダイレクトすると電気が流れ、0をリダイレクトすると電気が止まる)
終了後、
$ echo 4 > /sys/class/gpio/unexport
を実行してGPIO4の使用を終了するのを忘れないでくださいね。
今回、手っ取り早くGPIOの制御を試してみましたが、
実際に使っていくにはこのスクリプトではイマイチですね。
(フォアグランド実行で無限ループなので制御が戻ってこないし、使用後のunexportも手動だし。)
そこらへんは、また今度。