Botonera DIY con Arduino: 1/5 Diseño

Esta es la primera entrada de la serie sobre el diseño, programación y fabricación de una botonera para simuladores de conducción. En esta entrada veremos las nociones básicas de por qué nos conviene fabricar una botonera para nuestro simulador y el diseño inicial.

Puedes acceder a la entrada posterior clicando en el enlace siguiente:


El porqué de una botonera

Todos hemos pensado alguna vez “ojalá tuviese más botones en mi cockpit”. Incluso con volantes en el mercado como los Podium de Fanatec podríamos llegar a necesitar más botones. Es por ello que os traemos un tutorial para construir una botonera 100% personalizable a nuestros gustos y necesidades y que nos va a servir para nuestros simuladores en PC como Assetto Corsa, Project CARS 2, rFactor 2, Raceroom o DiRT Rally 2.0, pero también para simuladores de conducción como Euro Truck Simulator 2 o American Truck Simulator, Farming Simulator o incluso para simuladores de vuelo como Flight Simulator.


Arduino, ¿si o no?

Nos vamos a centrar en una botonera sencilla pero robusta, usando Arduino como plataforma de programación. Existe la opción de usar una placa controladora de máquina arcade Zero Delay para controlar la botonera, pero más adelante os explicaremos el motivo de por qué nosotros nos decantamos por Arduino para este caso en concreto. Hay muchas placas en la familia Arduino y tomaremos la Pro Micro por su reducido tamaño en relación a la cantidad de botones que le podemos conectar.

Clon del Arduino Pro Micro y Controladora Zero Delay para máquina arcade.

De entrada, usar la controladora Zero Delay parece la mejor opción por ser la más sencilla, pero Arduino tiene una gran ventaja: podemos valernos de la posibilidad de personalizar la programación de la placa para disponer los botones en una matriz para multiplicar el número de ellos en nuestra botonera. Si queremos montar por ejemplo 9 botones on/off en nuestra botonera y cada uno de ellos tiene dos polos, necesitaremos 18 pines en nuestra placa, por lo que casi llenaríamos la controladora Zero Delay. Si en lugar de conectarlo par a par lo conectamos mediante una matriz, con 6 pines tendremos suficiente (3 pines para las filas y 3 para las columnas nos da 9 botones en la matriz).

En la imagen siguiente vemos cómo podemos seleccionar cualquiera de los puntos mediante una letra y un número. Todos hemos jugado alguna vez al “Hundir la flota”…

Ejemplo de puntos de una matriz 4×4.

En la práctica, lo que hacemos con Arduino es decirle que mire qué columna y qué fila están conectadas al botón que acabamos de pulsar para identificarlo y enviar la orden al PC via USB. Sin más, vamos con el diseño de la botonera.


Diseño de la botonera

La botonera que vamos a hacer debe cumplir varios requisitos:

  • Servirnos para nuestros simuladores, en PC.
  • Tener varios botones sencillos de pulsación momentánea (on/off).
  • Tener varios pulsadores de dos direcciones (on/off/on).
  • Tener varios codificadores rotatorios.

Basándonos en la conexión en matriz, programaremos un sketch para Arduino con el que podremos conectar hasta 25 botones on/off y 4 codificadores rotativos a nuestra botonera y alimentarla con un único cable USB.

Cabe tener en cuenta que hablamos de 25 botones on/off, ya sean momentáneos o de posición fija o alternadores.

Tipos de botones on/off: momentáneos, fijos o alternadores.

Si lo que queremos es conectar botones de tres posiciones, estos contarán como dos botones simples cada uno de ellos, por lo que el número de 25 botones se reduce. Es el mismo caso que los codificadores rotatorios que a su vez tienen pulsación. Cada codificador que conectemos restará también uno de los 25 botones.

Cabe aclarar que los codificadores rotatorios que usaremos no son interruptores rotatorios de varias posiciones como los que encontramos en el selector del modo de luces de un coche (apagadas, posición, cortas, largas…) sino que son como el dial de volumen, que girando hacia un lado actúa como pulsaciones de un botón y girando hacia otro actúa como pulsaciones de un segundo botón. Podríamos usar interruptores rotatorios, pero uno de 5 posiciones nos ocuparía una fila entera de la matriz 5×5 y eso debemos tenerlo en cuenta para el diseño e la botonera y la placa a usar.

La botonera en cuestión se basará en el esquema siguiente:

Distribución física de los botones.
  • Negros 1 a 3: botones on/off momentáneos.
  • Rojo 4 y Amarillo 5: botones on/off momentáneos.
  • Negros 6 a 9: botones on/off/on momentáneos.
  • Plateados 1 a 4: codificadores rotatorios con pulsación.
  • Negros 10 y 11: botones on/off momentáneos.

Si distribuimos todos estos botones en una matriz 5×5 obtenemos lo siguiente:

Distribución eléctrica de los botones (bsado en el trabajo del usuario de XSimulator TOPMO3).

En el esquema que vamos a programar separaremos los pines destinados a los codificadores y los destinados a los botones. Vemos en la imagen cómo los codificadores rotatorios aparecen dos veces, pues los conectaremos como codificadores y también como botones de la matriz para aprovechar la rotación y la pulsación de todos ellos. También vemos cómo los botones 6-7 y 8-9 ocupan dos posiciones de la matriz, al tener dos botones cada unidad (son botones on/off/on).

Podemos apreciar como la matriz es de 5×3 en lugar de 5×5, pero tenemos todavía dos pines sin usar (A0 y 15) que serían las dos filas que faltan y que podemos conectar si en un futuro queremos ampliar la botonera. La idea para este proyecto en concreto es añadir más adelante unas palancas para intermitentes, limpiaparabrisas y control de luces, perfectas para Euro Truck Simulator 2 o American Truck Simulator. Para este propósito nos quedarán 10 botones libres.


En la siguiente entrada de esta serie veremos el listado de materiales y dónde conseguirlos. Puedes acceder a la entrada posterior clicando en el enlace siguiente:

Un comentario sobre «Botonera DIY con Arduino: 1/5 Diseño»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *