Magia en 258 catácteres

El señor @yonatan crea animaciones mediante pequeñas fracciones de código compactado, hipnótico el resultado de un código asombrosamente ligero.

Tropiezos #38

Raspberry Pi: Montando algo más que un media center.

Índice de contenidos:

  1. Esquema de conexiones
  2. Instalación del sistema operativo, XBian.
  3. Primer arranque de XBian y configuración inicial.
  4. Configuración del sistema operativo desde XBMC.
  5. Accediendo vía SSH.
  6. Instalación del cliente bittorrent: Transmission.

Introducción:

He instalado una serie de programas en una memória SD que usará la placa Raspberry Pi como sistema operativo y me permite usarlo como un estupendo Media Center (XBMC) en red, un cliente de descargas bittorrent (transmission) y un servidor Web (Apache) y quiero compartirlo detallando los pasos que he seguido para conseguirlo y algunos consejos para sacarle más partido a este estupendo cacharro.

Raspberry Pi:

Placa Raspberry Pi (Click para ampliar)

[themoneytizer id=»16871-1″]

 

El famoso Raspberry Pi fue diseñado con fines educati… bla bla bla… es el mejor y más barato juguete que he podido trastear últimamente. Si aún no lo conoces, échale un ojo al artículo de la Wikipedia antes de continuar: http://es.wikipedia.org/wiki/Raspberry_Pi

Ventajas:

Una vez acabado nos permitirá:

  • Reproducir en la TV cualquier contenido (1080p incluido) almacenado en red (en un PC, Mac, Linux, en un NAS) o  conectando directamente un disco USB al RPi, también música y fotos.
  • Utilizar el mando a distancia nativo de la TV para controlar el XBMC.
  • Acceder a la biblioteca del XBMC a través de la Web o desde una App para Android / iOS.
  • Conectarnos mediante SSH para ejecutar comandos SHELL en el RPi.
  • Gestionar descargas bittorrent con el cliente Transmission mediante una interfaz Web y desde XBMC.
  • Almacenar las descargas de transmission en un disco USB o en una unidad de red Windows mediante Samba.
  • Automatizar las descargas de series y películas en base a un detallado archivo de configuración mediante Flexget y envio de informes mediante correo o whatsapp.
  • Gestionar el estado de los servicios (xbmc, transmission, ssh, apache2,..), reiniciar o apagar el RPi y otras utilidades mediante un panel de control creado en php.
  • Acceder a todos los servicios de configuración a través de internet configurando los puertos en el router.

 Nivel de dificultad:

Realmente puedes adaptar el proyecto a tus conocimientos, si no quieres complicarte la vida y únicamente quieres un media center en una RPi puedes plantarte en la instalación de del sistema operativo en la SD.

Si por otro lado quieres configurarlo para que sea algo más, sería conveniente que tuvieras algunos conocimientos básicos de como funciona la consola de linux, que es una conexión SSH y el funcionamiento básico de un servidor Web, aunque no es un requisito para seguir esta guía ya que voy a detallar todos los pasos.

Requisitos de Hardware:

