Construya su propia mini SNES


En efecto una  mini SNES  se puede construir partiendo de una   Raspberry pi 2 o 3, el software de Recalbox y  si es posible con  un buen diseño de la caja que lo albergue. 

Gracias al trabajo desinteresado de AndreBougie, padre de familiar  con dos hijos con edad suficiente para interesarse en los videojuegos  este proyecto has sido posible.

Andre  tenía una  vieja  SNES  de los años 90  así que diseño una caja imitando la  Mini SNES para ejecutar Recalbox con un controlador de bluetooth para que sus hijos pudieran  disfrutar de los juegos con la tecnologia actual no teniendo  que lidiar con el inconveniente de los cables para los mandos  o mejores conexiones de vídeo y audio modernas  que funcionan  con los sistemas más actuales de la AV.

snes

 

Hardware Necesario

Si desea jugar con un SNES (o NES, Genesis, Game Boy, etcetera) juegos, necesitará RecalBox o un emulador similar OS para la Raspberry Pi. Asimismo por supuesto necesitara hardware  nada complejo de conseguir

Para construirse  su propia SNES  necesitara  los siguientes componentes para crear su propio recalbox:

  • Raspberry Pi 3  (o una Raspberry Pi 1 B o B+ o Raspberry Pi 2)
  • Una tarjeta microSD >= 16GB
  • Una fuente de alimentación micro USB de alta calidad | 2.5 AMP
  • Un cable HDMI
  • Un mando Sixaxis PS3, Dualshock 3, una copia de Shanwan o USB
  • Un adaptador Bluetooth de alta calidad
  • Una caja para Raspberry Pi  que imprimiremos con nuestra impresora 3D
  • Un teclado USB si no tienes un mando OOTB.

 

Software

Es hora de descargar e instalar recalboxOS.

Ir a https://archive.recalbox.com  para descargar la  ultima imagen de  recalbox.

Seleccionar la imagen de acuerdo  con su placa exacta (Raspberry Pi 3 , Raspberry Pi 1 B o B+ o Raspberry Pi 2)

 

Entonces use https://etcher.io/ para crear el fichero descargado del tipo img.xz en su  SD card:

  • Ir a etcher.io donde podemos descargar el software para cada sistema operativo
    pudiéndose e elegir aquí el sistema operativo que desea para Mac, linux o Windows
  • Una vez descargado el sw  instale en su equipo y  ejecutelo
  • Ahora seleccione la imagen de Recalbox que descargo anteriormente.
  • Seleccione la unidad de tarjeta sd donde desee crear la imagen
  • Luego haga clic en flash, y la imagen será transferido a su tarjeta SD

