GPIO: Alles über die Raspberry Pi 4 und 3 Verbindungen

Himbeer Pi 4 GPIO

Die GPIO-Pins der Raspberry Pi 4-Platine, 3und auch seine Vorgänger bieten dem SBC-Board ähnliche Funktionen wie Arduino, da Sie mit ihnen sehr interessante elektronische Projekte erstellen können, die vom Betriebssystem aus mithilfe von Code in verschiedenen Sprachen wie Python gesteuert werden.

Das macht das Board mehr als nur einen billigen Computer. Damit können Sie eine Vielzahl von verbinden elektronische Elemente das können Sie mit Arduino verwenden, aber das kann auch vom Pi aus gesteuert werden. In diesem Handbuch werde ich versuchen, Ihnen so viele Informationen wie möglich über diese GPIO-Pins zu geben, damit Sie sie nutzen können ...

Was ist GPIO?

GPIO

GPIO ist die Abkürzung für General Purpose Input / Output, dh General Purpose Input / Output. Verschiedene elektronische Produkte können es haben, wie die Chips selbst oder bestimmte Leiterplatten wie dieser Raspberry Pi. Wie der Name schon sagt, handelt es sich um Pins, die so konfiguriert werden können, dass sie unterschiedliche Funktionen ausführen. Daher sind sie für allgemeine Zwecke und nicht für eine bestimmte Verwendung bestimmt.

Es wird der Benutzer zur Laufzeit sein, der dies kann Konfigurieren Sie diese GPIO-Pins damit sie tun, was er will. Dies kann auf verschiedene Arten erfolgen, z. B. mit bestimmten Codes oder Skripten von der Konsole oder mit dem Python-Programm. Dies ist aufgrund der Vielzahl der verfügbaren Optionen eine der einfachsten und am meisten bevorzugten Methoden.

Auf diese Weise verfügt der Raspberry Pi nicht nur über eine Reihe von Anschlüssen und Schnittstellen Fügen Sie diese GPIO-Pins hinzu, um mehrere Standardgeräte anzuschließen, damit Sie andere elektronische Geräte oder Herstellerprojekte hinzufügen können, die Sie selbst erstellt haben. Genauso wie Sie es mit Arduino und seinen E / A-Pins zur Steuerung tun würden.

Y nicht exklusiv für Arduino oder Raspberry PiDies gilt auch für andere ähnliche SBC-Karten und eingebettete Produkte.

GPIO-Funktionen

Und dazwischen ihre KARAKTERISTIK herausragendste:

  • Sie können konfiguriert werden so als Eingabe als Ausgabe. Sie haben diese Dualität, wie es denen von passiert Arduino.
  • Die GPIO-Pins auch kann aktiviert und deaktiviert werden per Code. Das heißt, sie können auf 1 (Hochspannungspegel) oder 0 (Niederspannungspegel) eingestellt werden.
  • Natürlich können sie Binärdaten lesenals Einsen und Nullen, dh Spannungssignal oder Fehlen davon.
  • Ausgabewerte von Lesen und Schreiben.
  • Die Eingabewerte können in einigen Fällen als konfiguriert werden Geschehen so dass sie irgendeine Art von Aktion auf der Platine oder dem System erzeugen. Einige eingebettete Systeme verwenden sie als IRQs. Ein anderer Fall besteht darin, zu konfigurieren, dass, wenn ein oder mehrere Pins von bestimmten Sensoren aktiv sind, eine Aktion ausgeführt wird ...
  • In Bezug auf Spannung und Intensität müssen Sie die für die Platine zulässigen maximalen Kapazitäten kennen, in diesem Fall den Raspberry Pi 4 oder 3. Sie sollten diese nicht passieren, um eine Beschädigung zu vermeiden.

Übrigens, wenn eine Gruppe von GPIO-Pins gruppiert ist, wie dies beim Raspberry Pi der Fall ist, wird die Gruppe als bezeichnet GPIO-Port.

Die GPIO-Pins des Raspberry Pi

Himbeer Pi GPIO

