Lamentablemente con la primera compra no me fue muy
bien. Hasta el momento ha sido un poco cansador y frustrante el no contar con
buenas tiendas de electrónica en Chile, pero bueno.... basta de quejarse y continuemos.
El objetivo de este nuevo avance en la simulación
del panel FCU del A320, es realizar una prueba de concepto para ir validando
los conocimientos adquiridos en electrónica y respecto a la interacción con el
Simulador de Vuelo. Para lograr este objetivo fue necesario realizarme las
siguientes preguntas:
- ¿Tengo conocimientos previos de electrónica? Lo básico, temas vistos en la universidad.
- ¿Tengo conocimientos respecto al uso de placas Arduino? No...
- ¿Tengo conocimientos de cómo acceder a los datos del Simulador de Vuelo? No...
- ¿Tengo definida una estrategia para lograr mis pruebas de concepto? No...
Ahora que conozco "mi estado del
arte", puedo comenzar a definir mi estrategia para cumplir con la meta.
Para eso tuve que fortalecer mis conocimientos en los temas antes mencionados
y que mejor que ver videos de personas que explican dichos temas en YouTube. A
continuación les dejo la lista de los links y videos que más me ayudaron:
Luego de días de lectura y ver videos de apoyo
logre definir una estrategia para la comunicación entre el Simulador de Vuelo
(en mi caso Prepar3D) y el Hardware que implemente. Esta primera estrategia consistía
en crear una aplicación en lenguaje C# utilizando la librería
SimConnect, la cual permite tener comunicación directa con datos del
simulador, y programar la lógica del Hardware utilizando el IDE propio de Arduino.
Las primeras pruebas pequeñas siguiendo tutoriales
y accediendo a la información generar del A320, como el nombre del avión y
latitud, fueron exitosas. Sin
embargo, al realizar pruebas de acceso a información del panel del FCU del A320
(proveedor Aerosoft) estas fallaron, nunca logra tener acceso a los datos. Aquí
les dejo un extracto del código el cual según entiendo debería entregarme la
altura que marca el FCU.
simConnect.AddToDataDefinition(DEFINITIONS.Struct1, "AB_AP_ALT_Select", "feet", SIMCONNECT_DATATYPE.FLOAT64, 0.0f, SimConnect.SIMCONNECT_UNUSED);
Si alguien sabe en que falle, le agradecería me
indicará mi error ya que luego de tratar varias formas de leer la información
nunca pude obtenerla.
El fallar con la primera estrategia de comunicación entre el Simulador de Vuelo y el Hardware no me dejo otra alternativa que buscar si existía otra opción, la cual luego de algunos dolores de cabeza la encontré.
Esta segunda estrategia para la comunicación entre el Simulador de Vuelo y el Hardware que implemente, consiste
en utilizar el ad-on FSUIPC (creado por Pete Dowson para FS y Prepar3D) y crear un script en lenguaje LUA para tener acceso a los datos del
simulador, y programar la lógica del Hardware utilizando el IDE propio de Arduino. Tengo el agrado de indicarles que con esta segunda estrategia todos los resultados fueron exitosos.
Estos son otros links de interés relacionados a la segunda estrategia de comunicación.
Finalizando este avance de las pruebas de concepto les dejo un video en donde muestro el resultado de lo aprendido en funcionamiento.