RaspberryPiプロジェクトでGPIOZeroがRPi.GPIOよりも優れている理由

RaspberryPiプロジェクトでGPIOZeroがRPi.GPIOよりも優れている理由

Raspberry Piは、学習に最適なコンピューターです。 LinuxベースのRaspbianOSにはPythonが組み込まれているため、初心者のコーダーにとって優れた最初のシステムになります。その汎用入力/出力(GPIO)ピンにより、新進のメーカーはDIYエレクトロニクスプロジェクトを簡単に試すことができます。





これらのピンを制御するコードライブラリを使用すると特に簡単です。人気のあるRPi.GPIOPythonライブラリはそのようなライブラリの優れた例です。しかし、それは初心者にとって最良の道ですか?調査にご参加ください。





GPIOゼロとは何ですか?

GPIO Zeroライブラリは、GPIOピンを操作するためのPythonライブラリです。それはによって書かれました RaspberryPiコミュニティマネージャーのBenNuttall 。直感的で「使いやすい」ことを目的としており、ほとんどの通常のRaspberryPiユースケースのPythonコードを合理化します。





簡単な命名方法と説明機能を組み合わせることで、GPIOゼロは初心者が理解しやすくなります。 RPi.GPIOライブラリのベテランユーザーでさえそれを好むかもしれません---そしてその理由を理解するために、RPi.GPIOがGPIOゼロとどのように比較されるかを見てみましょう。

RPi.GPIOの何が問題になっていますか?

何もない。何もありません。 RPi.GPIOは、開発者のBenCrostonによって2012年の初めにリリースされました。これは、ユーザーがコードからGPIOピンを制御できるようにする堅牢なライブラリです。それはで機能します ほぼすべての初心者プロジェクト カバーしました。



Windowsはプロキシを自動的に検出できませんでした

RPi.GPIOは広範囲に使用されていますが、エンドユーザー向けに設計されたことはありません。これは、RPi.GPIOの優れた設計の証であり、それでも多くの初心者が使用しています。

GPIOゼロの何がそんなに良いのですか?

あなたがいるとき Pythonコードの学習 、読みやすく、できるだけ短くする必要があることを学びます。 GPIOゼロは両方のポイントをカバーすることを目指しています。フロントエンド言語ラッパーとしてRPi.GPIOの上に構築されており、GPIOのセットアップと使用を簡素化します。





次の例を考えてみましょう。LEDを設定してオンにします。

上記のコードは、 彼らのPiを使用してLEDを制御しました





RPi.GPIOライブラリがインポートされ、LEDのピンが宣言されます。ピンレイアウトタイプが設定されています(BCMおよびBOARDモードは GPIOガイドで説明されています )、ピンは出力として設定されます。次に、ピンがオンになります。

このアプローチは理にかなっていますが、GPIOZeroの方法ははるかに簡単です。

GPIO Zeroには、最初にインポートされたLED用のモジュールがあります。これは、PIN番号を宣言して、 led.on() 方法。

誰かのパスワードを見つける方法

GPIOゼロのアプローチが優れているのはなぜですか?

この作業方法がRPi.GPIOの改善である理由はいくつかあります。

まず、「読みやすく、できるだけ短い」という要件を満たしています。 RPi.GPIOセットアップステートメントは理解しやすいですが、必須ではありません。 LEDは常に出力になるため、GPIOZeroは舞台裏でピンを設定します。その結果、わずか3行のコードを設定して、LEDを点灯させることができます。

GPIO Zeroの例では、ボードモードが設定されていないことに気付くかもしれません。ライブラリは、ピンにBroadcom(BCM)の番号付けのみを使用します。ライブラリデザイナーのBenNuttallが、2015年にその理由を説明します RasPi.tvインタビュー

「ボードの番号付けは簡単に思えるかもしれませんが、新しいユーザーはすべてのピンが汎用であると考えるようになります---そしてそうではありません。 LEDをピン11に接続し、ピン1、2、3、4にさらに接続してみませんか?ウェル1は3V3です。 2と4は5Vです。ピンの目的が何であるかについての認識の欠如は危険である可能性があります。

このように、BCM番号を使用することは絶対に理にかなっています。 GPIOZeroが今後RaspberryPiのドキュメントで標準になることを考えると、学ぶ価値があります。

