Wer bereits einen Raspberry Pi Zero besitzt wird festgestellt haben das die GPIOs leider „unpopulated“, also ohne verwendbare Stift- oder Buchsenleiste, daher kommen. Natürlich wollte ich mit meinem Zero experimentieren und zeige euch heute daher wie ihr die auf 40 GPIO Pins eine Buchsen- oder Stiftleiste auflötet um mit dem Zero und einem Steckbrett experimentieren zu können.
In diesem Tutorial verwende ich anstelle der üblichen Stiftleisten eine Buchsenleiste da ich noch Material von anderen Projekten übrig hatte und nicht noch mal extra Versandkosten bezahlen wollte.
Für den Teil 1 dieses Tutorial wird folgendes Material benötigt:
- Raspberry Pi Zero mit passendem Zubehör ( siehe Vorstellung Pi Zero )
- Ein Lötkolben mit Lötzinn
- Eine Werkstückhalter, auch Dritte Hand genannt
- Buchsenleiste oder Stiftleiste mit 2,54mm Abstand für 40 Pins (z.B. 2 x 20)
GPIO Leiste anlöten
Bei mir kommen zwei 2×10 Buchsenleisten zum Einsatz, diese klemme ich, mit den Buchsen auf der Oberseite des Pi, mit der dritten Hand am Zero fest
Danach drehe ich den Zero bzw. die Dritte Hand so das ich die Rückseite sehe um einfacher löten zu können
Tipp: Als Rechtshänder löte immer die obere Reihe von links nach Rechts, drehe dann das Werkstück um 180 Grad um die zweite Reihe wieder von links nach rechts zu löten. Das macht es für mich mit einer zitterigen Hand erheblich einfacher.
Das Ergebnis nach fertigem Löten sieht bei mir so aus.
GPIOs des Pi Zero testen
Natürlich möchte ich, nachdem ich die Buchsenleiste an den GPIO Pins angebracht haben, noch testen ob alle Pins funktionieren. Hierzu verwende ich zusätzlich folgendes:
- Zum Testen mit LEDs
- Ein Breadboard / Steckbrett
- Für die Buchsenleiste -> Male / Male Steckbrettkabel
- Für normale Stiftleisten, wie vom Pi B+ / 2B bekannt -> Ein GPIO Breakout + Male/Male Kabel oder Male / Female Steckbrettkabel
- LEDs mit passendem 270 Ohm Widerstand (330 – 270 Ohm möglich)
- Zum Testen mit dem Multimeter
- Ein digitales Multimeter (zum Testen ohne LEDs und Steckbrett)
Als erstes spiele ich, wie in der Anleitung für Einsteiger beschrieben, mit dem Win32DiskImager das aktuellste Raspbian Betriebssystem auf meine SD Karte und verbinde den Zero mit einer Media Center Tastatur (Weises Kabel), einem Bildschirm via HDMI und zuletzt mit dem 5V Netzteil (Schwarzes Kabel). Alternativ könnt ihr auch via SSH Arbeiten, hier eine Anleitung zum Zero für das WLAN Setup.
Euer Pi sollte wie gewohnt anfangen auf der Activity LED zu blinken und dann auf den Desktop von Raspbian zu booten, ist das nicht der Fall kontrolliert eure Verkabelung, die SD-Karte und stellt sicher das ihr beim Anlöten keinen Kurzschluss produziert habt.
Bevor wir weiter machen muss euch das GPIO Layout klar sein, der PIN 1 (+3,3V) ist immer der Pin mit dem rechteckigen Lötpad das könnt ihr auf der Rückseite des Pi Zero ganz gut erkennen.
Da wir nun wissen wo der PIN 1 (+3,3V) und der PIN 2 (+5V) sitzt ist alles weitere recht einfach, die 40 Pins des Zero haben die selbe Belegung wie der RasPi Modell 2B und B+, somit können wir deren GPIO Plan verwenden. Das GPIO Worksheet gibts auch zum runterladen.
GPIOs des Pi Zero mit LEDs testen
Bei unserem Test machen wir es uns zu Nutze das die GPIO Pins des RasPi zwei Zustände annehmen können:
- HIGH -> Ist „AN“ und es liegen +3,3V an (LED ist an)
- LOW -> Ist „AUS“ und es liegen 0,0V an (LED ist aus)
Mit diesem Verfahren können wir fast alle GPIO-PINs testen (26 Stück), die Pins 27 & 28 für I2C können so allerdings nicht getestet werden, die +5V, +3V und GND Pins können durch einfaches anklemmen des roten (+3V oder +5V) bzw. schwarzen Kabels (GND) mit der LED testen.
Steckt folgendes auf eurem Steckbrett und beachtet beim Anschließen der LED das der lange Fuß die Plus Seite ist und somit Strom vom GPIO bekommt ( Rot, 3,3V von PIN3), der kurze ist Minus und geht über den Widerstand zur Erde (GND Pin 6).
Es fehlt noch ein kleines Script mit welchem wir nun die PINs durch das An- und Abschalten einer LED Testen können, in diesem Beispiel verwenden wir Python zum ansteuern der GPIO Ports bzw. der LED. Um Python benutzen zu können installieren wir vorher die passenden Tools, python-dev und python-rpi.gpio durch Eingabe des folgenden Kommandos ins Terminal
1 |
sudo apt-get update && sudo apt-get install python-dev && sudo apt-get install python-rpi.gpio |
Dann erstellen wir eine Python Script Datei mit dem Namen „gpio-test.py“ und öffnen diese im Editor Nano
1 |
sudo nano gpio-test.py |
Im Editor fügen/kopieren wir nun folgendes Script zum Testen der GPIO Ports ein, das Script macht folgendes:
- Es fragt uns nach der zu testenden PIN Nummer
- Setzt den eingegebenen PIN 10 mal von HIGH auf LOW -> Unsere LED blinkt 10 mal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import time import RPi.GPIO as GPIO # RPi.GPIO Layout mit PIN Nummern verwenden GPIO.setmode(GPIO.BOARD) # Abfrage welcher PIN getestet werden soll, einlesen in Variable pin_nummer als int (integer) print("Welcher GPIO-Pin soll getestet werden?") pin_nummer = int( input("Pin Nummer eingeben: ") ) # Eingegebenen Pin auf OUTPUT setzen und erst mal auf LOW (aus) GPIO.setup(pin_nummer, GPIO.OUT) GPIO.output(pin_nummer, GPIO.LOW) # Schleife (durchlaufe 10 mal) und setze den GPIO dann HIGH und LOW (blinken) for i in range(0,10): # LED an GPIO.output(pin_nummer, GPIO.HIGH) print("high - an") # Warte 500 ms time.sleep(0.5) # LED aus GPIO.output(pin_nummer, GPIO.LOW) print("low - aus") # Warte 500 ms time.sleep(0.5) # Wenn die schleife 10 mal durchlaufen wurde print "Fertig!" GPIO.cleanup() |
1 |
sudo python gpio-test.py |
Eure LED sollte nun 10 mal blinken, tut sie das nicht kontrolliert die Lötstellen des entsprechenden PIN! Mit diesem vorgehen könnt ihr nun alle GPIOs testen und gleichzeitig das Programmieren mit dem Pi, GPIO und Python lernen :)
GPIOs des Raspberry Pi Zero mit dem Multimeter testen
Als erstest stellt ihr euer Multi Meter auf das Messen von Gleichstrom = DC (Direct Current) = V ein, als Maßeinheit für die Anzeige verwende ich den Zehner-Bereich (20) da keine Spannung über 5V zu erwarten ist. Bei meinem Multimeter sieht das so aus:
Dann könnt ihr mit dem schwarzen Messfühler an einen GND Pin (zum Beispiel Pin 6) und mit dem roten Messfühler an einem beliebigen aktiven PIN (mit Ausnahme der anderen GND Pins natürlich) ~3.3V messen.