sábado, 28 de septiembre de 2013

Taller de Introducción a Arduino en Altea

Dentro de dos semanas, entre el 9 y el 13 de Octubre de 2013, tendrá lugar la primera edición de Altea Energy Lan Party. Esta será la primer Party LAN donde podremos reunirnos todos los aficionados a la informática, la electrónica y los videojuegos de la provincia de Alicante y por supuesto todo aquel que viva más lejos pero dese pasar unos días entre amigos. La Altea Energy LAN Party ofrece una oportunidad única para conocernos, aprender unos de otros y pasarlo bien.

Altea Energy Lan Party

Dentro de este evento, GoShield impartirá una charla/taller introducción a Arduino. La presencia en dicha charla es gratuita para todos los asistentes al evento, y tras la charla de introducción se realizará un taller donde se podrán hacer una serie de prácticas que perseguirán enseñar a utilizar los conceptos más básicos de Arduino, el uso de salidas digitales moduladas en PWM, el uso de las entradas analógicas y como conectar sensores analógicas a estas  y el uso de pantallas LCD paralelas basadas en caracteres. Todo esto tendrá lugar la tarde del Viernes 11 de Octubre entre las 17:30 y las 21:00. Aquellos que dispongan del material podrán llevárselo de casa y seguir el taller libremente, y para aquellos interesados que no dispongan del material podrá adquirir el kit para la realización del taller allí mismo. El máximo de kits disponibles es de 10 y es posible realizar la reserva pagando 10 euros a través de nuestra web, para aquellos que estén interesados y no quieran quedarse sin plaza, por supuesto para participar en el taller hay que estar inscrito al evento el día de su realización.
Espero que sea de vuestro interés y veros allí a todos.

miércoles, 18 de septiembre de 2013

GBoard: Testando el módulo Sim900

En algunos casos, hay dudas a la hora de comprobar si el módulo Sim900 de nuestra GBoard funciona correctamente. A continuación, voy a relatar una serie de pasos a verificar para saber si nuestro módulo Sim900 funciona correctamente.


Conexión de la placa GBoard al Programador
  1. Verificar los parámetros fuente de alimentación. Este módulo ha sido intensivamente probado con un transformador de 12V y 1000mA. Si tienes uno disponible en este rango, es recomendable que sea ese el que emplees para probar la placa. Es común que los routers incluyan transformadores de  estas características. 
  2. Verificar las conexiones como se puede ver en la foto anterior. El pin RX del programador debe ser conectado al canal ST de la Gboard, cable amarillo, y el pinTX del programador se conecta al canal SR de la Gboard, cable naranja. Por último, verifica que el pin GND del programador esté conectado al pin GND de la GBoard, cable verde. Si tu programador permite seleccionar la tensión de trabajo, utiliza 3,3V.
  3. Verificar que el LED Status está encendido. Si el LED Status está encendido, esto indica que el Módulo Sim900 está encendido, en caso de que el LED Status se encuentre apagado,deberá pulsar el botón SIM900-PWRKEY, que es el botón central de los tres incluidos en la placa, durante unos segundos hasta que vea encenderse el LED Status.
Imágenes integradas 2
El LED Status encendido indica que el módulo Sim900 está encendido

Imágenes integradas 4
El boto Sim900-PWRKEY permite encender o apagar el Módulo Sim900

Para probar la placa GBoard puedes utilizar el terminal incluido en el IDE de Arduino como puede verse en la imagen siguiente. Selecciona el retorno de carro en el combo box inferior y una configuración de 19200 baudios. Por último escribe el coando +AT y pulsa enviar, si todo va bien el módulo debería contestar OK.

Imágenes integradas 1
Uso de la interfaz de Arduino para probar el funcionamiento del módulo Sim900
Estos pasos permiten verificar que el módulo de comunicaciones GPRS funciona correctamente, pero no garantizan el funcionamiento de ningún otro elemento. Las comprobaciones están realizadas con los parámetros de fabrica de la placa GBoard y el módulo Sim900, algunos de ellos podrían cambiar ligeramente para otros módulos u otros shields.

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.

miércoles, 31 de julio de 2013

Creando una Recreativa con Raspberry Pi - Parte 2

Por fin vuelvo a las andadas, ya he terminado mi recreativa. Finalmente no la he montado con Rasbperry Pi sino con CubieBoard. El caso es que he probado diferentes sistemas de recreativas con Raspberry Pi y os comento los mas interesantes que he encontrado. De algunos de ellos he hablado en el blog anteriormente, así que para aquellos que estén pensando en montar una recreativa con Raspberry Pi, voy a hacer un pequeño repaso.

En primer lugar tenemos MamePi que va por su versión 0.7.6, este sistema incorpora Mame, Play Station, Super Nes, Nes y Mame4all. Originalmente funcionaba con Advance Mame, así que no se que diferencia de rendimiento se obtendrá al emplear Mame4all en su lugar. El caso es que SheaSilverman es el creador de este sistema y ha sido la luz que ha guiado mis pasos en esta oscura senda de la emulación en arquitecturas ARM. Os recomiendo echar un vistazo a su blog porque no tiene desperdicio.



