Autos

Aquí se explica cómo piratear el grupo de instrumentos de un automóvil real para que funcione completamente con un videojuego.

No faltan grandes plataformas de simulación de carreras, especialmente porque la pandemia ha llevado a muchas soluciones de carreras en casa. Desde configuraciones económicas hechas con tuberías de PVC hasta aquellas un poco más extravagantes que otras, como la configuración casera de Sebastian Vettel hecha con un chasis F1, cada una tiene su propio nivel de realismo. Sin embargo, pocos están dispuestos a llegar tan lejos.

Recientemente, un modder de videojuegos decidió integrar un tablero real en su experiencia de juego. Reddit mostró el proyecto completo en todo su esplendor, con el jugador lanzando una copia de BeamNG con un montón de Lada Granta. El caso es que este clúster real funciona en paralelo con las imágenes de la pantalla, hasta el más mínimo detalle.

La magia detrás de este mod en particular es el protocolo OutGauge, como explica profundamente el modder. explicación técnica. Esencialmente, esto toma las señales que esperaría en el juego, incluidas las RPM, la velocidad y las luces de advertencia, y crea una secuencia de mensajes que simplemente informan que todo lo que “escucha”. software como SimHubComentario usó OutGauge y otros protocolos para hacer esencialmente lo mismo para varios títulos: Assetto Corsa, BeamNG, Dirt, Fuerza, y más. Sin embargo, la mayoría de los usuarios de SimHub simplemente tomarán un montón de herramientas Arduino y BMW E36 para facilitar la implementación; Correcto conectar algunos pines juntos y tienes frente a ti un material físico de una máquina real.

Este Redditor hizo todo lo posible para experimentarlo BeamNG aún más atractivo.

En lugar de usar Arduino para enviar señales a unos pocos pines, el modificador del juego decidió conectar el grupo de medición a una interfaz USB y simular por completo los mensajes de fábrica que se enviarían a los microcontroladores dentro del grupo de instrumentos. Esto se logró a través de mensajes de ingeniería inversa enviados a través de la red CAN Bus del automóvil, que es exactamente cómo se comunica el automóvil cuando alguien está conduciendo en una carretera real.

Ejemplos de mensajes CAN traducidos utilizando una base de datos DBC, que se muestran en la herramienta Cabana de Comma AI.

El bus CAN es una red de transmisión, lo que significa que cada nodo de un vehículo tiene la capacidad de escuchar todas las transmisiones generadas por un dispositivo o microcontrolador que está en la red. Los mensajes CAN a menudo se filtran a través de puertas de enlace y, aunque algunos mensajes pueden estar expuestos al puerto OBDII, no será posible detectar todo el tráfico CAN sin tocar otro lugar. Un buen ejemplo es OpenPilot, que requiere que el hardware interactúe lo más cerca posible con el carril de fábrica de un automóvil que sigue a la cámara. Esto permite que el dispositivo detecte el tráfico CAN que normalmente no se vería en el puerto OBDII y, esencialmente, realice un ataque de intermediario para interceptar y modificar los mensajes CAN para regular el comportamiento de espera de la ruta.

En lugar de usar un script precompilado, Redditor decidió decodificar los mensajes CAN producidos por un Lada Granta para controlar el grupo de indicadores. Comenzó con la grabación de los mensajes CAN producidos por el Lada mientras circulaba por la ciudad. Después de que se completó el viaje corto, el grupo de instrumentos se retiró del automóvil y se colocó para la prueba de banco. Los mensajes CAN recopilados durante el viaje se reprodujeron para ver cómo respondía el grupo de indicadores, lo que permitió lentamente al Redditor crear una base de datos que transforma los datos CAN sin procesar en información utilizable.

Ahora que los datos sin procesar se han mapeado en un formato correspondiente a acciones reconocibles por humanos, el siguiente paso fue crear un programa capaz de interpretar los mensajes generados por el protocolo OpenGauge y traducirlos en mensajes CAN apropiados que el grupo de medidores puede incluir. . Para hacer esto, Redditor creó una pequeña secuencia de comandos de Python que actuó como intérprete y rápidamente pudo obtener velocidad y RPM para mover las agujas del grupo.

Pero conocer la velocidad actual del vehículo y las RPM no era suficiente. BeamNG es un simulador bastante bueno que agrega algunas características de realismo a la mezcla. De hecho, BeamNG permite a los usuarios jugar con casi cualquier variable y condición del vehículo como si estuvieran en un automóvil físico. anteojeras? Controlar. regulador de velocidad? Controlar. ¿Luz de control de tracción mientras se realizan grandes quemaduras humeantes? Controlar.

Incluso le permite al jugador hacer estallar sus neumáticos, lo que genera un evento TPMS en el protocolo OutGauge que este modificador ha traducido en un evento CAN que se muestra en el grupo de instrumentos. Esto es solo el comienzo, ya que BeamNG también simula eventos de control de tracción, detectando cuando el usuario “jala” el freno de emergencia o tiene un evento catastrófico en el motor que causa baja presión de aceite. Por cierto, todo esto se puede traducir al clúster de Lada a través de mensajes CAN.

Este proyecto es innegablemente genial e innovador. Cabe señalar que alguien en los comentarios dice que han adoptado un enfoque más moderno para este proyecto con el grupo de un Ford Fusion y una Raspberry Pi. Y si todavía es demasiado para pasar pero aún desea más controles físicos en su simulador de carreras, siempre puede conectar un viejo tablero de BMW a un Arduino juntos. SimHubComentario.

¿Tienes un consejo o una pregunta para el autor? Contáctelos directamente: rob@mundotuerca.cl

Deja una respuesta

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