Mostrando entradas con la etiqueta Tutorial. Mostrar todas las entradas
Mostrando entradas con la etiqueta Tutorial. Mostrar todas las entradas

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.




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.

martes, 26 de febrero de 2013

RaspBMC: Canales de Televisión Online y deportes

Hace unos días os hable de como instalar plugins en vuestro Media Center construido con Raspberry Pi. Hoy os quiero hablar de uno particularmente interesante con el que podéis ver la televisión a través de Raspberry Pi, así como otros canales de televisión y de deporte como Gol televisión. El plugin en cuestión es rmtpGUI+ y nos lo traen los amigos de XmbcSpain para XBMC, el problema para instalarlo en Raspberry es que no hay una versión oficial para instalar, pero no os preocupéis  como comentan nuestros amigos tan sólo hay que descargar la versión corregida por dj2d al que aprovecho para agradecer enormemente el trabajo.

Al descargar el archivo, tendréis un comprimido en zip, si lo abrís veréis que contiene una carpeta y un archivo llamado librmtp.dll, pues básicamente hay que eliminar este archivo de dentro del paquete y proceder a instalar el plugin normalmente.


A partir de aquí tendremos nuestro nuevo plugin funcionando en la sección de plug-ins de vídeos. Por cierto, hoy juegan la final de la copa del rey el Madrid y el Barça...



Aquí tienes una lista de los componentes utilizados:

lunes, 25 de febrero de 2013

RaspBMC: Instalar nuevos plug-ins en tu Media Center

XBMC trae de serie multitud de plugins para instalar. Sin embargo la mayoría relacionados con canales extranjeros  con suerte en inglés. Casi todo lo relacionado con canales en Españoles y contenido multimedia en castellano hay que instalarlo a posterior. Hoy os voy a explicar como instalar pulgins a partir de archivos zip para que podáis instalar nuevos add-ons en vuestro sistema.

Lo primero para poder instalar un add-on a partir de un archivo zip, es descargar dicho archivo e introducirlo en la tarjeta SD de la Raspberry. La forma más cómoda para esto es tenerla conectada a nuestro router (ya sea de forma inalambrica o por cable). Una vez hecho esto, es necesario consultar la IP que tiene nuestro dispositivo y conectarse mediante FTP para subir el plugin en cuestión.

A continuación os detallo los pasos:


Ahora hay que averiguar la IP de nuestro dispositivo es muy sencillo, elegimos la opción "Sistema" y pulsamos la tecla abajo en el teclado y elegimos "Info del Sistema".




Una vez que se pulsa esta opción, se muestra la configuración del sistema y entre ellas aparece la dirección IP del dispositivo. En la imagen siguiente, se puede ver en IP Address que la dirección es 192.168.1.107.

Abrimos el filezilla y elegimos la opción Archivo ==> Gestor de Sitios y pulsamos el botón "Nuevo sitio".  Le ponemos un nombre de perfil por ejemplo "Raspbmc" y configuramos las opciones de conexión. En primer lugar hay que utilizar en servidor la IP que hemos encontrado el paso anterior, el protocolo a utilizar es SFTP y el modo de acceso Normal. Como usuario hay que emplear: pi y el password es raspberry. Es posible modificar estos datos de acceso pero son los parámetros configurados por defecto.


Al pulsar a conectar aparecerá un cuadro de dialogo ya que el sitio (nuestra Rasbperry Pi) no tiene un certificado valido y nos pedirá confirmar si confiamos en él, le decimos que sí.


A continuación, creamos una carpeta llamad plugin dentro de la carpeta pi (la carpeta pi es la carpeta de usuario). Una vez que esto está hecho es tan fácil como seleccionar el zip en el lado izquierdo donde tenemos un navegador de nuestro PC o portátil y lo arrastramos a la carpeta plugin (en el lado derecho) donde vemos la tarjeta SD de nuestra Raspberry.


Una vez arrastrado el archivo zip a la parte correspondiente para la Raspberry veremos como se realiza la subida del archivo.


Una vez subido, entramos en Ajustes dentro del menú Sistema.


Elegimos la opción Add-ons.


Y una vez aquí usamos la opción "Instalar desde un archivo .zip"



A partir de aquí, aparecerá el sistema de archivos por el que habrá que navegar hasta encontrar el plugin a instalar. Recordemos que hemos creado una carpeta llamada plugins en la carpeta de usuario por lo que la ruta será /home/pi/plugin por lo que habrá que recorrer el árbol de directorios     hasta encontrar el plugin que en nuestro caso es el de películas a la carta.





 Una vez ahí pulsamos en OK y el plugin se instalará automáticamente.