Listo lo que yo he usado, puede variar según necesidades:

  • Una placa Raspberry Pi (yo he comprado la de 500mb de RAM por 32,88€ en http://raspberrypi.rsdelivers.com/), no necesitamos el transformador.
  • Una tarjeta de memória SD de 16Gb, la compré por 7€ en un comercio local (puede ser de 2Gb, 4Gb,  8Gb o 16Gb).
  • Un Hub USB (!importante: con alimentación externa!), lo compré por 15€ en un comercio local.
  • Un disco duro USB.
  • Teclado inalámbrico (no necesario).
  • Un cable HDMI.
  • Un cable de red.
  • Un ordenador (PC, Linux o Mac) con lector de tarjetas.

[themoneytizer id=»16871-1″]

 

1.- Esquema de conexiones.

Aunque aún no lo encenderemos puesto que primero tenemos que instalar el sistema operativo en la SD, muestro el esquema que me ha quedado a mi en caso para que sirva de ejemplo para el vuestro, que debería ser bastante similar:

¿Porqué un HUB USB si el Raspberry Pi tiene ya dos entradas USB?


Pues es meramente una cuestión económica, me explico, el HUB no sería necesario si almacenamos nuestras descargas en una ubicación de red, pero  en mi caso no quiero dejar 24h el NAS encendido ya que apenas lo usamos unas horas al día, es una tontería pagar el consumo eléctrico todo el día (consume bastante y cada día es más caro). Me decanté por adherirle un disco USB y almacenar ahí las descargas que posteriormente moveré al NAS vía Samba o automágicamente con Flexget (lo veremos más adelante).
Raspberry Pi no tiene suficiente «potencia eléctrica» para poder usar un disco USB sin alimentación externa, simplemente no arrancará. De ahí el HUB con alimentación externa, para conectar el disco duro USB y para alimentar de corriente al Raspberry Pi de forma que no necesitamos usar el puerto microUSB ni ningún transformador aparte, únicamente el del HUB USB.

2.- Instalación del sistema operativo, XBian.

El caso es instalar una distribución linux (la mayoría basadas en Debian) enfocada a ejecutar un software Media Center llamado XBMC, yo llevo muchos años usando XBMC en mi PC y nunca lo he disfrutado tanto.

He probado:

  • Raspbian, enfocado más a programación en general, XBMC funciona mal ya que esta distribución posee un entorno gráfico que no necesitamos y otros servicios que consumen nuestros recursos y empeoran la experiencia de XBMC.
  • Raspbmc, una buena distribución para usar XBMC pero me ha dado más problemas para instalar otros paquetes como apache2 y demás, según he leido es un proyecto de una sola persona, bien por él pero inmaduro comparado con otros.
  • OpenELEC (Open Embedded Linux Entertainment Center), genial si únicamente buscamos un media center, más cerrado.
  • XBiansin duda me quedo con XBian por su estabilidad y porque es un proyecto más maduro que el resto en muchos aspectos, menos problemas, casi perfecto.

La gente de XBian se han currado un instalador capaz de correr en Windows, Mac y Linux, he incluso se puede realizar la instalación manual mediante ficheros RAW.

Instrucciones de instalación de XBian (manual según XBian en inglés):

  1. Descargamos el instalador adecuado a nuestro S.O. desde http://xbian.org/download/
  2. Insertar la tarjeta SD en el lector de tarjetas
  3. Lanzar el instalador descargado previamente.
  4. Seguir las instrucciones por pantalla.

El installer en mi MacBook Pro no me detectaba la tarjeta de memória, así que lo hice con un PC con Windows 7.

Esto nos deja el sistema operativo listo para iniciar en nuestro RPi.

[themoneytizer id=»16871-2″]

 

3.- Primer arranque de XBian y configuración inicial.

Nota: Es importante conectar el cable de red antes de arrancar XBian por primera vez, nos facilitará las cosas aunque no es imprescindible.

Después de instalar XBian en la SD usando nuestro ordenador personal, insertamos la SD en la Raspberry Pi y  arrancamos el sistema. Raspberry Pi no tiene botón de encendido ni de reinicio, por lo que con el simple hecho de proporcionarle alimentación eléctrica se iniciará.

XBMC arranca a la primera, sin preguntas salvo un mensaje de bienvenida, ya podemos utilizar el mando a distancia siempre y cuando sea compatible tu TV con el sistema CEC, si no es así podemos utilizar un teclado USB, sii aún no lo has conectado, cuando lo hagas lo más probable es que Raspberry Pi se reinicie, don’t panic!.

Si notas que va algo lento, es normal, está actualizando los Addons que vienen instalados por defecto.

Cambio de idioma a Español:

Accedemos a System ? Settings ? Appearance ? Internacional

Allí cambiamos el valor de Language por Spanish.

4.- Configuración del sistema Operativo desde XBMC.

La configuración básica del sistema operativo viene en forma de Plugin de XBMC al cual accedemos a través de:

Sistema ? Ajustes ? XBian o desde Programas ? XBian-Config.

Esta ventana es lenta y tarda en cargar, modificaremos lo siguiente.

  1. Desactivación del DHCP: Para tener siempre localizado nuestro Rapsberry Pi en la red es mejor establecer una dirección IP estática en lugar de esperar a que el router le asigne una, si accedemos a XBian-Config y cambiamos la opción Mode de DHCP a Static podremos establecer una acorde a nuestra red, en mi caso 192.168.1.50.
  2. Activamos el modo Avanzado en Programas ? XBian-Config ? Preferences, esto nos dará más opciones en la pestaña System de XBian-Config.
  3. En la pestaña System cambiamos las claves de root y del usuario xbian y marcamos la opción «Allow SSH root login«.
  4. Ajuste de la zona horaria en XBian-Config ? System ? Timezone a Europe ? Madrid.

Retrocede al menú principal (con la barra de retroceso o backspace), te pedirá reiniciar, acepta.

  1. Accedemos a Ajustes ? Apariencia ? Internacional y cambiamos el «País del huso horario» a Spain y la Región a España si procede, con esto el reloj de la parte superior ya debería estar en hora.
  2. Establecemos unas credenciales de acceso al panel de control remoto HTTP en Ajustes ? Servicios ? Servidor Web y nos aseguramos de que está activado «Permitir el control de XBMC por HTTP» que debería estarlo por defecto. En cuanto a interfaz Web, yo uso AWXi que se puede descargar desde el botón Conseguir más.. al pulsar sobre Interfaz Web.
  3. Activamos la opción «Premitir que los programas de otro equipo controlen XBMC» en Ajustes ? Servicios ? Control remoto.
  4. Activamos el servicio AirPlay en Ajustes ? Servicios ? AirPlay en caso de disponer algun dispositivo iOS, nos servirá para enviar la señal de video vía Wifi al XBMC.

6.- Accediendo vía SSH

Para realizar muchas de las operaciones de configuración tendremos que conectarnos a la Raspberry Pi mediante el protocolo SSH (Secure Shell, Wikipedia), veamos como conectarnos desde las diferentes plataformas.

Si estas bajo Linux no creo haga falta explicarte cómo, si usas Windows puedes descargarte Putty

7.- Instalación del cliente bittorrent: Transmission

Para instalar

Personalización de XBMC: Plugins

Plugin XBMC: WatchDog: Actualiza la biblioteca del XBMC automágicamente cuando añadimos o eliminas un fichero a nuestra colección, de esta forma no tenemos que refrescar la biblioteca cuando agregamos contenido, es instantáneo.

URL: http://wiki.xbmc.org/index.php?title=Add-on:Watchdog

Activar el Dark Mode en Youtube

Para activar el Dark Mode de Youtube hacemos lo siguiente:

  1. Abrir una pestaña con www.youtube.com
  2. Abrir la consola de desarrolladores pulsando Ctrl + Shift + I.
  3. Ir a la pestaña Consola.
  4. Allí pegamos el siguiente comando: document.cookie=»VISITOR_INFO1_LIVE=fPQ4jCL6EiE»
  5. Cerramos la consola pulsando de nuevo Ctrl + Shift + I.
  6. Refrescamos la página con F5.
  7. Desplegamos el menú situado en la parte superior derecha (perfil de usuario o menú diferente si no se está validado) y activamos la opción: Dark Mode.

3D Simon, juego javascript, WebGL + ThreeJS

He hecho un pequeño juego en Javascript utilizando la librería ThreeJS de Mr doob, los modelos están diseñados en Blender.

Está basado en el juguete retro «Simon Says» en el que hay que repetir una secuencia de colores que va creciendo en valores.

He registrado dominio propio para el juego, con un anuncio cuando fallas la combinación, para poder pagar el Ferrari claro.

Si estás interesado en ver el código fuente, basta con visualizar el código html de la web, no hay nada ofuscado.

Prueba 3DSimon en http://www.3dsimon.com

Todas las opiniones son bienvenidas.