Logo

XBMC++

mit Einschaltknopf und Abschaltautomatik

XBMC

OpenELEC mit XBMC Media Center

Eigenschaften

Primär für das Betrachten von Fotos habe ich auf einem Raspberry Pi Model B das XBMC Media Center auf Basis OpenELEC installiert. Da das Gerät im Wohnzimmer neben dem Fernseher platziert werden sollte, habe ich mir für dieses Projekt ein besonders wohnzimmertaugliches Gehäuse gegönnt: das „Short Crust“.

Shortcrust Case

Gehäuse „Short Crust“

Der Raspberry Pi verfügt bekanntlich nicht über einen Ein-/Ausschalter. Um zum Betrieb des Gerätes nicht immer den Stecker des Netzteils stecken zu müssen, wollte ich einen Einschaltknopf und eine Abschaltautomatik einbauen. Neben dem schicken Aussehen besteht ein weiterer Vorteil des gewählten Gehäuses darin, dass die Stromversorgung zum Raspberry Pi innerhalb des Gehäuses aufgetrennt werden kann, und dass es hinreichend Platz für eine kleine Zusatzplatine bietet, was meinen Plänen sehr entgegen kam.

Ein- und Ausschalten

Im „Short Crust“-Gehäuse wurde aus Designgründen der 5-Volt-Anschluss auf die Rückseite – neben die großen USB-Buchsen – verlegt. Von der dort eingebauten zusätzlichen Mikro-USB-Buchse führt im Gehäuseboden eine zweiadrige Litze zu der auf der gegenüberliegenden Seite liegenden Mikro-USB-Buchse des Raspberry Pi. Dieses Kabel habe ich aufgetrennt und eine kleine Platine mit einem Relais dazwischen geschaltet. Die Verbindung zwischen der Mikro-USB-Buchse im Gehäuse und der am Raspberry Pi kann nun durch das Relais hergestellt und wieder getrennt werden.

Einschaltknopf und Abschaltautomatik

Zum Einschalten wird ein Knopf (Taster) betätigt, der das Relais anziehen lässt und so den Raspberry Pi mit Spannung versorgt. Das Relais bleibt durch eine Art „Selbsthaltung“ in diesem Zustand, bis diese – nach dem Shutdown – automatisch gelöst wird. Die Stromversorgung wird damit unterbrochen und das Gerät ist ausgeschaltet.

XBMC++ circuit

Schaltbild

Schaltung

Im ausgeschalteten Zustand ist der Kondensator entladen, der Transistor sperrt und das Relais ist stromlos. Die Verbindung zwischen dem Steckernetzteil an der Mikro-USB-Buchse im Gehäuse (im Bild links) und der Mikro-USB-Buchse im Raspberry Pi (rechts) ist unterbrochen.

Wird nun der Taster betätigt, wird der Kondensator schlagartig geladen und der Transistor erhält über den 47K-Widerstand Basisstrom. Er schaltet das Relais ein, das wiederum über den nun geschlossenen Relaiskontakt den Raspberry Pi mit Strom versorgt. Sobald der Raspberry Pi bootet, geht der TxD-Anschluss an der seriellen Schnittstelle (GPIO 14, Pin 8 am Pfostenstecker P1) auf 3,3 Volt. Über den 1K2-Widerstand hält er die Ladung des Kondensators aufrecht, so dass auch nach Loslassen des Tasters ein Basisstrom fließt und das Relais eingeschaltet bleibt. (Auf diese Weise ist hier die „Selbsthaltung“ realisiert.)

Nach einem Shutdown (und zwar bereits vor dem 10-maligen Blinken der grünen Status-LED) geht die Spannung an TxD wieder auf 0 Volt zurück und der Kondenstator beginnt, sich über den 47K-Widerstand zu entladen. Wenn der Basisstrom zu gering wird, sperrt der Transistor, das Relais fällt ab und das System ist ausgeschaltet. Die rote Power-LED erlischt so erst einige Sekunden, nachdem die grüne Status-LED aufgehört hat, zu blinken.

