Draft Idea

Proyectos, ideas y demás :D

hackvision shield mod v1.0. IV

Publicado en, septiembre 12th, 2012 por Draft Ideader

Como el hardware sin el software no es nada, en esta entrada se muestran algunos ejemplos de como utilizar la biblioteca TVout en el hackvision shield mod (tambien funcionaria en un hackvision normal, o simplemente conectando las salidas adecuadas al televisor).

Los ejemplos se centran en la biblioteca TVout, no tienen en cuenta el resto de las características que permite el hackvision ( sonido y mandos). Estos ejemplos son bastante toscos, en cuanto que no están pensados para ser muy reusables, su unica intención es ver como trabajan las diferentes funciones que la biblioteca nos proporciona y repasar un poco de operaciones sobre bits (muy útil para ahorrar memoria en Arduino).
 

 

El ejemplo esta compuesto de 3 archivos y contiene 4 ejemplos distintos:

  • demoDraftidea.ino : Contiene el programa principal con los 4 ejemplos.
  • DIlogo.cpp : Contiene los datos que representan el logo del blog (DraftIdea).
  • DIlogo.h : Contiene las cabeceras del archivo anterior.

 

HVSM demoDraftIdea. Efecto bandera

HVSM demoDraftIdea. Mostrando imagen

HVSM demoDraftIdea. Efecto bandera

HVSM demoDraftIdea. Efecto bandera

HVSM demoDraftIdea. Simulación coche

HVSM demoDraftIdea. Simulación coche

 

Comentarios del código:

Todo el código de demoDraftidea.ino está comentado para poder entender los ejemplos. Aquí un resumen que también se encuentra en el archivo de código (pero en inglés):

Hay 4 ejemplos distintos:

  1. carMovement(): Simulación de un coche. Utiliza funciones de dibujado de líneas.
  2. imageMovement(): Lee y muestra una imagen codificada en el programa de Arduino.
  3. proceduralGeneration(): Es un tipo de efecto plasma usando técnicas de generación de imágenes procedurales. Usa diferentes funciones y operaciones juntas para obtener animaciones.
  4. imageTransformation(): Obtiene una imagen de la pantalla y la transforma varias veces (con un efecto bandera) y la muestra cada transformación por pantalla obteniendo una animación. Necesita mucha memoria, lo que puede tra problemas con los Arduinos con un Atmega 168.

En cuanto a DIlogo.cpp y DIlogo.h contienen la imagen codificada en el código y la cabecera del archivo. La estructura de la codificación de la imagen sigue la siguiente estructura:

 PROGMEM const unsigned char NombreImagen[] = {
tamañoHorizontal,tamañoVertical,
Información codificada siguiendo las instrucciones que se indican abajo y separando cada codigo hexadecimal por una coma}

Para obtener la imagen codificada es necesario utilizar el programa image2Code y seguir los pasos descritos http://code.google.com/p/arduino-tvout/wiki/Bitmaps

Convertir imagen para TVOut

Convertir imagen para TVOut

En la imagen anterior se muestra un resumen con los pasos a realizar para obtener la imagen codificada. Es necesario tener en cuenta que el resultado obtenido es necesario poner cada uno de los codigos (0x00 o similares) todos seguidos separadolos por una coma y quitando los corchetes.

 

Código:

Archivos comprimidos en ZIP: DemoDraftIdea

Ante cualquier duda comentad.

Actualizacion: Añadido vídeo.

hackvision shield mod v1.0. III

Publicado en, julio 15th, 2012 por Draft Ideader

En este post se describen las nuevas conexiones en la placa con la finalidad de poder conectar un mando y la construcción del mando en si. Además a la placa se le añade un LED indicador de encendido y un botón de Reset.

Las conexiones a realizar para montar el botón de Reset, el indicador de encendido (opcionales) y el puerto de expansión para el mando están descritas en la siguiente imagen:

Montaje sobre placa perforada

Montaje sobre placa perforada

 

El puerto de expansión impresdindible es el superior y es el que a en este momento está montado en la placa. Este puerto puede manejar 2 tipos de mando: el clásico y el nunchuck de Wii. El mando clásico consta de 5 botones: 4 de dirección y 1 de acción; En el esquema superior están conectados con cable azul en el puerto superior. El siguiente esquema muestra la relación pin-botón:

Relacion de pines Arduino-HackVisionShieldMod-MandoClasico

Relacion de pines Arduino-HackVisionShieldMod-MandoClasico

 

Por tanto, siguiendo este esquema se puede montar el mando clásico. Para montar el mando solo se necesitan 5 botones, un cacho de placa de pruebas y el cable de conexión. En la siguientes imágenes se puede ver el montaje del mando:

 

El cable de conexión que se ve en la foto es el que se monto en el post anterior: http://draftidea.tk/?p=281 . Es necesario prestar especial atención a que pin corresponde cada cable para poder conectar de forma correcta el mando.

En cuanto al mando de Wii, no he podido hacer la prueba de si funciona o no y en cuanto al puerto de expansión inferior sirve para conectar los pads analógicos para jugar al Pong o al Asteroids.

hackvision shield mod v1.0. II

Publicado en, abril 7th, 2012 por Draft Ideader

En esta segunda entrada, se mostrara el esquema que se pretende montar, el avance en el montaje físico y la primera prueba.

En la siguiente imagen se muestra un posible montaje de la placa:

Montaje sobre placa perforada

Montaje sobre placa perforada

 

