martes, 27 de diciembre de 2011

Indicadores con servos

A los reyes magos de este año les he pedido una tarjeta de servos de opencockpits, y aprobechando estas fiestas he creado un par de indicadores con servo.
Aun no tiene hubicación definitiva y faltan algunos detalles, me ha permitido ir viendo los problemas de construcción y las soluciones de cara a en un futuro crear los 6 instrumentos básicos de vuelo.Todos los instrumentos parten de la misma idea:
  • Un embellecedor exterior, que sujetara el cristal, o en el caso de los de fuel, cartelitos que tapan ciertas partes.
  • Un separador, para poder tener espacio para las agujas entre el fondo y el cristal.
  • Un fondo, donde pegare una hoja impresa con las escalas y demás.
Aunque no me gusta mucho como queda, en el caso donde las agujas recorren menos de 180º, puedo utilizar el servo directamente:
Cuando las agujas giran mas de 180º es necesario utilizar una desmultiplicación, lo mas fácil de conseguir son los engranajes de lego, asi que dicho y echo. Lo mas complicado es sujetar la corona al servo, en este caso como en el resto, el pegamento de silicona caliente es tu amigo.
La aguja es un trozo de plástico pegado sobre una pieza de lego, que va al eje.
El conjunto funciona bastante bien, y el único problema es que los servos son bastante ruidosos, pero solo se nota en casos especiales, p.e. cuando conecto la batería y los indicadores de fuel pasan de marcar 0 a marcar el contenido de los depósitos.
El otro detalle antirealista, es que tienen demasiada profundidad, debido a los materiales que he utilizado, pero es otro detalle sin importancia.

domingo, 18 de diciembre de 2011

El bus de la avionica en X-Plane

Aunque X-Plane simula varios bus electricos, me encontre con que el de la avionica no esta presente, y lo utilizo como condicion para que diversos led de la cabina se enciendan o no.

Asi que realize un pequeño script que lo simula.
La parte SIOC:
Var 0201, name cal_avivolt
{
CALL &sub_audioled
}

Var 0202, name sub_calcavibus, Link SUBRUTINE
{
IF &xp_avionics = 1
{
&cal_avivolt = &xp_mainbusvolt
}
ELSE
{
&cal_avivolt = 0
}
}
Var 1003, name xp_avionics, Link IOCP, Offset 3460
{
CALL &sub_calcavibus
}
Var 1013, name xp_mainbusvolt, Link IOCP, Offset 5004
{
CALL &sub_calcavibus
CALL &sub_gear
}

La parte de uipcxdatos.txt
3460 sim/cockpit2/switches/avionics_power_on int
5004 sim/cockpit2/electrical/bus_volts _0 float

Asi, cuando cambia la tension del bus 0 (que depende de la bateria y el alternador) o cuando cambiamos el interruptor de la avionica, calculamos en la subrutina sub_calcavibus la tension de ese bus.

El resto de subrutinas, controlan las diversas salidas de la placa master en funcion de diversos parametros.

sábado, 17 de diciembre de 2011

Haciendo funcionar la cabina con X-Plane

Un amigo me dejo su X-Plane 9 (aprobechando que el se compro el 10) y me he puesto manos a la obra para hacer que el panel funcione en este simulador. y he aqui algunos tips:

Lo primero es instalar el plugins UIPCX, este funciona diferente a Flight Simulator, crea un servidor IOCP, hay que configurar en SIOC.ini para que lo busque, la ventaja es que puedes tener SIOC funcionando en un 2º ordenador, sin tener que tener una licencia de widefs, o correr otro sioc en el ordenador del Simulador.

X-Plane tiene una forma de acceder a sus variables internas, a lo fichero unix, tipo sim/aircraft/limits/yellow_hi_FF, el flight-gear hace algo similar, p.e., asi que en la instalacion del plugin se copio un archivo uipcxdatos.txt que contiene una relacion entre offsets y rutas, con el plugin viene una version del autor bastante completa, pero podemos y debemos editar este archivo para adaptar los offset a nuestra configuracion. En www.xsquawkbox.net/xpsdk/docs/DataRefs.html hay una relaccion completa de todo lo accesible.

Y ya solo queda adaptar nuestro programa sioc para utilizar las nuevas variables y adaptarse a las particularidades de este simulador.

domingo, 25 de septiembre de 2011

Estado de mi cabina.

Solo 2 fotos para mostraros el estado actual de mi cabina de simulacion.

Gauges (Indicadores de Aguja)