Bauelemente

Als Relais habe ich ein sehr kleines Printrelais gewählt, auf hinreichende Belastbarkeit der Kontakte (der Raspberry Pi zieht bis zu 800 mA) ist natürlich zu achten. Der Transistor ist ein Darlington-Transistor, der bereits bei sehr geringem Basisstrom das Relais schalten kann. Der Kondensator überbrückt das kurze Aussetzen der Spannung an TxD beim Booten und während des Shutdown. Die Diode parallel zum Relais ist die obligatorische Freilaufdiode, die Diode am TxD-Anschluss entkoppelt den GPIO-Pin von der 5-Volt-Spannung, die an dem Taster anliegt, wenn dieser geschlossen ist. Der 1M-Widerstand soll als Pull-Down-Widerstand die Basis des Transistors auf ein definiertes Potenzial legen, wenn der Taster und der TxD-Pin offen sind.

(Siehe auch: Mögliche Verbesserungen.)

Zusammenbau

Einschaltknopf

Einschaltknopf

Als Einschaltknopf habe ich einen Miniatur-Drucktaster gewählt und diesen in das abnehmbare Gehäuseteil eingeklebt, das die nicht benötigten Audio- und Videobuchsen verdeckt. Den Betätigungsstift des Tasters habe ich dazu passend gekürzt und durch eine 4 mm Bohrung gesteckt.

Kabelbaum

„Kabelbaum“

Die Schaltung habe ich auf einer Streifenrasterplatine aufgebaut, die in den hinteren Gehäuseteil über das Fach für die SD-Speicherkarte passt. Das Bild oben zeigt die Verkabelung: oben rechts über der Platine der zum Gehäuse gehörende Mikro-USB-Stecker für den Anschluss des Raspberry Pi, links der in das abnehmbare Gehäuseteil eingebaute Einschaltknopf und daneben die zum Gehäuse gehörende Mikro-USB-Buchse. Das kurze orange-farbene Kabel führt zum Pin 8 (TxD) des GPIO-Pfostensteckers auf dem Raspberry Pi.

Platine

fertig eingebaute Platine

Liste der Komponenten

Komponente Produkt Hersteller Händler
Raspberry Pi Raspberry Pi Model B Raspberry Pi exp-tech
Kühlkörper Raspberry Pi Kühler Set CSK Amazon
Gehäuse Short Crust Wilkinson Projects exp-tech
HDMI-Kabel, gewinkelt Delock 82951 Delock Amazon
Drucktaster Mini pushbutton T604 Zippy Technology Corp. Conrad
Transistor BC517 (Darlington) diverse Conrad
Relais FiC FRT5-DC05V Forward Industrial Co. Conrad
WLAN-Adapter Edimax EW-7811Un Edimax Amazon

Komponenten

Mögliche Verbesserungen

Die nachstehenden Verbesserungen halte ich für interessant und machbar, getestet habe ich sie aber nicht.

  • Mir wurde vorgeschlagen, einen Widerstand in Reihe mit dem Taster einzufügen, um zur Schonung seiner Kontakte den sehr hohen Strom zu begrenzen, der bei entladenem Kondensator kurzzeitig über sie fließt.

Known Issues

  • Der hier vorgeschlagene Mechanismus für die An- und Abschaltung der Stromversorgung funktioniert nicht, wenn Speichermedien über einen externen USB-Hub angeschossen werden sollen.
  • Die hier implementierte „Selbsthaltung“ des Relais beruht darauf, dass der (ungenutzte) TxD-Anschluss der seriellen Schnittstelle des Raspberry Pi auf 3,3 Volt liegt, wenn der Raspberry Pi „up“ ist. Ich habe das experimentell ermittelt (das haben im Übrigen auch andere schon herausgefunden). Ich weiß nicht, warum das so ist, und ich weiß nicht, ob das in späteren Releases so bleiben wird. Sollte sich das ändern, müsste eine Alternative gefunden werden.

© 2014 – Thomas Schochwww.retas.de

Valid HTML 4.01 Transitional