¿Arduino como controlador de teclado completo?

Estoy considerando conectar un teclado ThinkPad X4x a una PC, usando un controlador de teclado KeyWarrior programable entre el cable plano del teclado y el cable USB para conectarlo a la PC. Como no soy un tipo de electrónica, revisé el foro de KeyWarrior y me dijeron que esto debería funcionar. Las piezas necesarias son fáciles de obtener y sé cómo usar un soldador. ;-)

De todos modos, en todas partes escucho Arduino, y probablemente valdría la pena aprender sobre este microcontrolador universal. ¿Sería posible reemplazar la solución KeyWarrior por una solución Arduino?

Tenga en cuenta que KeyWarrior16 admite dos capas , para la tecla FN del teclado.

Ahora también abrí un hilo en el foro de Arduino.

¿Tiene un pinout para el cable de cinta en el teclado ThinkPad?
@PabloMaurin No. A menos que los encuentre en algún lugar en línea, eso significaría prueba y error.

Respuestas (1)

Sí. Hay tres cosas que tendrías que hacer. La primera es la matriz del teclado. Los teclados normalmente se fabrican utilizando una matriz de salidas a entradas, donde cada tecla del teclado corresponde a una combinación de entrada y salida. 8x8 es una matriz común. Los teclados de teléfonos más pequeños son un ejemplo de matrices 4x3 y 4x4, y se usan comúnmente en proyectos Arduino.

La segunda parte y la tercera parte están entrelazadas. La segunda parte es el protocolo a la computadora. Serial, PS/2 o USB son los más comunes, siendo USB el más reciente (Bluetooth también, pero eso es inalámbrico). El serial y el PS/2 pueden ser bitbanged, al igual que el USB, pero es un poco más difícil. V-USB es un proyecto para la implementación de software USB en procesadores ATTINY y ATTMEGA (como el arduino).

La tercera parte es el código real entre la lectura de la matriz del teclado y el envío a través de USB. En el lado USB, desea un teclado USB-HID (sin controlador en el lado de la PC). En el lado del teclado, puede usar sondeos o interrupciones. Su código decidiría qué combinación de matriz es qué tecla del teclado y qué código de escaneo del teclado.

Las teclas de función son manejadas esencialmente por software, al igual que las teclas shift/control/option/command/windows. Su código leería la tecla de función que se presiona, luego cualquier otra tecla que se presione enviaría el código de escaneo de tecla + función, en lugar de solo el código de escaneo de tecla.

Simplemente buscar en Google "Arduino USB Keyboard" le dará un google literal de proyectos de ejemplo que lo hacen como tal. También "Teclado Arduino".

Las placas Arduino más nuevas utilizan un atmega de la serie 'u' con una interfaz USB de hardware, no de software, ya sea como convertidor (uno, mega) o como dispositivo programable principal (leonardo). El software USB es posible en un atmega normal, pero no es tan robusto.
¿Sería más fácil interactuar con PS/2? Porque necesito agregar un convertidor PS/2-USB de todos modos: el dispositivo señalador TrackPoint en el teclado emite directamente PS/2.
@feklee vea este hunt.net.nz/users/darran/weblog/329aa pero si quiere usar un panel táctil ps2 en usb, un adaptador barato de ps2 a usb (como 1 dólar en ebay) es todo lo que necesita para eso. El teclado es diferente porque la mayoría de los teclados de portátiles más antiguos son solo la matriz, sin un controlador integrado. Dicho esto, emular ps/2 es más fácil que bitbanging usb-hid. Ver: arduino.cc/forum/index.php?topic=19224.msg140627#msg140627 y playground.arduino.cc/ComponentLib/Ps2mouse
@feklee Aún tendrá que hacer la parte de escaneo de la matriz, pero puede conectarlo al mismo adaptador usb-ps/2 que obtendría para el panel táctil, ya que normalmente tienen una opción de entrada de teclado y mouse.
@Passerby Sí, estoy hablando de la parte de bitbanging. Sin embargo, muchos adaptadores PS/2-USB económicos no funcionarán, ya que son solo para dispositivos que ya hablan USB. No es un panel táctil, por cierto.
@feklee no, no me refiero al dongle súper pequeño ( cablesdirect.com/prodimages/USB-PS2F_LR.jpg ), esos son solo cambiadores de cables/pinout, me refiero a un adaptador usb a ps/2 como lankalaptophouse.com/image. php?type=P&id=17961 que tienen un IC dedicado en su interior y deberían funcionar con el 99 % de los teclados y ratones ps/2.