Mausberry Switch Power An Aus (DE)

lackyluuk edited this page Dec 2, 2016 · 2 revisions

#Einführung Mit Mausberry-Circuits kannst du deine recalbox per Knopfdruck ein- und ausschalten. Diese Art von Schaltkreis kann benutzt werden um z.B. den Original-Ein-Aus-Schalter, Reset-Taster sowie die Power-LED eines NES (Nintendo Entertainment System) zu benutzen. Natürlich können auch andere Taster / Schalter dazu benutzt werden.

Eine Alternative zu den Mausberry-Circuits bietet der folgende Wiki-Artikel: https://github.com/recalbox/recalbox-os/wiki/Start---Stop-Button-zu-deiner-recalbox-hinzuf%C3%BCgen-%28DE%29

Bemerkung

Dieser Artikel bezieht sich auf recalbox Version 4 auf einem Raspberry Pi 2 und 3.

ACHTUNG!

  • Wenn du eine neuere Version als V4.0.0-beta3 verwendest, so folge dem Tutorial V4B3.

  • Wenn du eine ältere Version als V4.0.0-beta3 verwendest, so folge dem Tutorial V4B2.

#Tutorial v4B3 ##Verbindungen und Verdrahtung

Benutze für die Verbindungen zum Raspberry Pi die GPIOs 23 und 24 (Pins 16 und 18). Der Mausberry-Circuit benutzt die GPIO folgendermassen:

  • GPIO 23 = OUT
  • GPIO 24 = IN

Im Anhang findest du eine Abbildung mit der Pinbelegung vom Raspberry Pi.

##Vorgehen ###Voraussetzungen

1. Dein Raspberry Pi muss mit dem Internet verbunden sein.

2. Du musst die IP-Adresse von deinem Raspberry Pi kennen. Diese kannst du entweder über deinen Router oder über das recalbox Menü herausfinden. Die IP-Adresse sieht wie folgt aus, einfach mit anderen Zahlen: 192.168.0.49

