lunes, 19 de agosto de 2013

Continua la fiebre de los microcomputadores: Iteaduino PLUS

Desde la aparición de Raspberry Pi, han sido muchas las alternativas que han ido apareciendo, ofreciendo mayor capacidad de computo, mayor velocidad y otras mejoras. Hoy os traigo el último competidor que se apunta a la carrera. En este caso se trata de Iteaduino PLUS que incorpora un microprocesador A10 con arquitectura ARM Cortex-A8. Su precio es muy interesante en este momento ya que se encuentra en lanzamiento con su campaña IndieGoGo, por lo que ahora es posible conseguirlo por un precio muy inferior al que saldrá al mercado el próximo año.

El sistema recuerda bastante a CubieBoard dado que sus componentes son similares, incluso la distribución de los mismos sobre la placa es muy parecida. Incorpora un conector SATA y un conector de alimentación para disco duro, conector HDMI, Ethernet 10/100, 2 USB, audio de entrada y salida, 1GB de RAM DDR3 a 480Mhz, GPU Mali400 y conector para tarjetas microSD con soporte de hasta clase 10. Una de las principales ventajas es que en ITEAD han aprovechado su experiencia en el desarrollo de productos para Arduino y han diseñado esta placa de forma que presenta una amplia compatibilidad con los módulos diseñados para Arduino. Para potenciar esta compatibilidad, han dedicando un conector especifico para la expansión utilizando un Shield que ofrece un interfaz de conexión como el de Arduino.
Os invito a que descubráis todas sus ventajas y que participéis en su campaña de IndieGoGo, yo estoy ya deseando que tengamos el nuestro para comenzar con las pruebas y comprobar hasta donde podemos llegar con Iteaduino PLUS.


sábado, 17 de agosto de 2013

El experimento de las dos ranuras

Todos aquellos que nos sentimos fascinados por las extravagantes sugerencias que la física cuántica formula para el comportamiento de nuestro universo, hemos oído hablar alguna vez del experimento de las dos ranuras. Este experimento consiste en hacer pasar un haz de luz a través de una placa opaca con una ranura en su centro de forma que la luz que la atraviesa se proyectaría en una pared al otro lado de la placa siguiendo una distribución de probabilidad normal, cuyo centro de la campana queda alineado con dicha ranura.
El mismo experimento propone que si hacemos pasar dicho haz de luz a través de dos ranuras en lugar de hacerlo pasar por una sola, lo que se crea al otro lado es sin embargo un patrón de interferencia. Esto se debe a que la luz se comporta como una onda, el resultado es equivalente al de que una nueva onda se generase en cada una de las ranuras interfiriéndose entre sí al otro lado de la plancha. No obstante si se repite este mismo experimento con electrones se obtiene el mismo efecto lo que lleva a la conclusión de que el electrón se está comportando como una onda. Y esto no es todo, si los electrones se observan en el instante en que atraviesan las ranuras para detectar cual ha sido la ranura que han cruzado, dejan de comportarse como ondas y pasan al otro lado comportándose como partículas, esto les lleva a proyectarse al otro lado justo formando las dos ranuras en lugar de crear el patrón de interferencia.

Este comportamiento como onda se puede entender de una forma más o menos sencilla si imaginamos como se transmiten las ondas de sonido a través del aire o bien las ondas en el agua. Os dejo un vídeo colgado como material complementario del curso de mecánica y computación cuántica de la organización edX. En el se explica este fenómeno de una forma muy clara y sencilla, espero que os guste.


sábado, 10 de agosto de 2013

Creando una Recreativa con Raspberry Pi - Parte 3

Advance Mame es el proyecto para emulación Arcade que mejor resultado parece dar en dispositivos ARM. Por este motivo es el que vamos a aprender a compilar para nuestra Raspberry Pi o nuestra CubieBoard. A continuación os dejo los pasos necesarios, compatibles para ambos dispositivos siempre que tengan el sistema operativo Debian Whezzy instalado. Si todavía no habéis instalado Debian Whezzy en vuestra CubieBoard, podéis seguir este tutorial.


Compilando Advance Mame


Como siempre debes hacer login en el sistema para comenzar, recuerda que el usuario si usas Debian Whezzy es pi y contraseña es raspberry.

