Seeed K.K.の松岡です。
Raspberry Pi 4が日本で発売開始してから約2ヵ月が経ちました。
購入してラズパイライフを楽しんでいるころではないでしょうか。わたしも少しずつ使い始めています。
GPIO操作の定番、Wiring Piが動かなくて「あれっ!?」となったので、調べてみました。
Raspberry PiでGPIO操作するとき、どんなライブラリを使っていますか?
わたしは、pigpioを好んで使っています。I2C通信を低レイヤーで送受信できるところが良いですね。最近は複数の組み込みボードに対応したMraaも使い始めています。
あまり使っていませんが、Wiring Piも、ネットに作例がたくさんあって多くの方が利用しているようです。
がっ! 先日、ちらっとRaspberry Pi 4 & Wiring Piを動かしたところ、GPIOが出来なかったので、あらためて確認することにしました。
Raspberry Pi 3B+ & Raspbian buster
OSがbusterだと問題なのかな?と思い、Raspberry Pi 3 Model B+と最新のbuster-liteで確認しました。
OSイメージ(2019-09-26-raspbian-buster-lite.img)をマイクロSDに入れて起動、apt install wiringpi
でインストールすれば、Wiring Piが利用可能になります。
$ sudo apt update $ sudo apt upgrade $ sudo apt install wiringpi
Grove Base Hat for Raspberry Piを載せて、Grove - BuzzerをD5コネクタに接続、gpioコマンドでHIGHにしたところ、きちんとブザーが鳴りました。
$ gpio -g mode 5 out $ gpio -g write 5 1
(写真では判断できませんが、ちゃんとブザーが鳴っています)
Raspberry Pi 4B & Raspbian buster
(Raspberry Pi 4Bで動かなかったのは気のせいだったのか、、、)
同様に、Raspberry Pi 4 Model Bと最新のbuster-liteで確認しました。
$ gpio -g mode 5 out $ gpio -g write 5 1
ブザー鳴りません。むぐぐ...
GPIOの状態を確認しようとgpio readall
を実行したところ、ボードの種類が不明というメッセージが表示されました。
$ gpio readall
どうやら、Raspberry Pi 3B+で動いていたWiring Piがそのままでは動作しないようです。
Raspberry Pi 3B+とRaspberry Pi 4のそれぞれで、gpio -v
でバージョン情報を表示すると、種類がUnkown17と表示されていました。
Raspberry Pi 3B+:
Raspberry Pi 4:
Raspberry Pi 4に対応したWiring Pi
ネットを漁ったところ、Wiring Pi v2.52でRaspberry Pi 4に対応するという情報がありました。
Raspberry Pi 4に最新のWiring Piをインストール。
$ sudo dpkg -i wiringpi-latest.deb $ wget https://project-downloads.drogon.net/wiringpi-latest.deb $ sudo dpkg -i wiringpi-latest.deb
バージョンが、2.52になりました。
$ gpio -v
無事、ブザーを鳴らすことができました!
$ gpio -g mode 5 out $ gpio -g write 5 1
今後、Wiring Piは推奨できない
気づいていなかったのですが、去年8月にWiring Pi非推奨とのアナウンスが出ていました。
変更履歴
日付 | 変更者 | 変更内容 |
---|---|---|
2020/1/23 | 松岡 | 作成 |