WiringPiでGPIOを制御する
前回はsysfsを使ってラズパイのGPIOを操作し、LEDを光らせた。今回は、ライブラリを使ってもう少しお手軽にLEDを光らせてみる。ライブラリはいくつかあるが、今回はWiringPiというライブラリをインストールして使ってみる。
最終的にはPythonのプログラムで自動的に点滅させるつもりだが、今回はCLIから手打ちで光らせてみる。
※このブログを書いたあとに知ったのだが、WiringPiは2019年で作者による開発が停止されている。今後は違うライブラリを使うかもしれない
回路は前回同様、以下のセットを使ってブレッドボード上につくる。
実行環境
Raspberry Pi 4 Model B
Raspberry Pi OS (Bullseye)
WiringPi 2.52
WiringPiを最新版にupdateする
WiringPiは最近のRspberry Pi OSだとapt-getしても最新版はインストールできないらしい。ということで、WiringPiの公式ページの内容に従い、WiringPiの最新版をインストールする。
cd /tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb
あとは以下を実行してWiringPiのversionを確認し、2022年4月現在の最新バージョンである2.52になっていればOK。
gpio -v
これで事前準備は完了。
ブレッドボードに回路をつくる
こちらは前回と同じで、LEDと抵抗をラズベリーパイの35pin(GPIO 19)と39pin(GND)に接続した。抵抗値は330Ω。
WiringPiでGPIOの出力を制御する
準備は完了したので、GPIOの出力を制御してLEDを光らせる。CUIから以下を打つと、ラズパイのGPIOを一覽で見ることができる。
gpio readall
実行してみると以下のように表示される。
Nameの列に書かれているのがラズパイ基板上のピン名で、Physicalの列に書かれているのが基板上のピン番号を表している。ただし、NameはRaspberry Piの公式サイトに載っているRaspberry Pi OSのピンアサインとは異なっているので注意。
GPIOを操作するときはピンを指定してIN/OUTを切り替えたり、HIGH/LOWを切り替えたりするが、ピン指定はBCMと書かれた列の番号(ラズパイのSoCのピン番号)か、wPiと書かれた列の番号で指定する。
まずはwPiの番号で指定して光らせてみる。GPIO19はwPiの番号では24なので、24から電圧を出力するようにmodeで24をoutに設定する。
gpio mode 24 out
そして、writeで値を1に書いてやれば、電圧がHIGHになってLEDが光る。
gpio write 24 1
これでLEDが光った。
なお、消すときは0を書いてやれば良い。
gpio write 24 0
ちなみに、BCMの番号でpinを指定するときは-gをつけて指定する。
例えば、以下のコマンドでも先程と同じようにGPIO24に接続したLEDを光らせることができる。
gpio -g write 19 1
今回はCLIでLEDを消したが、やはりちゃんとチカチカと点滅させてこそLチカかなと。ということで、次回はPythonでコードを書いて、LEDを点滅させてみる。
日記まとめ
ラズパイで遊んでみた軌跡を以下でまとめてます。