Schema gültig für Version 4, 3, Null

Neu Raspberry Pi 4 Boards und Version 3 Sie sind mit einer Vielzahl von GPIO-Pins ausgestattet. Nicht alle Versionen bieten die gleiche Menge und sind auch nicht gleich nummeriert. Sie müssen also vorsichtig sein, um zu wissen, wie die Verbindung gemäß dem Modell und der Revision hergestellt wird, die Sie haben.

Generischer sind jedoch die GPIO-Typen, die Sie im Port von Raspberry Pi-Boards finden. Und das wird das erste sein, was ich klarstellen möchte, denn so werden Sie es wissen die Arten von Stiften Sie können sich bei Ihren Projekten auf Folgendes verlassen:

  • Lebensmittel: Diese Pins werden verwendet, um die Stromleitungen oder Verkabelungen für Ihre elektronischen Projekte anzuschließen. Sie entsprechen Pins, die denen auf der Arduino-Platine ähnlich sind und Spannungen von 5 V und 3 V3 liefern (3.3 V begrenzt auf 50 mA Last). Darüber hinaus finden Sie auch die Boden (GND oder Boden). Wenn Sie keine externen Stromquellen wie Batterien oder Adapter verwenden, können diese Pins eine große Hilfe für die Stromversorgung Ihres Stromkreises sein.
  • DNC (nicht verbinden): Es handelt sich um Pins, die in einigen Versionen vorhanden sind und keine Funktion haben, denen jedoch in den neuen Boards ein anderer Zweck zugewiesen wurde. Sie finden diese nur in primitiveren Modellen des Pi. In den neuen 3 und 4 werden sie allgemein als GND markiert, um sich in die vorherige Gruppe integrieren zu können.
  • Konfigurierbare Pins: Sie sind das normale GPIO und können mit Codes programmiert werden, wie ich später erläutern werde, um das zu tun, was Sie benötigen.
  • Spezielle Stifte: Dies sind einige Verbindungen, die für spezielle Verbindungen oder Schnittstellen wie serielle UART-, TXD- und RXD-Verbindungen usw. vorgesehen sind, wie dies bei Arduino der Fall ist. Sie finden sogar einige wie SDA, SCL, MOSI, MISO, SCLK, CE0, CE1 usw. Sie stechen unter ihnen hervor:
    • PWM, die die Breite des Impulses regulieren können, wie wir in einem vorherigen Artikel gesehen haben. Auf dem Raspberry Pi 3 und 4 sind dies GPIO12, GPIO13, GPIO18 und GPIO19.
    • SPI ist eine weitere Kommunikationsschnittstelle, die ich auch in einem anderen Artikel besprochen habe. Bei den neuen 40-Pin-Karten handelt es sich um die Pins (mit unterschiedlichen Kommunikationskanälen, wie Sie sehen können):
      • SPI0: MOSI (GPIO10), MISO (GPIO9), SCLK (GPIO11), CE0 (GPIO8), CE1 (GPIO7)
      • SPI1: MOSI(GPIO20); MISO(GPIO19); SCLK(GPIO21); CE0(GPIO18); CE1(GPIO17); CE2 (GPIO16)
    • I2C ist eine weitere Verbindung, die ich auch in diesem Blog erklärt habe. Dieser Bus besteht aus dem Datensignal (GPIO2) und der Uhr (GPIO3). Zusätzlich zu EEPROM-Daten (GPIO0) und EEPROM-Uhr (GPIO1).
    • Seriell, eine weitere sehr praktische Kommunikation mit TX- (GPIO14) und RX- (GPIO15) Pins, wie sie auf der Platine zu finden sind Arduino UNO.

Denken Sie daran, dass GPIOs die Schnittstelle zwischen dem Raspberry Pi und der Außenwelt sind, aber sie haben seine Grenzen, insbesondere elektrisch. Um die Karte nicht zu beschädigen, müssen Sie berücksichtigen, dass diese GPIO-Pins normalerweise ungepuffert sind, dh ohne Puffer. Dies bedeutet, dass sie keinen Schutz haben. Sie müssen daher die Größe der angelegten Spannung und Intensität überwachen, um keine unbrauchbare Platte zu erhalten ...