Podemos encontrarlo si entramos en Videos => Add-ons.


Aquí tenemos todos los plugins que hayamos instalado de esta categoría.


Algunos plugins interesantes que puedes instalar:
  • Películas a la carta: Un plugin que permite navegar por multitud de sistemas de películas y series online. Además permite descargar o ver online las películas o capítulos. Incluye conocidas páginas como: Series y Peliculas yonkis, Series Pepito ó Series ly.
  • Sports Devil: Para ver deportes online, incluye páginas como Roja Directa.
  • rtmpGUI+: Televisión Online, Autonomicas, Nacionales, Dibujos y Deportes (entre ellos canales argentinos donde se puede ver en castellano partidos de pago). Esta versión esta reparada por los amigos de XMBCSpain ya que las anteriores no funcionaban correctamente.



jueves, 21 de febrero de 2013

RaspBMC: Xbox Media Center en tu Raspberry Pi

Cuando adquirimos una Raspberry Pi, en muchas ocasiones todavía no sabemos lo que vamos a hacer con ella, pero en muchas otras, ya tenemos claro que queremos  crear nuestro propio media center. Este dispositivo es perfecto para dicha aplicación, ya que hay disponibles diferentes versiones del famoso Xbox Media Center, el mejor entorno media center hasta el momento. Entre otros, los mas famosos son la distribución de Open Elec y Xbian. Este último da muy buen resultado y otro día hablaremos de él en detalle, hoy vamos a ver como instalar una nueva distribución llamada RaspXMBC, ya que una de mis intenciones es probar su estabilidad y velocidad para así poder compararla con la de Xbian.

Aquí os dejo el enlace a la página oficial de RaspBMC, en ella podéis descargar el instalador para windows y también el instalador para Mac-OS. También es posible descargar las imágenes para grabar directamente en tu SD.

Hoy vamos a tratar el método más sencillo, que consistirá en instalar el sistema desde Windows, a continuación detallo los pasos a seguir:
  • Descargamos el instalador, y lo descomprimimos en nuestro escritorio mismamente :)
  • Ejecutamos el archivo llamado setup que encontraremos en la carpeta donde hemos descomprimido el archivo descargado.
  • Una vez ejecutado aparecerá la siguiente advertencia, tenedla en cuenta, la tarjeta que uséis para esto se borrará así que no la saquéis de la cámara de fotos para instalar RaspBMC sin guardar antes vuestras fotos en un sitio seguro, sino las sustituirá por preciosas imágenes de fondo para el sistema :). Una vez que tengáis esto claro, podéis pulsar Accept.
  • Ahora nos aparecerá la imagen del instalador donde podemos seleccionar la unidad donde queremos instalar el sistema. Para un uso sencillo (usuarios no avanzados) lo más fácil es seleccionar la unidad, y seleccionar la opción I accpet the license agreement. Los usuarios avanzados pueden elegir configurar manualmente la red, aunque por defecto utilizará el servidor DHCP de nuestro router por lo que yo no recomiendo hacerlo de forma manual. Por otro lado para los que tengan un disco en red pueden conectarse y ofrecer la información en red con la opción NFS, otro día veremos estas opciones en detalle, hoy vamos a instalarlo de forma sencilla, así que no usaremos estas opciones: 

  • Por último pulsamos Instalar. Por último nos felicitará por nuestra proeza y nos dará la opción de donar a la gente del proyecto... esto ya es opcional y va con la conciencia de cada uno.
  • Antes de encender hay que conectarla a vuestra pantalla o televisor y a vuestro router a través del puerto ethernet. Una vez conectada y encendida, comenzará a instalar el sistema nos informa de que puede tardar unos 15 a 25 minutos y nos dice que podemos ir a tomarnos un café.
  • Una vez finalizado este proceso se reiniciará el sistema y a continuación configurará el sistema en el primer arranque.

Una vez instalado ya podéis disfrutar de vuestro propio media center basado en un sistema XMBC sobre Raspberry. Mis primeras impresiones, son que es más ligero que Xbian, el entorno a primera vista es idéntico pero corre mucho más suave y fluido... de momento mi impresión ha sido muy buena, veremos en unos días.


lunes, 4 de febrero de 2013

Tutorial: Samsung Sync Master error Not Optimum Mode (Solución)