Otra interesante opción es utilizar RetroPie. RetroPie es una completo sistema de emulación que incorpora multitud de máquinas recreativas y viejos computadores personales. Os dejo un vídeo para que veáis su funcionamiento, pero realmente el sistema es super completo, sus arquitectos han pensado en todo.


La última opción que he encontrado y que particularmente a mi es la que más me ha gustado es ChamaleonPi. Es una excelente y completa plataforma con una enorme colección de emuladores, consolas, computadores antiguos y SCUMM. Además Carles Oriol que es su creador, es un paisano de Cataluña a quien me gustaría dar la enhorabuena por el gran trabajo que ha realizado.



Todos estos proyectos son verdaderamente geniales, y sus creadores han hecho un gran trabajo. Sin embargo tras probar el funcionamiento de MAME sobre Raspberry Pi, llegué a la conclusión de que no es lo que yo buscaba. Para cualquier otra plataforma los emuladores consiguen un resultado muy bueno, pero MAME tiene el problema de no ser un sistema excesivamente optimizado ya que debe ser capaz de emular un número muy elevado de máquinas y para ello lo que se hace es sobrecargar el procesador, además MAME no suele hacer uso de aceleradoras lo que deja al procesador con todo el trabajo. En esta situación, creo que Raspberry no es el equipo ideal para MAME aunque otros emuladores funcionan estupendamente.

Como comente al comienzo de la entrada voy a utilizar CubieBoard, En próximas entradas voy a contaros paso a paso como crear el sistema vosotros mismos, cumpliendo las necesidades que encontraremos para obtener una maquina recreativa plenamente funcional. Acaba de salir CubiBoard 2 que incorpora un microprocesador A20 de doble núcleo, sin embargo me voy a basar en CubieBoard 1 ya que su precio es menor y para la mayoría de juegos es suficiente. A continuación os dejo una foto de la maquina que estamos montando.


La idea es que la CubieBoard quede dentro, junto a una fuente de alimentación y que desde fuera únicamente haya que conectar el cable de corriente y el cable HDMI, con un botón de encendido con la idea de que sea compacto.

sábado, 27 de julio de 2013

Nuevo Curso de introducción a la Mecánica y Computación Cuantica

Los cursos edX, son cursos impartidos por las universidades más importantes del mundo. Entre las universidades participantes están el MIT, HARVARD, Berkeley y la University of TEXAS SYSTEM. Estos curso son cursos de tipo MOOC gratuitos y en la mayoría de ellos existen dos opciones de inscripción, una en la que se realizan los exámenes y el seguimiento de los temas por diversión y otro en que al finalizar el curso se consigue un diploma de aprovechamiento del curso firmado por el profesor responsable y la universidad en cuestión.

Take courses from the world's best professors

El caso de hoy es que la universidad de Berkeley ha propuesto un nuevo curso sobre Mecánica y Computación Cuántica para este verano. El curso inicia el 11 de Agosto y como requisito muchas ganas de aprender y conocimientos básicos de manejo de números complejos y álgebra lineal como la diagonalización de matrices o la obtención de autovalores y autovectores. Por si andáis oxidados en estos temas y queréis poneros al día y a la vez practicar el ingles también cuenta con una serie de clases online sobre todos estos temas con vídeos subtitulados en ingles, aunque quien ande muy mal puede recurrir al google translator. Os dejo la explicación sobre lo que son los autovalores y autovectores de una matriz de transformación por si queréis ver como esta el nivel.



Parece que va a ser un curso muy interesante, se verán fundamentos sobre computación cuántica y se explicarán los principales algoritmos que se están diseñando para estos computadores como la factorización de enteros o la transformada de Fourier. Esperaremos atentos al comienzo de este, esperamos que sea de vuestro interés.


sábado, 1 de junio de 2013

GBoard: Conectando a un servidor TCP a través de GPRS

En una entrada anterior os hablé de la placa GBoard que incorpora un microcontrolador Atmega328 con el Bootloader de Arduino y un módulo GSM/GPRS Sim900. En ella dejé disponible una librería que incluía funcionalidades como el envío de mensajes SMS, llamadas telefónicas y algunas funcionalidades más del módulo GSM.
En esta ocasión os traigo la versión 1.5 de la librería para Arduino de GBoard que incorpora la posibilidad de conectar en modo transparente a un servidor TCP ó UDP, esto significa que se conecta a dicho servidor y todo lo que enviemos por el puerto serie lo recibirá el servidor en paquetes TCPIP y lo que el servidor responda nos llegará de igual modo a través del puerto serie. Además de esto, la librería incluye varios ejemplos, entre ellos hay un ejemplo para conectar a un servidor de correo a través de telnet y por comandos SMTP permite enviar correos electrónicos.

Todos los detalles y comandos AT utilizados para las funcionalidades de GPRS pueden consultarse en el documento de notas de aplicación del módulo Sim900 para TCP/IP. En este documento, no solo encontraremos los comandos sino que también se pueden encontrar ejemplos de uso de los diferentes modos TCP/IP que pueden ser utilizados con este módulo.

