Existe un software para simuladores (aviones o coches) disponible en www.x-sim.de y mientras lo investigaba para un futuro simulador con movimiento, descubri que tambien permite realizar paneles de instrumentos, sobre todo orientado a los simuladores de coches, asi que decidi actualizar el display.
Este software tiene varias ventajas, por un lado puede utilizarse con varios simuladores, simplemente configurando el perfil adecuado, por otro, tiene un modulo de comunicacion serie, por lo que eliminamos varias capas intermedias, recordemos que antes teniamos:
simulador->servidor iocp->SIOC->script en python->arduino
y ahora se reduce a:
simulador->software x-sim->arduino
Desde aqui podeis bajaros el programa para arduino:
https://www.dropbox.com/s/nwc9pek3ynyj2qw/xsim_rpm5.ino
Esta ampliamente inspirado en el que aparece en este post: http://www.x-sim.de/forum/viewtopic.php?f=40&t=155
Tiene dos mejoras, por un lado la gestion de las RPM maximas y minimas, y por otro lado tiene una conexion serie mas fiable, que soporta sin problemas interrupciones y desconexiones del puerto serie.
Funcionamiento:
En el display numerico aparecen:Indicador de Bandera (no funciona, deberia aparecer cuando hay bandera amarilla, pero el xsim no lo exporta).
La marcha actual.
La velocidad en km/h.
Los led se encienden progresivamente y se ponen todos rojos con brillo al alcanzar las maximas rpm, el valor de minimas rpm (cuando se enciende el primer led) y maximas (cuando se ponen en rojo) es configurable con los botones, este es su funcionamiento:
- Boton 1 - Establece el modo F1, rpm minimas = 5000, rpm maximas = 18500
- Boton 2 - Establece el modo GT, rpm minimas = 0, rpm maximas = 9000
- Boton 3 - Recupera de la eeprom los valores de rpm personalizados (modo CU).
- Boton 4 - Guarda en la eeprom los valores de rpm personalizados, al arrancar el arduino lee esto valores y los utiliza, asi para que siempre arranque en modo F1 pulsamos el boton 1, luego el 4 y confirmamos que queremos guardarlos pulsando otra vez el 1.
- Boton 5 - decrementa el valor de rpm minimas
- Boton 6 - incrementa el valor de rpm minimas
- Boton 7 - decrementa el valor de rpm maximas
- Boton 8 - incrementa el valor de rpm maximas
Ademas de la parte visible del programa, las salidas 5 y 6 estan configuradas como servos de modelismo, de cara a experimentar con la simulacion de movimiento de 2DOF.
Configuracion de x-sim.de
El archivo de configuracion se puede bajar de aqui:https://www.dropbox.com/s/ldc191rbhn2glzn/display.rn2
Basicamente el truco esta en configurar adecuadamente la parte matematica, asi como para el valor de velocidad y rpm utilizamos 16bits y un valor siempre positivo, hay que poner el valor maximo de esa señal en 65535, y ajustar el offset a la izquierda del todo.
Para las marchas, utilizamos 8bits, y el valor puede ser negativo, asi que ajustamos a un valor maximo de 128, simetrico, y el offset lo dejamos a 0.
La cadena que envia, usando el modulo SIO, cada 20ms, (puede ser menos), seria:
R~01~~04~S~02~G~03~~05~~06~~07~
Siendo 01 las RPM, 02 la velocidad, 03 la marcha, 04 la bandera, 05 reservado para un futuro force feedback del pedal de freno (8bits), y 06 y 07 (8bits) las posiciones de los 2 servos para la simulacion de movimiento de la cabina.
Como veis, tiene alguna cosa añadida que no esta un implementada, pero para tener un display delante del volante esta perfecto
EDITADO: Nueva version del software, los led funcionan diferente segun sea F1 o GT. Aqui: https://www.dropbox.com/s/uwkqgulp2bohj7a/xsim_rpm6.ino
Hola Alea, ya que veo que de esto controlas, por no decir que eres un maquinón y abusando de tu buen hacer, paso a formularte la siguiente pregunta, tengo un efis de opencockpits que me gustaría usar
ResponderEliminaren rFactor, ¿es posible?, con asociar los botones al teclado del pc me daria con un canto en los dientes, me he puesto a toquetear con el sioc pero no consigo nada. Gracias por tu tiempo.
Hola, no tengo el efis de opencockpits, pero en principio no deberia haber problemas:
ResponderEliminarPor un lado, sioc permite simular un teclado sin problemas, aunque es una opcion que yo apenas he usado.
Por otro lado el efis aparecera en sioc de alguna manera, por lo que lo que tienes que hacer es programar un script en sioc, para que cuando cambie alguna de las variables del efis, genere la pulsacion del teclado.
En este caso ni siquiera tienes que hacer la parafernalia del post anterior, para comunicar SIOC con el rfactor.
Mira a ver si hay algun ejemplo del efis que simule pulsaciones de teclas y adaptalo, hay un archivo .ini en sioc donde dice que teclas quieres simular y el nombre de la ventana a la que se van a enviar.
buenas estava mirando por internet y llege a tu post, podrias hacer un video tutorial?? como configurarlo etc? muchas gracias!
ResponderEliminarHola no se esta activo, pero los link estan caido slos podes subir, gracias
ResponderEliminar