Si eres uno de los propietarios de un LCD Samsung Sync Master, puede que ya hayas visto aparecer en tu monitor alguna vez el mensaje  Not Optimum Mode Recommended resolution: 1280x1024 60Hz. Si ya te has vuelto loco porque es justo la resolución que tenías configurada, no le des mas vueltas, este error se debe a un fallo en la serie de integrados que incorporaron. Puedes encontrar mucha gente que te dará soluciones de lo mas diversas, algunas funcionan durante un tiempo pero antes o después volverá a fallar, os dejo un vídeo con el problema para que veáis bien a que me refiero, además el vídeo incluye una de estas posibles soluciones.



El causante de este problema es que muchos de estos monitores incorporan un chip de procesamiento NOVATEK que incorpora una resistencia interna de 50 Ohmios que tiende a fallar. Por lo tanto una solución es abrir tu monitor y ponerte manos a la obra para agregar tu mismo esta resistencia entre las patillas del susodicho chip.
Este trabajo no es muy complejo para alguien con alguna experiencia soldado componentes  pero debe quedar claro que sólo se recomienda si tu monitor ya está fuera de garantía. Además, no olvides que si realizas mal la soldadura podrías dejar inutilizable tu monitor. Nosotros, desde aquí, te mostramos las opciones que tienes para solucionar el problema pero no nos podemos hacer responsables del resultado. Debes estar seguro de tener la experiencia necesaria para realizar la reparación tu mismo, ya que serás el beneficiado y el responsable de la operación, que como verás no es muy compleja.



Aquí os dejo un vídeo tutorial de como podéis resolver el problema. En este tutorial se usa una resistencia de 55Ohmios construida con cuatro resistencias de 22Ohmios en paralelo, si tienes dudas sobre como combinar resistencias en serie ye en paralelo, puedes consultar este otro trabajo donde se explica en detalle este tema.




Y aquí una foto de como debería quedar. ¡Un saludo a todos y suerte!


miércoles, 30 de enero de 2013

Tutorial: Resistencias en Serie y en Paralelo

Hoy os traigo un pequeño tutorial para aquellos que necesitáis una resistencia de un determinado valor que no la tenéis. Como ya sabréis la podéis conseguir a partir de las que ya tenéis. En la mayoría de los casos, ya conoceréis estos conceptos, o en el peor caso conoceréis las formulas. Lo que pretendo aportar, es una forma de entender conceptualmente el porque, de la forma para calcular la resistencia equivalente. Es decir pretendo dar sentido a las formulas que ya conocéis (más allá de las matemáticas subyacentes).

Recordaré las formulas antes del vídeo para que podáis seguir mejor la explicación:
El caso 1, corresponde a resistencias en paralelo y el segundo corresponde a resistencias en serie. La forma de calcular la resistencia equivalente de dos resistencias en serie es mediante la suma de sus valores, es decir Req=R1+R2. Y de la misma forma, la resistencia equivalente de dos resistencias en paralelo, se obtiene utilizando la equivalencia 1/Req=1/R1 + 1/R2.

A continuación os dejo el vídeo donde aclaro este tema.



Como apunte, quiero aclarar un detalle sobre el video ya que al final comento que lo único que varía es la resistencia y no la tensión. Bueno, son cosas del directo, lo que en realidad quiero decir es que con una fuente suficientemente potente, si cambiamos las resistencias (sea cual sea la resistencia que utilicemos) la tensión en los extremos de las resistencias no debería haber variado. 

Esto si consideramos una fuente  con una capacidad infinita de aportar intensidad sería siempre cierto, ya que la resistencia determinaría la intensidad que debe circular según la formula dada por la ley de Ohm V=IR. Por lo tanto, a una diferencia de potencial V dada, y una resistencia R (fijos) siempre tendríamos una intensidad que se podría despejar de los dos anteriores.

Pero claro en la realidad, una fuente o batería siempre tiene una capacidad limitada para aportar intensidad. En una batería esto se llama capacidad de descarga y en una fuente se puede obtener a partir de los vatios de la misma (teniendo en cuenta que la potencia es igual P=IV. Y aquí es donde llega el problema, si la batería o fuente de alimentación no puede dar suficiente corriente... entonces I es inferior a la que debería ser y por tanto V como depende de I y de R también cae... a lo que quiero llegar es que si alguna vez veis que una fuente que debería dar una tensión determinada y al alimentar vuestro circuito veis que cae mucho es mala señal.

Por si alguien va perdido, recordaré el significado de cada uno de los parámetros de las fórmulas:
  • V - Voltaje o diferencia de potencial (se mide en voltios).
  • I   -  Intensidad (se mide en Amperios que equivalen a 1 A=1 Culombio por segundo).
  • C  -  Culombio (es una cantidad de electricidad, es decir la cantidad de electrones que pasan en un segundo con una corriente de 1 amperio, esto son muchísimos electrones :) lo pongo más abajo en notas. En definitiva es la unidad que mide cantidad de electricidad).
  • R - Resistencia (se mide en Ohmios y básicamente se podría entender como la medida en que los materiales a oponerse al paso de la corriente a través de ellos).
  • P  - Potencia (se mide en Vatios y representa una cantidad de energía absorbida  disipada o entregada por un elemento en un determinado periodo de tiempo).