martes, 28 de mayo de 2013

Programando Baby Orangutan con AVR Studio 5.1

Al diseñar nuestro robot, normalmente necesitamos un driver para controlar al menos un par de motores y un microcontrolador para controlar la lógica que gobierna el robot. Si utilizamos un Arduino y un driver externo esto nos puede costar entre 35 y 80 euros según los elementos utilizados. La placa que os presento hoy es una placa compacta que integra un Atmega 328P, el mismo microcontrolador que utiliza Arduino UNO, y un driver de dos canales de 3A de pico por canal, con lo que podemos controlar un par de motores de una potencia relativamente alta.

Este controlador tiene múltiples ventajas, es barato, compacto, ligero, integra un microcontrolador AVR junto a un driver de 3A de pico por canal e incluye un potenciometro para poder realizar ajustes online en nuestro robot sin necesidad de añadir nada nuevo a la placa electrónica de nuestro robot. Sin embargo, a la hora de comprar este controlador hay que tener en cuenta una serie de detalles. En primer lugar esta placa no incorpora un bootloader preinstalado, el bootloader es un código residente en el micro que permite cargar un programa través del puerto serie como ocurre en el caso de Arduino. Al no tener este código residente, no es posible enviarle un programa a través del puerto serie y es necesario utilizar un programador externo como nuestro USBtinyISP para poder cargar los programas. Con un programador externo también es posible cargar el bootloader de Arduino y a partir de ese momento si es posible programar a través del puerto serie como con cualquier otro Arduino. Otra opción, es programar directamente a través del puerto de programación con el mismo IDE de Arduino, o con IDEs avanzados como el que vamos a utilizar hoy que es AVR Studio.

Hoy me voy a centrar en contaros como programar esta placa con AVR Studio. AVR Studio es un entorno de programación de Atmel basado en Visual Studio, por lo que aquellos que tengan experiencia con programación en .Net se sentirán muy cómodos utilizando este entorno. Una de las ventajas de programar con un entorno como este, es la posibilidad que ofrece el entorno de simular el micro y ejecutar el programa en modo el debug lo que permite realizar trazas de una forma muy cómoda  De esta manera es posible ver el valor que irían adquiriendo los registros en tiempo de ejecución, deteniendo el programa y pudiendo incluso ejecutarlo paso a paso, lo que nos permite depurar errores de una forma mucho mas eficiente.

El primer paso es instalar el entorno Atmel Studio o AVR Studio dependiendo de la versión que instalemos. Es importante instalar la versión 4.0, 5.1 o bien la 6.0 ya que son las versiones compatibles con el paquete de librerías de pololu, AVR development bundle, que incluye librerías varias para la programación de microcontroladores AVR.

A continuación hay que instalar el driver de tu programador para AVR, si utilizas Windows 8 tendrás que seguir los pasos descritos en esta entrada que explica como instalar los drivers de Arduino DUE en Windows 8 pero el mismo procedimiento puede utilizarse con muchos otros dispositivos como por ejemplo es este caso. 

Una vez instalados los drivers del programador tenemos que configurar nuestro USBtinyISP, para ello lo primero es instalar la herramienta WinAVR que incorpora diferentes herramientas para la programación de dipositivos ATmega, en concreto la que nos interesa a nosotros es AVRdude. Posteriormente hay que configurarlo en el entrono de AVR Studio, para ello os dejo un vídeo en el que explican como configurarlo ya que es complicado de explicar y viéndolo se hace mucho más sencillo.


Tras instalar WinAVR, se instalan en la carpeta C:\WinAVR-20100110 multitud de herramientas. En esta carpeta se encuentra la carpeta bin donde están todos los ejecutables y ahí podemos encontrar AVRdude que es el programa que tenemos que configurar en el entorno como programador. En el entorno de AVR Studio hay que utilzar la opción Tools --> External Tools que permite añadir un programador como herramienta externa. Al utilizar esta opción, aparecerá un formulario done hay que configurar en primer lugar el nombre de nuestra herramienta, por ejemplo USBTiny. El segundo argumento se refiere al ejecutable de nuestra herramienta que será avrdude, por lo que hay que poner la ruta hasta el ejecutable que por defecto será C:\WinAVR-20100110\bin\avrdude.exe. Los siguientes argumentos dependerán de la solución que hayamos creado. Cuando creamos un nuevo proyecto hay que elegir la librería de Pololu y dentro de la librería elegir BabyOrangutan 328P, lo que creará una solución para este dispositivo. Como se puede ver en el ejemplo, hay que seleccionar el nombre del proyecto, el nombre de la solución y el directorio donde estará la solución.


Una vez creada la solución, podemos consultar estos parámetros a la derecha en el explorador de soluciones como se ve en la imagen siguiente. Al generar el proyecto, según si hemos elegido Release o Debug, se generará una carpeta dentro del directorio de la solución con ese nombres y dentro de dicho directorio, estará el archivo nombreProyecto.hex que es el archivo binario generado que hay que cargar al controlador Baby Orangutan.