etcher.PNG

  • Una vez creada la imagen de Raspbian en la SD ,ya puede insertar la SD en su Raspberry Pi 3 en el adaptador de micro-sd , conectar un monitor por el hdmi , conectar un teclado y ratón en los  conectores USB, conectar la  con un cable ethernet  al router  conectividad a Internet y finalmente conectar la alimentación  para comprobar que la Raspberry arranca con la nueva imagen
  • Cuando la Raspberry  Pi 3 comienza a recibir energía el LED rojo marcado PWR se encenderá y el LED verde marcado OK o ACK en las versiones posteriores parpadeará en un patrón irregular para mostrar siempre que el Pi, seguidamente leera desde la tarjeta SD( tenga en cuenta que el BIOS para el RP3 esta almacenados en la tarjeta SD.
  • Al finalizar  ya tendrá  el recalbox en su Raspberry Pi
  • Si el arranque no tiene éxito,  no mostrará nada en la pantalla, por lo que si tiene problemas repita los pasos anteriores o pruebe con otra micro sd

 

Nota : Las ROMs(es decir volcados de memoria de los juegos )    a pesar  de tener bastantes años y no tener un valor comercial concreto , al estar sujetas a derechos de autor , no deberíamos publicar las  urls’s para su descarga , pero si se ha comprado con alguno  de estos juegos se supone podríamos hacer  uso de estas debido a los años transcurridos. Dada su gran popularidad estos volcados son  muy fácil  obtenerlos  con una sencilla búsqueda en Google  (por ejemplo emuparadise es una referencia) .

 

Configuración de mandos

Si tiene un mando PS3 con un dongle bluetooth, coja un cable micro usb, conecte el mando a recalbox y espere 10 segundos. Ahora puede desconectar el mando y presionar el botón HOME. !su mando está configurado!

Si tienes un mando USB de XBOX360, sólo enchúfelo  y ya estara listo

Si tiene un mando USB, conecta un  teclado USB, pulse ENTER en el frontal, selecciona «Configure Input» entry with S key, then select «Configure a controller» y pulsa la tecla S de nuevo. Sigue las instrucciones y mapee todas las opciones de la pantalla a cada botón de su mando. Los botones llevan el nombre de los mandos de Super Nintendo.

 

Instrucciones para construir la caja

 

Una vez que tenga Recalbox funcionando en  una Raspebrry Pi , es hora de dar forma a la electrónica con una caja que este a la altura  como la de  AndrewBougie,

Dada la dificultad obtener una carcasa a media , lo mas sencillo es imprimir  en 3D la caja que contendrá la Raspberry Pi (otra vía  si no se dispone de impresora 3D es usar una caja de platico  y practicar los agujeros correspondientes para el modelo de Raspberruy Pi  que vayamos a usar)

Un diseño  que imita muy bien a  una  NES es el de AndreBougie,  que podemos obtener de thinginverse  de   https://www.thingiverse.com/thing:1496674el cual esta adaptado perfectamente a la RPi

Si imprime este diseño , solo el autor nos pide    que compartamos  en Thingiverse y etiqueta @andrewbougie en Twitter y Instagram.

 

Para descargar el diseño   vaya pues a   https://www.thingiverse.com/thing:1496674

Las instrucciones de impresión son cortas, pero la impresión no puede ser más fácil si no tiene la configuración de apoyo hecha en.

  • La impresión superior [1] e inferior [1] con soportes habilitados.
  • Conexiones de controlador de impresión [2]
  • Botones de power/reset Print [2]
  • Botón de expulsión de impresión [1]

Los botones están separados para que pueda pintar o imprimir en un color diferente y luego pegarlos a la caja principal.

Puede usar  pegamento gorila súper adhesivo en gel para ABS y PLA.

caja_raspberry.PNG
La placa de la RPi  es  sostenida en lugar por 4 de los tornillos de arriba. Las dos mitades se sujetan con dos tornillos hacia la parte delantera de la caja. Basado en la utilización de este caso, esto debe ser suficiente para la mayoría de las personas.

Usted puede ver hay algún espacio vacío en el frente de la caja para la electrónica adicional en caso de que desee obtener más elegante con el diseño y agregar un led  en la parte delantera o añadir otros  (muy) pequeños para más funcionalidad.

 

 

 

Actualización de licencia
El autor ha recibido muchas consultas sobre el uso de este diseño comercialmente. Si quiere imprimir esta y venderla a otras  personas, siga adelante! La licencia es CC – atribución, por lo que solo pide que cite como la fuente de la original diseño de la caja  (AndreBougie,)  y el enlace a su página web andrewbougie.com.

 

 

Como enviar y recibir mensajes entre su dispositivo y el concentrador de IoT de Azure


Una  vez que tenemos   un   dispositivo compatible con Azure Iot  (  como por ejemplo una Raspberry pi  3 como vimos   , o  desde un ESP8266   como vimos también recientemente  ) , los hemos  configurado  y   hemos  implementado una aplicación de ejemplo para ejecutar en el dispositivo que envié envíe datos que   los sensores recogen a su hub de IoT , puede  que  queramos intentar gestionar la mensajería en la nube del  dispositivo IoT  

Precisamente  en este contexto  surge  iothub-explorer que pone a  nuestra disposición  varios  comandos para  facilitar la gestión de centro de IoT  permitiéndonos   supervisar mensajes de dispositivo a nube y enviar mensajes de dispositivo de nube.

Los mensajes de dispositivo a nube podrían ser datos de sensores de  un dispositivo  que recolecta y envía a su hub de IoT (   como por ejemplo una Raspberry pi  3 como vimos  en este post , o  desde un ESP8266   como vimos recientemente  en este post )   o   bien los mensajes hacia ese  dispositivo de nube  que  podría ser comandos que IoT hub envía al dispositivo como por ejemplo hacer  parpadear un LED conectado a ese dispositivo.

Resumidamente  hay pues dos usos  muy diferentes del explorador de iothub :

  • Para supervisar mensajes de dispositivo a nube.
  • Para enviar mensajes de dispositivo de nube.

Para ello necesitamos haber completado dos fases:

  1. Haber  configurado el dispositivo , configuración completa que cubre los siguientes requisitos:
    • Haber registrado una cuenta de suscripción a Azure ( la gratuita nos sirve) .
    • Haber registrado un centro de Azure IoT ( una vez mas  también existe una modalidad gratuita para probar el  servicio).
    • Una aplicación de cliente que envíe mensajes a su hub de IoT de Azure.
  2. Haber instalado el  explorador de iothub. (Instalar explorer iothub)

Instalación de iothub-explorer

Iothub Explorer es pues una herramienta CLI para administrar las identidades de los dispositivos en su registro de IoT hub, enviar y recibir mensajes y archivos desde sus dispositivos, y monitorear sus operaciones de centros de IoT. Ademas iothub-explorer también permite simular un dispositivo conectado a su hub de IoT.

En post  anteriores  vimos  como con  una Raspberry pi  3 , o  desde un ESP8266    los   configurábamos   e  implementamos sendas aplicaciones para ejecutar en esos dispositivos procesos para enviar datos de telemetria  procedente de sus  sensores a un  hub de IoT en la nube de Azure Iot Edge

Bien, tenemos nuestra aplicación corriendo en el dispositivo de Iot , por lo que necesitamos ahora instalar el  explorador de iothub. Desgraciadamente no esta disponible para ambiente windows , es decir solo lo podemos ejecutar por el momento en equipos con Linux instalado. Ademas esta herramienta requiere la versión 4.x o superior de Node.js para que funcionen todas las características.

Para instalar la última versión de la herramienta iothub-explorer, ejecute el siguiente comando en su entorno de línea de comandos:

npm install -g iothub-explorer

En caso de querer instalar esta utilidad en una Raspberry pi  desde Raspbian, al no estar disponible el comando npm  instalarlo siguiendo estos pasos:

cd ~
git clone https://github.com/azure/iothub-explorer

gitclone

Manejo de iothub-explorer

Una vez isntalada esta utilidad ,puede usar el siguiente comando para obtener ayuda adicional sobre todos los comandos de ihotub-explorer:

$ iothub-explorer help
Usage: iothub-explorer [options] <command> [command-options] [command-args]


  Commands:

    login                           start a session on your IoT hub
    logout                          terminate the current session on your IoT hub
    list                            list the device identities currently in your IoT hub device registry
    create <device-id|device-json>  create a device identity in your IoT hub device registry
    delete <device-id>              delete a device identity from your IoT hub device registry
    get <device-id>                 get a device identity from your IoT hub device registry
    import-devices                  import device identities in bulk: local file -> Azure blob storage -> IoT hub
    export-devices                  export device identities in bulk: IoT hub -> Azure blob storage -> local file
    send <device-id> <message>      send a message to the device (cloud-to-device/C2D)
    monitor-feedback                monitor feedback sent by devices to acknowledge cloud-to-device (C2D) messages
    monitor-events [device-id]      listen to events coming from devices (or one in particular)
    monitor-uploads                 monitor the file upload notifications endpoint
    monitor-ops                     listen to the operations monitoring endpoint of your IoT hub instance
    sas-token <device-id>           generate a SAS Token for the given device
    simulate-device <device-id>     simulate a device with the specified id
    help [cmd]                      display help for [cmd]

  Options:

    -h, --help     output usage information
    -V, --version  output the version number

Cada comando iothub-explorer tiene su propia ayuda ,la cual  se puede ver pasanDdo el argumento -help (ayuda)  al nombre del comando:

$ iothub-explorer help create

  Usage: iothub-explorer create [options] [device-id|device-json]
  
  Create a device identity in your IoT hub device registry, either using the specified device id or JSON description.

  Options:

    -h, --help                       output usage information
    -a, --auto                       create a device with an auto-generated device id
    -cs, --connection-string         show the connection string for the newly created device
    -d, --display <property-filter>  comma-separated list of device properties that should be displayed
    -l, --login <connection-string>  connection string to use to authenticate with your IoT Hub instance
    -k1, --key1 <key>                specify the primary key for newly created device
    -k2, --key2 <key>                specify the secondary key for newly created device
    -r, --raw                        use this flag to return raw JSON instead of pretty-printed output
    -x, --x509                       generate an x509 certificate to authenticate the device
    -dv, --daysValid                 number of days the x509 certificate should be valid for
    -t1, --thumbprint1 <thumbprint>  specify the primary thumbprint of the x509 certificate
    -t2, --thumbprint2 <thumbprint>  specify the secondary thumbprint of the x509 certificate

 

Puede obtener mas  información en  https://github.com/azure/iothub-explorer

Monitor dispositivo a nube mensajes

Para supervisar los mensajes que se envían desde el dispositivo a su hub de IoT, siga estos pasos:

  1. Abra una ventana de consola.
  2. Ejecute el siguiente comando:iothub-explorer monitor-events <device-id> --login "<IoTHubConnectionString>"
  3. Obtener y de su hub de IoT. Asegúrese de que haya terminado el tutorial anterior. O puedes probar a utilizar si tienes, y.<device-id><IoTHubConnectionString>iothub-explorer monitor-events <device-id> --login "HostName=<my-hub>.azure-devices.net;SharedAccessKeyName=<my-policy>;SharedAccessKey=<my-policy-key>"HostNameSharedAccessKeyNameSharedAccessKey

Enviar mensajes de dispositivo de nube

Para enviar un mensaje desde su hub de IoT en el dispositivo, siga estos pasos:

  1. Abra una ventana de consola.
  2. Iniciar una sesión en su hub de IoT ejecutando el siguiente comando:
    Bash Copia
    iothub-explorer login `<IoTHubConnectionString>`
    
  3. Enviar un mensaje a su dispositivo ejecutando el siguiente comando:
    Bash Copia
    iothub-explorer send <device-id> <message>
    

El comando hace parpadear el LED que está conectado a su dispositivo y envía el mensaje al dispositivo.

Nota:No es necesario para el dispositivo envie un comando ack separado a su hub de IoT al recibir el mensaje.