Construye tu volante para videojuegos (DIY)

Si te has sentido un hombre frustrado al entender que un buen videojuego de carreras de coches se juega con un volante de manejo en vez de con las flechitas del teclado, este es el artículo que estabas esperando. Gracias a la maravilla de un acelerómetro de tres ejes MMA7260Q vas a poder construir tu propio volante de juego o experimentar más allá en el desarrollo de esta plataforma que hoy te traemos. Quizás mañana nos cuentes que has transformado este proyecto en un verdadero Wiimote para ordenador hecho completamente con tus manos o quién sabe que otra clase de maravilla. Hoy, seguramente disfrutarás como nunca antes tus juegos de carreras con este volante que tanto necesitabas. Si creías que los volantes de manejo eran para unos pocos afortunados que podían pagar muchos billetes por ellos, llegó la hora de demostrarte que tú también puedes tener uno. Por supuesto, fabricado por ti mismo, que es lo más importante.

En artículos anteriores, hemos conocido los acelerómetros y hemos podido aprender, entre otras cosas, que son dispositivos de reducidas dimensiones y que poseen la propiedad de detectar movimientos según el modo de trabajo al que se los someta. En el modo dinámico, este componente es capaz de entregarnos una información proporcional a las aceleraciones que es sometido junto al elemento que lo lleve consigo durante los ensayos. Es decir, en el ejemplo ya analizado, se lo instala en un automóvil y se puede medir de esa aplicación las aceleraciones y desaceleraciones a las que los ocupantes del vehículo son sometidos y que son provocadas por el manejo demostrativo del conductor del coche. Además de este modo dinámico, existe una forma estática de utilización y el resultado es expresado a la salida de un acelerómetro con variaciones de señal, generadas dentro del propio dispositivo, al interactuar éste con la gravedad de la tierra.

Los habrás visto hacer de las suyas en el Wiimote o en los teléfonos de alta gama rotando las imágenes según la posición en que el usuario decida manejar su equipo. Con el continuo abaratamiento de costos, los acelerómetros se están haciendo presentes cada día con más fuerza en la electrónica de consumo y de alcance masivo. Desde un indicador de nivel utilizado en albañilería, pasando por tobilleras que pueden monitorear cada paso al caminar, hasta el volante que hoy te vamos a mostrar, las aplicaciones se encuentran en los lugares más inesperados, casuales y creativos, llevando soluciones sencillas a grandes problemas que los usuarios deben enfrentar a diario. Vale recordar, además, que son capaces de detectar pequeños movimientos en los tres ejes dimensionales (X, Y, Z) siendo muy requeridos en la actualidad por la mecatrónica y la robótica para resolver los informes de movimientos y posición hacia los sistemas de control.

El acelerómetro de la firma D-TEC utilizado en los ensayos

Por último, antes de entrar de lleno en la construcción del volante y considerando la amplia variedad de estos dispositivos que existe en el mercado, podemos decirte que utilizaremos un acelerómetro con salida analógica para cada eje, de los que sólo utilizaremos dos (X e Y). Hacemos esta salvedad ya que actualmente se están difundiendo mucho las prácticas con la última generación de acelerómetros que poseen salida I2C y SPI, modelos que esperamos próximamente ensayar y traerte algún montaje atractivo con ellos. La ventaja que poseen por sobre los dispositivos de salida lineal es que poseen mayor inmunidad al ruido, mayor sensibilidad y precisión y no requieren de ajustes de escalas ni arreglos matemáticos dentro del programa del microcontrolador para poder obtener los valores correctos en la salida. Una trama de datos con el valor exacto nunca permite márgenes de error o dudas en la conversión.

Nuestro circuito
Armado en torno a un PIC 16F877A, utilizaremos para nuestro volante la información obtenida de dos ejes del acelerómetro que ingresaremos a través de las entradas analógicas AN0 (A Ene Cero) y AN1 (A Ene Uno). Allí procederemos a colocar los valores leídos obtenidos a cada momento dentro de dos variables del tipo WORD las que serán comparadas en forma constante y, de acuerdo a su valor, realizarán a la salida de los primeros cuatro bits del puerto C acciones específicas, como te mostramos en el siguiente video.