Al crear el proyecto por defecto, se creará con un archivo con el código del ejemplo blink que enciende y apaga un Led. A partir de aquí, hay que rellenar el resto de parámetros en la configuración de la herramienta externa de programación. Hemos añadido el nombre y el ejecutable que realizará las tareas de grabación en el Baby Orangutan, pero ahora debemos rellenar los argumentos donde según el vídeo hay que utilizar la linea -c usbtiny -p m328p -U flash:w:$(ItemFileName) pero lo que hay que hacer es ver el nombre con el que se generea el archivo con extensión .hex y utilizar este nombre. Para ello, hay que generar la solución con la opción Build->Build Solution y luego navegar hasta la carpeta de la solución. Si hemos compilado en Release habrá que mirar en la carpeta con este nombre y si hemos compilado en Debug habrá que mirar en la carpeta con este otro nombre. Allí encontraremos un archivo generado con la extensión .hex y ese es el que hay que utilizar en la linea de comando anterior. Por defecto este nombre será el mismo del del proyecto por lo que si nuestro proyecto se llama nombreProyecto se deberá usar la sentencia  -c usbtiny -p m328p -F -U flash:w:nombreProyecto.hex. Puede verse que en la linea anterior se ha añadido el parámetro -F que soluciona algunos problemas que pueden aparecer al intentar cargar código al microcontrolador utilizando avrdude.


Es importante tener en cuenta que el Baby Orangutan utiliza los pines PB4 y PB5 para la programación por lo que si utilizamos estos pines en nuestros proyectos podemos encontrar problemas a la hora de programarlo. En concreto, no debería haber problema a no se que se conecte en dichos pines un condensador que impediría programar el microcontrolador sin quitarlo del zócalo. Otra cosa a tener en cuenta a la hora de programarlo es la posición del conector, en la placa del Baby Orangutan puede verse marcado con una flecha el pin 1 del conector ISP. El pin 2 es el que se encuentra encima de este y corresponde con VCC y por lo tanto el lado con una franja roja del conector del programador debe conectarse en ese lado.


Por último, en el cuarto parámetro hay que indicar el directorio donde se encuentra este archivo ejecutable, indicando la carpeta Release o Debug según corresponda. Con esto, aparecerá un nuevo ítem en el menú Tools con el nombre de nuestra herramienta. Si conectamos el programador USBTiny al PC y le conectamos nuestro Baby Orangutan, al pulsar el botón Tools -> USBTiny compilará el código de ejemplo y lo cargará en nuestro Baby Orangutan. Después de esto podremos ver como el led se enciende y se apaga intermitentemente, a partir de aquí ya podemos comenzar a crear nuestro propio código, basándonos en las librerías de pololu y con la ayuda de InteliSense que nos sugerirá código a medida que vamos programando.



Espero que os sea de ayuda, y si necesitáis aclarar alguna cosa no dudéis en poner un comentario e intentaremos ayudaros en todo lo posible.




jueves, 16 de mayo de 2013

¿Conoces GBoard?: GSM/GPRS + ARDUINO todo en uno


En muchas ocasiones tenemos en mente realizar un proyecto en el que queremos monitorizar
algunos sensores y enviar la información a través un módulo GSM/GPRS, bluetooth, XBEE o sencillamente almacenarla en una tarjeta SD a modo de datalogger. Si lo hacemos con Arduino
necesitaremos como mínimo una placa base Duemilanove/UNO/MEGA/Due más el shield de comunicaciones GSM/Bluetooth/XBEE, si además queremos conectar sensores necesitaremos añadir otro Shield más. Si además queremos almacenar la información capturada por estos sensores
en una tarjeta SD necesitaremos añadir un nuevo Shield adicional.

El resultado será una torre de shields que probablemente funcione, pero cuya estética y control se complicaría al tener que trabajar con las diferentes señales de control empleadas por cada una de estas placas. Además sería necesario realizar un estudio previo para comprobar la compatibilidad entre las diferentes placa, ya que si dos o mas de ellas utilizan el mismo pin no podríamos usarlas al mismo tiempo de forma correcta. 

Para estos casos tenemos una solución económica y sencilla de utilizar, se trata de la placa Gboard, un sistema que integra un ATMEGA328P con bootloader de Arduino, un módulo GSM/GPRS SIM900, zócalo para tarjeta MicroSD, XBEE/Bluetooth/nRF24L01 y pines de conexión para sensores o actuadores, y todo esto en una placa de tan solo 89 x 61mm. La programación del microcontrolador ser realiza a través de un convertidor USB/RS232 y se programa igual que se programa un Arduino. Está preparada para realizar la interacción con el módulo GSM/GPRS a través del puerto serie hardware o bien utilizando otros pines y la librería para Software serial pudiendo tener así disponible el puerto serie hardware para enviar datos de DEBUG a nuestro PC.

