Cree sus propios botones de acceso directo personalizados con un Arduino

El humilde Arduino puede hacer muchas cosas, pero ¿sabías que puede emular un teclado USB? Puede combinar atajos de teclado largos en una sola tecla de acceso directo personalizada, con este circuito simple.

El humilde Arduino puede hacer muchas cosas, pero ¿sabías que puede emular un teclado USB?  Puede combinar atajos de teclado largos en una sola tecla de acceso directo personalizada, con este circuito simple.
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 atajo personalizada, con este circuito simple. Aquí está el resultado final:

Nunca antes usaste un Arduino? Consulte nuestra guía de introducción Cómo comenzar con Arduino: una guía para principiantes Cómo comenzar con Arduino: una guía para principiantes Arduino 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á dirigido a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos. Lea más primero.

Que necesitas

Arduino Shortcut Parts
Esto es lo que necesita para hacer este proyecto:

  • 1 x Arduino Pro Micro.
  • Botones momentáneos o botones del teclado.
  • Resistencias de 10K ohm.
  • Cables de conexión surtidos.
  • 1 x 220 ohm resistencias.
  • LED de 1 x 5 mm (0, 197 pulgadas).
  • 1 x 5 mm LED titular.

Necesitarás un Arduino muy específico para este proyecto. Estoy usando un Pro Micro, ya que son tan pequeños y baratos que necesitas un Arduino que tenga USB-Serial integrado en el procesador (Atmega32u4). Es posible construir este proyecto con otros Arduinos, como UNO o Nano, sin embargo, se requiere mucho trabajo arduo para volver a actualizar la BIOS y manipularla para que las cosas funcionen. Los clones de otros modelos Arduino generalmente no funcionan en absoluto, pero un clon Pro Micro también está bien.

Tablero del módulo OSOYOO Pro Micro ATmega32U4 5V / 16MHz con cabezal pin 2 filas para arduino Leonardo Reemplazar ATmega328 Pro Mini Tablero del módulo OSOYOO Pro Micro ATmega32U4 5V / 16MHz con cabezal pin 2 filas para arduino Leonardo Reemplazar ATmega328 Pro Mini Comprar ahora En Amazon $ 8.99

Necesitará un botón momentáneo, una resistencia de 10K ohm y un cable de conexión apropiado para cada botón que desee usar. Estoy usando los interruptores de teclado mecánicos Cherry MX para los botones de atajo reales, aunque cualquier interruptor funcionará, siempre que sea momentáneo y no se enganche.

Es posible que necesite algunos otros artículos dependiendo de cómo construya esto. Si quieres crear un prototipo, necesitarás una placa de prueba sin soldadura. Vale la pena gastar el dinero en uno bueno; a veces pueden ser muy poco confiables. Si desea encasillar esto, querrá comprar algo de striptease.

Plan de compilación

Así es como funcionará esto. El Arduino se programará para que funcione 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 ha presionado Alt > F4, por ejemplo.

Seleccionar un interruptor

Arduino Cherry MX

Hay varias variaciones de los interruptores de la serie MX. Este sitio web ofrece una excelente introducción, sin embargo, básicamente se reducen al ruido y la presión. Algunos modelos requieren más fuerza para presionar, y algunos modelos hacen un "clic" mecánico cuando se presionan. He usado Cherry MX Browns, que no hacen ruido cuando se presionan. Todas tienen las mismas dimensiones, por lo tanto, elija cualquier modelo que quiera (o mezcle y combine) sin preocupaciones.

También tendrá que comprar algunos tapones de tecla, por supuesto, y hay un mundo de diseños personalizados para elegir: compramos en KeyboardCo en el Reino Unido.

El caso

Imprimí este caso en 3D y puedes descargar los archivos .STL de Thingiverse. No se preocupe si no posee una impresora 3D, aún puede construir esto. Muchos sitios web ofrecen servicios de impresión 3D, como 3D Hubs o Shapeways. Alternativamente, este es un caso muy simple, puede hacer su propio plasticard, perspex, madera o incluso cartón. Si quieres ser realmente ahorrativo, Cherry MX vende un conjunto de prueba / prueba de interruptor en Amazon (Reino Unido). Necesitará 4 pernos M5 x 35 mm y 4 tuercas M5. Por supuesto, puede sustituirlos por una alternativa adecuada que tenga.