GPIO-Unterschiede zwischen den Versionen

Alte Himbeer-Pi-GPIO-Stifte

Wie ich sagte, Nicht alle Modelle sind die gleichen StifteHier sind einige Diagramme, damit Sie die Unterschiede zwischen den Modellen erkennen und sich auf die Raspberry Pi 4 und 3 konzentrieren können, die die neuesten sind und die Sie wahrscheinlich in Ihrem Besitz haben. Es unterscheidet sich zwischen (alle Gruppen teilen sich die gleichen Pins):

  • Raspberry Pi 1 Modell B Rev 1.0, mit 26-poligem Stift, der sich geringfügig von Rev2 unterscheidet.
  • Raspberry Pi 1 Modell A und B Rev 2.0, beide Modelle mit 26-poligem Anschluss.
  • Rapsberry Pi Modell A +, B +, 2B, 3B, 3B +, Zero und Zero W sowie 4 Modelle. Alle mit einem 40-poligen GPIO-Header.

Was kann ich in die GPIOs einstecken?

Himbeer-Pi-Hut

Sie können nicht nur elektronische Geräte anschließen als Transistoren, Feuchtigkeits- / Temperatursensoren, Thermistoren, Schrittmotoren, LEDs, usw. Sie können auch Komponenten oder Module anschließen, die speziell für den Raspberry Pi erstellt wurden und die Funktionen der Karte über das hinaus erweitern, was in der Basis enthalten ist.

Ich beziehe mich auf das Berühmte Hüte oder Hüte und Teller, die Sie auf dem Markt finden können. Es gibt viele Typen, von denen, die zur Steuerung von Motoren mit Treibern verwendet werden, bis zu anderen, die erstellt werden müssen ein Computerclustermit LED-Panel steuerbar, hinzuzufügen DVB-TV-Fähigkeit, LCD Bildschirm, usw.

Diese Hüte oder Hüte Sie sind auf der Raspberry Pi-Platine montiert. Übereinstimmung mit den GPIOs, die erforderlich sind, damit es funktioniert. Daher ist die Montage recht einfach und schnell. Stellen Sie natürlich sicher, dass die Plattenversion mit jedem Hut kompatibel ist, da der GPIO-Anschluss anders ist, wie Sie gesehen haben ...

Ich sage dies für den Fall, dass Sie einen älteren Teller haben, da Hüte sind nur mit dem neuesten kompatibel. Ebenso wie die Raspberry Pi Modelle A +, B +, 2, 3 und 4 Modelle.

Einführung in die Verwendung von GPIO auf dem Raspberry Pi

Pinbelegung Befehlsausgabe

Quelle: Himbeer-Pi

Zunächst können Sie unter Raspbian die Konsole öffnen und eingeben der Befehl PinoutWas es Ihnen zurückgibt, ist ein Bild im Terminal mit den GPIO-Pins auf Ihrem Board und wofür jedes einzelne ist. Etwas sehr Praktisches, um es immer bei der Arbeit zu haben, damit Sie nicht verwirrt werden.

Erstes Projekt: Blinken einer LED mit den GPIOs

GPIO mit LED am Raspberry Pi

Der einfachste Weg, eine Art zu machen "Hallo Welt" mit GPIOs Verwenden Sie eine einfache LED, die an die Stifte des Raspberry Pi angeschlossen ist, damit Sie sehen können, wie sie funktionieren. In diesem Fall habe ich es an GND und das andere an Pin 17 angeschlossen, obwohl Sie einen anderen der normalen Pins wählen können ...

Sobald die Verbindung hergestellt ist, können Sie Kontrolliere sie von Raspbian aus das Terminal nutzen. Unter Linux werden bestimmte Dateien wie die im Verzeichnis / sys / class / gpio / verwendet. So erstellen Sie beispielsweise eine Datei mit der erforderlichen Struktur, um mit der Arbeit zu beginnen:

