Python GPIO APIを比較および対比する


11

私はPiから始めて、PythonでGPIOをプログラミングしたいと考えています。これまでに5つのライブラリに出会いました。

時間をかけて学習する前に、次のことを知りたいと思います。

  • いずれかに制限がある場合。
  • それらの間にはどのような客観的な大きな違いがありますか?


あなたは正しいです、そしてこれはおそらく主観的に閉じられます。簡単な答えはありません。gpiozero初心者向けに設計されたシンプルなラッパーです。pigpioドキュメンテーションは大ざっぱで、経験豊富なプログラマーにより適していますが、おそらく最も強力です。(私は、wiringpiを使用するc方が簡単ですが、40年以上のc経験があります。)
Milliways

GPIOを使用するすべての人に自分の経験を回答で共有してもらいたくない場合を除き、私はこの質問を意見ベースで閉じることをお勧めします。
Dmitry Grigoryev

回答:


13

警告。私はpigpioの作者なので、偏見があります。

elinuxを見ると味がわかるかもしれません。

RPi.GPIOが最初で最も人気があります。それはあなたが最も頻繁に例を見るものです。

RPIOはRPi.GPIOに基づいて構築され(プラグインの代替となることを目的としています)、いくつかの機能を追加します。特に、LEDとサーボに適したハードウェアタイミングPWMとハードウェアタイミングパルスチェーンを追加します。RPi.GPIOは、LEDにグリッチを表示するソフトウェアPWMのみを提供し、サーボの寿命を短くすると言われています。RPIO github repoで述べたように:

このリポジトリはもはや積極的に維持されていません!

lightingPi Pythonは、wireingPiのC機能の多くをPythonに移植したものです。私はそれを使用したことがなく、それについてあまり知りません。

pigpio Pythonは、pigpioのC機能をPythonに移植したものです。RPIO.GPIOと同様に、LEDおよびサーボ用のハードウェアタイミングPWM、およびハードウェアタイミングパルスチェーンを提供します。pigpioのユニークな機能の1つは、ソースでGPIOイベントを計測することです。そのため、あらゆるタイミングの目的で、pigpioが最も正確である可能性があります。pigpioは、ネットワーク接続されたPC(Windows、Mac、Linux)で実行して、リモートPiを制御できます。

gpiozeroは、上記のライブラリのほとんどすべてを単純化するラッパーです。実質的には、基礎となる実装の詳細からユーザーをできるだけ削除しようとするフロントエンドです。gpiozero(私は思う)は、財団が推奨するPythonの開始点です。gpiozeroは、pigpioがバックエンドである場合、リモートPCを制御するためにネットワークPC(Windows、Mac、Linux)で(私が思うに)実行できます。

警告、他の10人に尋ねると、10の異なるビューが表示されます。すべてのライブラリには用途があります。それらはすべてツールです。どちらがあなたに最適かは、あなたがどのような職人かによって異なります。


0

RPi.GPIOをお勧めしますが、初心者にはGPIOゼロが最適ですが、さらに制限があります。しかし、私は他の人については何も知りませんが、それらについて聞いていない場合でも、他の人ほど良くはないという意味ではありません。


GPIOゼロはRPi.GPIOが実行するすべてのことを実行し、制限はありません。GPIOゼロにはまだ実装されていない、pigpioにはより高度な機能がありますが、サポートする機能については、どちらのライブラリーの上にも優れたAPIを提供します。
ben_nuttall
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.