Teclado Max Keycap, Interruptor Cherry MX, Probador de muestras Probador O-Ring Pro Teclado Max Keycap, Interruptor Cherry MX, Probador Probador O-Ring Pro Kit Comprar ahora En Amazon $ 19.99

Si está haciendo su propia maleta, hay un detalle importante que necesita saber: los interruptores Cherry MX se adaptan a presión en sus orificios de montaje. Requieren un orificio de montaje cuadrado de 14 x 14 mm (0.551 pulgadas), con una placa que no es más gruesa que 1.5 mm (0.059 pulgadas). Se aleja demasiado de estas dimensiones y es posible que los conmutadores ya no se monten correctamente.

Caso de acceso directo
La caja impresa en 3D tiene dos partes, la parte superior e inferior. Empuje los interruptores Cherry MX en los orificios cuadrados:

Acceso directo Cherry MX Mount

Asegúrate de montar los interruptores en la forma correcta. La parte superior tiene las palabras "CEREZO", y la parte inferior tiene una pequeña muesca. Inserta un LED de 3 mm en esta pequeña ranura:

Acceso directo Cherry MX LED

Es posible que los LED parezcan mejor montados "al revés". Este fue el caso de las teclas que utilicé, y no afecta los interruptores en absoluto.

Ahora debería tener nueve interruptores con 9 LEDS. No es necesario pegar ninguna de estas partes. La soldadura mantendrá los LED, y la fricción mantendrá los interruptores.

Acceso directo Cherry MX All

A continuación, atornille el soporte LED (deje el LED retirado por ahora). Terminará de armar la carcasa más adelante, una vez que se construya 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 pueden soldarse, así como también cortarse. El corte de una pista se puede hacer con una herramienta especial o una broca pequeña.

No muy seguro de la soldadura? Echa un vistazo a estos sencillos proyectos. Aprende a soldar con estos sencillos consejos y proyectos. Aprende a soldar con estos sencillos consejos y proyectos. ¿Te intimida un poco la idea de tener un hierro caliente y un metal fundido? Si quieres empezar a trabajar con productos electrónicos, vas a necesitar aprender a soldar. Permítanos ayudar. Lea más primero.

Aquí está el diseño de stripboard (excluye los prospectos finales):

Arduino Shortcut Stripboard

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:

Arduino Shortcut Breadboard

Es muy ajustado para exprimir todos los componentes en un espacio tan pequeño. Corta las esquinas de tu stripboard de la siguiente manera:

Shortcut Stripboard

Esto debería quedar bien en el fondo de la caja:

Atajo Stripboard en caja

Asegúrate de que las pistas se estén ejecutando verticalmente.

Conecte el ánodo ( pata larga, positivo ) del LED a la resistencia de 200 ohmios y luego a +5 V. Conecte el cátodo ( pata corta, negativo ) a tierra. Cubra las piernas con funda termocontraíble y luego presione en el soporte del LED. No es necesario ningún pegamento, sin embargo, es posible que el soporte del LED no sea de presión, por lo que es posible que deba adaptar estas instrucciones.

LED de estado de acceso directo

En su lugar, puede utilizar un LED bicolor: esto le permitirá instalar dos o más bancos de interruptores, con un LED de estado de diferente color para cada banco.

Ahora es el momento de soldar todos los LED para las teclas. Estos se utilizan ú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 a la potencia. Conecte todos los ánodos, y todos los cátodos juntos. Aprende 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 conectados en paralelo. Aquí está el circuito solo para estos LEDS:

Botón de acceso directo LED Circuito

Use una pequeña pieza de tubería termocontraíble para cubrir la conexión entre los LED y el Arduino:

Atajo LED Heatshrink

Encienda el Arduino para probar que todos los LED funcionan. No necesita cargar ningún código. Si alguno de los LED no funciona, ve y revisa dos veces tu cableado.

Prueba de LED de acceso directo

Ahora conecta los interruptores. Deben conectarse a través de una resistencia de 10k; de lo contrario, el Arduino morirá. Esto se llama cortocircuito: +5 V entra directamente en el suelo, y todo lo que queda de tu Arduino será una nube de humo (créeme, ya maté uno para no tener que hacerlo). Aquí está el circuito para un interruptor:

Circuito de acceso directo Arduino

Este circuito es el mismo para los nueve interruptores. Conecte los interruptores a los pines digitales del dos al 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, tuve varios pasadores que se rompen en mí. Es posible que desee soldar estos directamente a un stripboard más, sin embargo, los cables finales siguen siendo adecuados.

Eso es todo por el cableado. Es posible que desee montar un conector hembra USB tipo B, sin embargo, los pequeños pines en ellos a menudo pueden ser bastante difíciles de soldar. Si no desea hacer esto, no se preocupe. El conector Micro USB del Arduino encaja perfectamente en el orificio del chasis. Si está un poco confundido acerca de los diferentes tipos de USB, asegúrese de entender las diferencias. Entender los tipos de cable USB y cuál usar. Entender los tipos de cable USB y cuál usar. El mundo de los cables USB puede ser un poco confuso porque hay muchos. muchos tipos de conectores diferentes. Aquí hay todo lo que necesita saber para no confundirse por más tiempo. Lee mas .

Finalmente, verifique que su circuito sea correcto. Un short puede destruir fácilmente un Arduino, y puede ser fácil de hacer usando stripboard.

El código

Ahora prueba que el circuito es correcto. Es una buena idea hacer esto antes de continuar, para que pueda solucionar cualquier problema mientras pueda. Cargue este código de prueba (no olvide seleccionar la placa y el puerto correctos desde Herramientas > Tablero y Herramientas > Menús de puertos ):

const int buttons[] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; // array of all button pins void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(2, INPUT); pinMode(3, INPUT); pinMode(4, INPUT); pinMode(5, INPUT); pinMode(6, INPUT); pinMode(7, INPUT); pinMode(8, INPUT); pinMode(9, INPUT); pinMode(10, INPUT); } void loop() { // put your main code here, to run repeatedly: for(int i = 2; i< 11; ++i) { if(digitalRead(i) == HIGH) { // software de-bounce improves accuracy delay(10); if(digitalRead(i) == HIGH) { // check switches Serial.print ("input"); Serial.println(i); delay(250); } } } } 

Es posible que deba cambiar los pines si ha modificado el circuito.

Una vez cargado, abra el monitor en serie ( arriba a la derecha > Monitor en serie ). Uno por uno, presione cada botón. Debería ver el monitor serie mostrar 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 inmediatamente! Tiene un corto en algún lugar del circuito, compruebe dos veces si el circuito es correcto y no hay cortocircuitos entre las conexiones.

Si todo está funcionando, adelante y coloque el circuito en la caja. Es posible que desee utilizar un poco de pegamento para mantener el circuito en su lugar (aunque los cables sostenían los míos en fina). Ponle la tapa también.

Hacer que el Arduino parezca un teclado es muy simple. Si está utilizando un Nano o UNO, va a volver a programar su Arduino utilizando la actualización de firmware del dispositivo (DFU). Esto generalmente se usa para flashear nuevo firmware en el Arduino. Vas a usarlo para flashear el Arduino con un nuevo firmware que lo hará funcionar como un teclado. Esto no se tratará aquí, ya que es una tarea bastante compleja. El sitio web de Arduino tiene un buen tutorial para esto.

Arduino Pro Micro hace que este paso sea muy fácil. La lógica requerida para emular un teclado USB ya está incorporada en el procesador, ¡así que es tan simple como escribir un código!