Es posible realizar la gestión del módulo SIM900 utilizando comandos AT, para conocer la lista de comandos AT disponibles hay que basarse en la lista detallada en la documentación del módulo SIM900. También puedes programarla directamente con la librerías para entorno Arduino, en este enlace puedes decargar la librería para GBoard adaptada por GoShield a las versiones del IDE 1.0 o superior de Arduino.

Si estas pensando realizar un proyecto que utilice GSM/GPRS la Gboard es una buena opción a tener en cuenta, pero si además tu proyecto ha de integrar los diferentes periféricos que hemos comentado, entonces es la opción idónea.

Con esta misma filosofía existen otras placas que integran un ATMEGA328P +  Dispositivo/Actuador/Módulo. Entre las más interesantes te presentamos las siguientes:


Puedes encontrar todos estos artículos y la información adicional están disponibles en nuestra tienda online.

sábado, 4 de mayo de 2013

¿Quieres aprender a diseñar tus propios robots?

Aquellos que estamos empezando en el mundo de los concursos de robótica, solemos tener el problema de afrontar los problemas de la construcción del robot desde cero. Al no tener experiencia es común cometer errores tontos que cuando llegamos a pista nos damos cuenta que nos van a impedir hacer nada. En mi caso, el primero robot con el que me presenté a un concurso tenía el principal problema de controlar mal los motores y cuando me di cuenta de ello ya era demasiado tarde.

Hoy quiero dejaros la idea, de que si queréis comenzar a construir vuestro robot, lo mejor es que comencéis cuanto antes y que no os rindáis  Si vais a una competición seguramente descubriréis mil fallos de vuestro robot que lo hacen totalmente inservible al lado de la mayoría de rivales, pero esto no tiene que echaros atrás, lo importante es descubrir estos defectos y corregirlos para mejorar.

Otra cosa importante es no estar solo, buscad a alguien con vuestra misma motivación, leed foros, blogs, leed a gente que hable de estas cosas, de como construirlas y como mejorarlas  No dudéis en preguntar en foros o blogs, seguro que están encantados de ayudaros, yo me ofrezco humildemente a responder todas aquellas dudas que sea capaz. Y sobre todo, aprender de los mejores, es decir de aquellos que ya tienen experiencia y saben de lo que hablan, aquellos que ya se han llevado mil palos porque así os evitareis dároslos vosotros también.

Hoy os traigo un vídeo, de los que creo que han sido los mejores durante mucho tiempo en carreras de robots velocistas. Es un vídeo muy interesante sobre la ponencia que dan Daniel Alvarez y Alberto Calvo en las jornadas de la robótica en Valladolid. Daniel y Alberto han sido campeones de velocistas los últimos años en casi todas las pruebas en las que se han presentado en España. Yo he tenido la suerte de competir con ellos en una edición de campus party y verlos en directo, aunque no se si se puede llamar competir a lo que hice, ya que mi robot tenía un error garrafal de diseño, que fue no utilizar el freno eléctrico en los motores, algo que os contaré el día que consiga un poco de tiempo para hacer una entrada sobre el control de motores. El caso es que podéis aprender mucho de la experiencia de Daniel y Alberto y seguro que os despierta alguna idea. No pretendo que os deprimáis  porque cuando veáis el nivel de estos caballeros os vais a asustar, pero es lo que hay. Hay que avanzar poco a poco, se pueden hacer robots mas sencillos e igualmente competitivos, pero no esta mal saber lo que se esta haciendo y tomar ideas, para no dar palos de ciego.



Como me dijo una vez un profesor, hay que aprender de los que saben mas que tu y si es posible copiar lo que hicieron para poder entenderlo realmente, comprender porque lo hicieron así y una vez conseguido eso, descubrir lo que puedes aportar tu y mejorarlo.

Un saludo a todos y por si me leen algún día, aprovecho para mandar un saludo a Daniel y a Alberto y dales mi enhorabuena por todo su trabajo, y también agradecerles que nos ilustren a todos con charlas como esta, es una verdadera gozada poder escucharles contar su experiencia.

domingo, 21 de abril de 2013

I feel freak: Fabrica tu propia forja casera

Esta semana hemos recibido nuevo material para la tienda, principalmente baterías, cargadores y herramientas por lo que hemos estado ocupados dando de alta el nuevo material y no he podido preparar una entrada nueva. Pero me ha llegado algo que me ha llamado en la atención, no tiene nada que ver con la electrónica pero podría considerarse bricolaje casero.

Si has visto el señor de los anillos o si has leído el Nombre del Viendo y eres tan freak como yo seguro que en algún momento has pensado, ¡¡Como molaría tener una forja!!. Pues bien hay que no sólo lo ha pensado sino que nos explica como construir nuestra propia forja y además nos enseña como fabricar un cuchillo con ella... :)


Espero que disfrutéis con estos vídeos  a mi me ha parecido muy curioso el tema :) y como me ha hecho gracia he pensado compartirlo con vosotros.


domingo, 14 de abril de 2013

Conclusiones de Alcabot

