Raspberry Pi 4でWiring Piを使う

Seeed K.K.の松岡です。
Raspberry Pi 4が日本で発売開始してから約2ヵ月が経ちました。
購入してラズパイライフを楽しんでいるころではないでしょうか。わたしも少しずつ使い始めています。
GPIO操作の定番、Wiring Piが動かなくて「あれっ!?」となったので、調べてみました。

f:id:matsujirushix:20200123134909p:plain

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

f:id:matsujirushix:20200123134756p:plain
(写真では判断できませんが、ちゃんとブザーが鳴っています)

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

f:id:matsujirushix:20200123122317p:plain

どうやら、Raspberry Pi 3B+で動いていたWiring Piがそのままでは動作しないようです。

Raspberry Pi 3B+とRaspberry Pi 4のそれぞれで、gpio -vでバージョン情報を表示すると、種類がUnkown17と表示されていました。

Raspberry Pi 3B+:
f:id:matsujirushix:20200123105911p:plain

Raspberry Pi 4:
f:id:matsujirushix:20200123122026p:plain

Raspberry Pi 4に対応したWiring Pi

ネットを漁ったところ、Wiring Pi v2.52でRaspberry Pi 4に対応するという情報がありました。

wiringpi.com

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

f:id:matsujirushix:20200123123012p:plain

無事、ブザーを鳴らすことができました!

$ gpio -g mode 5 out
$ gpio -g write 5 1

f:id:matsujirushix:20200123134909p:plain

今後、Wiring Piは推奨できない

気づいていなかったのですが、去年8月にWiring Pi非推奨とのアナウンスが出ていました。

wiringpi.com

変更履歴

日付 変更者 変更内容
2020/1/23 松岡 作成