Hay que tener en cuenta varias cosas:

  • Este ejemplo de montaje está relizado teniendo en cuenta la modificación que fue realizada a mi Arduino para solventar el problema de la separación de pines entre el 7º y 8º.
  • Con respecto al circuito presentado en el post de hackvision shield mod anterior, este ha sido ampliado. Las ampliaciones las comentaremos más adelante.
  • Los conectores de salida jack que se ven en la imagen deberían ser conectores RCA, pero el programa Fritzing no prove de este tipo de conectores.
  • Para que este shield sea apilable los pines que se conectan al Arduino deberian ser los pines especiales que vimos en el post en el que se realizo la modificación del Arduino (pines hembra de patas largas).

 

Las ampliaciones realizadas al circuito son las siguientes:

  • Botón de Reset del Arduino.
  • Led indicativo de encendido.
  • Jumper de selección entre NTSC/PAL
  • 2 puertos para controladores: El superior es para conectar el mando o un Nunchuck de Wii; El inferior sirve para conectar los pads para jugar al Pong y otros juegos.

Para comenzar el motaje he cortado una placa perforada de modo que tenga 32×23 perforaciones (las mismas que en el ejemplo)

Placa cortada

Placa cortada

 

Ahora recomendaría realizar los agujeros para los RCA (yo lo hice despues de poner los pines y es mucho más dificil). Para relizarlos con facilidad os recomiendo utilizar un cutter e ir contando poco a poco la placa hasta tener los agujeros necesarios para encajar los conectores.

Agujeros conectores RCA

Agujeros conectores RCA

Montaje de los conectores RCA

Conectores RCA

 

A continuación he cogido una regleta de pines macho y he cortado los necesarios (2×8 pines y 2×6 pines) y los he modificado de modo que la parte de plastico quede en el extremo con el objetibo de maximizar la zona metálica para poder soldarlo con más facilidad y que encaje con mayor holgura en el Arduino. NOTA: Para que este shell sea apilable estos pines deberian ser hembra y de patas largas, otra solución (mucho más barata) sería utilizar pines hembra normales junto con los macho pero separados una perforación de los macho (hacia arriba o abajo, pero los 4 conjuntos desplazados lo mismo y en la misma dirección).

Adaptando los pines macho

Adaptando los pines macho

Adaptando los pines macho. Vista de lado

Pines visto de lado

Pines Adaptados. Soldados

Soldados los pines adaptados

Una vez realizado esto, recomiendo montar los componentes básicos para comprobar el funcionamiento del circuito. Los componentes básicos son:

  • Los 2 diodos
  • Las 3 resistencias
  • La salida de sonido
  • La salida de vídeo
  • El jumper NTSC/PAL (No conexión/conexión respectivamente) (En mi caso como se que siempre voy a utilizar PAL he optado por hacer permenente esta selección, poniendo un cable directamente del pin digital 12 a GND)

En la imagen siguiente se muestra este circuito, los puertos para los mandos solo estan colocados en el sitio, no tienen soldadas las conexiones porque no son esenciales para probarlos.

Componentes básicos sin soldar

Componentes básicos sin soldar

Componentes soldados

Componentes soldados

Componentes soldados y sus conexiones

Componentes soldados y sus conexiones

 

 

 

 

 

 

 

Componentes soldados y sus conexiones. Soldaduras

Componentes soldados y sus conexiones. Soldaduras

Componentes básicos soldados. Vista de lado 1

Componentes básicos soldados. Vista de lado 1

Componentes básicos soldados. Vista de lado 2

Componentes básicos soldados. Vista de lado 2

 

 

 

 

 

 

 

 

 

 

 

Para probarlo es necesario descargar desde la página de nootropic design el firmware del hackvision. Yo he probado el Asteroids, he descargado los 3 archivos que mandan y he realizado las siguientes acciones:

  1. Descargar los 3 archivos comprimidos del Asteroids. Enlace: http://nootropicdesign.com/hackvision/games.html
  2. Entrar en tu directorio de sketchbook
  3. Descompromir el fichero Asteroids en este directorio.
  4. Entrar en el directorio libraries (dentro del directorio sketchbook, sino existe el directorio libraries entonces hay que crearlo)
  5. Descomprimir en este directorio los ficheros TVout y controllers. Esto se hace para que estas librerias esten disponibles en el programa de Arduino.
  6. Abrir el programa del Arduino, y cargar el sketch de Asteroids.
  7. Compilar el programa, si falla, entonces alguno de los pasos anteriores ha fallado.
  8. Conectar el Arduino al ordenador y elegir en el programa la conexión serie correspondiente.
  9. Cargar el programa en el Arduino.

 

Una vez realizado esto, solo debemos apilar nuestro shield sobre el Arduino y comprobar su funcionamiento. En mi caso utilicé:

  • Un cargador de móvil con salida USB.
  • Un cable USB a USB cuadrado (el que usa el Arduino).
  • Un cable RCA de 3 conectores: rojo, blanco y amarillo (también valdrian los tipicos de audio de 2 conectores: rojo, blanco).
  • Un conversor de RCA a Euroconector que venia con la Wii (mi tele no tiene entrada RCA, si tu televisión tiene entrada RCA este conversor no es necesario).
Probando. Elementos necesarios

Probando. Elementos necesarios

Probando. Conexiones

Probando. Conexiones

 

Y aqui las primeras pruebas, IT WORKS !!!

Pruebas

Pruebas

Pruebas. Asteroids 1

Pruebas. Asteroids 1

Pruebas. Asteroids 2

Pruebas. Asteroids 2

 

 

 

 

 

 

 

 

 

 

En la próxima entrada del hackvision shield mod se continuará la descripción del montaje.

Copyright © 2009 Draft Idea. Theme by THAT Agency powered by WordPress.