Bueno, ya estamos en casa. En realidad llegamos el miércoles, pero nada más llegar nos pusimos manos a la obra para aplicar los conocimientos que nos traemos con nosotros. Allí pudimos conocer a mucha gente, por lo que ha sido un viaje interesante. Conocimos a Xavi Puigmal, subcampeon de la categoría de velocistas con el robot Smith Black y a Daniel Giménez campeón y subcampeón de las categorías de rastreadores. Abajo os dejo un vídeo con los cuartos de final de la prueba de velocistas. En el vídeo no da la impresión de que los robots vayan tan rápido porque el circuito es muy grande, pero os aseguro que cuando los ves en directo impresiona muchísimo.



Xavi consiguió ser subcampeón en velocistas. El campeón fue el robot Gadgetocoptero de la escuadra Inspector Gadget. Xavi y Dani nos explicaron la importancia de hacer que el robot velocista sea ligero. El límite parece estar en unos 100 gramos, ya que con este peso o inferior, es posible conseguir un robot que a velocidad constante se mantenga en las curvas. En caso de no estar en estos pesos, la velocidad limite del robot es muy inferior, ya que obliga a frenar antes de las curvas para que el robot no se salga del circuito y esto solo se puede conseguir de forma eficiente sacando las telemetrías del circuito y dándoselas al robot.

Otra ventaja de utilizar un robot ligero es que con motores de menos par, y por tanto menos reducción se puede controlar correctamente el robot, mientras que cuanto más pesado es el robot más fuerza se requiere y por tanto más potentes deben ser los motores. Además, por lo general los motores más potentes suelen pesar mas, por lo que tenemos un pez que se muerde la cola, motores más potentes implican más peso y por tanto se requieren motores más potentes para mover el robot. La escuderías Smith e Inspector Gadget utilizan motores pololu HP de 10:1 y de 5:1 para sus robots velocistas, esto les permite conseguir unas velocidades máximas muy altas. Este tipo de motores tienen una velocidad punta del orden de 1000 rpm y un par relativamente alto para su tamaño y peso, pero por otro lado tienen el problema de tener bastante inercia lo que hace que una vez acelerado sea difícil reducir la velocidad. Por este motivo, para poder frenar a tiempo el robot con este tipo de motores es imprescindible que el robot poco, o bien, poder predecir la curva con unos 20cm de antelación. Otro factor importante es tener poco peso en el morro del coche, de hecho, lo ideal es que el centro de gravedad esté entre los dos motores ya que así, con menos aporte de par de los motores es más fácil hacer girar el robot, de lo contrario se requiere más par para girar el robot y esto en motores de baja reducción se consigue cambiando dramáticamente la velocidad de los motores lo que hace que se pierda capacidad de control. Respecto al controlador que utiliza esta escudería, principalmente es un Baby orangutan, que es un controlador que incorpora un chip Atmega328P como el de arduino y un driver TB6612FNG, esto demuestra que para ganar no es necesario usar un controlador de 32 bits, aunque nunca viene mal tener mayor potencia de computo.

Con todo lo que hemos aprendido ya hemos diseñado un nuevo robot prototipo para evaluar el tema de los pesos, aquí os dejo una foto y mas adelante os guiaré para poder construir uno similar a aquellos que esteis interesados.



En la prueba de rastreadores Daniel Giménez consiguió ser campeón y subcampeón de la prueba. Él nos estuvo enseñando como conseguir un algoritmo para sacar la telemetría del circuito online, con tu robot, es decir, poner a tu robot a rodar en el circuito a baja velocidad y que te envíe los datos del circuito por bluetooth. También nos dio una importante lección respecto a los robots rastreadores, y consiste en que la placa de sensores debe estar en forma de U invertida, es decir formando un arco. Esto, tiene su principal fundamento en que el robot para centrarse en el camino utiliza un algoritmo PID. Si los sensores están en forma de linea, cuando el robot llega a una intersección con forma de angulo recto, cuando se salen los primeros sensores no se tiene información del circuito, mientras que si tienen forma de U, cuando el morro sale de la linea otra parte de los sensores siguen viendo una linea y aplicando un PID se puede volver a centrar en el camino.

Por último el campeón indiscutible de la prueba de sumo fue Xavi nuevamente, consiguió el primer, segundo y tercer premio de esta prueba y de la prueba de mini sumo. Pese a que nuestro robot tenía una inteligencia bastante buena, sus robots conseguían movernos con relativa facilidad, parecíamos un trocito de corcho. Xavi nos explicó como construyó sus robots y nos dio las claves principales para que tu robot pueda ser competitivo. Para empezar, todos los materiales utilizados son de pololu  y como controlador utiliza Picaxe. Los motores utilizados en los mini sumo son los motores de pololu HP 50:1 o el pololu HP 30:1. Sin embargo, llevar el peso al limite es imprescindible para que el robot tenga un buen agarre. Además, otro de los puntos más importantes son las ruedas utilizadas. Por lo que hablamos con Xavi y con otros constructores, las siliconas son de los materiales más recomendables. La silicona más empleada ultimamente es la llamada Mold Max cuya dureza 10A hace que la superficie de contacto del robot con el suelo sea enorme. A continuación os dejo el vídeo resumen de la clasificación de Fatbot-mini para que veáis lo robots en pleno funcionamiento.

