Warum ist GPIO Zero besser als RPi.GPIO für Raspberry Pi-Projekte?
Werbung
Der Raspberry Pi ist der perfekte Computer zum Lernen. Das Linux-basierte Raspbian-Betriebssystem hat Python eingebaut, was es zu einem großartigen ersten System für Anfänger-Programmierer macht. Die GPIO-Pins (General Purpose Input / Output) erleichtern angehenden Entwicklern das Experimentieren mit DIY-Elektronikprojekten.
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 unseren Nachforschungen.
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. Mit dem Ziel, intuitiv und „freundlich“ zu sein, optimiert es den Python-Code für die meisten regulären Raspberry Pi-Anwendungsfälle.
GPIO Zero kombiniert einfache Benennungsverfahren und beschreibende Funktionen und ist für Anfänger verständlicher. Selbst erfahrene Benutzer der RPi.GPIO-Bibliothek werden es vielleicht vorziehen - und um zu verstehen, warum, werfen wir einen Blick darauf, wie RPi.GPIO mit GPIO Zero verglichen wird.
Was stimmt nicht 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 über Code steuern können. Es ist in fast jedem Einsteigerprojekt enthalten. Die 11 besten Raspberry Pi-Projekte für Anfänger Die 11 besten Raspberry Pi-Projekte für Anfänger Diese Raspberry Pi-Projekte für Anfänger eignen sich hervorragend für den Einstieg in die Funktionen jedes Raspberry Pi-Modells. Lesen Sie mehr, was wir behandelt haben.
Trotz seiner umfangreichen Nutzung wurde RPi.GPIO nie für Endbenutzer entwickelt. Es ist ein Beweis für das gute Design von RPi.GPIO, dass es dennoch von so vielen Anfängern verwendet wird.
Was ist so gut an GPIO Zero?
Wenn Sie Python-Code lernen, lernen Sie, dass er leicht zu lesen und so kurz wie möglich sein sollte. GPIO Zero zielt darauf ab, beide Punkte abzudecken. Es basiert auf RPi.GPIO als Front-End-Sprach-Wrapper und vereinfacht die Einrichtung und Verwendung von GPIOs.
Betrachten Sie das folgende Beispiel zum Einrichten und Einschalten einer LED:
Der obige Code sollte jedem vertraut sein, der seinen Pi zur Steuerung von LEDs verwendet hat.
Die RPi.GPIO-Bibliothek wird importiert und ein Pin für die LED deklariert. Der Pin-Layout-Typ ist eingerichtet (BCM- und BOARD-Modus werden in unserem GPIO-Handbuch erläutert. 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 soll er? Kurz gesagt, die GPIO-Pins (General Purpose Input / Output) eröffnen eine ganze Welt des elektronischen Bastelns und Erfindens von Heimwerkern. Dann wird der Stift eingeschaltet.
Dieser Ansatz ist sinnvoll, aber die GPIO Zero-Methode ist viel einfacher:
GPIO Zero verfügt über ein Modul für LEDs, das zu Beginn importiert wird. Dies bedeutet, dass Sie die PIN-Nummer deklarieren und die led.on () -Methode aufrufen können .
Warum ist der Ansatz von GPIO Zero besser?
Es gibt einige Gründe, warum diese Arbeitsweise eine Verbesserung gegenüber RPi.GPIO darstellt.
Erstens erfüllt es die Anforderung „einfach zu lesen, so kurz wie möglich“. Die RPi.GPIO-Setup-Anweisungen sind zwar leicht zu verstehen, aber nicht erforderlich. Eine LED ist immer ein Ausgang, sodass GPIO Zero die Pins hinter den Kulissen einrichtet. Das Ergebnis sind nur drei Codezeilen, die eingerichtet werden müssen. Anschließend leuchtet eine LED auf.
Möglicherweise stellen Sie fest, dass im Beispiel GPIO Zero kein Board-Modus eingerichtet ist. Die Bibliothek verwendet nur die Broadcom (BCM) -Nummerierung für die Pins. Der Bibliotheksdesigner Ben Nuttall erklärt in einem Interview mit RasPi.tv 2015, warum:
„Die BOARD-Nummerierung mag einfacher erscheinen, aber ich würde sagen, dass neue Benutzer glauben, dass alle Stifte für allgemeine Zwecke bestimmt sind - und dies nicht. Schließen Sie eine LED an Pin 11 an. Verbinden Sie weitere LEDs mit Pin 1, 2, 3 und 4. Nun 1 ist 3V3. 2 und 4 sind 5V. Ein mangelndes Bewusstsein für den Zweck der Stifte kann gefährlich sein. “
Auf diese Weise ist es absolut sinnvoll, die BCM-Nummern zu verwenden. Angesichts der Tatsache, dass GPIO Zero künftig Standard in der Raspberry Pi-Dokumentation sein wird, lohnt es sich, es zu lernen!
Ist GPIO Zero tatsächlich besser?
Während es auf den ersten Blick einfacher zu sein scheint, hat die neue Bibliothek irgendwelche Probleme? Wie bei jeder neuen Codierungsbibliothek ist es Ansichtssache. Einerseits ist das Entfernen des Setup-Codes sowohl für Anfänger als auch für erfahrene Programmierer hervorragend. Das Schreiben von Code ist einfacher und schneller.
Andererseits ist es wichtig zu wissen, was genau passiert, um zu lernen. Nehmen Sie das Beispiel zum Einrichten einer Schaltfläche aus der GPIO Zero-Dokumentation:
Das Tastenmodul vereinfacht die Einrichtung für Drucktasten. Es weiß, dass Tasten Eingänge sind, und verwendet daher die angegebene PIN-Nummer für die Einrichtung. Es ist auch einfacher, nach einem Tastendruck zu suchen, da mit .is_pressed Tastendrücke erkannt werden .
Wir haben genau diese Funktionalität im Raspberry Pi-Button-Tutorial verwendet. 2 Möglichkeiten zum Hinzufügen eines Buttons zu Ihrem Raspberry Pi-Projekt 2 Möglichkeiten zum Hinzufügen eines Buttons zu Ihrem Raspberry Pi-Projekt Wie verbinden Sie einen Button mit Ihrem Raspberry Pi? Hier sind 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 Pull-Up- / Pull-Down-Widerstände des Pi nicht im Code eingerichtet sind. Dies wirft eine interessante Frage auf. Ist es für Anfänger wichtig, über Pull-Up / Down-Widerstände Bescheid zu wissen? Auch hier hat Ben Nuttall eine Antwort auf diese Frage:
„Sie könnten 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 unterrichten? […] Wenn Sie die Elektronik ausführlicher unterrichten möchten, gibt es eine Menge Es sollte jedoch nicht zwingend vorgeschrieben sein, wenn Sie gerade erst anfangen. “
Im Großen und Ganzen ist der einfache Ansatz von GPIO Zero sowohl für Anfänger als auch für Veteranen eine gute Sache. Außerdem geht RPi.GPIO nirgendwo hin. Es wird immer da sein, um bei Bedarf zurück zu wechseln.
Ist Python die einzige Option?
Python ist die Sprache, für die der Pi bekannt ist, aber nicht die einzige Option. Wenn Sie bereits mit der Programmierung in der Sprache C vertraut sind, haben Sie mit Wiring Pi einen Überblick.
Wenn Sie bereits in JavaScript programmiert haben, kann Node.js auch problemlos auf dem Pi installiert werden. GPIO-Zugriff ist über die Bibliothek rpi-gpio npm verfügbar. Ruby on Rails kann auch auf dem Raspberry Pi installiert werden, obwohl der Pi möglicherweise nicht der beste Weg ist, Rails zu lernen!
All diese Alternativen, zusammen mit mehrsprachigen Bibliotheken wie dem exzellenten 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 an einem Punkt sind, an dem Sie etwas benötigen, das es nicht bietet, sind Sie mehr als bereit, in Ihrem eigenen Tempo in diese anderen Bibliotheken einzutauchen.
Erste Schritte mit GPIO Zero Yourself
GPIO Zero ist die neueste Bibliothek, die mit gutem Grund für Furore sorgt. Für die meisten Benutzer ist das Codieren von GPIO-Pins einfacher zu lesen und schneller zu schreiben.
Angesichts der Verwendung von Raspberry Pi in der Bildung ist alles, was das Lernen natürlicher macht, eine gute Sache. Während RPi.GPIO bisher perfekt war, greift GPIO Zero eine gute Idee auf und macht sie noch besser.
Ein guter Einstieg in GPIO Zero ist ein Einsteigerprojekt wie der Musiktürsensor. Spielen Sie Ihre eigenen Themenmelodien, wenn Sie mit Raspberry Pi den Raum betreten Spielen Sie Ihre eigenen Themenmelodien, wenn Sie mit Raspberry Pi den Raum betreten Haben Sie schon immer gewollt? zu Hause zu einem persönlichen Empfang ankommen? 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.