Seguramente, ya te has dado cuenta de lo sencillo que es acceder a una aplicación que nos permitirá aglutinar un conjunto de elementos que sabíamos que existían y que ahora comprendemos, poco a poco, cómo se comienza a cristalizar el bosquejo de nuestro volante. Habrás observado en el video que el display alfanumérico indicaba dos variables que fluctuaban conforme al movimiento que se ejercía sobre el protoboard. A una de ellas la llamamos DOBLAR y a la otra ACELERAR. En el listado del programa verás otro nombre para la segunda variable, pero es un sinónimo con el que no podrás confundirte. Además de las variables, al inicio del listado de programa, puedes ver las rutinas de definición de parámetros para el display LCD y para el conversor analógico-digital. Luego, los TRIS que determinan la función de entrada y/o salida de los puertos utilizados y el correcto ajuste del registro ADCON1 dentro del microcontrolador, para poder realizar una correcta adquisición de señales desde cada salida del acelerómetro.

Encabezado del programa donde vemos las definiciones de las variables y el resto de las declaraciones

Los valores obtenidos en los conversores ADC del PIC no requieren ningún arreglo matemático para ser expuestos en el display debido a que éste será retirado en operación normal del volante. Sólo está previsto su uso para observar la variación numérica que muestra al mover el conjunto hacia atrás o adelante (avanzar/frenar) y hacia los costados (doblar) durante los ensayos. Por lo tanto, tal como el ADC recupera datos desde un mínimo (que no es cero y ya veremos por qué) hasta 1023, así los verás en el display y los utilizarás dentro del programa del microcontrolador comparando los resultados obtenidos con valores preestablecidos. Estas comparaciones ejecutarán acciones según la lectura que el acelerómetro entregue. Es decir, menos de un valor, indicará una cosa; más de otro valor, significará otra, y así adecuarás tu programa y tus valores predeterminados según el ejemplo que te dejamos. Esto es así debido a que nunca dos construcciones son idénticas y los resultados siempre están expuestos a ajustes, por pequeños que estos sean.

Esto ocurre habitualmente cuando se pasa de un prototipo a una unidad terminada y montada, siempre que se utilicen las entradas analógicas. Las capacidades parásitas a las que un sistema es expuesto al trabajar en placas de prueba provocan variaciones respecto al montaje definitivo que una lectura digital por bus I2C no provocaría, por ejemplo. Es por esto que si decides montar el circuito que te proponemos, deberás revisar que los valores que utilizamos para su ajuste también sean útiles en tu desarrollo. Si esta condición no se cumple, puedes cambiar los valores de comparación en el código fuente que te dejamos al final del artículo.

Rutina de comparación de los valores obtenidos en una de las entradas del ADC

En las partes del código donde encontramos las instrucciones HIGH o LOW y a continuación el nombre del puerto C seguido del pin involucrado, estarás activando o apagando los LED indicadores de cada acción que ejecute el sistema. Esta misma conexión será la encargada de habilitar las llaves internas del CD4066B que se conectarán en paralelo con cada botón correspondiente a las flechas de movimiento del cursor, ubicadas en un teclado convencional. De esta forma, ayudado por un elemento que ya no utilizas (el viejo teclado), te podrás valer para realizar con comodidad el trabajo. Es muy importante en este punto de la construcción que seas altamente prolijo y cuidadoso ya que deberás soldar los cablecillos que salen del CD4066B y llegan a la placa del teclado para su conexión.

Deberás utilizar el cable más fino que consigas y un teclado que tengas fuera de uso. Si no posees suficiente práctica con el soldador (o cautín), puedes ocasionar daños en las vías de conexión que culminarán con el teclado en el bote de basura. Si no posees cables bien finos y buena práctica en soldar cosas muy pequeñas, pide ayuda a alguien antes de emprender este difícil paso. Y lo más importante: no te equivoques de vías de conexión. Marca su recorrido si es necesario para no confundir los lugares a soldar porque, además de ser un problema el hecho de trabajar en un espacio tan pequeño, si te equivocas en el recorrido de una vía, deberás hacer el trabajo dos veces con el riesgo que ello implica.

Mucha atención y cuidado al trabajar dentro del teclado

Controla bien con el multímetro la continuidad de las vías antes de soldar los cables y asegúrate que lo harás en los lugares correctos y de la forma correcta. Luego, al otro extremo, conecta los cables (sin errores) al CD4066B. Podrás notar que algunos botones comparten la misma vía y eso ayuda a que sea menor la cantidad de cables a soldar en la placa del teclado. Por lo general, con cinco cables se resuelven las ocho conexiones necesarias de las cuatro llaves electrónicas. Con mucho cuidado, alineas bien el teclado de membrana con la placa y tapas el conjunto sin olvidarte ningún tornillo. Muchas anotaciones, cables de diversos colores y un ambiente tranquilo te ayudarán a no cometer errores. Controlar la ansiedad que provoca saber lo que estás construyendo es algo complejo, pero en NeoTeo estamos seguros que tú podrás lograrlo.

