René Schimmelpfennig

Webdeveloper, Entertainer, Querdenker & Eichhörnchen-Züchter 🐿️

Aus-Schalter für den RetroPie

Ich nutze oft meinen RetroPie. Was mich jedoch stört, dass man sich nach dem Spielen mühsam durch das Menü hangeln muss um ihn ordnungsgemäß runterzufahren zu können.

Man könnte einfach den Stecker ziehen denken viele. Das kann jedoch zur Folge haben, dass Daten auf der SD-Karte nicht oder fehlerhaft geschrieben werden.

Abhilfe ist schnell geschaffen: Der Raspberry Pie verfügt über 26 Pins mit denen er mit der Außenwelt kommunizieren kann. Hierüber kann eigene Hardware bzw. Sensoren angesteuert werden. Mittels einer einfachen Python API lassen sich die Zustände einfach abfragen.

Wir benötigen:

  • einen Taster
  • einen 10 KΩ Widerstand
  • drei Kabel
  • Lötzeug

Den Widerstand benötigen wir damit das Eingangssignal im Normalzustand (Taster ist nicht gedrückt) bei genau 0V liegt (= Pulldown Widerstand). Wird der Taster gedrückt, so liegen genau 3,3V am Eingang an.

Ich habe das Ganze bei mir so verkabelt:

raspberry-pie-3-shutdown-button_bb

Und genau das wollen wir nun mittels eines kleinen Skripts abfragen und auf die Betätigung des Tasters reagieren:

Wir hängen uns an ein Interrupt, der aktiviert wird, sobald am Port 14 eine Spannung anliegt (= Taster wurde gedrückt). Dies erspart uns den Zustand des Buttons fortlaufend in der Schleife abfragen zu müssen.

Beim Drücken des Schalters wird der Konsolen-Befehlt „sudo poweroff“ ausgeführt, welcher das Linux-System herunterfährt.

Nun muss das Skipt nur noch auf den RetroPie übertragen werden. Dazu behelfen wir uns Putty, einem SSH Client für Windows. Damit kann man sich auf einem Linux-PC einwählen. Ihr müsst den RetroPie mittels eines LAN Kabels an euren Router anschließen oder per WLAN in euer Netzt einbinden und die IP herausbekommen: Bei mir hat das in der Admin-Oberfläche meines Routers ganz gut geklappt. Dann Putty starten und die IP Adresse des RetroPie als „Host Name“ eintragen und auf die Schaltfläche „Open“ klicken.

Nun werdet ihr nach den Zugangsdaten gefragt, welche standardmäßig so lauten:

Benutzername: pi
Passwort: raspberry

Mit „mkdir python“ ein neues Verzeichnis anlegen. Mit „nano python/shutdown.py“ eine neue Datei erzeugen und den oben aufgeführten Inhalt rein kopieren. Mit STRG+O speichern und mit STRG+X den Editor beenden.

Nun muss das Skript nur noch immer beim Systemstart geladen werden. Das geht wie folgt: „sudo nano /etc/crontab“ aufrufen und dort ganz am Ende folgende Zeile einfügen:

@reboot pi python /home/pi/python/shutdown.py &

Den Inhalt mit STRG+O speichern und den Editor mittels STRG+X verlassen.

Nun noch den RetroPie mittels „sudo reboot“ Neustarten (dabei wird die Verbindung im Putty unterbrochen).

Nach dem Neustart sollte der RetroPie wieder wie gewohnt starten und ihr solltet auf dem Bildschirm die Emulator-Auswahl sehen. Wenn ihr nun den Schalter betätigt, so sollte das Bild verschwinden und euer Monitor melden, dass kein Signal mehr anliegt. Sobald nur noch die rote LED auf dem Raspberry leuchtet, wurde dieser ordentlich heruntergefahren und ihr könnt das Netzteil von der Stromversorgung trennen.

Ich habe in das Gehäuse meines RetroPie ein kleines Loch gebohrt um dort den Schalter zu befestigt. Es sieht etwas unschön aus da das Plastik an der Stelle leider zerkratzt wurde, aber es erfüllt seinen Zweck.

 

Weiter Beitrag

Zurück Beitrag

© 2018 René Schimmelpfennig

Thema von Anders Norén