Lemyth escribió:
No es tan facil , ni tan barato ehh.
El programa en C, tampoco es nada sencillo. Hay algun sitio en el que siguiendo su exquema, puedes utilizar el mismo programa que ellos han creado, pero debes tener por tanto un programador de Chips.
Cierto.
Por supuesto que hace falta un programador de chips. Es la única manera de grabar una EEPROM, EPROM, o similar (donde por narices irá el programa). Con el mismo interfaz serie usando un MAX-232 se puede realizar de un modo bastante sencillo y barato (no más de 4 euros). No lo incluí porque no forma parte del teclado en sí. Sin embargo el esquema de éste es de lo más fácil y universal.
La especificación midi es bastante fácil, 31250 bps, en comunicación asíncrona, con un bit de start y otro al final de stop. y con un formato de la cadena de un mensaje formado por 1 byte de estado y varios bytes de información
La especificación completa la tienes por ejemplo en:
http://users.argonet.co.uk/users/lenny/ ... l#overview
Con prácticamente cualquiera de los microcontroladores que te puse antes puedes implementar las rutinas encargadas de serializar cada mensaje. También puedes realizar el diseño sobre una FPGA trabajando con lenguajes como VHDL o similares. La forma de atender a la tecla que ha sido pulsada podría llevarse a cabo mediante una sencilla interrupción. Tras realizar la parte lógica con puertas NAND (varios 74HC00) o con un array de puertas programable, como la PAL22CEv10), la forma de averiguar quien produzco la interrupción se basaría en un sencillo sondeo.
Con unos triggers Schmith (p ej. varios 74HC14) tendrías la señal sin problemas a la salida de los pulsadores ,que junto a unos condensadores para prevenir de rebotes y R's adecuadas podrás asegurar los tiempos de subida y bajada.
Muchos de los controladores que te comenté llevan memoria más que de sobra para cargar un código tan corto y resumido. Que de forma general llevaría:
1) Rutina principal (Por ej. una pequeña máquina de estados)
2) Rutinas de atención a las interrupciones. Que en este caso a simple vista parece que serían necesarias 2:
- Atención a la interrupción HW producida por un pulsador a la salida de las puertas
- Atención a la interrupción del sistema de temporización (integrado en muchos de estos controladores) que asegure la tx de la secuencia a los 31250 bps, y los tiempos de la señal en cada nivel que indica la especificación.
3) Rutina de comunicación por el puerto serie (también integrado en casi todos estos controladores) para serializar los bytes de cada uno de los mensajes.
El diseño puede parecer complicado para alguien que no sabe de lo que se está hablando. Pero cualquier persona con pocos conocimientos de electrónica (cursos de ingeniería, FP o similar) puede diseñar un esquema tan sencillo como este. Lo más caro serán los array de pulsadores sensibles a velocidad, la pieza mecánica que utilices para oprimirlos, y el uControlador. Si quieres esquemas o algo de lo que te estoy hablando pídemelos. En la misma web o los propios datasheets de los microcontroladores vienen esquemas para solucionar problemas tan sencillos como estos.
En cualquier caso no hablo de nada complicado. Prácticas como estas las resuelven alumnos de 3er curso ingeniería.
1 Saludo