GPIOゼロは実際に優れていますか?

一見簡単そうに見えますが、新しいライブラリに問題はありますか?他の新しいコーディングライブラリと同様に、それは意見の問題です。一方では、セットアップコードを削除することは、初心者にも熟練したコーダーにも同様に優れています。コードの記述は、より簡単で迅速です。

一方、何が起こっているのかを正確に知ることは学習にとって重要です。からボタンを設定する例を見てください GPIOゼロのドキュメント

NS ボタン モジュールは、プッシュボタンのセットアップを簡素化します。ボタンが入力であることを認識しているため、宣言されたピン番号を使用してセットアップします。ボタンが押されているかどうかの確認も簡単です。 .is_pressed ボタンの押下を検出します。

この正確な機能を ラズベリーパイボタンチュートリアル 、これはライブラリの違いに慣れるための優れた方法です。

RPi.GPIOライブラリのユーザーは、Piの内部プルアップ/プルダウン抵抗がコードで設定されていないことに気付くでしょう。これは興味深い質問を提起します。初心者はプルアップ/ダウン抵抗について知っておく必要がありますか?繰り返しになりますが、BenNuttallはこの質問に対する答えを持っています。

「プルアップとプルダウンについて知っておくのは良いことだと主張するかもしれませんが、あなたは正しいでしょう---しかし、なぜ私は初日にそれを教えなければならないのですか?[...]より深く、そのための十分な範囲があります---しかし、あなたが始めたばかりの場合、それは必須ではないはずです。

全体として、GPIO Zeroの単純なアプローチは、初心者にもベテランにも同様に良いことです。その上、RPi.GPIOはどこにも行きません。必要に応じて元に戻すために常にそこにあります。

Pythonは唯一のオプションですか?

PythonはPiで知られている言語ですが、それだけが選択肢ではありません。すでにC言語でのプログラミングに精通している場合は、 配線パイ あなたはカバーしましたか?

または、JavaScriptで既にプログラミングしている場合は、Node.jsをPiに簡単にインストールできます。 GPIOアクセスは、 rpi-gpionpmライブラリRuby on Rails Raspberry Piにインストールすることもできますが、PiはRailsを学ぶための最良の方法ではないかもしれません!

これらすべての選択肢と、優れたもののような多言語ライブラリ 安いです ライブラリの選択を混乱させる可能性があります。これがGPIOZeroが優れているところです。どこからどのように始めればよいのか疑問に思っている初心者向けです。

提供されていないものが必要になった場合は、自分のペースでこれらの他のライブラリに飛び込む準備ができています。

GPIOゼロユアセルフ入門

GPIO Zeroは、Piのスプラッシュを作成するための最新のライブラリであり、正当な理由があります。ほとんどのユーザーにとって、GPIOピンのコーディングが読みやすく、書きやすくなります。

ユーザーは、自分のコンピューターまたはモバイルデバイスが破損していることを常に認識しています。

教育におけるRaspberryPiの使用法を考えると、学習をより自然にするものは何でも良いことです。 RPi.GPIOはこれまで完璧でしたが、GPIO Zeroは優れたアイデアを採用し、それをさらに改善します。

GPIO Zeroを使い始めるのに最適な方法は、ミュージカルドアセンサーのような初心者プロジェクトを取り上げて、それを新しいライブラリに移植することです。

共有 共有 つぶやき Eメール VirtualBoxLinuxマシンを過給するための5つのヒント

仮想マシンによって提供されるパフォーマンスの低下にうんざりしていませんか? VirtualBoxのパフォーマンスを向上させるためにすべきことは次のとおりです。

次を読む
関連トピック
  • DIY
  • プログラミング
  • ラズベリーパイ
  • Python
  • GPIO
著者について イアン・バックリー(216件の記事が公開されました)

Ian Buckleyは、ドイツのベルリンに住むフリーランスのジャーナリスト、ミュージシャン、パフォーマー、ビデオプロデューサーです。マッドサイエンティストになることを期待して、執筆中やステージ上にいないときは、DIYの電子機器やコードをいじっています。

イアン・バックリーのその他の作品

ニュースレターを購読する

ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。

購読するにはここをクリックしてください