miércoles, 25 de marzo de 2009

Unraveling the Mysteries...

Después de mucho trabajo, al fin tenemos una versión estable del programa de transmisión con la cual podemos trabajar. Hoy les traemos las primeras pruebas de comunicación entre la PC y el microcontrolador. Les recomendamos que se den una vuelta por las entradas anteriores de MIDI al desnudo para que estén al tanto de los avances que se tienen hasta ahora.

Protoboard con circuito de pruebas.

Bien, debido a la falta de drivers para Linux del conversor serial-usb que utilizamos para transmitir los datos desde la PC, trabajamos sobre una maquina virtual corriendo Windows XP. La aplicación esta desarrollada en Java y utilizamos NetBeans como ambiente de desarrollo (puedes descargar la versión mas nueva de este IDE con la nueva versión de java aquí).

El programa funciona de la siguiente manera:
  1. Abrir archivo MIDI.
  2. Decodificar.
  3. Discriminar propiedades de mensajes ON/OFF .
  4. Enviar mensajes al Microcontrolador vía RS232.

Utilizamos el microcontrolador PIC18F4550 como receptor de los datos, no tenemos ninguna razón en especial para utilizar ese modelo más que el número de pines libres que tiene, ademas contabamos ya con uno, talvez en el futuro sea sustituido por un microcontrolador un poco menos "sobrado".

Como mencionamos en las entradas anteriores de MIDI al desnudo, la transmisión de los datos se da de forma serial. Cuando cargamos los datos del MIDI al microcontrolador, la aplicación en la PC envía por el puerto serial un String con la nota a pulsar y la octava en la que esta se encuentra. Esta acción se repite cada determinado tiempo dependiendo de la estructura de la melodía cargada.

El microcontrolador trabaja voltaje TTL, es por eso que al comunicar serialmente la computadora con un micro se debe utilizar el circuito integrado MAX232, este circuito cambia los niveles TTL a los del estándar RS-232 en TX, y los niveles RS-232 a TTL en RX. El circuito típico se muestra en la siguiente figura:
Diagrama de conexiones del MAX232.

El formato en el que se envían los datos, es el siguiente
  • G4 : Nota Sol en la cuarta octava.
  • Y4 : Nota Fa sostenido en la cuarta octava.
  • Etc.
Transmision de datos desde la aplicación.

El microcontrolador compara el string recibido y ejecuta acciones convenientes dependiendo de la octava en la que se encuentra la nota recibida. Para estas pruebas preliminares declaramos un pin de salida por cada nota e ignoramos por ahora la información de octavas. En cada pin de salida conectamos un LED (en el robot serian los solenoides) que muestra si la nota esta o no siendo pulsada.


Video de las primeras pruebas. Nos alegra informar que fueron todas satisfactorias.

Niño: Oiga señor orco... ¿Por que no se esforzaron un poco más y comunicaron la PC y el micro vía USB?
Orco: Porque no.


Seja o primeiro a comentar

Publicar un comentario

  ©Los Orcos - Robótica Aplicada. Theme by Dicas Blogger.

TOPO