#####いまさらだけどラズパイでPythonを使ってGPIOを制御したいけどライブラリが乱立していて何を使えばいいのかわからないので整理してみた。
ここの翻訳
https://raspberrypi.stackexchange.com/questions/58820/compare-and-contrast-python-gpio-apis
#比較
- WiringPi-Python : 開発停止
- RPi.GPIO : PWMはソフトウェアのみ、RPi4B対応、2019年7月の0.7.0が最終版。開発停止?
- RPIO : RPi.GPIOの機能強化版、ハードウェアPWM可能、コマンドラインツール付属、ドキュメント豊富。
- gpiozero : 初心者向け、RPi.GPIOで出来ることは全て可能。ADC(MCP3001/3002/3004/3008/3201/3202/3204/3301/3302/3304)サポート。ラズパイZero専用ではなくてラズパイ3,3CM,4でも使える。
- pigpio : ハードウェアPWM(GPIO0~31(可能、機能豊富だがドキュメントが少なく、経験豊富なプログラマ向け。BME280,DHT11/21/22/33/44/AM2302/DS18B20のPythonコードはexamples→Python codeにあり、MCP3202/3008はCだけど。
#結論
- 初心者は gpiozero がドキュメント豊富なことと、SPIをローレベルで記述しなくてもSPI接続のADCが使えるので便利。
- 2015~2019年頃はRPi.GPIOの一人舞台だったらしいので、その頃の資産を受け継いで作りたいなら RPIO。
- 慣れたら玄人向きの pigpio がいいらしいが、I2C/SPIデバイスは自分でドライブする必要あり。