Retomando la explicación de funcionamiento del circuito, puedes observar en la entrada RA3 un zener ajustable LM336 2.5V que utilizaremos como referencia de tensión a medir en las entradas analógicas. Es decir, debido a que el acelerómetro trabaja con una alimentación de 3.3 Volts y en sus extremos de medición entrega valores comprendidos entre 0.85 Volts y 2.45 Volts, necesitamos tener un tope de escala (cuando la conversión alcanza la posición 1023) de 2.5Volts para un mejor desempeño del sistema. Si utilizáramos la referencia fija de 5 Volts, la medición “a fondo de escala” sólo llegaría hasta la mitad y el error de lectura sería mayor y más complejo de solucionar. De este sencillo modo, utilizamos todo el rango del conversor para medir la señal en las entradas del ADC.

Circuito propuesto para tu nuevo volante

Para obtener los 3.3 Volts a partir de los 5 Volts utilizados por el resto del circuito, empleamos un regulador serie llamado AZ1117 3.3. Gracias a que el módulo acelerómetro que hemos seleccionado (o el que tú decidas utilizar) es un sistema que consume muy poca energía (medio miliamper) en condiciones normales de uso, no será necesario que el regulador cuente con disipador de calor y podrás utilizar cualquier encapsulado sin inconvenientes. También puedes alimentar el módulo con una resistencia limitadora y un zener de 3.3 Volts, pero siempre será conveniente el empleo de reguladores fijos y evitar las sorpresas que puede depararnos un error en el cálculo de la resistencia limitadora.

Distribución y montaje de nuestro prototipo

Como puedes apreciar, el montaje no reviste mayor complejidad a la que ya estamos acostumbrados y, con paciencia y con los materiales necesarios, en una tarde ya tienes que tener listo tu prototipo de pruebas para ensayar su funcionamiento. En la imagen puedes ver que hemos colocado un interruptor en la parte superior izquierda para activar o desactivar el sistema. Hemos colocado varios capacitores de desacoplo en la línea de alimentación para evitar ruidos eléctricos que puedan perturbar el funcionamiento del sistema y, por último, la recomendación de siempre: prolijidad, paciencia y confianza en ti mismo, un conjunto de elementos que te llevarán siempre hacia buenos resultados. Si todo está correctamente conectado, controlado y ensayado por partes, como vimos en los videos anteriores, al conectar podrás tener un funcionamiento muy similar al siguiente:

Conclusiones
Este montaje que te mostramos es la piedra fundamental del gran sistema de manejo que puedes llegar a construir. En muchas oportunidades ocurre que soñamos con algo o deseamos ese algo y no tenemos la mínima idea de cómo llegar a lograr el objetivo. Aquí el camino está marcado y las posibilidades de ampliación son muchas. Por ejemplo: en el código del microcontrolador, las comparaciones son simples. “Dobla – No Dobla”, “Acelera – No Acelera”. Tú puedes expandir estas rutinas colocando fases intermedias de doblado para hacer más suave el doblado, si es necesario. Es decir, que apenas se salga de la “ventana” permitida para viajar en línea recta, exista una primera instancia donde la salida al CD4066B sean pulsos muy breves que no signifiquen doblar bruscamente sino que permitan una mayor suavidad y un mejor dominio del volante. También puedes agregarle pulsadores al sistema y otro sistema de llaves electrónicas para comandar operaciones en el juego que requieran pulsar más teclas.

O sea, a partir de aquí los agregados corren por tu conveniencia y posibilidades. Hasta puedes montar todo el sistema del acelerómetro dentro de un fino volante cubierto en cuero de serpiente y acomodarlo junto a una delicada butaca de competición creando así un sistema digno de exposición. Tú decides hasta dónde llegas. El paso inicial ya lo has dado al comprender el funcionamiento del volante y al acordarte que tienes por allí un teclado que ya no utilizas. Sólo resta conseguir un puñado de componentes y comenzar a disfrutar las carreras de coches como si estuvieras en el mejor de los videojuegos de salón. Además, en la Web encontrarás mucha info sobre acelerómetros (marcas, modelos, cantidad de ejes, variedad de precio) y su optimización de funcionamiento. Nosotros sólo hemos probado este modelo de la marca D-TEC y, como pudiste apreciar, el funcionamiento es óptimo; el que falla es el que empuña el volante. Seguramente tú lo harás mejor.