sábado, 10 de noviembre de 2012

Instalando Quake III en Raspberry Pi

Hace más de tres meses que recibí mi Raspberry Pi y aún no había tenido la ocasión pero... por fin... esta semana, he pedido una tarjeta SD de 8 GB Clase 10 Extreme Pro de 95Mb/seg, un teclado y un ratón para utilizar exclusivamente en este menester. Y... ¿que mejor para probar nuestra Raspberry Pi que instalando Quake III?.

Lo único que necesitas para hacer funcionar tu Raspberry Pi, es:
  • Un transformador con salida micro USB que saque por DC al menos 700mA aunque yo recomiendo al menos 1,2A  para no quedaros cortos.
  • Una tarjeta SD, yo he pillado una de alta velocidad porque tengo entendido que la velocidad de la tarjeta es una de las cosas que más limita la potencia de Rapberry Pi.
  • Una televisión y un un conector de vídeo compuesto (RCA cable amarillo) o bien una pantalla de PC con conector hdmi.
  • Un teclado y un ratón USB.
  • Un cable de red y un router con conexión a Internet.
  • Tener puesto en la radio Rock FM o en su defecto poner una canción de los Guns and Roses.


Pero bueno, no empecemos la casa por el tejado. En primer lugar hay que instalar un SO a nuestra tarjeta SD, yo como soy un poco vago estoy en Windows y he utilizado este sistema para realizar la instalación de la imagen. En esta página podéis encontrar las diferentes imágenes preconfiguradas para instalar en la tarjeta de vuestra Raspberry Pi. Yo os recomiendo utilizar Raspbian “wheezy”que es una optimización de la versión debian para Raspberry, pero si pretendéis instalar la maquina virtual de Java, esta versión no os valdrá y tendréis que ir a la versión soft-debian pura. Bueno, en este caso nos centramos en la primera de estas, la descargáis y montáis la imagen en una tarjeta SD, aquí os dejo el enlace de la guía para principiantes. A continuación os resumo los pasos que yo seguí, en el enlace podéis encontrar varios métodos más, según las ganas que tengáis de frikear y el SO que utilicéis. Yo como ya he dicho no dispongo de mucho tiempo libre y he utilizado Windows:

  1. Descargar la imagen desde el mirror o por torrent. Cómo ya he dicho, asumo que usaremos Raspbian “wheezy” download 2012-10-28-wheezy-raspbian.zip
  2. Extraer el archivo imagen 2012-10-28-wheezy-raspbian.img del archivo .zip descargado.
  3. Insertar la tarjeta SD en tu lector de tarjetas SD y fijate bien en la letra de la unidad que le corresponde.Si la tarjeta no es nueva, deberías formatearla; de lo contrario Win32DiskImager puede fallar al grabar la imagen.
  4. Ahora descarga la herramienta Win32DiskImager. Los enlaces de descarga se encuentran al lado derecho de la página, descarga el zip con los binarios para poder ejecutarlo directamente.
  5. Extrae el ejecutable del archivo zip y ejecuta el archivo Win32DiskImager. Recuerda ejecutarlo como Administrador!
  6. Elige la imagen 2012-10-28-wheezy-raspbian.img que deberías haber extraído previamente.
  7. Selecciona la unidad correspondiente a tu tarjeta SD. Ten cuidado en seleccionar la unidad correcta ya que si te equivocas borrarás todo el contenido de la unidad que elijas ¡si te equivocas puede que pierdas toda tu información!
  8. Pincha en "Write" y espera a que termine la escritura para completar la operación.
  9. Sal del programa y extrae la tarjeta SD.
  10. Ahora puedes insertar la tarjeta en tu Raspberry Pi, ahora puedes encenderla, y si todo ha ido bien debería arrancar el sistema operativo. 