En primer lugar debes confirmar que estas con arm. Para conocer tu kernel puedes usar el comando:
uname -a
Debería obtener una salida como esta si utilizas Raspberry:
Linux rasberry-pi 3.0.4 #2 mon oct 17 17:39:42 ict 2011 armv61 GNU/Linux
O como esta si utilizas CubieBoard:
Linux rasberry-pi 3.0.24-a10-aufs+ #33 PREEMPT Sun Feb 24 21:17:26 CET 2013 armv71 GNU/Linux
Si no tienes instaladas las X o las opciones gráficas puedes hacerlo con el siguente comando:
sudo apt-get install lxde xorg python geany
En caso de tener algún problema con los mirrors o repositorios, es posible que sea porque han cambiado, puedes probar con el siguiente comando y luego volver a intentar ejecutar el anterior:
sudo apt-get update
Para poder compilar hacen falta algunas herramientas pero para no instalarlas una a una, lo más comod es instalar el conjunto de herramientas build-essential que aglutina las más importantes. Además habrá que instalar, los paquetes de desarrollo para GTK, para Gnome y para sdl. Para instalar todo lo necesario puedes utilizar el siguiente comando, pero ten en cuenta que puede tardar una o dos horas:
sudo apt-get install build-essential libgtk2.0-dev libgnome2-dev libsdl1.2-dev
sudo apt-get install libxv-dev libxv1
Descarga el código fuente de advmame, yo voy a probar con la versión 1.2: http://sourceforge.net/projects/advancemame/files/advancemame/1.2/advancemame-1.2.tar.gz. En caso de que no sea esa ya la última versión, podéis encontrar el nuevo enlace en la página del proyecto advance mame.
Para descargarlo puedes utilizar el programa wget como sigue:
wget http://sourceforge.net/projects/advancemame/files/advancemame/1.2/advancemame-1.2.tar.gz
Una vez descargado hay que descoprimir el archivo:
extract the archive.
tar -xvzf advancemame-1.2.tar.gz
cd advancemame-1.2/
Ahora hay que instalar la versión de compilador 4.7 y configurarlo como compilador por defecto.
sudo apt-get install gcc-4.7
sudo apt-get install g++-4.7
A continuación hay que configurarlos como compiladores por defecto, para eso hay que cambiar los enlaces simbólicos que hay en la carpeta /usr/bin. Utilizando el comando grep podemos filtrar el contenido de la carpeta /usr/bin para comprobar si efectivamente existen los enlaces al compilador que queremos establecer como nuevo compilador por defecto, en este caso es la versión 4.7:
sudo ls -la /usr/bin | grep gcc-4.
sudo ls -la /usr/bin | grep g++-4.
Ahora eliminamos los enlaces simbólicos actuales si existen:
sudo rm /usr/bin/gcc
sudo rm /usr/bin/g++
Creamos los nuevos enlaces al compilador que queremos utilizar:
sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.7 /usr/bin/g++
Por último queda configurar y compilar, esto puede tardar entre 2 y 3 horas:
sudo ./configure
sudo make
sudo make install


Configurando un servidor FTP


Ahora para probar nuestras ROMs instalamos un servidor FTP, en concreto para debian Whezzy utilizamos vsftpd y a través de un cliente FTP como por ejemplo Fillezila podemos cargar las roms en nuestra Cubieboard/Raspberry Pi.
sudo apt-get install vsftpd
Una vez que vsftpd está instalado, hay que configurarlo, para ello editamos su fichero de configuración de la siguiente forma:
sudo nano /etc/vsftpd.conf
Ahora hay que descomentar las lineas correspondientes a las siguientes eliminando el simbolo # almohadilla, o bien sustituyendo los valores YES por No o viceversa hasta dejarlo de la siguiente forma:
Anonymous_enable=NO
Write_enable=YES
Local_enable=YES
Ascii_upload_enable=YES
Ascii_download_enable=YES
Por último hay que reiniciar la cubieboard o raspberry pi, y ya tendremos la posibilidad de conectar a ella a través del servidor FTP utilizando su IP y el usuario pi con contraseña raspberry. Cargamos la ROM de prueba en la carpeta /home/pi/.advance/rom/ utilizando el cliente FileZilla. Para conocer la IP de la cubieboardo raspberry podemos utilizar el comando ipconfig .


Configurando los modos de vídeo


Para poder probar las ROMs en primer lugar hay que configurar la señal de reloj para generación de vídeo dependiendo del tipo de pantalla utilizado, en mi caso para una pantalla LCD he utilizado los siguientes valores:
device_video_clock 10 - 50 / 31.5 / 55 - 130 
En último lugar hay que configurar las opciones de vídeo para mame utilizando el programa advv. Para lanzarlo hay que escribir su nombre en la terminal:
advv
Una vez en la pantalla de configuración aparecerá toda una lista de configuraciones posible. En la esquina inferior izquierda aparece un cuadro cuyo valor será OUT OF RANGE si la configuración no es valida y PROGRAMABLE si la configuración se puede utilizar para nuestro emulador. Hay que ir desplazándose hasta encontrar una resolución con el valor PROGRAMABLE. En la parte superior de la pantalla puede verse que apareen los diferentes tipos de color, hay que elegir uno compatible con nuestro dispositivo utilizando las flechas derecha e izquierda, en mi caso he elegido brg32. Por último pulsando el botón ENTER se accede a la configuración del modo de vídeo. En caso de que de un error significa que la configuración no es valida y hay que seguir buscando hasta que aparezca una imagen de una rejilla.


