Raspberry-Anbindung

 

Die Steuerung der Licht- und Soundfunktionen soll ein Raspberry übernehmen. Der Raspberry ist standardmäßig mit einer 40-poligen Schnittstelle (GPIO) ausgestattet, die im Rahmen der eigenen Projekte relativ freizügig genutzt werden kann. Einige dieser 40 Pins sind fest belegt (siehe Bild), für die anderen kann im Rahmen der Python-Programmierung festgelegt werden welche Funktion sie haben sollen. Ich will hier nicht auf die Belegungsdetails eingehen und verweise nur auf die umfangreichen Informationen hierzu im Internet. An den Stellen, an denen ich zu einer konkreten Nutzung einzelner Pin im Rahmen meines Projekets komme, werde ich diese dann kurz erläutern.

 

Nur soviel vorab zur Technik: In dem Auszug aus einem Python-Script kann man erkennen, wie man die GPIO-Pin im Programm nutzen kann. Als logisch "True" wird eine Spannung von 3,3 V und als logisch "False" eine Spannung von 0 V an dem entsprechenden Pin ausgegeben. Mit den selben Spannungswerten kann man einen Eingang beschalten, um ein Ereignis (z. B. Zustand einer Lichtschranke) als "True" oder "False" zu signalisieren. Ganz wichtig: ein GPIO-Pin darf nur mit wenigen mA belastet werden, so dass man keine größeren Verbraucher direkt an einem Pin betreiben kann.

 

In meinem MOBA-Projekt werde ich über diese Schnittstelle Servomotoren für die Lokschuppentore steuern, einen Schrittmotor für die Drehscheibe betreiben sowie diverse Beleuchtungsfunktionen realisieren. Außerdem werden Stellungsmeldungen von Schalt- und Kontaktgleisen sowie von Lichtschranken ausgewertet. Um die einzelnen Pins nicht zu überlasten und um eine größere Betriebssicherheit zu gewährleisten setzte ich auf dem Raspberry ein Piface Digital 2 Erweiterungsboard ein, das ich bereits kurz auf der Seite „Raspberry“ beschrieben habe. Hier noch einmal die Anschlüsse dieses Boards im Schema (Grafik ist aus der Beschreibung http://www.farnell.com/datasheets/1881551.pdf entnommen). Unten in der Grafik ist die 40-polige Buchsenleiste zu erkennen über die das Board mit der GPIO-Stiftleiste verbunden wird.

 

Wichtig: Die Schaltlogik ist hier im Gegensatz zum eigentlichen GPIO-Port eine andere. Ein Eingang gilt als gesetzt, wenn der entsprechende Pin auf das Masse-Potenzial (GND der Versorgungsspannung des Raspberry) gelegt wird. Ein unbelegter Eingang oder eine Spannung an diesem Pin wird als ungesetzter Eingang bewertet. Wird ein Ausgang vom Raspberry eingeschaltet, wird der entsprechende Pin ebenfalls auf GND-Potenzial gezogen, so dass man z. B. zwischen dem 5 V-Anschluss und diesem Pin einen Verbraucher unter Spannung setzen kann.

 

Da unter Umständen die Stromaufnahme eines so angeschlossenen Verbrauchers die Belastungsgrenze des Raspberry übersteigt (Gefahr der Zerstörung des Raspberry) oder der Verbraucher eine andere Versorgungsspannung als die 5 V des Raspberry benötigt, steuern die Ausgänge 0 und 1 zusätzlich zwei auf dem Board verbaute Umschaltrelais an. Über diese Relais werde ich die meisten meiner Beleuchtungselemente steuern. Der Vorteil ist, dass ich mir so nicht bei jeder weiteren LED, die irgendwo auf der Anlage ihren Platz finden soll (auch wenn sie nur wenige Milliampere Stromaufnahme hat), Gedanken über die Belastungsgrenze des benutzten Raspberry-Ausganges machen muss.

 

Einen Nachteil handel ich mir allerdings durch die Nutzung dieses Erweiterungsboards ein. Es belegt die gesamte GPIO-Stiftleiste, so dass ich für erweiterte Funktionen (z. B. Schrittmotor- oder Servomotoransteuerungen, Ansteuerung OLED-Displays, Weichensteuerung usw.) nicht auf die entsprechenden Pins zugreifen kann. Daher kommen hier zusätzliche Raspberries zum Einsatz, die dann jeweils in bestimmten Teilbereichen der Anlagensteuerung Anwendung finden. Aus Kosten- und Platzgründen bieten sich hier Modelle vom Typ Raspberry Zero oder neuerdings auch vom Typ Pico an.