Paso 24: Selección de los componentes, diseñar el esquema y PCB
Al principio de este instructable I proporciona una lista de componentes que se utilizarán en la parte electrónica de este proyecto.
Solo como información extra, la lista de componentes suministrados es el resultado de tres iteraciones del esquema y PCB. Para alcanzar el diseño final me había diseñado tres versiones del esquema, tres versiones del PCB, fabricado manualmente tres enormes doble cara PCB incluyendo perforación, vias y soldar componentes. Me tomó algún tiempo para hacer todo esto, pero no desistió y llegó a un diseño final del trabajo.
Con mucho gusto para usted, usted no tendrá que hacerlo a través de todo ello desde ahora el diseño del trabajo es completamente open source y se puede utilizar solo o trabajar en él para hacer sus propias modificaciones (interruptores diferentes, diferentes diseños, extras, etc.)
Como se mencionó anteriormente, usé KiCAD para la electrónica y el diseño de PCB. Todos los archivos de proyecto KiCAD y esquemático y PCB en formato PDF puede descargarse en mi Github.
Breve explicación de la electrónica: HacKeyboard tiene un solo microcontrolador, el PIC18F4550, que cuenta con USB incorporado. El palabra 'microcontrolador' y la referencia 'PIC18F4550' puede parecer complicado o extraños sino que es básicamente el mismo tipo de cosa que el ATMega328 que encontrará en Arduinos, pero de diferente fabricante, con una arquitectura diferente y diferentes características integradas. Teniendo dicho esto, el microcontrolador es responsable de gestionar y controlar todo en el teclado:
- La matriz de interruptor de lectura: Teniendo en cuenta que un teclado es una gran matriz de interruptores, cada columna y cada línea están conectadas a un diverso perno de IO (entrada/salida) en el microcontrolador. El microcontrolador enciende cada columna cada vez, uno por uno y Lee los niveles de la lógica en todas las líneas, evaluar que pasa en esa columna se presionan. A continuación, desactiva esa columna y procede para el próximo. Esto sucede varias veces por segundo. Es un proceso muy rápido que siempre se ejecuta en el microcontrolador. Una vez que se evalúan las pulsaciones de teclas salidas los caracteres respectivos a través de USB;
- Control de la unidad Flash USB oculta: El pendrive es alimentado a través de la MAX682, que es una carga de 5V regulador de bomba que tiene un pasador de 'Apagado'. Para activar o desactivar la unidad flash USB, el microcontrolador activa o desactiva este pin, activar o desactivar.
- Salvar macros y registro clave: En el circuito hay una 24AA512 Serial EEPROM (64 K x 8 bits) que es una memoria que se utiliza para almacenar las macros y el registro de actividades clave. Cuando en ahorro de modos, el microcontrolador, que está conectado a la memoria mediante un protocolo serial (SPI) envía a memoria específica coloca las claves que deben almacenarse. Esta memoria contiene que los datos incluso si activa la desconexión el teclado. En el firmware por defecto cada posición macro puede almacenar hasta 150 bytes y el resto de la memoria es utilizado por el registrador de claves. Esto puede modificarse fácilmente por simplemente cambiando algunos valores de dirección en el código fuente proporcionado.
- Control de los LEDs RGB de WS2812B : el microcontrolador también es responsable de controlar los LEDs RGB. Estos LEDs tienen su propio protocolo serial donde un '0' se representa por un pulso con un cierto tiempo y un '1' se representa mediante otro pulso con un tiempo diferente (consulte la hoja de datos para conocer los tiempos). Los LEDs tienen una estructura en memoria de 3 bytes que almacenan los 3 valores para rojo, verde y azul. Estos valores deben estar en un rango de 0 a 255. También tienen un registro de cambio incorporada, que permite transmitir información a los siguientes LEDs. Si sólo tiene 2 LED WS2812B , conectar el microcontrolador al pin de entrada de datos de sólo uno de ellos y conecte la clavija de entrada de datos de la segunda para el pin de salida de datos de la primera. Entonces el microcontrolador tendrá que enviar bytes de 6, 3 para cada LED, a partir del segundo LED (más distante en términos de conexiones). El primer LED pasará la información al segundo.