Al arrancar la Raspberry Pi hay dos cosas importantes, la primera es tener en cuenta que el usuario y contraseña por defecto para el Sistema Operativo Wheezy es usuario: pi y contraseña: raspberry, la segunda es que se debería ejecutar por defecto un script llamado raspi-config y que puede ser ejecutado en cualquier momento utilizando el comando: sudo raspi-config
En dicho script, se pueden ver las opciones mostradas a continuación entre ellas cabe destacar las siguientes:
  • Expandir la partición de memoria de tu tarjeta SD: Si estás utilizando una tarjeta de memoria de más de 4GB puedes elegir esta opción para extender la partición de memoria utilizando así toda la memoria de tu tarjeta, para ello utiliza la opción expand_rootfs
  • Para poner el teclado en español hay que elegir la opción del menú configure_keyboard y seguir las indicaciones en pantalla. Es importante tener en cuenta que hay que ir pulsando el tabulador para ir realizando las selecciones y posteriormente aceptar con la tecla enter.
  • Podéis overclockear vuestra Raspberry Pi, yo la he subido a 800Mhz para realizar estas pruebas.
  • También es importante subir la memoria dedicada a la gráfica con el comando meomry_split, os recomiendo 128Mb no pongáis los 256Mb ya que en ese caso el sistema tiende a tener parones.
Pulsando la tecla ESC se accede a la consola del SO. Lo siguiente que debéis hacer es conectar a Internet vuestra Raspberry Pi utilizando un cable Ethernet entre tu dispositivo Raspberry y un router con conexión ADSL o similar. Si todo funciona correctamente deberías poder ejecutar el comando ifconfig para comprobar que la tarjeta ha obtenido una IP válida. Para comprobar que la conexión funciona puedes ejecutar ping -c 3 www.google.es y deberías obtener respuesta de sus servidores.
Podéis encontrar más información básica sobre como hacer ciertas cosas con Linux en Raspberry Pi iniciación con raspberry.

Y ahora... vamos a comenzar con la instalación de Quake 3, os propongo la solución que a mi me función que es la que consiste en compilar Quake 3 para Raspbian, para lo que hay que seguir los pasos propuestos en este tutorial y que paso a describir a continuación:


  1. Actualiza el sistema con los siguientes comandos (el último en mi caso no se ejecutó correctamente pero sin embargo el sistema ha funcionado perfectamente):
        sudo apt-get update
        sudo apt-get dist-upgrade
        sudo rpi-update 192
    • Reinicia con el comando reboot.
  2. Instala los paquetes necesarios para realizar la compilación:
        sudo apt-get install git gcc build-essential libsdl1.2-dev
  3. Y ahora descarga el código fuente de Quake 3:
        mkdir ~/src
        cd ~/src
        git clone https://github.com/raspberrypi/quake3.git
        cd quake3
  4. Ahora hay que editar el archivo build.sh del directorio quake3 para cambiar el uso de las librerías a utilizar.
        cambia la linea 8 por:  ARM_LIBS=/opt/vc/lib
        cambia la linea 16 por: INCLUDES="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads"
        Comenta la linea usando el simbolo # 19:    #CROSS_COMPILE=bcm2708-
  5. Ahora ejecuta el script que realiza la compilación: ./build.sh
  6. Y... ahora puedes ir a hacerte un café, te o tomarte unas cervezas con tus colegas, porque esto tarda un buen rato (aproximadamente 1 hora).
  7. Ahora tienes que encontrar los archivos: pak0.pk3, pak1.pk3, pak2.pk3, pak3.pk3, pak4.pk3, pak5.pk3, pak6.pk3, pak7.pk3, pak8.pk3 y colocarlos en el directorio build/release-linux-arm/baseq3. Estos archivos los puedes encontrar en el cd original de tu Quake III
  8. Una vez compilado puedes crear un directorio limpio y mover ahí los archivos listados a continuación, puedes eliminar el resto del directorio:
quake3arena/ioq3ded.arm
quake3arena/ioquake3.arm
quake3arena/baseq3/cgamearm.so
quake3arena/baseq3/qagamearm.so
quake3arena/baseq3/uiarm.so
quake3arena/lib/libSDL.so
quake3arena/lib/libSDL-1.2.so.0
quake3arena/lib/libSDL-1.2.so.0.11.3
Ahora ya puedes entrar en la carpeta anterior y ejecutar el archivo ioquake3.arm. Usando el comando ./ioquake3.arm comenzará el juego.
    Quiero agradecer a Shea Silverman su trabajo por servirme de fuente de inspiración.


    Bueno, por último aquí os dejo un vídeo demostrativo del resultado, se que la calidad del vídeo no es muy buena, pero considero que tampoco hace falta mas. Como podéis ver el Quake III funciona más que fluido con la configuración apropiada, habrá que seguir probando cosas para comprobar los límites del Hardware. De momento la prueba de concepto ha sido un éxito!