Haga un adaptador USB para teclado ThinkPad con Arduino: 5 pasos

Haga un adaptador USB para teclado ThinkPad con Arduino: 5 pasos

Tabla de contenido:

Anonim

Entre las computadoras portátiles de clase empresarial, las ThinkPads tienen los mejores teclados. Incluso con el cambio a los teclados estilo isla, diría que los teclados ThinkPad aún superan a todos los competidores de sus computadoras portátiles en el departamento de teclado. A diferencia de otros, las teclas del teclado ThinkPad están curvadas para adaptarse a sus dedos, tienen aproximadamente la misma superficie que un teclado de escritorio de tamaño completo y están bien espaciadas para que no se pierda una tecla o tenga que llegar muy lejos para llegar a una.

Las computadoras portátiles ThinkPad están bien construidas. Sin embargo, también son muy caros, en comparación con los competidores con la misma especificación. Entonces, ¿qué haces si solo te gustan los teclados? Puede comprar los teclados Lenovo ThinkPad USB o Bluetooth oficiales con TrackPoint o hacer su propio adaptador para el teclado que usted aprecia.

En este Instructable, te mostraré los pasos generales que tomé para hacer un adaptador USB para el teclado T60 y sus teclados compatibles, es decir. Si tu teclado comparte el mismo receptáculo que el T60. Vea el paso 1.

¡Empecemos!

ACTUALIZACIÓN: Un kit con todos los componentes necesarios (excepto Arduino) ahora está disponible en

Suministros:

Paso 1: Consigue tu receptáculo

Antes de zambullirse en la parte más fácil, es decir. Programando y diseñando la placa adaptadora, necesita encontrar una manera de conectar su teclado a la PCB.

La mayoría de los teclados ThinkPad clásicos usan placa para conectar conectores. Según eBay, si busca teclados T60, encontrará que ThinkPad T60, T60p, Z61p, Z61t, Z60, T61, R400, R500, T400, T500, X41 … comparte el mismo teclado y su matriz de teclado también puede ser intercambiables.

Desde los esquemas del ThinkPad T60 que flotan en Internet (vea la imagen), encontré que el T60 usa JAE AA01B-S040VA1-R3000. No hay muchos vendedores que los vendan, ya que son propietarios. La mayoría de los que venden, venden con una cantidad mínima de pedido de 100. Por aproximadamente $ 4.90 cada uno más el envío, es muy caro. Así que si estás interesado en obtener algunos de ellos, envíame un mensaje.

Para obtener más información sobre el receptáculo ThinkPad T60, eche un vistazo a las fotos y medidas de Felix:

Paso 2: Trabajando con el esquema del teclado

Desde el esquema del paso anterior, la matriz del teclado T60 usa 8 filas y 16 columnas, 1 para la tecla de acceso rápido (FN), TrackPoint usa una línea de reloj, una línea de datos y una línea de restablecimiento. En total, necesita 28 pines digitales, mientras que Arduino Micro / Leonardo solo tiene 20.

Al usar un contador de décadas como CD4017 para recorrer las filas y un IC de entrada SPI de 16 bits, como MCP23S17, para leer entradas de 16 columnas, el número total de pines en el lado de Arduino se reduce a 10 líneas.

En general, la matriz del teclado es pasiva, no especifica si la fila o la columna tienen que ser entradas o salidas. Para este proyecto, sin embargo, las salidas de 16 columnas requerirán más CI externos, componentes pasivos y complicarán el diseño. Por lo tanto, elegí tener 8 salidas y 16 entradas.

Hasta ahora, la lista de piezas ha llegado a:

  • Arduino Micro: ~ $ 32 para el módulo oficial, ~ $ 13 para los clones (clonar en eBay)
  • CD4017
  • MCP23S17
  • 16 x 10k resistencias como resistencias pull-up para el MCP23S17
  • para la placa de montaje y receptáculo Arduino (pasos siguientes)
  • Receptáculo AA01B-S040VA1
Obtenga el kit en

Paso 3: Diseñar el esquema y PCB

Como el receptáculo de la T60 es un componente de montaje en superficie con un paso de 0.5 mm, decidí usar también SMD para otros componentes.

En este proyecto, decidí dividir el tablero en 2 tableros:

  1. Placa de montaje Arduino Micro
  2. Placa receptora con resistencias e ICs de soporte.

Esto permite que las futuras revisiones de los tableros sean más modulares y puedan resultar más baratas a largo plazo. Por ejemplo, si decido agregar conectividad Bluetooth, ya no tendría que usar Arduino Micro para su capacidad USB. Puedo usar un Arduino Nano en su lugar y solo tengo que diseñar el PCB en el lado de Arduino, sabiendo muy bien que mi placa receptora funcionará de la misma manera, independientemente del microcontrolador que decida usar.

He incluido ejemplos de la disposición de mi PCB, esquemas y tableros fabricados de Elecrow. Las tablas son de doble cara y se ajustan a 50x50mm.

Paso 4: ¡Codifícalo!

Este proyecto fue lo suficientemente simple como para codificarlo con la enorme comunidad de Arduino. Escribí un boceto rápido. El código está disponible en GitHub:

El código puede usar alguna optimización para acelerar el escaneo de la matriz. Las funciones FN + NumLock, las teclas del teclado y las combinaciones de teclas personalizadas se eliminaron del código, ya que ralentiza significativamente el escaneo.

Paso 5: Resultado y Conclusión

La plataforma Arduino hace que sea muy fácil construir un adaptador USB. Sin embargo tiene algunas debilidades serias:

• Compatibilidad con códigos de teclas limitados: no hay definiciones para las teclas del teclado, Pantalla de impresión, Bloqueo de desplazamiento, Pausa, Interrupción y muchos más

• Implementación torpe de Keyboard.press () y Keyboard.release (). En lugar de aceptar y enviar códigos clave sin modificar, la API de Arduino obliga al usuario a enviar caracteres imprimibles.

• Sin activación remota: si la computadora entra en modo de espera, al presionar una tecla del teclado o mover el mouse no se activará.

• Bajo conteo de pin

• Lento. Puede haber mejoras y optimizaciones de código, pero el uso de la abstracción de Arduino de la manipulación directa del puerto aumenta significativamente la latencia, agregando que el recuento de pines bajo obliga al usuario a usar circuitos integrados de expansión que reducen la velocidad un poco más.

Para propósitos de prueba, utilicé cables de puente para conectar las dos placas. Para el producto final, usaría cables mucho más delgados soldados directamente sobre los tableros y pasaría por debajo del teclado.

Aquí hay un video del teclado en acción:

Sugerencias para mejoras de diseño y optimizaciones de código bienvenidas!