Primero, configure las llaves:

 int keys[] = {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 utilizado alfileres diferentes, cambie los valores aquí.

Una matriz es un conjunto de cosas de ideas 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() { // put your setup code here, to run once: Keyboard.begin(); // setup keyboard for (int i = 2; i< 11; ++i) { // initilize pins pinMode(i, INPUT); } } 

Esto le dice al Arduino que todos los pines en la matriz son entradas. Para ello, se utiliza un bucle, por lo que en lugar de escribir pinMode (2, INPUT) nueve veces, solo tiene que escribirlo una vez. Esto también llama a 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 :

 boolean readButton(int pin) { // check and debounce buttons if (digitalRead(pin) == HIGH) { delay(10); if (digitalRead(pin) == HIGH) { return true; } } return false; } 

Esto toma un pin, y verifica si ha sido presionado o no. Simplemente devuelve VERDADERO o FALSO . También contiene algunos errores en el software : un simple retraso y luego volver a verificar el interruptor asegura que el botón realmente se presionó.

Ahora otro ciclo for se llama dentro de void loop () :

 void loop() { // put your main code here, to run repeatedly: for (int i = 2; i< 11; ++i) { // check buttons if(readButton(i)) { doAction(i); } } } 

De nuevo, esto revisa todos los elementos del conjunto y comprueba si se ha presionado. Lo hace llamando al método readButton que creó anteriormente. Si se ha presionado un botón, pasa ese número de pin a otro método llamado doAction :

 void doAction(int pin) { // perform tasks switch (pin) { case 2: Keyboard.println("drive.google.com"); break; case 3: Keyboard.println("makeuseof.com"); break; case 4: // CMD + T (new tab, Chrome) Keyboard.press(KEY_LEFT_GUI); Keyboard.press('t'); delay(100); Keyboard.releaseAll(); break; case 5: // your task here break; case 6: // your task here break; case 7: // your task here break; case 8: // your task here break; case 9: // your task here break; } } 

Esto verifica el número de pin usando una declaración de cambio . Las sentencias Switch (a veces llamadas switch case ) son similares a una declaración if, 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. Básicamente, 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 físicamente tecleara cada tecla. Keyboard.press presiona y mantiene una tecla. No te olvides de liberarlos usando Keyboard.release ¡Todo después de un breve retraso!

Aquí está el código completo:

 int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; void setup() { // put your setup code here, to run once: Keyboard.begin(); // setup keyboard for (int i = 2; i< 11; ++i) { // initilize pins pinMode(i, INPUT); } } void loop() { // put your main code here, to run repeatedly: for (int i = 2; i< 11; ++i) { // check buttons if(readButton(i)) { doAction(i); } } } boolean readButton(int pin) { // check and debounce buttons if (digitalRead(pin) == HIGH) { delay(10); if (digitalRead(pin) == HIGH) { return true; } } return false; } void doAction(int pin) { // perform tasks switch (pin) { case 2: Keyboard.println("drive.google.com"); break; case 3: Keyboard.println("makeuseof.com"); break; case 4: // CMD + T (new tab, Chrome) Keyboard.press(KEY_LEFT_GUI); Keyboard.press('t'); delay(100); Keyboard.releaseAll(); break; case 5: // your task here break; case 6: // your task here break; case 7: // your task here break; case 8: // your task here break; case 9: // your task here break; } } 

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 atajos de teclado. El sitio web de Arduino tiene una lista útil.

Ahora todo lo que queda es crear algunos accesos directos. Puede asignar esto a los accesos directos existentes, como Alt + F4 (cerrar el programa en Windows) o Cmd + Q (salir del programa macOS). Alternativamente, asegúrese de leer nuestra guía de atajos de teclado definitiva Atajos de teclado de Windows 101: La guía definitiva Atajos de teclado de Windows 101: Los atajos de teclado de guía definitiva le pueden ahorrar horas de tiempo. Domine los métodos abreviados de teclado universales de Windows, los trucos con el teclado para programas específicos y algunos otros consejos para acelerar su trabajo. Más información, cómo crear accesos directos de Windows Cómo crear accesos directos de escritorio de Windows de la manera más fácil Cómo crear accesos directos de escritorio de Windows de la manera más fácil Los accesos directos de escritorio inteligentes pueden ahorrarte errores al buscar en menús y carpetas. Le mostramos formas rápidas y fáciles de crearlos. Lea más, y todos los accesos directos de Chromebook Aquí encontrará todos los accesos directos de Chromebook que necesitará Aquí está el acceso directo de Chromebook que necesitará ¿Está buscando una lista maestra de accesos directos de teclado para su Chromebook? Aquí encontrarás todas las combinaciones de teclas que necesitarás para Chrome OS. Lea más para comenzar a crear sus propios accesos directos.

¿Has creado tu propio cuadro de acceso directo? Déjame saber en los comentarios, ¡me encantaría ver algunas fotos!

In this article