Anuncio
El humilde Arduino puede hacer muchas cosas, pero ¿sabías que puede emular un teclado USB? Puede combinar esos atajos de teclado largos difíciles de recordar en una sola tecla de acceso directo personalizada, con este sencillo circuito. Aquí está el resultado final:
¿Nunca has usado un Arduino antes? Mira nuestro guía de inicio Comenzando con Arduino: una guía para principiantesArduino es una plataforma de creación de prototipos de electrónica de código abierto basada en hardware y software flexible y fácil de usar. Está destinado a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos. Lee mas primero.
Que necesitas
Esto es lo que necesita para hacer este proyecto:
- 1 x Arduino Pro Micro.
- Botones momentáneos o botones de teclado.
- Resistencias de 10K ohmios.
- Surtido de cables de conexión.
- 1 x resistencias de 220 ohmios.
- 1 x 5 mm (0.197 pulgadas) LED.
- 1 x soporte de LED de 5 mm.
Necesitará un Arduino muy específico para este proyecto. Estoy usando un
Pro Micro, ya que son tan pequeños y baratos, necesita un Arduino que tenga una serie USB incorporada en el procesador (Atmega32u4). Es posible construir este proyecto con otros Arduinos, como UNO o Nano, sin embargo, se requiere mucho trabajo duro para volver a flashear la BIOS y juguetear para que las cosas funcionen. Los clones de otros modelos Arduino no suelen funcionar en absoluto, pero un clon Pro Micro también está bien.OSOYOO Pro Micro ATmega32U4 Placa de módulo de 5V / 16MHz con encabezado de 2 pines para arduino Leonardo Reemplace ATmega328 Pro MiniOSOYOO Pro Micro ATmega32U4 Placa de módulo de 5V / 16MHz con encabezado de 2 pines para arduino Leonardo Reemplace ATmega328 Pro Mini Compre ahora en Amazon $10.99
Necesitará un botón momentáneo, una resistencia de 10K ohmios y un cable de conexión apropiado para cada botón que desee usar. Estoy usando interruptores de teclado mecánico Cherry MX para los botones de acceso directo reales, aunque ninguna el interruptor funcionará, siempre que sea momentáneo y no se trabe.
Es posible que necesite algunos otros elementos dependiendo de cómo construya esto. Si desea crear un prototipo, necesitará un placa sin soldadura. Vale la pena gastar el dinero en uno bueno, a veces pueden ser muy poco confiables. Si quieres encajonar esto, querrás comprar un stripboard.
Plan de construcción
Así es como funcionará esto. El Arduino estará programado para actuar como un teclado USB, en lo que respecta a su computadora, lo es. Varios botones conectados al Arduino enviarán comandos clave a su computadora. Solo presionará un botón, pero su computadora pensará que presionó Alt > F4, por ejemplo.
Seleccionar un interruptor
Hay varias variaciones de los interruptores de la serie MX. Este sitio web proporciona una excelente introducción, sin embargo, esencialmente se reducen al ruido y la presión. Algunos modelos requieren más fuerza para presionar, y algunos modelos hacen un sonido mecánico de "clic" cuando se presionan. He usado Cherry MX Browns, que no hacen ruido cuando se presionan. Todas tienen las mismas dimensiones, así que elija el modelo que desee (o mezcle y combine) sin preocupaciones.
También necesitará comprar algunas tapas de teclas, por supuesto, y hay un mundo de diseños personalizados a elegir: compramos en KeyboardCo en el Reino Unido.
El caso
Imprimí este caso en 3D y puedes descargar el .STL archivos de Thingiverse. No se preocupe si no posee una impresora 3D, aún puede construirla. Muchos sitios web ofrecen servicios de impresión 3D, como Hubs 3D o Shapeways. Alternativamente, este es un caso muy simple, puedes hacer tu propio con plasticard, perspex, madera o incluso cartón. Si quieres ser realmente ahorrativo, Cherry MX vende un conjunto de probador / muestra de interruptor en Amazonas (Reino Unido). Necesitará 4 pernos M5 x 35 mm y 4 tuercas M5. Por supuesto, puede sustituirlos por una alternativa adecuada que tenga.
Max Keyboard Keycap, Cherry MX Switch, Kit de prueba (9 interruptores Pro Sampler Tester Kit)Max Keyboard Keycap, Cherry MX Switch, Kit de prueba (9 interruptores Pro Sampler Tester Kit) Compre ahora en Amazon $14.99
Si está haciendo su propio estuche, hay un detalle importante que debe saber: los interruptores Cherry MX se ajustan a presión en sus orificios de montaje. Requieren un orificio de montaje cuadrado de 14 x 14 mm (0.551 pulg.), Con la placa no más gruesa que 1.5 mm (0.059 pulg.). Aléjate demasiado de estas dimensiones y es posible que tus interruptores ya no se monten correctamente.
La carcasa impresa en 3D tiene dos partes, la superior y la inferior. Empuje los interruptores Cherry MX en los agujeros cuadrados:
Asegúrese de montar los interruptores de la forma correcta. La parte superior tiene las palabras "CHERRY", y la parte inferior tiene una pequeña muesca. Inserte un LED de 3 mm en esta pequeña ranura:
Es posible que los LED se vean mejor montados "al revés". Este fue el caso de las teclas que utilicé, y no afecta a los interruptores en absoluto.
Ahora debería tener nueve interruptores con 9 LEDS. No es necesario pegar ninguna de estas partes. La soldadura sostendrá los LED, y la fricción sostendrá los interruptores.
A continuación, atornille el soporte del LED (deje el LED eliminado por ahora). Terminará de ensamblar la caja más adelante, una vez que se haya construido el circuito.
El circuito
Este circuito está construido en stripboard. Esto es excelente para construir circuitos semipermanentes, sin el costo de una placa de circuito impreso (PCB). Es simplemente una pieza de fibra de vidrio con pistas de cobre que corren paralelas en una dirección. Estas pistas se pueden soldar y cortar. Cortar una pista se puede hacer con una herramienta especial o una pequeña broca.
¿No tienes mucha confianza para soldar? Mira esto estos proyectos simples Aprenda a soldar, con estos simples consejos y proyectos¿Estás un poco intimidado por la idea de un hierro caliente y metal fundido? Si desea comenzar a trabajar con la electrónica, necesitará aprender a soldar. Dejanos ayudar. Lee mas primero.
Aquí está el diseño del stripboard (excluye clientes potenciales finales):
Asegúrate de cortar los rastros debajo de las resistencias y el Arduino. Como puede ser muy difícil leer un circuito de stripboard, aquí hay una versión de tablero:
Es un ajuste perfecto para exprimir todos los componentes en un espacio tan pequeño. Corta las esquinas de tu stripboard de la siguiente manera:
Esto debería caber perfectamente en la parte inferior de la caja:
Asegúrese de que las pistas se ejecutan verticalmente.
Conecte el ánodo (pierna larga, positiva) del LED a la resistencia de 200 ohmios y luego a +5 V. Conecte el cátodo (pierna corta, negativa) al suelo. Cubra las piernas con una funda termocontraíble y luego empuje hacia el soporte del LED. No es necesario ningún tipo de pegamento, sin embargo, es posible que su soporte de LED no se ajuste a presión, por lo que es posible que deba adaptar estas instrucciones.
Es posible que desee utilizar un LED bicolor aquí; esto le permitirá configurar dos o más bancos de interruptores, con un LED de estado de color diferente para cada banco.
Ahora es el momento de soldar todos los LED de las teclas. Estos se usan únicamente para hacer que las teclas brillen, por lo que puede omitirlas si lo desea, y no tienen que estar conectadas a un pin digital, solo alimentación. Conecte todos los ánodos juntos, y todos los cátodos juntos. Aprenda de mi error: ¡es mucho más fácil hacer esto antes de conectar los interruptores! Conecte los ánodos a +5 V a través de una resistencia de 220 ohmios y los cátodos a tierra. Estos LED están cableados en paralelo. Aquí está el circuito solo para estos LEDS:
Use un pequeño trozo de tubo termorretráctil para cubrir la conexión entre los LED y el Arduino:
Encienda el Arduino para probar el funcionamiento de todos los LED. No necesita cargar ningún código. Si alguno de los LED no funciona, ve y revisa el cableado.
Ahora conecte los interruptores. Estos deben estar conectados a través de una resistencia de 10k, de lo contrario el Arduino morirá. Esto se llama un punto muerto: +5 V va directamente al suelo, y todo lo que queda de tu Arduino será una nube de humo (créeme, ya maté a uno para que no tengas que hacerlo). Aquí está el circuito para un interruptor:
Este circuito es el mismo para los nueve interruptores. Conecte los interruptores a los pines digitales de dos a diez, cada uno con su propia resistencia de 10K a tierra. Tenga cuidado al soldar los interruptores Cherry MX, pueden ser un poco frágiles, me rompieron varios pines. Es posible que desee soldarlos directamente a un poco más de stripboard, sin embargo, los cables de arrastre siguen siendo adecuados.
Eso es todo por el cableado. Es posible que desee montar un conector hembra USB tipo B, sin embargo, las pequeñas clavijas en ellas a menudo pueden ser bastante difíciles de soldar. Si no desea hacer esto, no se preocupe. El conector Micro USB del Arduino se ajusta perfectamente al orificio del chasis. Si está un poco confundido acerca de los diferentes tipos de USB, asegúrese de entender las diferencias Comprender los tipos de cable USB y cuál usar¿Por qué hay tantos tipos diferentes de cables USB? Conozca las diferencias entre los tipos de conectores USB y cómo comprar el mejor cable. Lee mas .
Finalmente, verifique que su circuito sea correcto. Un corto puede destruir fácilmente un Arduino, y puede ser fácil de hacer usando stripboard.
El código
Ahora pruebe que el circuito es correcto. Es una buena idea hacer esto antes de continuar, para que pueda solucionar cualquier problema ahora mientras pueda. Cargue este código de prueba (no olvide seleccionar la placa y el puerto correctos del Herramientas > Tablero y Herramientas > Puerto menús):
const int buttons [] = {2,3,4,5,6,7,8,9,10}; // conjunto de todos los pines de botones void setup () {// ponga su código de configuración aquí, para ejecutar una vez: Serial.begin (9600); pinMode (2, INPUT); pinMode (3, ENTRADA); pinMode (4, ENTRADA); pinMode (5, ENTRADA); pinMode (6, ENTRADA); pinMode (7, ENTRADA); pinMode (8, ENTRADA); pinMode (9, ENTRADA); pinMode (10, ENTRADA); } void loop () {// pon tu código principal aquí, para ejecutarlo repetidamente: for (int i = 2; i <11; ++ i) {if (digitalRead (i) == HIGH) {// el rebote del software mejora el retraso de precisión (10); if (digitalRead (i) == HIGH) {// comprueba los interruptores Serial.print ("input"); Serial.println (i); retraso (250); } } } }
Es posible que deba cambiar los pines si ha modificado el circuito.
Una vez cargado, abra el monitor en serie (parte superior derecha > Monitor en serie). Uno por uno, presione cada botón. Debería ver que el monitor en serie muestra el número del botón que presionó. Al igual que con el LED, si su computadora se queja de consumir demasiada corriente o los LED se apagan cuando presiona un botón, ¡desconéctese de inmediato! Tiene un corto en algún lugar del circuito, verifique que el circuito sea correcto y que no haya cortocircuitos entre las conexiones.
Si todo funciona, adelante y ponga el circuito en la caja. Es posible que desee usar un poco de pegamento para mantener el circuito en su lugar (aunque los cables sostuvieron el mío bien). Atornille la tapa también.
Hacer que el Arduino parezca un teclado es muy simple. Si está usando un Nano o UNO, va a reprogramar su Arduino usando Actualización de firmware del dispositivo (DFU) Esto generalmente se usa para actualizar el nuevo firmware al Arduino. Lo usará para flashear el Arduino con un nuevo firmware que lo hará funcionar como un teclado. Esto no se cubrirá aquí, ya que es una tarea bastante compleja. los Sitio web de Arduino tiene un buen tutorial para esto.
El Arduino Pro Micro hace que este paso sea muy fácil. La lógica necesaria para emular un teclado USB ya está integrada en el procesador, por lo que es tan simple como escribir un código.
Primero, configure las teclas:
teclas int [] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
Esta es una matriz que contiene todos los pines a los que están conectados los botones. Si ha usado más o menos botones o ha usado diferentes pines, cambie los valores aquí.
Una matriz es un conjunto de cosas afines. Las computadoras pueden optimizar su código para acceder a ellas rápidamente, y aceleran el proceso de escritura del código.
Ahora inicialice todos los pines como entradas:
void setup () {// ponga su código de configuración aquí, para ejecutarlo una vez: Keyboard.begin (); // configurar el teclado para (int i = 2; i <11; ++ i) {// inicia los pines pinMode (i, INPUT); } }
Esto le dice al Arduino que todos los pines de la matriz son entradas. Se utiliza un bucle para hacer esto, así que en lugar de escribir pinMode (2, ENTRADA) nueve veces, solo tienes que escribirlo una vez. Esto también llama Keyboard.begin. Esto configura una función integrada en la biblioteca Arduino, diseñada específicamente para emular un teclado.
Crea un método llamado readButton:
readButton booleano (int pin) {// botones de verificación y antirrebote if (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; } } falso retorno; }
Esto toma un alfiler y comprueba si se ha presionado o no. Simplemente regresa CIERTO o FALSO. También contiene algunos rebote de software - un simple retraso y luego volver a verificar el interruptor asegura que el botón realmente se haya presionado.
Ahora se llama otro bucle for dentro bucle vacío ():
void loop () {// ponga su código principal aquí, para ejecutarlo repetidamente: for (int i = 2; i <11; ++ i) {// botones de verificación if (readButton (i)) {doAction (i); } } }
Nuevamente, esto pasa sobre cada elemento de la matriz y verifica si se ha presionado. Hace esto por el llamado readButton método que creó anteriormente. Si se ha presionado un botón, pasa ese número de pin a otro método llamado doAcción:
anular doAction (int pin) {// realizar el cambio de tareas (pin) {caso 2: Keyboard.println ("drive.google.com"); descanso; caso 3: Keyboard.println ("makeuseof.com"); descanso; caso 4: // CMD + T (nueva pestaña, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ('t'); retraso (100); Keyboard.releaseAll (); descanso; caso 5: // su tarea aquí se rompe; caso 6: // su tarea aquí se rompe; caso 7: // su tarea aquí se rompe; caso 8: // tu tarea aquí se rompe; caso 9: // su tarea aquí se rompe; } }
Esto verifica el número de pin usando un cambiar declaración. Cambie las declaraciones (a veces llamadas interruptor de caja) son similares a un Si Sin embargo, son útiles para verificar que una cosa (en este caso, el número de pin) es igual a uno de varios resultados diferentes. Esencialmente, son mucho más rápidos de calcular.
Los componentes principales están dentro de esta declaración de cambio. Keyboard.println escribe texto en la computadora como si hubiera escrito físicamente cada tecla. Keyboard.press presiona y sostiene una tecla. No olvides liberarlos usando Keyboard.releaseAll después de un breve retraso!
Aquí está el código completo:
teclas int [] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; void setup () {// ponga su código de configuración aquí, para ejecutarlo una vez: Keyboard.begin (); // configurar el teclado para (int i = 2; i <11; ++ i) {// inicia los pines pinMode (i, INPUT); } } void loop () {// pon tu código principal aquí, para ejecutarlo repetidamente: for (int i = 2; i <11; ++ i) {// botones de verificación if (readButton (i)) {doAction (i); } } } boolean readButton (int pin) {// comprueba y elimina los botones if (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; } } falso retorno; } voAction doAction (int pin) {// realiza el cambio de tareas (pin) {case 2: Keyboard.println ("drive.google.com"); descanso; caso 3: Keyboard.println ("makeuseof.com"); descanso; caso 4: // CMD + T (nueva pestaña, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ('t'); retraso (100); Keyboard.releaseAll (); descanso; caso 5: // su tarea aquí se rompe; caso 6: // su tarea aquí se rompe; caso 7: // su tarea aquí se rompe; caso 8: // tu tarea aquí se rompe; caso 9: // su tarea aquí se rompe; } }
Además de todas las teclas numéricas y de letras, el Arduino puede presionar la mayoría de las teclas especiales llamadas Modificadores de teclado. Estos son particularmente útiles para presionar métodos abreviados de teclado. El sitio web de Arduino tiene un lista útil.
Ahora todo lo que queda es crear algunos atajos. Puede asignar esto a accesos directos existentes, como Alt + F4 (cerrar programa en Windows) o Cmd + Q (salga del programa macOS). Alternativamente, asegúrese de leer nuestro guía definitiva de atajos de teclado Métodos abreviados de teclado de Windows 101: la guía definitivaLos atajos de teclado pueden ahorrarle horas de tiempo. Domine los atajos de teclado universales de Windows, los trucos de teclado para programas específicos y algunos otros consejos para acelerar su trabajo. Lee mas , cómo crear accesos directos de Windows Cómo crear accesos directos de escritorio de Windows de manera fácilLos accesos directos de escritorio inteligentes pueden ahorrarle la exploración sin sentido a través de menús y carpetas. Te mostramos formas rápidas y fáciles de crearlos. Lee mas y cada acceso directo de Chromebook Cada atajo de teclado de Chromebook que necesitarásDomina Chrome OS con esta lista de todos los atajos de teclado importantes de Chromebook que necesitarás. Lee mas para comenzar a hacer sus propios atajos.
¿Has creado tu propio cuadro de acceso directo? ¡Avísame en los comentarios, me encantaría ver algunas fotos!
Joe se graduó en Ciencias de la Computación de la Universidad de Lincoln, Reino Unido. Es un desarrollador de software profesional, y cuando no está volando drones o escribiendo música, a menudo se lo puede encontrar tomando fotos o produciendo videos.