Menu
in ,

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.

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.

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.

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.

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.

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.

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.

Escrito por Mario

Leave a Reply