En el primer combate podéis ver nuestro robot contra el robot Toxic de la escuadra Smith. En este caso, pagamos en el primer combate la novatada de poner el robot demasiado cerca del borde... cosas que pasan :) de todas formas en el segundo podéis ver como el robot de Xavi nos saca del Dojo como si no pesásemos nada.  Para que os podáis hacer una idea, nuestro robot pesa unos 350 gramos y el robot de Xavi pesa casi 500 gramos. En el siguiente combate podéis ver un combate que conseguimos ganar, gracias a encontrar al otro robot por detrás antes que el a nosotros. En la segunda manga nos terminamos enfrentando cara a cara y no pudimos hacer nada. La conclusión que extraemos es que tenemos que aumentar el peso de nuestro robot y mejorar el material de contacto con el suelo, la idea que nos dieron unos compañeros con los que hablamos allí, es recubrir las orugas con neopreno, más adelante os contaremos el resultado.






lunes, 8 de abril de 2013

Estamos en Alcabot 2013

Si seguís nuestro blog, os habréis dado cuenta de que hace unos días que no publicamos. Si pensáis que ha sido porque estábamos de vacaciones, estabais equivocados. Mañana Lunes 8 de Agosto y pasado Martes 9 de Agosto de 2013, se celebran las competiciones de robótica de la semana de la robótica en La Universidad Alcalá de Henares. Durante las últimas semanas hemos estado preparando un equipo de robots para dicha competición. Hemos desarrollado cuatro robots en tan sólo unos días por lo que no esperamos conseguir grandes cosas, pero la idea es participar, aprender, disfrutar de la experiencia y tener un punto de partida para ir mejorando de cara al año que viene.

Si queréis seguir las pruebas mañana y pasado aquí os dejo un enlace a los horarios de las pruebas y aquí os dejo otro enlace a la publicación en streaming de las mismas.

A continuación os presento el equipo de robots que hemos preparado. En la izquierda del todo, tenemos el robot javotron desarrollado por Jaiver Perez que realizará la prueba de rastreadores el Lunes. El siguiente robot, un poco más atrás, es el robot FatBot-mini, este robot se presentará a la prueba de mini sumo que se celebrará el Martes. Y a Continuación podemos ver los robots G1-v1 y G1-v2, que se presentarán a la prueba de velocistas del Martes.


La prueba de rastreadores básicamente consiste en resolver un laberinto formado por lineas negras en el suelo. Antes de las intersecciones se encontrarán lineas a un lado o a otro, que indica que camino debe tomarse en la próxima intersección. Si por ejemplo la marca se encuentra al lado izquierdo de la linea central, entonces en la próxima intersección se deberá tomar el camino izquierdo, mientras que si se encuentra al derecho habrá de tomarse el camino derecho. En algunas competiciones incluso, se tiene en cuenta la posibilidad de encontrar dos marcas, en cuyo caso habría que elegir el camino central, en una intersección con tres caminos posibles. Podéis ver la normativa para la prueba de rastreadores aquí.

Para esta prueba se utilizará el robot Javotron, que utiliza el siguiente hardware:



La reglas de la prueba de mini sumo, es bastante sencilla. Consiste en sacar de la pista al rival, antes de que sea el quien eche a tu robot. Para esta prueba hemos basado nuestro robot en un kit de mini sumo, el cual hay que decir que ha dado unos resultados excelentes, incluso utilizando baterías AA convencionales, sin necesidad de utilizar baterías Lipo.

A continuación podéis verlo en pleno funcionamiento:




Por último, una de las pruebas de mayor dificultad es la prueba de velocistas. Esta es la prueba en la que los diferentes equipos demuestran su capacidad técnica al máximo nivel. En esta prueba, existen dos calles marcadas con una linea de color negro. Un robot se pone en una de las lineas y el otro robot se pone en otra, pero con una distancia entre ellos de aproximadamente la mitad del circuido. De este modo cada robot comienza el circuito desde un punto y han de conseguir pillar uno al otro. El primero robot que consiga alcanzar al contrincante gana la carrera. Podéis ver aquí las reglas de la prueba de velocistas.

Nuestra intención es competir en esta prueba con la plataforma G1. Esta plataforma es el nuevo desarrollo que tenemos en marcha, se encuentra en fase beta y queremos medirlo para evaluar su rendimiento y posibles mejoras de cara a realizar la versión final. Esta plataforma, es un robot especialmente pensado para competir en pruebas de velocistas o rasteradores, está pensado para ser utilizado con placas de desarrollo Arduino. Para ello tiene un zócalo donde podemos insertar una placa Arduino y programarlo como si se tratase de un Shield. En nuestro caso estamos trabajando con un Arduino DUE y el resultado esta siendo muy satisfactorio.


El hardware empleado en este robot es:

Aquí podéis verlo en funcionamiento:




