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
La “secuencia” de encendido es:
- comando_status
- 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:
- comando_start
- 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