La entrada de hoy es para comentar la pagina http://www.thegaugesfactory.org/ y sus estupendos productos freeware.
Aunque mi idea final es crear instrumentos de carne y hueso (en realidad de metal y tornillos) una manera rapida y que mucha gente utiliza es utilizar un segundo monitor y dibujar en el los instrumentos, y luego con una cubierta taparlos y hacerlos bonitos.

Mi tarjeta grafica admite un segundo monitor, y tengo una pequeña TV de 10" con entrada HDMI que tiene casi casi el tamaño de los 6 instrumentos standar de todo avion (si os fijais en la foto, en la parte de abajo de los instrumentos se ve el borde de la TV.
Al principio habia utilizado un software llamado GenericGauges V2.1 de jeehellware que encontre en el foro de http://www.mycockpits.org desgraciadamente no se ajusta a mis necesidades, ya que esta pensado para que el instrumento entero este dentro de la pantalla, y yo necesitaba que lo "desbordase" un poco.
Ademas hay dos problemas secundarios, y es que no es posible poner el FSX a pantalla completa, pues ocupa tambien el segundo monitor, y esta TV tiene un aspect-ratio un poco raro, por lo que me salen los instrumentos ovalados, en cualquier caso, es una solucion temporal.
Esta claro que la solucion ideal es tener un segundo ordenador con un monitor grande y suficiente, pero...
El caso es que los instrumentos de http://www.thegaugesfactory.org/ son una maravilla, tienen una calidad estupenda, no cargan la maquina en esceso, y se pueden configurar para que se coloquen en cualquier parte de la ventana.
La gracia de todo esta en el marco que hice a la TV, con los bordes de los instrumentos en relieve, tornillos falsos, etc... que camuflan la TV, hacen que parezca mas grande de los que es y a la vez sirve de soporte para el monitor.Visitar la pagina, por que esta en activo, y cada poco hace nuevos gauges, ademas de estos 6 basicos, tiene para otro tipo de avionetas, indicadores para los equipos de radio-navegacion, motor, etc, etc...

domingo, 3 de abril de 2011

DIY pedales (rudder pedals)

Bueno, despues de mucho tiempo, y mucho pensar me lie la manta a la cabeza y finalize los pedales que hace años habia intentado hacer.
No estoy del todo convencido de como han quedado, y hay varias cosas que cambiare con el tiempo, pero por ahora me sirven perfectamente para practicar los taxis y el giro coordinado.
Detalle general de los pedales, su muelle y el potenciometro que manda la señal al ordenador. y primeros errores:
Supuse que con los dedos de los pies tendria fuerza suficiente como para llevar el pedal en horizontal, falso, la bisagra que los bascula deberia estar puesta en los primeros 5-10cm del pedal, y ademas el angulo esta mal, esa es la posicion que tendrian que tener pisados a tope, y sin pisar estar como a 60º de la horizontal.
Otro error es utilizas DMF y no pretaladar donde van los tornillos, en varios casos se me abrio la "madera" en algunos casos llegando a separarse en 2 como el trozo triangular que sirve de refuerzo en el pedal.
En esta imagen se puede apreciar el mecanismo de centraje, el potenciometro del timon y como hago que cuando un pedal se adelante el otro retroceda, lo del medio es una simple U de aluminio.
Y este es el mecanismo que sujeta el pedal a la U, un tornillo, el sistema es bastante eficaz, aunque un poco ruidoso, y carga demasiado el tornillo central, acabara cediendo.
La cabeza del tornillo era ligeramente mas grande que el hueco de la U, asi que lo puse en el traladro y lo lije hasta que cogio la medida justa para entrar en la U.

Los patines estan sujetos a la base de madera con dos carriles de cajon, esos tornillos sirven de tope y limitan el recorrido de los pedales, en la direccion contraria no hay tope, para eso esta el otro pedal.

Y por ultimo un detalle de la electronica, que de momento es la placa de joystick de Opencockpits, que se puede comprar en su web, aunque espero algun dia ponerme a programar un pic para que no aparezcan los ejes y botones fantasma que ahora no uso.

lunes, 14 de marzo de 2011

Utilizando subrutinas

Mientras estube configurando la parte relativa a entradas, no me encontre con la necesidad de utilizar subrutinas en SIOC, pero al configurar las salidas, si.
El siguiente ejemplo muy sencillo, es para que si no hay corriente, no se enciendan las luces del tren de aterrizaje, para por ejemplo, si se nos para el motor y se nos acaba la bateria en pleno vuelo.
No tiene ningun misterio escepto que como hay dos variables desde las cuales se puede cambiar el estado de las salidas, en lugar de repetir el codigo dos veces, usamos subrutinas.


