sábado, 14 de marzo de 2009

Ya funciona



Una buena noticia: ya he conseguido hacer funcionar el control de locomotoras por ordenador. Lo que me pasaba el otro día es que el famoso potenciómetro digital tiene dos modos de funcionamiento: Con uno de ellos, el tren de impulsos que hace variar la resistencia, lo enviamos a un único terminal. Entonces la resistencia sube o baja, en función de lo que haya hecho la vez anterior: si terminó subiendo empieza bajando y viceversa. Además si llega al extremo por arriba o por abajo comienza a moverse en sentido contrario. Todo esto con con pulsos dirigidos a un único terminal, esto es, usando una sola dirección digital. Ya es difícil controlar esto por un programa, pero podría hacerse. De hecho lo he probado. Sin embargo hay un problema: para interpretar que una sucesión de impulsos es distinta de la anterior, y como consecuencia cambiar el sentido del movimiento del cursor, debe haber una pausa entre un tren de impulsos y el siguiente de más de un segundo. Esto invalida completamente este modo de operación, ya que cualquier ajuste de velocidad requiere que transcurra todo un segundo (una enormidad para lo que estamos hablando) antes de poder hacer otro movimiento del cursor en la dirección contraria.

Así que he tenido que pasar al segundo modo de funcionamiento: Aquí hay dos terminales Los pulsos aplicados en uno de ellos hace subir la resistencia y aplicados en el otro la hacen bajar. Esto está perfectamente claro y es sencillo de controlar. Sin embargo tiene la pega de que se gastan dos direcciones, una para subir la resistencia y otra para bajarla. Por eso quise probar el modo anterior, pero me encontré con la pega explicada. En cambio aquí la respuesta a cualquier movimiento del mando es instantánea. El programa actualmente envía pulsos de 5 milisegundos de anchura y hace una pausa de 20 milisegundos entre cada dos órdenes, pero incluso estos valores podrían bajarse.
Pues lo que me pasaba el otro día es que el chip entra por defecto en el modo 1, y yo lo estaba manejando como si estuviese en modo 2.

Como decía, una vez superados estos problemas el control funciona perfectamente, y la locomotora responde suavemente al movimiento del cursor de la pantalla. No se si he dicho que este chip tiene 64 pasos de resistencia, lo cual quiere decir que la velocidad puede variar en 64 escalones.

Lo que queda ahora son problemas de "afinación" tengo que conseguir que llevando el regulador al mínimo la locomotora se pare, pero no antes, Esto probablemente hará que algunas de las posiciones más bajas no lleguen nunca a usarse. Otro tanto puede ocurrir por arriba, ya que la locomotora puede llegar a moverse a una velocidad irrealmente alta.
También me he dado cuenta de que el mando resulta muy sensible a velocidades bajas y a media escala ya está casi lanzada la locomotora. Necesito ajustar el programa para que la respuesta al control sea "logarítmica" como en los potenciómetros, en lugar de lineal. Pero todo esto son ajustes a realizar en el software, y no me preocupan. De hecho, He continuado un poco el desarrollo del programa, de modo que pueda tener una "ficha" de cada locomotora, en la cual se den valores a todos estos parámetros de ajuste para cada locomotora en particular. La imagen lateral muestra ya cómo el programa tiene una pantalla de "Configuración" donde se dará a cada locomotora los valores correspondientes.

Respecto de ésta imagen, y de la que encabeza este artículo, tengo que hacer una confesión: La imagen que se ve como fondo, y que representa un diagrama esquemático de las vías de mi maqueta, no está generada por este programa. Procede de otro programa que hice hace algo más de un año que era una demostración de como podía hacerse un software para definir un esquema de vías. (¡ pero el esquema que vemos, si es el de mi nueva maqueta!)
Con el tiempo, esta imagen si será una imagen generada por el programa, y no sólo eso, será funcional, en el sentido que será desde aquí desde donde se maneje manualmente todo el movimiento de desvíos. Mientras tanto, he querido anticipar con esta pantalla "de cartón piedra" (término que usamos los informáticos para referirnos a estos casos) como será más o menos el aspecto del programa funcionando.
En la imagen de cabecera vemos que hay dos "controles de locomotora", y que cada uno de ellos está manejando una locomotora distinta. En cada control, hay un panel que indica el nombre del cantón que está ocupando cada locomotora en cada momento y ese panel tiene un fondo de color (rojo y naranja en este ejemplo) que corresponde al color del tramo de trazado correspondiente en la imagen de fondo.

2 comentarios:

  1. ¡Impresionante!...Creo que Ángel ya lo ha dicho todo con su exclamación.

    ResponderEliminar

Gracias por expresar tus opiniones.

Los comentarios aparecerán en el blog normalmente en unos pocos segundos