echo 17 > /sys/class/gpio/export

Dann kannst du als Eingang (in) oder als Ausgang (out) konfigurieren der für unser Beispiel gewählte Pin 17. Sie können es sehr einfach machen mit:

echo out > /sys/class/gpio/gpio17/direction

In diesem Fall als Ausgang, da wir einen elektrischen Impuls an die LED senden möchten, um sie einzuschalten, aber wenn es ein Sensor usw. wäre, könnten Sie in verwenden. Jetzt für einschalten (1) oder ausschalten (0) Die LED, die Sie verwenden können:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

Wenn Sie zu einem anderen Projekt wechseln möchten und Eintrag löschen erstellt, können Sie es folgendermaßen tun:

echo 17 > /sys/class/gpio/unexport

Übrigens können Sie auch alle für Ihr Projekt erforderlichen Befehle wie alle vorherigen sammeln und in einem Dateityp speichern Bash-Skript und führen Sie sie dann sofort in einem Bundle aus, anstatt sie einzeln einzugeben. Dies ist praktisch, wenn Sie dieselbe Übung viele Male wiederholen, sodass Sie sie nicht neu schreiben müssen. Einfach rennen und gehen. Beispielsweise:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

Sobald Sie fertig sind, speichern Sie und können ihm die entsprechenden Ausführungs- und Ausführungsberechtigungen erteilen das Skript Warten Sie 1.3 Sekunden, bis die LED aufleuchtet, und schalten Sie sie dann in einer Schleife aus ...

chmod +x led.sh
./led.sh

Programmiervorschuss

Quellcode der Programmiersprache

Natürlich funktioniert das oben Gesagte für kleine elektronische Projekte mit wenigen Komponenten. Wenn Sie jedoch anstelle der Befehle etwas Fortgeschritteneres erstellen möchten, können Sie Folgendes verwenden Programmiersprachen um verschiedene Skripte oder Quellcodes zu erstellen, die den Vorgang automatisieren.

Sie können verwendet werden verschiedene Werkzeuge zu programmieren, mit sehr unterschiedlichen Sprachen. Die Bibliotheken, die die Community entwickelt hat, erleichtern Ihnen die Arbeit erheblich, z. B. WiringPi, sysfs, pigpio usw. Die Programme können sehr unterschiedlich sein, von Python, das von vielen die bevorzugte Option ist, über Ruby, Java, Perl, BASIC und sogar C #.

Offiziell bietet Ihnen der Raspberry Pi viele Einrichtungen So programmieren Sie Ihre GPIOs wie:

  • Schutz vor, für diejenigen, die nicht programmieren können und die Puzzleblöcke dieses Projekts verwenden möchten, mit denen Arduino auch programmiert werden kann, usw. Das Programmieren mit Grafikblöcken ist sehr intuitiv und für den Bildungsbereich sehr praktisch.
  • Python: Mit dieser einfach interpretierten Programmiersprache können Sie einfache und leistungsstarke Codes erstellen. Eine Vielzahl von Bibliotheken steht Ihnen zur Verfügung, um fast alles zu tun, was Sie sich vorstellen.
  • C / C ++ / C #: Sie sind leistungsfähigere Programmiersprachen zum Erstellen von Binärdateien für die Interaktion mit den GPIOs. Sie können dies auf verschiedene Arten tun, indem Sie das Standardformular oder die Kernelschnittstelle über die Bibliothek verwendenlibgpiod, sondern auch über eine Drittanbieter-Bibliothek wie Schweinchen.
  • Verarbeitung3, ähnlich dem Arduino.

Wählen Sie flexibel die, die du am meisten magst oder die du für einfach hältst.


4 Kommentare, hinterlasse deine

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Feind sagte

    Sehr schöner Artikel zum Thema Start in Rasperry

    1.    Holger sagte

      Vielen Dank.

      1.    Ruth Medina sagte

        Bist du der Autor?

        1.    Holger sagte

          ja