var 0046, name sub_gearr, link SUBRUTINE
{
if &fs_mainbusvolt = 0
{

L1 = 0
L2 = 0
}
ELSE
{
L0 = &fs_gearr
if L0 > 10
{
if L0 > 16370
{
L1 = 0
L2 = 1
}
ELSE
{
L1 = 1
L2 = 0
}
}
ELSE
{
L1 = 0
L2 = 0
}
}
&LED_R3 = l1
&LED_V3 = l2
}
Var 0060, name LED_R3, Link IOCARD_OUT, Output 11
Var 0061, name LED_V3, Link IOCARD_OUT, Output 12
var 0229, name fs_mainbusvolt, link FSUIPC_INOUT, offset $2840, length 8
{
CALL &sub_gearr
}
var 0228, name fs_gearr, link FSUIPC_INOUT, offset $0Bf0, length 4
{
CALL &sub_gearr
}

viernes, 11 de marzo de 2011

Nostalgia: Mi antigua web.

Mientras revolvia entre las copias de seguridad acabe entrando en mi antigua pagina web (ni me acordaba que la tenia) y ¡¡SORPRESA!!, aun esta ahi.
Asi que si quereis podeis ver mi antiguo panel en esta pagina, y en esta otra , una idea mas general de lo que entonces era el proyecto

Decimales en Variables SIOC

Siempre resulta de utilidad leer el manual, si como yo no lo haces, te ahorrara dolores de cabeza saber que las variables SIOC solo almacenan numeros enteros (con signo), pero que las variables
L0, L1 y L2 si admiten decimales.
Tambien que existe C0, C1 y C2, variables booleanas, utiles en comparaciones e if complicados.
Asi que si quieres guardar algun numero con decimales, multiplicalo por algo y guardalo aparte, y luego utiliza Lx para trabajar con el.

martes, 8 de marzo de 2011

Peleando con encoders.

si en SIOC pones una linea como esta:

Var 0039, Link IOCARD_ENCODER Input 33, Aceleration 1, type 1

Y tratas de ver su valor en el IOCPCONSOLE, te vas a encontrar con que no funciona, o solo ves durante unos breves segundos algun numero que cambie, pero siempre esta a cero.

Esto es normal, esa variable se pone a -1 o +1 (o a otros valores dependiendo del valor de aceleracion), pero solo en el momento que el encoder hace "click" y luego vuelve a cero.

Si en lugar de esa linea aislada hubiesemos puesto:

Var 0039, Link IOCARD_ENCODER Input 33, Aceleration 1, type 1
{
V0040 = ROTATE 0, 359, &V0039
}
Var V0040


Desde IOCPCONSOLE veriamos como el encoder funciona perfectamente ( o no :-) )

domingo, 6 de marzo de 2011

Ahorrando entradas

Mi panel tiene una llave para el starter, son 5 posiciones, asi que asigne 5 entradas en la placa master, no pude usar menos por que el conmutador que uso pasa por 0 entre cada click.
Luego para la llave de la gasolina, utilice otros 4.
En el panel multiradio que tengo, tenia previsto usar un conmutador de 12 posiciones, 12 entradas ya son muchas entradas, y ademas en opencockpits no puedes tener mas de 9 juntas, por lo que conseguir un conmutador de 12 posiciones y 2 circuitos se complicaba.
La idea feliz es utilizar los conmutadores como si fuesen encoders, y asi como mucho utilizaremos 3 entradas, y luego por software seleccionamos la posicion correcta.
El problema aqui es arrancar el simulador con el comnutador en una posicion que no sea la inicial, pero eso tiene sencilla solucion por software.

ENLACES: Notas sobre SIOC

Programar en SIOC es una cosa sencillisima, desgraciadamente la documentacion es inexistente o yo no la he encontrado. por lo que la curva de aprendizaje no es que sea empinada, es un p*** muro.
Afortunadamente Nico Kaan tiene esta chuleta, donde aparecen las cosas basicas que se pueden hacer con SIOC, y es casi un libro de cabecera para cualquiera que programe.

Presentacion

Con 14 años, recien empezado FP y con el soldador nuevo, un fantastico 386 y mucha ilusion me vicie a esto de los simuladores de vuelo, y decidi hacer "algo" para que la simulacion de vuelo fuera mas real.
Hasta hice una pagina web cutre donde iba explicando mis logros, que para mi posterior verguenza iba apareciendo en las paginas de enlaces de otro muchos creadores de cabinas.
Recientemente, he vuelto a retornar con la idea de hacer una cabina de simulacion, sencillita, de una avioneta monomotor.
Para bien o para mal, he descubierto que esta pagina ha dejado de estar disponible en internet, asi que me he decidido a "renovarla" en forma de blog, donde contare las experiencias de esta version 2.0