UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA INGENIERÍA CIVIL TELEMÁTICA INTRODUCCIÓN A LA INGENIERÍA TELEMÁTICA Big Bang Arcade Pi NOMBRE ROL MATÍAS MUÑOZ A. 201530005-4 MATÍAS SANHUEZA L. 201530008-9 PROFESOR: WERNER CREIXELL F. Índice Índice 2 Introducción 3 Objetivos 3 Recursos Utilizados 4 ¡Manos a la obra! 5 Anexo 1 11 Disclaimer 13 Bibliografía/Referencias 13 Introducción Ante la constante presión que vivimos el día a día en nuestra vida, los momentos de recreación se ven mermados debido a una alta exigencia en nuestras tareas. Está más que comprobado que jugar, además de ser parte importante de nuestro desarrollo cuando niños, es un método importante de distracción que nos saca de la rutina. Necesario en prácticamente todas las etapas de nuestra vida, no siempre sabemos el cómo y con qué realizarlo. Peor aún, en nuestra universidad no existen tantas instancias para poder hacerlo. Es por eso que en nuestro proyecto de Introducción a la Ingeniería Telemática implementamos un emulador de plataformas/consolas clásicas como lo es el Super Nintendo, Atari, Mame, Neo-Geo, SEGA, entre varios otros. Que utilizando como unidad de procesamiento la Raspberry Pi, es una solución potente a muy bajo costo. Nuestro proyecto está basado en el conocido emulador RetroPie. Dentro de este proyecto desarrollamos una pequeña utilidad donde mediante una página web podemos administrar el comportamiento de los distintos emuladores que se se estén ejecutando. Objetivos I. Integrar tecnologías (software y hardware) existentes para la entretención de la comunidad a bajo costo, sin tener un conocimiento profundo en programación ni electrónica. II. Aprender: A. Configuración de la Raspberry-Pi. B. Manejo de comandos básicos en linux. Como: 1. Instalación y/o remoción de paquetes (sudo apt-get install y/o purge). 2. Definición de permisos de usuarios sobre ciertas carpetas. 3. Programar la ejecución de tareas en algún momento del sistema (modificación del crontab). 4. Mover, copiar/pegar, eliminar archivos, carpetas. (mv, cp, rm, cp -r, rm -r). C. Utilización de Python y algunas de sus librerías incluidas para crear una forma de administración vía web para algunos procesos Linux y las plataformas del emulador de juegos. Recursos Utilizados Hardware: • Raspberry Pi v1 Modelo B • Tarjeta SD de preferencia de 8gb (clase 10) • Adaptador de corriente para la RPi • Cable de Video componente o HDMI para la conexión hacia tu monitor. (Si tu monitor es vga puedes emplear un conversor HDMI-VGA) • Joystick USB • Monitor • Teclado (para configurar la RPi) Adicional: • Sistema de audio • Tarjeta Wi-Fi USB • Cable Ethernet Software: • Imagen de disco. Descargable desde http://blog.petrockblock.com/retropie/retropie-downloads/ Este será el sistema operativo que correrá nuestra máquina ⚠ Importante: Debes descargar la imagen correspondiente para el modelo de tu Raspberry Pi ⚠ En este proyecto utilizamos la RPi 1 • Software para quemar la imagen de disco en la tarjeta SD: Windows: Win32DiskImager http://sourceforge.net/projects/win32diskimager/ Mac OS X: http://www.tweaking4all.com/hardware/raspberry-pi/macosx-apple-pi-baker/ • Cliente FTP. Para poder “instalar” nuestros juegos. Windows/Mac OS X: FileZilla https://filezilla-project.org/download.php • PuTTY. Cliente SSH para Windows. Nos permite administrar la Raspberry sin teclado ℹ En Sistemas Operativos UNIX (como Linux, Mac OS X) no es necesario instalar un cliente SSH. Generalmente lo traen incluido como servicio (basta con usar el terminal de sistema). • Script para administrar los emuladores de SNES, NES y Atari vía web. Puede ser descargado desde https://github.com/matisanh/retropie-administrator ¡Manos a la obra! I. Lo primero que hay que hacer es instalarle el sistema operativo a la RPi. Para esto, hay dos formas. 1. La primera y más simple es descargar una imagen de disco desde la página del desarrollador de RetroPie. Como lo mencionábamos anteriormente, es sumamente importante descargar la versión correspondiente a tu Raspberry. Una vez descargada la imagen, procedemos a quemarla en nuestra tarjeta SD con los software sugeridos. Windows: Utilizaremos el Software Win32 Disk Imager. Que puede ser descargado desde la página de su desarrollador. Luego de su instalación debemos ejecutar esta aplicación con permisos de Administrador. Posteriormente veremos la ventana que aparece en la Imagen 1 y en el ícono de la carpeta azul seleccionamos la ubicación de la imagen de disco. Seleccionamos la letra correspondiente a la tarjeta SD. ¡¡¡¡CUIDADO!!!! Asegúrate que la letra seleccionada es efectivamente la de tu tarjeta SD, pues si seleccionas la incorrecta borrarás toda la información contenida en esa unidad. El siguiente paso es hacer click en Write y esperar hasta que termine el proceso. Puede tardar varios segundos. Imagen 1.Ventana Principal. http://elinux.org/ Una vez terminado el proceso con Win32 Disk Imager, expulsamos de forma segura la tarjeta SD y la insertamos en nuestra Raspberry Pi. Es todo en Windows. Mac OS X: Utilizaremos el Software ApplePi-Baker. Que puede ser descargado desde la página de su desarrollador. Al ejecutar la aplicación veremos una ventana como la de la Imagen 2, en esa ventana seleccionaremos nuestra tarjeta SD y seleccionaremos la ubicación de la imagen de disco que contiene la estructura de RetroPie. Imagen 2. Ventana principal ApplePi-Baker. Después de seleccionar la imagen de disco, se te solicitará tu contraseña para que se ejecute el proceso. Debes esperar hasta que finalice y expulsar de forma segura la tarjeta SD. Se inserta en la Raspberry Pi y hasta aquí el proceso con Mac OS X. Linux: Si usas Ubuntu, y no te gusta usar el terminal, te puede servir utilizar ImageWriter (Imagen 3). El proceso es muy intuitivo al igual que en OS X y Windows. Obviamente, si es de tu preferencia, puedes utilizar el Terminal. Te advertimos desde ya, que usar el comando dd puede resultar muy perjudicial si no sabes lo que haces. Te recomendamos leer esta documentación (en inglés) que te puede ayudar a quemar una imagen en Linux. Imagen 3. ImageWriter. https://www.raspberrypi.org/ Posteriormente, cualquiera sea la forma de quemar la imagen de disco en la SD, debes introducirla en tu Raspberry Pi, encenderla y esperar, pues automáticamente se instalará toda la arquitectura de RetroPie. 2. La segunda forma en la que puedes instalar RetroPie es mediante un Script que descarga e instala todos los paquetes necesarios. Necesitas tener Raspbian y tener una conexión a internet configurada en la Raspberry. Estos son los pasos a seguir: Primero necesitas instalar 2 paquetes con: 1| sudo apt-get update 2| sudo apt-get install -y git dialog Y ahora puedes descargar la última versión del instalador de RetroPie con los siguientes comandos: 1| cd 2| git clone git://github.com/petrockblog/RetroPie-Setup.git Para ejecutar el Script de instalación debes escribir en tu terminal las siguientes lineas: 1| cd RetroPie-Setup 2| chmod +x retropie_setup.sh 3| sudo ./retropie_setup.sh Tal como se ve en la Imagen 4, hay 2 opciones. Imagen 4. Pantalla de bienvenida. http://blog.petrockblock.com/ La primera opción permite una instalación y compilación de algunos de los paquetes de una forma más rápida que la segunda, pero la desventaja es que es probable que no se instale la última versión del emulador. Te recomendamos esta opción si eres impaciente. La segunda opción instala todas y últimas dependencias del emulador. Compilar todo puede tardar varias horas pero vale la pena para tener las últimas versiones del programa. Si seleccionas esta opción te aparecerá un pantalla como la de la Imagen 5. Imagen 5. Opciones para instalar. http://blog.petrockblock.com/ La opción seleccionada por defecto instala todos los paquetes del emulador. II. Luego de instalar el Sistema Operativo de nuestro emulador de juegos en nuestra Raspberry Pi, la encendemos y dejamos que inicie normalmente. Una vez que cargue RetroPie, se nos solicitará configurar los controles. Solo hay que seguir las instrucciones que nos entreguen. ¡Hasta este paso estás casi listo para jugar! III. Para jugar, lógicamente debes tener juegos. El cómo y qué hacer para tener tus juegos en el emulador te lo contamos a continuación. Lo primero es conseguir algunos juegos (recuerda que Google es tu mejor amigo) para tu plataforma favorita (lo que más hay en la web son juegos de NES, SNES, MAME). Estos archivos son conocidos también como ROMs ⚠ Debes saber que descargar ciertos juegos desde internet es ilegal en gran parte del mundo, por lo tanto, sé cuidadoso con lo que descargues. Una vez que tienes los ROMs para jugar, los debes pasar a tu Raspberry Pi. Para que el proceso sea más simple crearemos un servidor FTP en nuestra Raspberry Pi con las siguientes lineas: 1| sudo apt-get install vsftpd Si bien ya con esa configuración puedes acceder a la RPi mediante FTP, sugerimos crear un usuario cuyo home sea una especie de acceso directo a la carpeta donde están todos los emuladores: 1| sudo useradd retro #Crea el user retro 2| sudo passwd retro #Creamos una contraseña para el user retro 3| chroot_local_user=YES #Comenzamos a configurar el home del user retro 4| sudo usermod --home /home/pi/RetroPie/roms retro 5| sudo service vsftpd restart #Reiniciamos el servicio para que #los cambios sean efectivos Ahora lo que resta es establecer la conexión vía FTP a la RPi usando las credenciales creadas y subir los ROMs. Como lo mencionamos en la Página 4 (recursos utilizados), usamos un cliente FTP para conectarnos a la RPi con los siguientes datos: Servidor: [DIRECCIÓN IP DE LA RASPBERRY PI] Nombre de usuario: retro Contraseña: play Una vez ingreses al sistema verás una serie de carpetas como la de la Imagen 6. Imagen 6(referencial). Estructura de carpetas RetroPie. Es en una de esas carpetas —que representa cada una plataforma/carpeta/sistema de juego diferente— donde debes dejar tu ROM(generalmente en formato zip). ¡Ahora solo debes reiniciar la Raspberry Pi y ver los nuevos juegos cargados en el sistema! One More Thing… Ya que suponemos que no tendrás todo el tiempo el teclado conectado a la RPi, y tampoco querrás desconectarla de la energía solo para salir del emulador o recargar juegos nuevos, desarrollamos un script que te permite ingresar a una página web desde tu dispositivo móvil o computador y desde ahí ejecutar varios procesos que harán que la experiencia de jugar un juego emulado en la Raspberry Pi sea muy grata. (Imagen 7). Imagen 7. Página web de administración. Formato móvil. Para implementar este servicio debes descargarlo y agregarlo al crontab para que se ejecute al iniciar el sistema con las siguientes lineas: 1| cd 2| git clone git://github.com/matisanh/retropie-administrator 3| mv retropie-administrator/* RetroPie 4| cd 5| mkdir logs 6| sudo crontab -e Debes agregar la siguiente linea al final del archivo: @reboot sh /home/pi/RetroPie/launcher.sh >/home/pi/logs/cronlog 2>&1 Guardas los cambios y reinicias. Para acceder a la página debes ingresar con tu navegador a la IP de la Raspberry Pi especificando el puerto (8080) y verás que ya se está ejecutando el servidor web. Ej: http://ip-rpi:8080/ ℹ Nota: El puerto puede ser cambiado en el archivo main.py ℹ En esta versión del script, solo es posible cerrar RetroPie(volver al terminal), apagar, reiniciar y cerrar emuladores como SNES, NES y Atari. Pretendemos en un futuro que esta página pueda cerrar cualquier emulador que esté corriendo, además de poder subir los ROMs a través de esta misma vía y así no tener que usar el protocolo ftp para la gestión de los archivos de juegos.
Description: