ESTE BLOG COMENZÓ A PUBLICARSE EN 2008, POR LO TANTO MUCHOS DE LOS TEMAS HAN QUEDADO DESACTUALIZADOS U OBSOLETOS. LOS LECTORES QUE DESEEN UTILIZAR ALGUNO DE LOS ELEMENTOS AQUI DESCRITOS DEBERÏAN ASEGURARSE DE BUSCAR LAS REFERENCIAS MAS MODERNAS DE LOS TEMAS DE SU INTERÉS. EL BUSCADOR INCLUIDO SERÄ UNA AYUDA PARA ESA BÚSQUEDA

jueves, 12 de marzo de 2009

Probando, probando....


La cosa está bastante caliente!. En estos días me he pegado una buena panzada de programación, par conseguir desarrollar un programa lo suficientemente operativo como para poder probar si funciona como controlador de la alimentación que he construido.

Aunque la programación ha sido mi oficio real muchos años, la verdad es que el tipo de programa que hay que hacer para esto tiene muy poco que ver con lo que yo he hecho profesionalmente. Aquí se mezcla algo muy poco habitual, como son los gráficos animados, con un tema de comunicaciones muy especial, distinto de las comunicaciones habituales en la industria informática.

Por fin esta tarde he podido hacer algunas pruebas que por primera vez interconectan la placa de comunicaciones por puerto serie, el prototipo de regulador de velocidad, y el programa de ordenador que estoy desarrollando. En la imagen de portada, vemos, estos tres elementos de izquierda a derecha. Al fondo, un tramo de vía con una locomotora termina de completar los elementos de la prueba.

El resultado de esta primera prueba ha sido...esperanzador. Es decir: moviendo con el ratón el cursor del mando de regulación que vemos en la pantalla, la locomotora se pone en marcha y varía su velocidad. Sin embargo, el comportamiento es como si fuese demasiado sensible, es decir, que un ligero movimiento del mando de la pantalla se traduce en una gran variación de velocidad de la locomotora. Tengo que estudiar cómo ajustar ésto.

En la imagen de la derecha, sobre todo si se amplía, se puede ver con bastante claridad el estado actual del prototipo. Una cosa que he hecho es quitar el último de los circuitos integrados de la la placa de Micropik. Este integrado es una matriz de transistores darlington que sirve para alimentar los relés que lleva esta placa.

Como no se trata de alimentar los relés sino de manejar el potenciómetro digital, he hecho una especie de conector con una tira de pines, para sacar del zócalo del circuito integrado eliminado, ocho cables con las ocho señales procedentes de la placa.

Otro problema con que me he enfrentado es que el potenciómetro digital se activa con pulsos negativos, es decir cuando los terminales se ponen a tensión cero, Como la placa de comunicaciones produce pulsos positivos, he intercalado otro circuito integrado que actúa como inversor. No me gusta mucho esta solución porque empieza a complicarse demasiado el regulador.

martes, 10 de marzo de 2009

Nuevo oficio



En mi anterior artículo, dejé a los posibles lectores con la intriga de si sería capaz de hacer funcionar un circuito de regulación mediante el ordenador. Con la mejor técnica de los escritores de misterio, había hasta un tibre sonando para anunciar la llegada de la pieza clave.....

Bueno es hora de resolver el misterio: El mensajero me trajo dos circuitos integrados de referencias AD5220 100 y DS1669-100. Ambos son potenciómetros digitales, es decir circuitos integrados que en tres de sus terminales presentan una resistencia variable, exactamente igual a la que presenta un potenciómetro clásico, pero que "se mueve" en respuesta a impulsos digitales que recibe por otros de sus terminales.

Me costó un buén rato conseguir que funcionasen, pero al final lo pude conseguir. De los dos, me gustó mucho más el segundo, por la razón de que tiene dos terminales, uno que hace subir la resistencia y otro que la hace bajar. Por el contrario, el primero tiene un terminal que recibe los pulsos y otro que indica si esos pulsos hacen subir o bajar la resistencia. Esto me va mucho peor porque requiere dos señales simultáneas, lo cual es muy malo para mi idea de como debe funcionar.

