Hatena::ブログ(Diary)

sdkt4aの日記 このページをアンテナに追加 RSSフィード

2008-08-14

FONのGPIOを叩いてLEDとか制御するよ!

GPIOっておいしいの?

 おいしいです><

 叩くと増えます><

 GPIOは汎用I/Oポートのことで、FONに入れたプログラムから弄れる素敵な食べ物です。

 AVRとかPICのポートと同じ感覚で食べることが出来ます><

f:id:sdkt4a:20080814102139j:image

 上の写真でいうと、下側に並んでるピンとかLEDとかがGPIOです。右下の矢印は、ただのキーボードのカーソルキーです><

GPIOを弄るパッケージを入れる。

 La Fonera いじり#3に、Fonera の gpio のパッケージが公開してあるので利用させてもらいます。

 proc_gpio.tar.gzをkamikaze/package/(OpenWrtの開発環境のなか)に展開して、make menuconfigからKernel modules -> Other modules -> kmod-proc_gpioして、makeするとbin/packages/にipkが出来るので、ipkg installします。

 

 /proc/gioが出来てたらコンニチワ!

GPIOの弄り方。

 上記のパッケージを入れると、/proc経由でGPIOを読み書きできます。詳しくはREADMEを読みます。

 /proc/gpioにはたくさんなにかが出来ます。

root@OpenWrt:~# ls /proc/gpio 
0_dir   10_out  12_in   14_dir  15_out  17_in   19_dir  1_out   21_in   3_dir   4_out   6_in    8_dir   9_out
0_in    11_dir  12_out  14_in   16_dir  17_out  19_in   20_dir  21_out  3_in    5_dir   6_out   8_in    info
0_out   11_in   13_dir  14_out  16_in   18_dir  19_out  20_in   2_dir   3_out   5_in    7_dir   8_out
10_dir  11_out  13_in   15_dir  16_out  18_in   1_dir   20_out  2_in    4_dir   5_out   7_in    9_dir
10_in   12_dir  13_out  15_in   17_dir  18_out  1_in    21_dir  2_out   4_in    6_dir   7_out   9_in

 前についている数字はピンの番号です。

 dirって言うのは、ピンの入出力の方向で、0が入力になって、1が出力になります。

 inは入力元で、outは出力先になります。

 

 GPIOの詳細はこんな感じです。

GPIO	Description
0	TP3
1	pin 5 of SW1
2	WLAN LED
3	pin 1 of SW1
4	pin 2 of SW1
5	RESET (!)
6	RESET button
7	pin 6 of SW1

 /procなので、echoで読み込み、catで書き込みが出来ます。

root@OpenWrt:~# echo 1 > /proc/gpio/2_dir ←出力に設定します。
root@OpenWrt:~# echo 1 > /proc/gpio/2_out ←出力をONにします。WLAN LEDが光ります。
root@OpenWrt:~# echo 0 > /proc/gpio/2_out ←出力をOFFにします。WLAN LEDが消えます。

マイコン感覚でGPIOにLEDつなげてみた

 まず、GPIOにLEDを繋げるので、出力時の電圧を測定。テスターで測定すると3.3Vあった。FONの動作電圧と同じ。(当たり前か)

 次に、LEDへの過電流防止の抵抗の値を求める。

 使ったLEDの順方向電圧は2Vくらいなので、20mA流すとして、(3.3v-2V)/0.02A=65Ωくらい。

f:id:sdkt4a:20080826005331j:image

 手元に180Ωの抵抗しかなかったけど7.2mA流れてくれるし、光ればOKなのでそれを使うことにした。

f:id:sdkt4a:20080814115404j:image

 写真のようにSW1の1番ピン → 抵抗180Ω → LED → GND で接続した。

 SW1の1番ピンは、GPIOの3番ピンなので、3_dirを出力にし、3_outをONにした。

root@OpenWrt:~# echo 1 >/proc/gpio/3_dir 
root@OpenWrt:~# echo 1 >/proc/gpio/3_out 

f:id:sdkt4a:20080814115405j:image

 ということで、FONのGPIOピンをAVRとかPICのポートのように扱うことが出来るようになったので、とても素晴らしいです><

 FONを電気ポットに繋ぐ事で、Hyper Text Coffee Pot Control Protocolを利用することが出来るよ!セキュリティFON次第。

f:id:sdkt4a:20080826005836j:image

 あー、GPSモジュールあるから、それ繋げて遊ぼうかなぁ。

高輝度/パワーLEDの活用テクニック―駆動方法から熱対策/可視光通信まで応用例が満載! (ハードウェア・セレクション)
高輝度/パワーLEDの活用テクニック―駆動方法から熱対策/可視光通信まで応用例が満載! (ハードウェア・セレクション)トランジスタ技術編集部

CQ出版 2008-04
売り上げランキング : 17445

おすすめ平均 star
starLEDの点灯方法あれこれ

Amazonで詳しく見る
by G-Tools

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証


Connection: close