11 gennaio 2018

RetroPie Box con XBOX

Era da un po' di tempo che pensavo di riutilizzarla per farci qualcosa ed alla fine l'idea che ha prevalso è stata quella di farci una bella RetroPie box per poter tornare a divertirmi con gli storici giochi da sala giochi, Sega Master System, Super Nintendo, Play Station ed altri, che hanno fatto parte della mia infanzia.

Ho iniziato con lo smontare la XBOX in modo da tenere solamente cinque componenti fondamentali:
  1. Il case di plastica nella sua parte superiore e inferiore e da quella inferiore ho rimosso tutto il laminato che la circondava. 
  2. Le 6 viti lunghe utilizzate per la chiusura del case. 
  3. La parte frontale dello sportello del lettore CD. 
  4. Il pannello frontale che contiene il pulsante di accensione/spegnimento, quello dell’apertura dello sportello del lettore CD ed i due LED di notifica. 
  5. Il connettore della 220V rimosso dalla scheda dell’alimentazione interna (questo per intenderci) 

Componenti che ho utilizzato:
  • RaspberryPi 3 
  • MicroSD 32 GB (classe 10) 
  • 4 cavi USB Maschio/Maschio (eBay
  • 4 connettori USB Femmina/Femmina (eBay
  • 1 Cavo HDMI Maschio/Femmina (eBay
  • 1 Cavo RJ45 Maschio/Femmina (eBay
  • 1 Alimentatore 220V → 5V 2A 
  • Saldatore, un po’ di filo elettrico per bassa tensione 
  • Colla a caldo

Il montaggio dei componenti è davvero semplice, i quattro connettori USB vanno sistemati dove prima c’erano le rispettive quattro porte dei game pad, il connettore RJ45 dove c’era quello della board originale della XBOX, quello HDMI dove prima c’era il connettore TV out ed infine quello per l’alimentazione sostanzialmente torna al suo posto originario.



La parte che forse ha richiesto un po’ più di tempo per la messa a punto è la scheda logica che ho leggermente modificato per avere i due led bicolore sempre accesi sul colore verde quando la RetroPie box sarà accesa ed il tasto di alimentazione che accenderà e spegnerà il RaspberryPi.

Ecco lo schema:
Con un filo ho pontato i due piedini centrali (negativo) dei due LED e con un altro filo i due esterni (positivo) che accendono il colore verde.
Dai due piedini esterni del pulsante di accensione ho saldato due fili che poi andranno collegati alla porta GPIO, pin 5 (+) e pin 6 (-) del RaspberryPi.
Ora, per poter far accendere e spegnere il RaspberryPi bisogna creare un piccolo script in Python che controlli gli eventi sui pin occupati dal pulsante, ma prima ho dovuto installare i pacchetti necessari:

$ sudo apt-get install python-dev python-dev gcc python-pip

Dopodiché va installato il pacchetto RPi.GPIO che è un modulo Python per il controllo della porta GPIO:

$ wget https://pypi.python.org/packages/e2/58/6e1b775606da6439fa3fd1550e7f714ac62aa75e162eed29dbec684ecb3e/RPi.GPIO-0.6.3.tar.gz
$ tar xvfz RPi.GPIO-0.6.3.tar.gz
$ cd  RPi.GPIO-0.6.3
$ sudo python3 setup.py install

Dopo aver installato il modulo ho creato lo script:

#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import subprocess

# we will use the pin numbering to match the pins on the Pi, instead of the 
# GPIO pin outs (makes it easier to keep track of things)
GPIO.setmode(GPIO.BOARD)  

# use the same pin that is used for the reset button (one button to rule them all!)
GPIO.setup(5, GPIO.IN, pull_up_down = GPIO.PUD_UP)  

oldButtonState1 = True

while True:
    #grab the current button state
    buttonState1 = GPIO.input(5)

    # check to see if button has been pushed
    if buttonState1 != oldButtonState1 and buttonState1 == False:
      subprocess.call("shutdown -h now", shell=True, 
        stdout=subprocess.PIPE, stderr=subprocess.PIPE)
      oldButtonState1 = buttonState1

    time.sleep(.1)

L'ho chiamato shutdown.py e copiato in /usr/local/bin.

Infine, per farlo avviare automaticamente al boot l'ho inserito in rc.local;

$ sudo nano /etc/rc.local

ed ho inserito la riga:

sudo python /usr/local/bin/shutdown.py &

Questo è il risultato dei due LED accesi sul verde quando la RetroPie box è accesa:


Per finire non ho fatto altro che abilitare il server FTP su RetroPie in modo da poter caricare le ROM e gli eventuali BIOS tranquillamente da remoto, oppure, nella quarta porta USB posso inserire qualsiasi dispositivo UMS compatibile dove ho precedentemente copiato i files necessari.

- Fonte per l'idea del pulsante On/Off


Nessun commento:

Posta un commento