En resumidas cuentas me quedo con el DS1669 a pesar de que es bastante más caro (6,59 €).

En resumen para variar la resistencia hay que hacer llegar pulsos a un determinado terminal, si se quiere que la resistencia suba, y a otro distinto si se quiere que la resistencia baje. Conectando los correspondientes tres terminales que emulan un potenciómetro en sustitución del potenciómetro que llevaba el circuito del regulador, se consigue controlar la velocidad de la locomotora, a base de hacer llegar al circuito los pulsos correspondientes.

Aunque el circuito es bastante tolerante a la frecuencia y duración de esos pulsos, me encontré con la dificultad de que el programa de ordenador que estoy utilizando hasta ahora (el proporcionado por Micropick con su placa) no produce pulsos, de manera que la forma de probarlo era hacer click con el ratón muchas veces seguidas en la casilla de salida. Naturalmente no hay forma de hacer una buena prueba con este sistema.

Podía haber hecho un programa especial sólo para la prueba, pero he pensado que lo que tenía que hacer era comenzar a hacer lo que será el futuro programa de control de la maqueta, y a eso me he dedicado los tres últimos días. Evidentemente, de momento, voy a hacer sólo la parte de programa que controlará las locomotoras.

Así que he vuelto a mi antiguo oficio de analista de aplicaciones informáticas y me he puesto a trabajar en el el futuro programa. Por cierto,provisionalmente he bautizado a este programa como "ControlZ"

En la imagen de cabecera, vemos un esbozo de lo que será el programa, incluyendo la presencia de cuatro ventanas de "regulador de locomotoras". Utilizando una imagen sermejante a la de otros programas usados para el control de centrales digitales, he puesto una imagen de un velocímetro que indicará en cada momento la velocidad de cada locomotora. Hay también una imagen de la locomotora que se está controlando (el nombre aparece en la cabecera de la ventana) y la indicación de en qué cantón está (en esta imagen todas aparecen en el mismo cantón, denominado "1-Rojo", lo cual es evidentemente irreal)

En cuanto a los mandos hay tres: A la derecha un botón deslizante simula manejar el regulador de la locomotora, es decir, al abrirlo, la locomotora debe avanzar cada vez más deprisa. A la izquierda un mando similar simula el freno. En la parte inferior, otro mando simula el cambio de marcha, con tres posiciones Adelante(F) Neutro(N) y Atrás(R).

Hay una cosa que me ha parecido interesante: La mayoría de los programas, para manejar el movimiento de la locomotora, utilizan un deslizante que se mueve de izquierda a derecha. De esa forma, algunas veces, si queremos que una locomotora se mueva hacia la derecha tenemos que mover este mando hacia la izquierda y viceversa. Es más "ergonómico" poner como yo he hecho un mando que se mueve de arriba a abajo. Es mucho más fácil asociar intuitivamente el movimiento hacia delante de la locomotora con un movimiento hacia arriba, y el frenado con un movimiento hacia abajo. Por este motivo he puesto todos los mandos con desplazamiento vertical.

De momento no es más que un esbozo de programa, pero espero que unos días podré tener operativa la parte que me permita controlar el regulador de velocidad por PWM.








jueves, 5 de marzo de 2009

La prueba que faltaba


En el artículo de ayer, describía las pruebas del sistema de detección de trenes. Para que el sistema esté completo falta la prueba contraria, es decir cómo hacer que desde el ordenador se emitan órdenes para actuar sobre elementos de la maqueta. En este caso he hecho las pruebas con un desvío y con un remáforo mecánico de Viessmann.

En principio simplemente he conectado los cables del desvío a los relés de salida de la placa PS6E8S igual a como los conectaría a un pupitre de mando. El cable amarillo al trafo, los cables azules a dos de las salidas, y el retorno (gris) del transformador al común de las salidas. Como realmente estamos conectando los cables de desvío y señal a relés y éstos tienen internamente un conmutador, se comportan exactamente igual a cuando son accionados manualmente desde la botonera de un pupitre.