Das Ganze kannst du auch hier nachlesen: [IP-Adresse finden] (https://github.com/recalbox/recalbox-os/wiki/Erhalte-die-IP-deiner-recalbox-in-deinem-Netzwerk-%28DE%29)

###Schritte Du musst die recalbox.conf bearbeiten. Dies kannst du z.B. über das recabox Web-Interface machen.

1. Öffne das recalbox Web-Interface: http://IP-Adresse-Deiner-recalbox

2. Klicke auf «Lesen und editieren der recalbox Konfigurations-Datei

3. Entferne das folgende Kommentierzeichen in Sektion: A - System Options

# ------------ A - System Options ----------- #  
#    Uncomment the system.power.switch you use  
system.power.switch=MAUSBERRY           # http://mausberry-circuits.myshopify.com/pages/setup  

4. Speichern

Tutorial V4B2

##Verbindungen und Verdrahtung

Benutze für die Verbindungen zum Raspberry Pi die GPIOs 20 und 21. Der Mausberry-Circuit benutzt die GPIO folgendermassen:

  • GPIO 20 = OUT
  • GPIO 21 = IN

Im Anhang findest du eine Abbildung mit der Pinbelegung vom Raspberry Pi.

##Vorgehen ###Voraussetzungen

1. Dein Raspberry Pi muss mit dem Internet verbunden sein.

2. Du musst die IP-Adresse von deinem Raspberry Pi kennen. Diese kannst du entweder über deinen Router oder über das recalbox Menü herausfinden. Die IP-Adresse sieht wie folgt aus, einfach mit anderen Zahlen: 192.168.0.49

Das Ganze kannst du auch hier nachlesen: [IP-Adresse finden] (https://github.com/recalbox/recalbox-os/wiki/Erhalte-die-IP-deiner-recalbox-in-deinem-Netzwerk-%28DE%29)

3. Du musst mittels SSH Zugriff auf deine recalbox haben. In Windows z.B. kannst du eine der folgenden Anwendungen dazu benutzen:

##Schritte

1. Logge dich über SSH bei deiner recalbox an

2. Navigiere zum System-Verzeichnix: cd /recalbox/share/system/

3. Stelle sicher, dass die System-Partition beschreibbar ist mit: mount -o remount rw, /

4. Erzeuge eine setup.sh-Datei: nano setup.sh

5. Kopiere den Inhalt der setup.sh-Datei aus dem Anhang in deine soeben erzeugte setup.sh-Datei

6. Speichere die Datei ab mit Ctrl + X

7. Erzeuge eine S99maus-Datei: nano S99maus

8. Kopiere den Inhalt der S99maus-Datei aus dem Anhang in deine soeben erzeugte S99maus-Datei

9. Speichere die Datei ab mit Ctrl + X

10. Führe das setup.sh-Script aus: bash setup.sh

11. Finde das neu erzeugte Script: nano /recalbox/scripts/mausberry.sh

12. Kopiere die S99maus-Datei in das Verzeichnis /etc/init.d/: cp /recalbox/share/system/S99maus /etc/init.d/

13. Teile dem Script die nötigen Ausführungsrechte hinzu: chmod 775 /etc/init.d/S99maus

14. Führe das Script aus: /etc/init.d/S99maus start

15. Du wirst eine Fehlermeldung zu sehen bekommen, aber der Mausberry-Circuit wird funktionieren: bad -o argument ‘command'

#Weiteres ##Verbindungen und Verdrahtung

Script: setup.sh

echo '#!/bin/bash

#this is the GPIO pin connected to the lead on switch labeled OUT
GPIOpin1=20

#this is the GPIO pin connected to the lead on switch labeled IN
GPIOpin2=21

echo "$GPIOpin1" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
echo "$GPIOpin2" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio$GPIOpin2/direction
echo "1" > /sys/class/gpio/gpio$GPIOpin2/value
while [ 1 = 1 ]; do
power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
if [ $power = 0 ]; then
sleep 1
else
poweroff
fi
done' > /recalbox/scripts/mausberry.sh
chmod 777 /recalbox/scripts/mausberry.sh

Script: S99maus

#!/bin/bash
### BEGIN INIT INFO
# Provides: mausberry.sh
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: switch mausberry init script.
# Description: Starts and stops SwitchDaemon service.
### END INIT INFO

#VAR
RUN="/recalbox/scripts/mausberry.sh"
BTD_PID=$(ps -eo pid,command | grep "/bin/bash $RUN" | grep -v grep | awk '{print $1}')

serviceStatus() {
   if [ ! -z "$BTD_PID" ]; then
      echo -e '33[0mservice mausberry.sh ['$BTD_PID'] [33[33;32m OK 33[0m]'
   else
      echo -e '33[0mservice mausberry.sh [33[33;31m KO 33[0m]'
   fi
}

# Carry out specific functions when asked to by the system
case "$1" in
   start)
      echo "Starting script $RUN ..."
      if [ -z "$BTD_PID" ]; then
         nice -n 19 $RUN&

         if [ $? -eq 0 ]; then
            echo -e "33[0mscript $RUN [33[33;32m STARTED 33[0m]"
         fi
      else
         echo "script $RUN already started ['$BTD_PID']!"
      fi
      #serviceStatus
   ;;
   stop)
      echo "Stopping script $RUN ..."
      if [ ! -z "$BTD_PID" ]; then
         kill $BTD_PID

         if [ $? -eq 0 ]; then
            echo -e "33[0mscript $RUN [33[33;31m STOPPED 33[0m]"
         fi
      fi
      #serviceStatus
   ;;
   status)
      serviceStatus
   ;;
   *)
      echo "Usage: /etc/init.d/S99maus {start | stop | status}"
      exit 1
   ;;
esac

exit 0
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.