Una vez en la pantalla de configuración habrá que centrar la rejilla utilizando las flechas para alinearla a la esquina superior izquierda y luego utilizando los botones U para extender por la derecha y SHIFT+U para reducir por la derecha. De igual modo con la tecla A se extenderá la pantalla hacia abajo y con SHIFT+A se reduce hasta conseguir que quede centrada. Una vez conseguido se pulsa la tecla ENTER y se volverá a la lista anterior guardando la configuración y se pulsa la tecla SPACE para habilitar dicha selección ya que las únicas que MAME podrá emplear serán aquellas que hayamos habilitado y por tanto si no las habilitamos no podremos iniciar la ejecución de ninguna ROM. Es necesario repetir este proceso para varias resoluciones dado que cada juego tiene una resolución y con esto quedarán ajustadas todas las resoluciones más utilizadas. Por último pulsamos la tecla F2 para guardar los cambios y ESC para salir. También es posible crear una configuración propia con la configuración que deseemos utilizando el botón F6 y siguiendo los pasos.



Hecho esto ya podemos volver a la consola y probar la ROM utilizando el comando advmame y un espacio seguido del nombre de la ROM. Hay que tener en cuenta que las imagen aparecerá mal porque todavía queda configurar los modos de vídeo dentro del emulador.


En primer lugar pulsamos de forma alternadas izquierda y derecha o bien pulsamos las teclas O y K sucesivamente para pasar la advertencia inicial. A continuación pulsamos el botón TAB y aparecerá el menú de configuración de MAME.



Ahora hay que seleccionar la opción VIDEO, pulsar ENTER y modificar la opción de color hasta que la imagen se aclare.


Ahora ya sólo queda realizar los ajustes al gusto y disfrutar de tus viejos juegos en tu CubieBoard/Rasbperry Pi. A la hora de obtener las ROMs os recuerdo que Advance Mame está basado en la versión 0.106 de MAME y por tanto es compatible con las ROMs creadas para dicha versión.

lunes, 5 de agosto de 2013

Instalando Sistema Operativo en CubieBoard con BerryBoot

Para instalar un sistema operativo en CubieBoard hay diferentes formas. Hoy vamos a ver como instalar un sistema operativo con BerryBoot. BerryBoot es un gestor de instalaciones originalmente creado para Raspberry Pi, pero que poco tiempo despues fue adaptado para los microprocesadores A10 y particularmente para CubieBoard. Con la versión actual que es la beta 6 es posible instalar berryWebSerber, Debian Whezzy Raspbian y Linaro. Debian Whezzy Raspbian es la misma versión de debian optimizada para Raspberry pero esta vez compilada para microprocesadores A10. En el caso de Linaro es una versión de Ubutnu light optimizada para microprocesadores A10.


Para instalar hay dos formas, instalando desde el sistema Android alojado en la NAND flash interna o bien directamente en la tarjeta micro SD.

Instalación a través de Android

Si utilizas cubieboard nueva, por defecto tiene instalado un sistema Android instalado en la NAND Flash interna. Lo único que hay que hacer es conectar la cubieboard a Internet a través del puerto ethernet, arrancar la cubieboard desde el Android y seguir los siguientes pasos:
  • Insertar una tarjeta SD de mínimo 4Gb y vacía o al menos que no contenga nada de valor.
  • Cuando haya detectado la tarjeta abrir el navegador la dirección  http://get.berryboot.com/ y descargar e instalar el archivo .apk alojado en esa dirección.
  • Una vez en la aplicación Berryboot: pulsar el botón "write image" y esperar.
  • Una vez que haya terminado pedirá reiniciar el sistema operativo y al arrancar de nuevo arrancará desde la tarjeta SD y entrará en BerryBoot donde podremos elegir el sistema operativo que queremos descargar e instalar. Además es posible añadir varios sistemas operativos y posteriormente aparecerá un gestor de arranque para seleccionar con cual de ellos queremos arrancar.


Instalación manual con una imagen para la tarjeta SD

Este método sólo funciona para la cubieboard y no para otros dispositivos con el microprocesador A10. El instalador de Android es universal y parchea la imagen automáticamente con las configuraciones del hardware copiandolas desde Android.
Fichero imagen para instalación manual:
Cubieboard ( modelo 1 GB )
berryboot-cubieboard-beta6.zip

A continuación os dejo una imagen para CubieBoard (1GB) en la que hay instalado un Sistema Operativo Raspbian al que hemos llamado Cubian.
Es necesario utilizar un grabador de imágenes como por ejemplo Win32diskimager en windows o dd en Linux para escribir la imagen en una tarjeta en blanco.