Wie man Python verwendet, um auf GPIO Pins auf Ihren Raspberry Pi

Sie können mit Python auf GPIO-Pins auf Ihrem Raspberry Pi zugreifen. Im Gegensatz zu den grafischen Programmblöcken von Scratch verwendet Python ausschließlich textbasierte Anweisungen. Seine große Stärke ist, dass die grundlegende Python-Sprache erweitert werden kann, um mehr Dinge durch die Verwendung von -Bibliotheken zu erreichen. Dies sind Funktionen, die in Python oder einer anderen Sprache geschrieben werden können, um zu erweitern, was Python kann.

Wenn Sie Python für den Zugriff auf die GPIO-Pins verwenden, stehen Ihnen verschiedene Bibliotheken zur Verfügung, mit denen Sie auf sie zugreifen können. Sie können nicht nur einen normalen Eingangs- / Ausgangszugriff bereitstellen, sondern auch Zugriff auf einige der speziellen Funktionen oder Fähigkeiten bestimmter Pins.

In den frühen Tagen des Raspberry Pi war der einzige Zugriff auf die GPIO-Pins, wenn Sie im Supervisor- oder Root-Modus betrieben wurden. Glücklicherweise wurde dies jetzt geändert, so dass Sie mit den meisten Bibliotheken im normalen Benutzermodus laufen können.

Während die neu eingeführte Thonny Python IDE ( I ntegrated D Entwicklung E nvironment) bei Anfängern sehr beliebt ist, ist unsere bevorzugte Umgebung zum Schreiben von Python IDLE3 ( Es hat mehr Funktionen), aber beide können verwendet werden. IDLE3 und Thonny können beide über das Hauptmenü von Desktop Raspberry aufgerufen werden. Wählen Sie also die von Ihnen gewünschte Datei aus und erstellen Sie eine neue Datei. Geben Sie dann das Programm ein, das Sie unten sehen. Denken Sie daran, dass in Python der Fall eines Wortes ebenso wichtig ist wie die Leerzeichen am Anfang einer Zeile. Andernfalls erhalten Sie Fehler beim Ausführen des Codes.

#! / usr / bin / python3

Importzeit

importiert RPi. GPIO als io # mit RPi. GPIO

io. setmode (io. BCM)

io. setup (4, io. OUT) # macht den Pin zu einem Ausgang

print ("LED blinker - von Mike Cook")

print ("Ctrl C zum Beenden")

true:

io .. Ausgang (4, 0)

Zeit. Schlaf (0, 30)

io. Ausgabe (4, 1)

Zeit. sleep (0. 30)

Speichern Sie die Datei und führen Sie sie aus. Ihre LED blinkt genau wie das Scratch-Beispiel.

Schauen Sie sich den Code Zeile für Zeile an. Das Programm beginnt mit dem Import der benötigten Support Packages. In diesem Fall ist es das Zeitpaket, das verwendet wird, um eine Verzögerungs- oder Wartefunktion und das RPi zu erreichen. GPIO-Paket für den Zugriff auf die GPIO-Pins. Beachten Sie hier, dass viele Beispiele als GPIO in der import -Anweisung verwenden - aber Sie können das einfachere und kürzere als io verwenden, da es die Anzahl der Eingaben verringert. und Sie müssen nicht auf Großbuchstaben umschalten.

Anschließend müssen Sie der Bibliothek mitteilen, welche Art von Nummerierungssystem Sie verwenden möchten.Wir verwenden das Standard-BCM-System. Die nächste Zeile teilt den GPIO-Pins mit, dass Sie Pin 4 als Ausgang verwenden möchten. Die Setup -Methode verwendet zwei Werte: die Pin-Nummer und eine Nummer, die der Bibliothek mitteilt, diesen Pin zu einer Ausgabe zu machen. Dies wird von der Bibliothek bequem verborgen, indem eine vordefinierte Konstante verwendet wird, die in der Bibliothek definiert ist - deshalb ist ihr das Präfix io zugewiesen.

Als nächstes wird die Schleife für immer von Scratch in Python mit der Verwendung der Anweisung while True ausgeführt, wobei alle Anweisungen in dieser Schleife eingerückt werden.

Diese Schleife befiehlt dann dem GPIO-Pin 4, eine 0 zu sein, wodurch die LED ausgeschaltet wird. Dann gibt es eine Verzögerung (oder Schlaf) für 300mS, gefolgt von dem Einschalten der LED, indem Pin 4 hoch geht. Schließlich gibt es eine weitere Verzögerung, sodass Sie die LED im eingeschalteten Zustand sehen können. Ein häufiger Fehler ist es, diese letzte Verzögerung auszulassen; Infolgedessen scheint die LED immer ausgeschaltet zu sein. Die Steuerung eines GPIO-Ausgangs ist also sehr einfach.

Nun zum zweiten Beispiel einer schaltergesteuerten Blinkgeschwindigkeit. Dies wird unten gezeigt, öffnen Sie also eine neue Datei und geben Sie sie ein.

#! / usr / bin / python3

io. setmode (io. BCM)

io. setup (4, io. OUT) # macht den Pin zu einem Ausgang

io. setup (24, io. IN, pull_up_down = io. PUD_UP) # make pin ein Eingang

print ("LED blinker - Von Mike Cook")

print ("Ctrl C um zu beenden")

wahr :

io. Ausgang (4, 0)

falls io. Eingang (24) == 1:

Zeit. Schlaf (0, 30)

sonst:

Zeit. Schlaf (1,00)

io. Ausgang (4, 1)

falls io. Eingang (24) == 1:

Zeit. Schlaf (0, 30)

sonst:

Zeit. sleep (1. 00)

Dieser Code hat die gleichen Befehle für den Ausgangspin, aber die Einstellung des Eingangspins ist neu. Dieser Befehl hat drei Parameter: die Nummer des zu verwendenden Pins, eine Zahl in Form einer von der Bibliothek definierten Konstante, die angibt, dass dieser Pin als Eingabe fungieren soll, und schließlich einige Befehle, die den Computer anweisen, die interne Funktion zu aktivieren. Pullup-Widerstand (obwohl, zu unseren Ohren, PUD_UP eher wie eine Mutter klingt, die Kinder ruft, um ihnen zu sagen, dass ihr Pudding gedient wird).

Die LED wird zuerst wie zuvor ausgeschaltet, und dann wird die Eingabe von der Drucktaste durch die Eingabe (24) Methode gelesen, die einen Wert von 0 oder 1 zurückgibt, je nachdem ob der Pin ist mit dem Boden verbunden. Dieser zurückgegebene Wert wird dann mit 1 verglichen, und wenn er gleich ist, wird eine Verzögerung von 300 ms vorgenommen. Andernfalls wird eine Verzögerung von 1 Sekunde erzeugt. Die LED ist eingeschaltet und der Conditional Delay Code wird wiederholt.

Teilen Sie Mit Ihren Freunden
Vorheriger Artikel
Nächster Artikel