Blog

  • El Metacrilato en el Panel de Control

    En el episodio de hoy voy a hablaros sobre si es interesante o no poner metacrilato para cubrir el panel de control en vuestras máquinas arcade. Analizaremos las ventajas e inconvenientes de usar este material ademas de comentar las técnicas mas usadas para ponerlo.

    Contactar Podcast

    Puedes acceder a mas contenido adicional en mi blog y si quieres ponerte en contacto conmigo lo puedes hacer de múltiples formas:
    – Mandando un email a: [email protected]
    – @tecnoarcade en Twitter

    Contribuir Podcast

    Si te ha gustado este podcast y te apetece contribuir, lo puedes hacer de varias formas:
    – Mediante una pequeña donación usando Paypal
    – Dejando una valoración positiva en iTunes

  • Impresión 3D en el Mundo Arcade

    En el episodio de hoy voy a hablaros de las posibilidades que tenemos con una impresora 3D en el mundo arcade.

    Hace unas semanas me embarqué en un nuevo proyecto para la realización en 3D de una réplica de la archiconocida mini consola de Nintendo, la famosa MINI NES en la que en su interior tiene metida una Rabsperry Pi con una distribución con multiples emuladores y juegos que se puede conectar al TV del salón. Una solución fantástica para las personas que por problemas de espacio no puedan tener una maquina clásica pero quieren disfrutar de los juegos clásicos arcade o consolas antiguas.

    Donde encontrar proyectos:

    Métodos de contacto de David Aragón

    Instagram: @davidaragongaliana
    Youtube Personal:
    – Telegram: @DavidAragonG

    Contactar Podcast

    Puedes acceder a mas contenido adicional en mi blog y si quieres ponerte en contacto conmigo lo puedes hacer de múltiples formas:
    – Mandando un email a: [email protected]
    – @tecnoarcade en Twitter

    Contribuir Podcast

    Si te ha gustado este podcast y te apetece contribuir, lo puedes hacer de varias formas:
    – Mediante una pequeña donación usando Paypal
    – Dejando una valoración positiva en iTunes

  • Apagado y reinicio desde botón en Rabsperry Pi

    Una de las virtudes que tiene la Rabsperry Pi es que su encendido y apagado se hace enchufando o desenchufando su cable de corriente. Esto es perfecto para una máquina arcade ya que con un único interruptor de corriente general conectado a una regleta en su interior puedes arrancar todo el sistema con un simple botón.

    En otro tipo de proyectos es mas elegante el poder hacer reinicio o apagado la Rabsperry Pi desde un botón o interruptor. Por ejemplo un proyecto que está muy de moda es hacer clones o réplicas de consolas retro con una impresora 3D albergando en su interior una Rabsperry Pi. En este tipo de proyectos se hace necesario el poder utilizar los botones externos para hacer estas acciones.

    Lo primero que necesitamos es comprar los botones. Os recomiendo botones de servicio o también llamados «monetarios», os recomiendo que sean los mas delgados y pequeños posibles.

    Aquí tenéis un ejemplo, además son muy económicos:

    También vais a necesitar para conectar estos botones a la Rabsperry Pi del siguiente cableado «female-male jumper wire» (2 cables por botón):

    El jumper hembra irá a la GPIO como voy a detallar mas abajo y el conector macho debe ir conectado a al botón. Para ello lo puedes hacer de varias formas, soldando el cable directamente a la patilla del botón o crimpando el cable con un conector Faston usando una crimpadora.

    Por lo tanto deben quedar los cables conectados a cada botón similar a la siguiente imagen

    Una vez tengamos nuestros botones con sus correspondientes cables toca conectarlos al puerto GPIO. En la imagen de abajo os pongo como está distribuido el puerto GPIO en una Rabsperry Pi 2/3.

    Uno de los cables del botón tiene que ir conectado a tierra y el otro cable a otro puerto cualquiera (que no sea ni tierra ni tenga algún voltaje 5V o 3V).

    Por ejemplo podéis conectar uno de los botones al pin número 13 y 14 y el otro botón al pin 33 y 34. MUY IMPORTANTE que recordéis el número de estos pines ya que los tendremos que poner en el script que os voy a detallar mas abajo.

    Una vez tengamos los botones conectados tenemos que conectarnos por ssh a la rabsperry pi y ejecutar los siguientes comandos:

    Primero instalamos Python que será necesario para ejecutar el script de apagado y reinicio

    sudo apt-get install update
    sudo apt-get install python-dev
    sudo apt-get install python3-dev
    sudo apt-get install gcc
    sudo apt-get install python-pip

    Luego nos descargamos el módulo de Python para controlar el GPIO

    wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz

    Lo descomprimimos

    sudo tar -zxvf RPi.GPIO-0.5.11.tar.gz
    

    Nos vamos al directorio creado

    cd RPi.GPIO-0.5.11
    

    Instalamos el módulo

    sudo python setup.py install
    sudo python3 setup.py install
    

    Nos creamos una carpeta donde guardaremos nuestros scripts. Va a ver un script para el reset y otro script para el apagado

    mkdir /home/pi/scripts
    

    Creamos el script de apagado con nuestro editor favorito

    sudo nano /home/pi/scripts/shutdown.py
    

    Y pegamos esto dentro del fichero. Fijaos en el numero del puerto GPIO «13» y la instrucción de apagar el sistema «shutdown – h now»

    #!/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(13, GPIO.IN, pull_up_down = GPIO.PUD_UP)  
    
    oldButtonState1 = True
    
    while True:
        #grab the current button state
        buttonState1 = GPIO.input(13)
    
        # 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)
    
    

    Nos creamos ahora el script de reiniciar la Pi.

    sudo nano /home/pi/scripts/reboot.py
    

    Y pegamos esto dentro del fichero. Fijaos que el puerto GPIO es el «33» y que la sentencia es la de reiniciar el sistema «shutdown – r now»

    #!/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(33, GPIO.IN, pull_up_down = GPIO.PUD_UP)  
    
    oldButtonState1 = True
    
    while True:
        #grab the current button state
        buttonState1 = GPIO.input(33)
    
        # check to see if button has been pushed
        if buttonState1 != oldButtonState1 and buttonState1 == False:
          subprocess.call("shutdown -r now", shell=True, 
            stdout=subprocess.PIPE, stderr=subprocess.PIPE)
          oldButtonState1 = buttonState1
    
        time.sleep(.1)
    
    

    Ahora tenemos que reiniciar

    sudo reboot
    

    Para que nuestros script se ejecuten cuando arranque el sistema operativo tenemos que editar este fichero

    sudo nano /etc/rc.local
    

    Y añadir estas dos lineas al final del fichero (antes de la instrucción exit)

    sudo python /home/pi/scripts/shutdown.py &
    sudo python /home/pi/scripts/reboot.py &
    

    Reiniciamos y ya tenemos operativos nuestros 2 botones de power y reset

    sudo reboot
    
  • Las Artes. Entrevista Lord Hyriu

    En el episodio de hoy voy a hablaros sobre las artes para decorar vuestra máquina arcade.

    Este episodio es muy especial para mí ya que es la primera entrevista que hago en el podcast, la verdad es que ha sido toda una experiencia el preparar la entrevista como los medios digitales para llevarla a cabo. Espero que os guste.

    El objetivo de esta entrevista es doble, por un lado que nuestro invitado nos cuente y nos de consejos de como adaptar las artes a nuestra máquina arcade y por otra parte dar a conocer a nuestro invitado a los oyentes por si alguien está interesado en sus trabajos que son fantásticos.

    Página Web de Lord Hyriu: http://lordhiryuarcadearts.jimdo.com

    Contactar Podcast

    Puedes acceder a mas contenido adicional en mi blog y si quieres ponerte en contacto conmigo lo puedes hacer de múltiples formas:
    – Mandando un email a: [email protected]
    – @tecnoarcade en Twitter

    Contribuir Podcast

    Si te ha gustado este podcast y te apetece contribuir, lo puedes hacer de varias formas:
    – Mediante una pequeña donación usando Paypal
    – Dejando una valoración positiva en iTunes

  • Convertir de 7Zip a Zip ficheros recursivos

    Puede ocurrir que tengas una carpeta con infinidad de ficheros comprimidos en 7zip y tengas una aplicación que necesite que todos los ficheros estén en Zip, como por ejemplo multitud de emuladores de juegos, es una tarea muy tediosa tener que ir fichero a fichero descomprimiendo y comprimiendo en otro formato.

    En Windows, WinRar te convierte de forma masiva ficheros en diferentes formatos. En Linux se puede hacer con este pequeño script:

    Primero es necesario instalar estas dos aplicaciones.

    sudo apt-get install atool
    sudo apt-get install p7zip-full

    Luego habría que crearse este pequeño script en bash con formato .sh y darle permisos de ejecución. Mucho cuidado porque primero realiza una descompresión y compresión en Zip y luego borra todos los ficheros 7Zip originales. Si no quieres borrar los ficheros en 7 Zip sólo habría que quitar la última línea del script.

    #/bin/sh
    find . -iname '*.7z' -exec arepack -e --format=zip '{}' \; 
    find . -iname '*.7z' -exec rm '{}' \;

    El Script recorre de forma recursiva desde el directorio donde estas hacia abajo descomprimiendo y comprimiendo en Zip todos los ficheros que tengan extension .7Zip