Es curiosa la sensación de pulsar con el cursor de ratón una de las casillas de la zona de entradas del programa , y ver como responden con sus movimientos tanto el desvío como el semáforo.
Sin embargo, hay un problema similar al que teníamos con los detectores de trenes. Esta placa tiene ocho salidas solamente y además resulta que un desvío ocupa dos de esas salidas y la señal también ocupa otras dos, ya que cada uno de estos elementos tiene dos bobinas. O sea que sólo con las pruebas de un desvío y una señal he ocupado ya la mitad de las ocho salidas disponibles.

Así que hay que volver a la matemática binaria, como decía Angel en su comentario, y tratar de multiplicar ese numero de señales. Afortunadamente el fabricante puso ocho salidas lo cual nos da el impresionante número de 2 elevado a 8 combinaciones, que son 256 posibilidades.

Como cada desvío gasta dos de esas señales, podré poner 128 desvíos, o un total de 128 entre desvíos, señales y cualquier otro dispositivo que utilice dos codigos. Por ejemplo las vías de estacionamiento pueden ser manejadas por relés biestables para tener la posibilidad de unirlas o separarlas del circuito de alimentación. También podría manejar así desenganchadores, aunque en este caso sólo necesito una señal para cada uno de ellos.

¿Son suficientes? En principio parece que si. La maqueta tiene unos cuarenta desvíos, y un número parecido de vías de estacionamiento. Contando con algunos desenganchadores y unas cuantas señales (en principio una por cada uno de los cantones) parece que hay suficientes combinaciones para manejar todos estos dispositivos.

Obsérvese que si los semáforos son del tipo mostrado en la figura, es decir semáforos mecánicos que tienen su propio conmutador para manejar la corriente de tracción de la vía, con este sistema puedo ya montar una maqueta cuya circulación está completamente manejada por ordenador, ya que las señales de detección llegan al ordenador, y el correspondiente programa, en función de estas señales puede emitir las órdenes para que se abran y se cierren los semáforos, y como consecuencia para que los trenes se paren o se muevan, y así mismo el programa puede manejar los desvíos para llevar los trenes por diferentes rutas, todo ello de acuerdo a una lógica que no "está cableada" en la maqueta sino que está programada en el ordenador y por lo tanto puede ser todo lo complicada y todo lo variable que queramos.

Para conseguir esto me hace falta construir un "decodificador" que sea capaz de identificar las posibles 256 señales que se derivan de las ocho salidas. Esto es perfecamente posible aunque laborioso. ¡Cualquier cosa que dé como resultado la posibilidad de conectar 256 cables es compleja!
Evidentemente la otra cosa necesaria es un programa de ordenador hecho a la medida. Afortunadamente esto es lo que menos me preocupa. Me he pasado los últimos cuarenta años programando ordenadores.

Obsérvese que en el esquema descrito el ordenador tiene sólo influencia en la marcha de los trenes mediante los semáforos que pueden cortar o no la corriente de tracción de un sector de la vía, tal como ocurre con un clásico circuito analógico. Esto requiere que cada regulador de alimentación tenga un mando manual para variar la velocidad de las locomotoras, y también un conmutador para cambiar de sentido.

Sin embargo, si consigo que los reguladores de velocidad sean también manejados desde el ordenador, ya no necesito ningún mando manual, y todas las funciones serían manejadas desde el programa de ordenador. Por eso mi empeño en crear un circuito de alimentación controlado desde el ordenador.

Esto no sólo evita los controles manuales, sino que permite que los trenes se paren o arranquen, no porque un semáforo mecánico corte la alimentación de la vía, sino porque el regulador que lo controla recibe la orden de parar o arrancar. Las señales quedan entonces sólo como elemento decorativo. Lo importante de ésto es que tanto la parada como el arranque pueden ser suaves.

Según estaba escribiendo este artículo, han llamado a mi puerta y un mensajero ha traido dos "potenciometros electrónicos" así que ya tengo elementos para probar cómo podría hacer que el
ordenador varíe la velocidad de las locomotoras.

¡No se pierda usted el próximo capítulo! (Continuará)