eZ430 Chronos + Puerto Serial en C#

Como había comentado previamente, me emociona la idea de este reloj que se puede reprogramar, pero antes de poder hacer un acercamiento al nivel de programación del microcontrolador, primero me gusta la idea de interactuar con las “aplicaciones” existentes o “precargadas”.

Para esto, me puse a leer los manuales, algunos de los proyectos que están en el wiki del ez430 y algo del código fuente del reloj. Pero bueno, después de una lectura rápida, me di a la tarea de hacer un programa en C# con el cual se puede interactuar con el reloj en modo ACC, que es una “aplicación” para leer el estado de los acelerómetros y de algunos de los botones.

El IDE que usé es SharpDevelop y es un entorno que pueden descargar sin ningún costo y que viene muy bien equipado, la interfaz es sencilla pero es muy rápido y practico para desarrollar.

Entrando un poco mas en los detalles del programa que hice, el eZ430-Chronos viene con un AccesPoint (AP) que es un dispositivo que comunica el reloj con la computadora, simulando un puerto serial.

Las características de operación del puerto serie para el AP son: 115200bps, 8bits, Sin Paridad, 1 bit de Paro

El formato de los comandos con los que trabaja el reloj por medio del AP es:

Cabecera (0xFF), comando (1 byte), numero de bytes a transmitir (1 byte), carga (hasta completa el numero de bytes a transmitir)

Ejemplo:

Comando para saber el estado del AP

0xFF,0x00,0x04,0x00

donde 0xFF es la cabecera, 0x00 es la petición del estado del AP, 0x04 es el numero de datos a transmitir y el 0x00 final es el cuarto dato

Los comandos que usa el programa son:

  • comando_status = {0xFF, 0x00, 0x04, 0x00}
  • comando_start  = {0xFF, 0x07, 0x03}
  • comando_stop   = {0xFF, 0x09, 0x03}
  • comando_get    = {0xFF, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00}

*hay algunos mas, pero para el objetivo del programa son irrelevantes Lengua fuera

La “secuencia” de encendido es:

  1. comando_status
  2. comando_start

Después, se puede pedir el estado de los acelerómetros y de los botones enviando comando_get

La respuesta que envía el AP tiene el siguiente formato:

0xFF 0x06 0x07 BV XX YY ZZ
B = botón (1: botón *, 2: botón #, 3: botón  ^)
V = validez de la información del paquete (0:valida, F:invalida)
XX = acelerómetro X
YY = acelerómetro Y
ZZ = acelerómetro Z

La “secuencia” de apagado es:

  1. comando_start
  2. comando_stop

Pero bueno, en el programa también busca en que puerto se registro el AP, la búsqueda la hice usando comandos generados con el WMI Code Creator, una herramienta que recomiendo bastante para obtener datos mas específicos del hardware y registro de la PC.

En fin, ahora les dejo el link para la descarga del código fuente

y un videíto por acá

Espero disfruten el programa y les sea de utilidad

Sin mas por el momento…

Argos

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s