Este Robot es otra versión del G1, con la que pretendíamos competir con motores diferentes y diferentes algoritmos para poder evaluar una frente a otra, pero finalmente no es seguro que termine compitiendo en esta ocasión. Esta opción tiene una velocidad punta mayor, y encoders en las ruedas. Esto permite con tiempo realizar un algoritmo mucho mejor que el desarrollado en el caso anterior, pudiendo controlar la velocidad real de las ruedas mientras que en el caso anterior la velocidad de las ruedas se presupone a partir de la frecuencia de la señal PWM generada.


Por último os dejo otra foto de la escudería al completo, esperemos que haya suerte y os mantendremos informados.




miércoles, 27 de marzo de 2013

Problema: Mi Raspberry Pi no saca video por el HDMI

En muchas ocasiones he hablado con gente que me ha comentado que su Raspberry no sacaba ninguna señal, y no sabían exactamente cual era el motivo. Pareceque el dispositivo se enciende pero no hace nada, me comentaban. Este problema lo ha sufrido mucha gente y yo mismo lo he experimentado algunas de las distribuciones que he instalado en mi Raspberry.

En ocasiones, por algún motivo, la Raspberry Pi no saca imagen por el puerto HDMI. Por defecto las configuraciones de los sistemas basados en Raspbian (Whezzy) suelen estar configurados para que autodetecte el monitor CRT o el HDMI según si el HDMI está o no conectado. Sin embargo, a veces esta autodetección no funciona correctamente.

Pero este problema tiene una solución muy sencilla. Si introducimos la tarjeta SD en nuestro PC, veremos que aparece una pequeña partición de unos 90Mb aproximadamente. En ella además se encuentra un archivo llamado config.txt. Este archivo contiene la mayor parte de la configuración de nuestra raspberry pi, y editándolo podemos cambiar la resolución, el overclock, la memoria asignada para vídeo y muchas otras cosas.

Concretamente para solucionar el problema que comentamos hay varios parámetros que nos interesan En primer lugar, tenemos el parámetro hdmi_force_hotplug. Este parámetro fuerza la detección en caliente del HDMI, lo que da una segunda oportunidad si hemos encendido la raspberry sin haber conectado previamente el cable HDMI.


 hdmi_force_hotplug=1 Use HDMI mode even if no HDMI monitor is detected


Con esto debería ser suficiente, pero aún así es posible, que no funcione correctamente. En este caso, habrá que configurar la resolución ya que puede no estar emitiendo una resolución compatible con nuestra pantalla. En mi caso he utilizado full-HD con los siguientes parámetros:

hdmi_group=2

hdmi_mode=68

El primero se refiere al grupo tipo de resolución y el segundo a la resolución concreta. Para más información podéis referiros al wiki de referencia sobre la configuración de Raspbian. Otro parámetro de configuración importante para que el HDMI funcione correctamente, es configurar si queremos emitir a través de HDMI como DVI o como HDMI. El primero no incluye el sonido en la emisión mientras que el segundo si emite el sonido a través del HDMI, con esto podemos elegir si queremos obtener el sonido a través del puerto analógico o a través del digital.


 hdmi_drive=1 Normal DVI mode (No sound)
 hdmi_drive=2 Normal HDMI mode (Sound will be sent if supported and enabled)


Con esto debería funcionar correctamente, pero si esto no fuese suficiente, es posible forzar por completo la unidad HDMI con la opción hdmi_safe que equivale a forzar varios parámetros que obligan a la salida por el HDMI.

hdmi_safe=1

Además de esto, en el archivo config.txt se pueden modificar otras cosas interesantes, como por ejemplo el modo de vídeo, entre NTSC americano, Japonés o PAL.

sdtv_mode=0    Normal NTSC
sdtv_mode=1    Japanese version of NTSC – no pedestal
sdtv_mode=2    Normal PAL
sdtv_mode=3    Brazilian version of PAL – 525/60 rather than 625/50, different subcarrier

El modo de pantalla 4:3, 14:9 o 16:9

sdtv_aspect=1  4:3
sdtv_aspect=2  14:9
sdtv_aspect=3  16:9

Y para los que quieran experimentar, también se puede modificar cosas como, si queremos que rote la imagen, si queremos que la invierta verticalmente u horizontalmente.

display_rotate=0        Normal
display_rotate=1        90 degrees
display_rotate=2        180 degrees
display_rotate=3        270 degrees
display_rotate=0x10000  horizontal flip
display_rotate=0x20000  vertical flip

Y por supuesto se pueden modificar cosas el overclock de la Raspberry y la memoria asignada a la GPU. Pero no sólo es posible hacer estas modificaciones, hay muchas más, pero ten cuidado con las opciones avanzadas y sobretodo con el overclock porque puedes dañar tu raspberry.

A continuación os dejo los parámetros con los que yo he hecho funcionar por el HDMI mi dispositivo. Simplemente he añadido estas lineas a mi archivo, si algún parámetro ya está en vuestro archivo, podéis modificarlo, pero no borréis lo que haya de antemano sin hacer una copia de seguridad previamente.

hdmi_force_hotplug=1

hdmi_group=2

hdmi_mode=68

sdtv_mode=2

sdtv_aspect=3

hdmi_drive=2