Warum GPIO Zero besser ist als RPi.GPIO für Raspberry Pi-Projekte
Der Raspberry Pi ist der perfekte Computer zum Lernen. Das Linux-basierte Raspbian OS hat Python eingebaut, was es zu einem hervorragenden ersten System für Einsteiger macht. Mit den GPIO-Pins (General Purpose Input / Output) können angehende Hersteller leicht mit DIY-Elektronikprojekten experimentieren.
Es ist besonders einfach, wenn Sie Codebibliotheken verwenden, die diese Pins steuern, und die beliebte RPi.GPIO-Python-Bibliothek ist ein hervorragendes Beispiel für eine solche Bibliothek. Aber ist es der beste Weg für Anfänger? Begleiten Sie uns bei der Untersuchung.
Was ist GPIO Zero??
Die GPIO Zero-Bibliothek ist eine Python-Bibliothek zum Arbeiten mit GPIO-Pins. Es wurde von Raspberry Pi Community Manager Ben Nuttall geschrieben. Soll intuitiv sein und “freundlich,” Es optimiert den Python-Code für die meisten regulären Raspberry Pi-Anwendungsfälle.
Durch die Kombination von einfachen Benennungspraktiken und beschreibenden Funktionen ist GPIO Zero für Anfänger leichter verständlich. Sogar erfahrene Benutzer der RPi.GPIO-Bibliothek bevorzugen es möglicherweise - und um zu verstehen, warum RPi.GPIO sich mit GPIO Zero vergleicht.
Was ist los mit RPi.GPIO?
Nichts. Gar nichts. RPi.GPIO wurde Anfang 2012 vom Entwickler Ben Croston veröffentlicht. Es ist eine robuste Bibliothek, mit der Benutzer GPIO-Pins vom Code aus steuern können. Es ist in fast jedem Einsteigerprojekt enthalten. Raspberry Pi-Projekte für Anfänger Raspberry Pi-Projekte für Anfänger Diese 10 Raspberry Pi-Projekte für Anfänger sind ideal, um sich mit den Hardware- und Softwarefunktionen des Pi vertraut zu machen Zeit! Lesen Sie mehr darüber.
Trotz seiner umfangreichen Nutzung wurde RPi.GPIO nie für Endanwender entwickelt. Es ist ein Beweis für das gute Design von RPi.GPIO, dass so viele Anfänger es trotzdem verwenden.
Was ist so gut an GPIO Zero??
Wenn Sie Python-Code lernen, lernen Sie, dass er leicht lesbar und so kurz wie möglich sein sollte. GPIO Zero möchte beide Punkte abdecken. Es wurde auf RPi.GPIO als Front-End-Sprachwrapper aufgebaut und vereinfacht die Einrichtung und Verwendung von GPIO.
Betrachten Sie das folgende Beispiel, wie Sie eine LED einrichten und einschalten:
Der obige Code sollte jedem bekannt sein, der sein Pi zur Steuerung von LEDs verwendet hat.
Die RPi.GPIO-Bibliothek wird importiert und ein Pin für die LED wird deklariert. Der Pin-Layout-Typ ist eingerichtet (BCM- und BOARD-Modus werden in unserem GPIO-Handbuch erklärt.) Alles, was Sie über Raspberry Pi wissen müssen GPIO-Pins Alles, was Sie über Raspberry Pi wissen müssen GPIO-Pins Der Raspberry Pi ist ein fantastischer kleiner Computer, aber was tun? Die GPIO-Pins (General Purpose Input / Output) tun dies genau? Kurz gesagt, sie eröffnen eine ganze Welt des elektronischen Bastelns und Erfindens von Heimwerken. Lesen Sie weiter), und der Pin ist als Ausgang eingerichtet. Dann ist der Pin eingeschaltet.
Diese Vorgehensweise ist sinnvoll, aber die GPIO Zero-Methode ist viel einfacher:
GPIO Zero verfügt über ein Modul für LEDs, das beim Start importiert wird. Das heißt, Sie können die PIN-Nummer angeben und die anrufen led.on () Methode.
Warum ist der Ansatz von GPIO Zero besser??
Es gibt einige Gründe, warum diese Arbeitsweise eine Verbesserung von RPi.GPIO darstellt.
Erstens trifft es die “einfach zu lesen, möglichst kurz” Anforderung. Die Setup-Anweisungen von RPi.GPIO sind leicht verständlich, aber nicht notwendig. Eine LED ist immer ein Ausgang, daher legt GPIO Zero die Pins hinter den Kulissen fest. Das Ergebnis sind nur drei Codezeilen, die eingerichtet werden müssen. Anschließend leuchtet eine LED auf.
Möglicherweise stellen Sie fest, dass im GPIO Zero-Beispiel kein Board-Modus eingerichtet ist. Die Library verwendet nur die Broadcom (BCM) -Nummerierung für die Pins. Der Bibliotheksdesigner Ben Nuttall erklärt warum in einem Interview mit RasPi.tv 2015:
“BOARD-Nummerierung mag einfacher erscheinen, aber ich würde sagen, dass neue Benutzer der Meinung sind, dass alle Pins allgemeiner Zweck sind - und sie sind es nicht. Schließen Sie eine LED an Pin 11 an, warum nicht mehr an Pin 1, 2, 3 und 4? Nun, 1 ist 3V3. 2 und 4 sind 5V. Ein mangelndes Bewusstsein über den Zweck der Pins kann gefährlich sein.”
So gesehen macht es absolut Sinn, die BCM-Nummern zu verwenden. Da GPIO Zero zukünftig Standard in der Raspberry Pi-Dokumentation sein wird, lohnt es sich zu lernen!
Ist GPIO Zero eigentlich besser??
Während es an der Oberfläche einfacher erscheint, hat die neue Bibliothek Probleme? Wie bei jeder neuen Codierungsbibliothek handelt es sich um eine Ansichtssache. Zum einen ist das Entfernen des Setup-Codes für Anfänger und erfahrene Programmierer gleichermaßen geeignet. Das Schreiben von Code ist einfacher und schneller.
Andererseits ist es für das Lernen wichtig, genau zu wissen, was vor sich geht. Nehmen Sie das Beispiel für das Einrichten einer Schaltfläche aus der GPIO Zero-Dokumentation:
Das Taste Modul vereinfacht das Setup für Drucktasten. Da Tasten wissen, dass sie Eingaben sind, verwendet sie die angegebene Pin-Nummer für das Setup. Das Prüfen auf Tastendruck ist mit der Taste auch einfacher .wird gedrückt um Tastendrücke zu erkennen.
Diese genaue Funktion haben wir im Tutorial zu Raspberry Pi-Tasten verwendet. 2 Möglichkeiten, einem Raspberry Pi-Projekt eine Schaltfläche hinzuzufügen 2 Möglichkeiten, einem Raspberry Pi-Projekt eine Schaltfläche hinzuzufügen Wie verbinden Sie eine Schaltfläche mit Ihrem Raspberry Pi? Es gibt zwei Möglichkeiten, um mit Python und einer LED zu beginnen. Lesen Sie mehr, um sich mit den Unterschieden in den Bibliotheken vertraut zu machen.
Benutzer der RPi.GPIO-Bibliothek werden feststellen, dass die internen Pullup- / Pulldown-Widerstände des Pi nicht im Code eingerichtet sind. Dies wirft eine interessante Frage auf. Ist es für Anfänger unerlässlich, über Pull-Up / Down-Widerstände Bescheid zu wissen? Auch hier hat Ben Nuttall eine Antwort auf diese Frage:
“Sie mögen argumentieren, dass es gut ist, über Pull-Ups und Pull-Downs Bescheid zu wissen, und Sie hätten recht - aber warum muss ich das am ersten Tag beibringen? […] Wenn Sie die Elektronik tiefer unterrichten möchten, gibt es eine Menge Spielraum dafür - aber es sollte nicht zwingend sein, wenn Sie gerade erst anfangen.”
Im Großen und Ganzen ist der einfache Ansatz von GPIO Zero für Anfänger und Veteranen gleichermaßen eine gute Sache. Außerdem geht RPi.GPIO nirgendwo hin. Es wird immer vorhanden sein, um bei Bedarf zurückzuschalten.
Ist Python die einzige Option??
Python ist die Sprache, für die der Pi bekannt ist, aber es ist nicht die einzige Option. Wenn Sie bereits mit der Programmierung in der Programmiersprache C vertraut sind, haben Sie mit Wiring Pi alles gemacht.
Wenn Sie bereits in JavaScript programmiert sind, kann Node.js auch problemlos auf dem Pi installiert werden. Der GPIO-Zugriff ist über die Bibliothek rpi-gpio npm verfügbar. Ruby on Rails kann auch auf dem Raspberry Pi installiert werden, obwohl das Pi möglicherweise nicht der beste Weg ist, um Rails zu lernen!
All diese Alternativen zusammen mit mehrsprachigen Bibliotheken wie dem ausgezeichneten pigpio können die Auswahl einer Bibliothek verwirrend machen. Hier zeichnet sich GPIO Zero aus: Für Anfänger, die sich fragen, wie und wo sie anfangen sollen.
Wenn Sie sich an einem Punkt befinden, an dem Sie etwas benötigen, das es nicht bietet, sind Sie mehr als bereit, diese anderen Bibliotheken in Ihrem eigenen Tempo einzutauchen.
Erste Schritte mit GPIO Zero Yourself
GPIO Zero ist die neueste Bibliothek, die dem Pi einiges bietet, und das aus gutem Grund. Für die meisten Benutzer ist die Codierung für GPIO-Pins einfacher zu lesen und schneller zu schreiben.
Angesichts der Verwendung des Himbeer-Pis in der Bildung ist alles, was das Lernen natürlicher macht, eine gute Sache. Während RPi.GPIO bisher perfekt war, hat GPIO Zero eine gute Idee und macht es noch besser.
Eine gute Möglichkeit, mit GPIO Zero anzufangen, ist ein Anfängerprojekt wie den Musical Door Sensor. Spielen Sie Ihr eigenes Musikstück, wenn Sie den Raum mit Himbeer-Pi betreten. Spielen Sie Ihr eigenes Thema, wenn Sie das Zimmer mit Himbeer-Pi betreten zu einem persönlichen Empfang nach Hause kommen? In diesem einfachen Raspberry Pi-Projekt verwenden wir einen Reed-Schalter, um eine Melodie auszulösen, wenn eine Tür geöffnet wird. Lesen Sie mehr und portieren Sie es in die neue Bibliothek.
Erfahren Sie mehr über: GPIO, Python, Raspberry Pi.