1. Raspberry Pi のGPIOについて
Any of the GPIO pins can be designated in software as an input or output pin and used for a wide range of purposes.
つまり、GPIOってなっているところは、ソフトウェアからインプット もしくは アウトプットに使うことができるよと。
なのでGPIOピンを出力として使う場合、3.3Vを出力したり、OFF(0V)にしたりすることができる。逆に入力として使う場合、3.3Vを入力(検出という意味?)したり、OFFにしたりすることができる。
まだ、Raspberry Pi 5のPinoutの結果は少なかったので、同じですが以下に貼っておきます。
2. LEDチカチカとスイッチ入力を確認する
2.1 LEDを光らせる
ちょっとわかりにくいですが。
- ブレッドボードのマイナスと3番ピンのGNDを接続(マイナス同士ね)
- GPIOの25番とLEDのプラス側を接続
- LEDのマイナス側とブレッドボードのマイナスを接続
これだけ。GPIO25を出力にして、3.3Vを出せば、GPIO35→LED→GNDって電気が流れるってことなんだろう。知らんけど。
で、これをLinuxから操作できるところが醍醐味なわけですが、書籍通りには行かない。
root@raspberrypi:/sys/class/gpio# echo 25 > /sys/class/gpio/export
bash: echo: 書き込みエラー: 無効な引数です
ってなってしまう。GPIOの番号だって書いてあるのにそうは行かない。
ちょっとよくわからないけど、
root@raspberrypi:/sys/class/gpio# cat /sys/kernel/debug/gpio | grep GPIO25
gpio-596 (GPIO25 )
こうやってGPO25に紐づく番号を調べる必要がありそう。そのうえで、この場合だと596番を使用する。
root@raspberrypi:/sys/class/gpio# echo 596 > /sys/class/gpio/export
root@raspberrypi:/sys/class/gpio# cd /sys/class/gpio/gpio596
root@raspberrypi:/sys/class/gpio/gpio596# ls
active_low device direction edge power subsystem uevent value
これで、
- direction → このファイルに inと書けば入力、 outと書けば出力
- value → このファイルに1と書けばON、0と書けばOFF
といったところ。
なのでdirectionをoutにした状態で、
root@raspberrypi:/sys/class/gpio/gpio596# echo 1 > value
これで光るし
root@raspberrypi:/sys/class/gpio/gpio596# echo 0 > value
これで消える。
2.2 スイッチの入力を読み取る
gpio-595 (GPIO24 )
こうやって番号を調べて
root@raspberrypi:/sys/class/gpio/gpio596# cd /sys/class/gpio/gpio595
root@raspberrypi:/sys/class/gpio/gpio595# echo in > direction
入力に切り替える。
root@raspberrypi:/sys/class/gpio/gpio595# cat value
ってやると
- スイッチを押している → 1が返される
- スイッチを話している → 0が返される
ってなりますと。地味。
コメント