Edición 17/12/2009: Como ya nos tiene acostumbrados con sus trabajos, el amigo Yesbond de Colombia, fiel seguidor de NeoTeo, ha construído su propio volante para videojuegos basado en las explicaciones vertidas en este artículo. Como pueden apreciar en las imágenes, la construcción es posible y sólo es cuestión de empeño, esfuerzo, ganas de progresar, y avanzar. ¡Vamos amigos! ¿Quién sigue con sus demostraciones? ¡Felicitaciones Yesbond! Gracias por estar siempre con NeoTeo.

Leave your vote

0 puntos
Upvote Downvote

Total votes: 0

Upvotes: 0

Upvotes percentage: 0.000000%

Downvotes: 0

Downvotes percentage: 0.000000%

  • Seppuku

    muy bueno che interesante voy a ver si consigo un acelerometro de estos

  • AEROS

    Uffffff que suerte!!!! y yo que iba ahora a comprarme un volante para mi nuevo juego de coches.

  • fabian_d10s

    Muy buen artículo Mario!!!

    • Mario Sacco

      Gracias Fabian !

      Saludos !

  • guilzom

    Muy bueno… pero no entiendo como se podrían implementar acciones de doblado mas suave o acelerado/frenado moderado, si en últimas utilizamos los comandos del teclado y lo que hace el circuito con el aceleromentro es traducir las acciones del volante por las teclas de dirección… Suponge q para tener un control mas fino se requeriria utilizar un gamepadcon analogos en vez del teclado…

    • Desiderium

      Aplicas una especie de PWM…. la suavidad dependeria de la frecuencia de pulsación que soporte el teclado, la pc y el videojuego…

      • Mario Sacco

        Exacto.
        En las conclusiones está escrito:
        "…. donde la salida al CD4066B sean pulsos muy breves que no signifiquen doblar bruscamente ….", eso signifiqua que no simule una acción de manera constante de la tecla, sino que imite un acto de pequeños impulsos que en la realidad sería una señal variable en frecuencia.
        Para lograrlo, habría que modificar la rutina propuesta por otra, donde la lectura de las variables se transformen en un valor de frecuencia de salida a través del pin.
        A mayor inclinación del volante = mayor frecuencia a la salida del pin = más dobla el coche.

        Saludos !

  • Fede

    Sí, NeoTeo no es un blog más…

    • Mario Sacco

      Gracias Fede ! 🙂

      Saludos !

  • Gabo

    Mario sabes como se pueden conseguir los MMA7260Q (o cualquier otro acelerometro) aca en la argentina? digamos sin tener que pagar una fortuna por ellos.

    • Mario Sacco

      Hola Gabo !

      Donde yo lo compré, lo menciono en el artículo (al final puse el enlace al site de esta empresa) me lo cobraron lo correcto. Debes tener en cuenta que no son componentes taaaaaaaan baratos, pero además tenés la ventaja que te lo entregan listo para usar en un formato "manejable".
      Además es gente de Argentina. Sinó debieras caer en comprarlo en el exterior y tal vez se pierda en aduana o te cobren cargos extras y te salga tremendamente caro … es decir, siempre será más rápido y barato comprarlo en el país.

      Además puedes consultarlo on-line con esta gente.

      Saludos !

  • Diego

    Hola, yo tengo un protoboard tirado por ahi, no podrias hacer varios articulos de introduccion a la electronica y tambien para poder programarlos, porque la verdad me interesa, saludos desde ARGENTINA!

    • Mario Sacco

      Hola Diego !

      Hay muchos artículos de Electrónica Básica aquí en NeoTeo. Utiliza el buscador del sitio y comienza por los componentes básicos: Resistores, Diodos, Transistores, Condensadores (Capacitores).

      Encontrarás buen material como para iniciar algunas prácticas.

      Saludos !

  • ChUkIsLuKiS

    muy bueno mario , lo malo que no soy bueno en la electronica xd, muy bueno gracias.

    • Mario Sacco

      Gracias a Uds ChUkIsLuKiS por los saludos y hacerse presente en los comentarios.

      Es una alegría muy importante saber que lo que hacemos les gusta. Además, nunca es tarde para empezar amigo. Mientras existan las ganas y la constancia, los buenos resultados llegan solos.

      Saludos y Gracias a Uds.!

  • Ciul

    Wow, te pasaste, que excelente artículo…

    • Mario Sacco

      Gracias Ciul !

      Es una alegría grande saber que les gusta lo que hacemos !

      Saludos !

  • Yesbond

    Hola Mario:
    Creo que la mayoria de las personas que nos gusta la electronica, tambien nos gustan los video juegos. Por ejemplo yo desde pequeño, cuando salia del cole corria directo a la drogueria a juga, contra, mario bross, tetris y todos lo juegos de mi epoca, y siempre me preguntaba, como uno podria llegar a controlar un juego, era un misterio. Y bueno ahora se como funciona, pero con este articulo de verdad que vas ha cumplir uno de mis sueños de chico, muchas gracias Mario, de verdad que nos despiertas la creatividad y animos para levantarnos cada dia y saber que nada puede ser demasiado dificil como para no hacerlo.

    Un gran abrazo desde Colombia.

    • Mario Sacco

      Hola Yesbond !

      Los videojuegos son un sentimiento importante en muchas de las últimas generaciones y por supuesto, no podíamos estar ausentes de este fenómeno cultural. Además, el artículo puede ser visto desde muchos puntos de vista. Desde el lado de la construcción de un volante como dice el título, o desde el lado de la utilización de un acelerómetro y las puertas a la experimentación que nos abren estos modernos dispositivos. 🙂

      Un abrazo amigo !

  • ICesarI

    Chévere. Justo lo que necesito para videojuegos de aviación.

    • Mario Sacco

      No tuve tiempo de probarlo en esa clase de juegos pero seguramente será una experiencia interesante. Además, el movimiento es el mismo que el de un timón de avión.

      Éxito y esperamos tus comentarios cuando lo experimentes.

      Saludos!

  • Ramiro

    Excelente el artículo mario…. una duda los volantes comerciales trabajan con resistencias variables en lugar d acelerometros??
    Pero excelente la idea ya que resuelve todo el sistema con solo dos canales del AD..

    • Mario Sacco

      Hola Ramiro!

      En el comienzo de los tiempos se trató de utilizar potenciómetros de excelente calidad (Bourns) y no soportaban el trabajo intenso. Luego se pasó a la técnica de los optoacopladores en forma de "U" accionados por ruedas dentadas acopladas al volante y la suciedad y la tierra hacían estragos al poco tiempo.
      También he visto algunos con sensores magnéticos que son los más durables a mi entender.

      Actualmente existen modelos de todos los precios y con todas las técnicas que te he mencionado. Con acelerómetros no he visto ningún producto comercial.

      Saludos! :))

  • ELhackerAND

    WOW, haces que se vea tan facil, y de seguro ahora lo veo asi. esperaré que salga la tinta imprime circuitos, y lo haré.
    espero algun dia construir un acelerador de particulas contigo. plop!

    • Mario Sacco

      No sólo parece fácil, "es fácil".

      Con ganas y buena voluntad todo es más sencillo.

      Saludos!

  • AND_77

    Muy interesante.. si este verano llego a conseguir algún acelerometro me voy a poner a hacer este proyecto. Lo complicado es que soy de mendoza y por acá no se consiguen, solo haciendo pedidos por internet. Muchas gracias por compartir tremendo articulo..

    Salu2..

    • Mario Sacco

      Gracias a tí amigo por estar con nosotros! 🙂

      Las distancias no son problemas. Un simple envío por correo acorta cualquier distancia.

      Saludos!

  • el_matt

    che que bueno esto es LUPIN 2.0 jeje

    lastima q mis incursiones en la electronica no superaron "motorcitos" de mis autitos de juguete y algún coqueteo con las lamparitas densarmadas del arbolito 😛

    ya fue por 190 mangos pego un volante y lesto jeje

    • Fede

      Ja! Yo Leía Revista Lúpin!!

  • JULI

    Que tal Mario
    tengo una pregunta, que entorno de programación usas en este proyecto?

  • Rodrigo Marquez

    Hola espero todo bien yo soy de mexico se me hace muy interesante este articulo pero una pregunta donde pueda adquirir el ecelerometro si puedes mandame un correo vale gracias

  • gabriel

    que loca pagina, primera vez q entro, interesante MUY, mi pregunta es, dado la cantidad de cabezas quemadas por intentar un FFB, se podria usar un acelerometro conectado a una placa de potencia fuerce a un motor paso a paso a mantenerse derecho???, insisto muy buena la pagina

  • Raulex

    Cual es la lista completa de componentes?? el circuito no se ve muy bn

  • Alejandra

    Esta genial este proyecto, me gustaría realizarlo pero lamentablemente la imagen del esquemático no se ve muy bien, me podrías facilitar la lista de componentes ?? Gracia.