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, 28 de junio de 2012

Ya funciona?


Hace unos días (Control de tracción) explicaba aquí, cómo había decidido resolver definitivanente el control de tracción de mi maqueta, basándome en dos módulos CABCON00 y CABCON01, de los cuales el primero es único, y del segundo hay que utilizar uno por cada cantón, así que en mi caso, habrá que hacer ocho.

Bueno, pues he dedicado los últimos días a construir el CABCON00 y un par de CABCON01 para probar su correcto funcionamiento.

La verdad es que cada vez perfecciono más mi técnica para construir circuitos impresos, de manera que éstos últimos han quedado con un aspecto muy profesional. En la imagen siguiente vemos el CABCON00:


y a continuación vemos una de las placas CABCON01:

Como ya comenté, dado que de este último circuito hay que poner ocho placas, he utilizado el sistema que emplea Arduino, consistente en unas tiras de pines muy largos que atraviesan cada placa y se enchufan en la tira de la placa inferior. En mi caso cada una de estas placas lleva tres de estas tiras situadas a lo largo de tres de sus bordes, de manera que al enchufar cada placa en la inferior, no sólamente se asegura la conexión eléctrica  entre placa y placa, sino que además se asegura la estabilidad mecánica del conjunto, sin necesidad de utilizar separadores metálicos.
El resultado, para el caso de una placa CABCON00 y dos CABCON01 lo podemos ver en la siguiente imagen:

Naturalmente el siguiente paso era comprobar el funcionamiento de estas placas, lo cual por cierto es bastante complicado

En la imagen de cabecera, vemos el montaje para la prueba. En el ordenador el programa de comunicaciones, que permite enviar manualmente a la salida digital de la placa Velleman cualquier combinación de bits.

Delante del ordenador está la placa Velleman utililizada para la prueba. Naturalmente está conectada al puerto USB del ordenador.  Por delante de la placa Velleman está la combinación de placas CABCON. La placa base se conecta a la salida digital de la placa Velleman mediante los cables de colores que vemos a la izquierda.

A al derecha vemos el tablero de vías de prueba, Como tengo sólo dos placas CABCON01 lo que he hecho es conectar dos de las vías de prueba a una de las placas y la tercera vía a la otra placa, En cada una de estas tres vías hay una locomotora, que está rodando, respondiendo a las instrucciones que emite el ordenador. Como la placa Velleman tiene dos salidas PWM se utilizan esas dos salidas  para manejar independientemente la velocidad de las locomotoras. De hecho, como las dos primeras vías están conectadas a la misma placa, estas dos locomotoras se mueven al unísono, y la tercera de forma independiente. El hecho de poner las dos primeras locomotoras en paralelo, es para comprobar si se calienta demasiado algún elemento.

También se ve en la imagen, en primer término, un amperímetro que está marcando el consumo total del sistema. Aunque los números no se ven muy bien debido a que durante la exposición de la fotografía han oscilado los valores, el consumo con estas tres locomotoras rodando a bastante velocidad es alrededor de 600 mA. (lo que no quiere decir que toda esta corriente llegue a las vías, pero es una buena indicación del punto de carga del sistema de tracción que está calculado para 2 Amperios).

Por cierto, después de pelearme con la forma de montar un amperímetro (Ver Electrónica de diseño) parece que ya he conseguido enterarme de la forma correcta de hacerlo, y no me extraña que me costase trabajo, porque se requieren unos elementos muy poco habituales. En un próximo artículo comentaré el tema para el que quiera poner un amperímetro en un controlador para trenes.

Respecto del resultado de la prueba, ha sido completamente satisfactorio. Tal como esperaba, el sistema permite dirigir, cada señal de control, a cada cantón, y también cambiar el sentido de movimiento de cada cantón. Realmente la prueba es bastante complicada, ya que todo se maneja dando manualmente valores a los bits de salida desde el programa de control.

Ahora queda otra labor: Hacer que el programa de control, genere esas salidas en respuesta a  los elementos de control que maneja el usuario. Hace ya tiempo que hice una programación para estas ventanas de control de locomotoras (Véase Nuevo Oficio) pero ahora me tengo que replantear toda esta parte de la programación, en parte porque algunas ideas que entonces tenía han cambiado, y en parte porque ahora es cuando ya tengo claro todo lo que el programa debe generar para manejar las placas CABCON. Lo malo de este tema es que las pruebas parciales no son demasiado significativas, ya que hasta que no esté todo el software desarrollado, y todo el sistema para los ocho cantones montado no se puede comprobar el funcionamiento real del sistema.

Habrá que tener todavía un poco de paciencia...........


jueves, 21 de junio de 2012

Me voy a negro


Últimamente se está oyendo con cierta frecuencia la expresión "irse a negro" que en realidad procede del argot de la producción de televisión, para referirse a una circunstancia en la que algo o alguien desaparece, se oculta o cesa en su actividad.

Pues desde luego no es esa mi intención ya que estoy metido en una actividad muy intensa con objeto de tener cuanto antes un prototipo funcional del sistema de tracción. Pero mientras llego a algo que pueda comentar aquí sobre mis avances en esa línea, saqué unas horas para hacer algo que me había inspirado la visita que realizamos a centro de Control de Tráfico Ferroviario (Véase Madrid 2012), y que ya comenté en el artículo referido a esa visita.

Me refiero al aspecto general de la pantalla de mi programa de control. Aunque había hecho una programación que permite escoger los colores y otras características de la visualización, yo siempre había pensado en pantallas de fondo claro, como son las que he visto siempre en los programas de ordenador comerciales para el control de maquetas de trenes.

Sin embargo, al ver las pantallas del sistema real, he comprobado que se utiliza una visualización con fondo negro y las vías representadas en colores brillantes. Los colores tienen un significado que ya confirmó en este blog un seguidor que insertó un comentario en el artículo referenciado.

Me decidí a probar  cómo quedaría mi programa con fondo negro, y me encontré que precisamente un fondo negro tenía el problema de que ya había utilizado el color negro para crear un borde alrededor del dibujo de las vías y como fondo de las señales y otros accesorios, de modo que si el fondo lo ponía negro, este borde dejaba de ser visible y el dibujo se quedaba muy estropeado. Véase por ejemplo en esta imagen la forma en que tanto las vías como los semáforos están perfilados en negro, de modo que sobre un fondo negro, l,a vía quedaba con un trazo demasiado fino y los semáforos prácticamente desaparecían



Así que no bastaba cambiar el fondo, sino que había que trabajar un poco más para eliminar esos perfilados.

Al final, tras una tarde de trabajo, conseguí dejar una imagen adecuada para ser dibujada sobre negro, tal como la podemos ver en la imagen de cabecera.

Adviértase que en realidad el dibujo con fondo negro es bastante menos elaborado que el que yo había hecho sobre fondo claro. En particular los semáforos son apenas una silueta que se ilumina de rojo o verde según la situación de la señal, pero es que como pude comprobar en la visita, ésa es la forma en la que representan los semáforos en el sistema real.

La verdad es que no sólo he conseguido tener una imagen más real en la pantalla del programa, sino que me he dado cuenta de que tengo algunas ventajas. Hay que tener en cuenta que el ordenador que uso para manejar el programa es un pequeño portátil con pantalla de 10 pulgadas, así que en muchos casos me resultaba difícil ver la imagen con el detalle suficiente. En particular la posición de los semáforos resultaba muy difícil de apreciar, sobre todo porque muchas veces se maneja estando de pié, y por lo tanto a una distancia superior a la normal. Ahora, con esta nueva representación, la imagen de los semáforos, y también de los desvíos, resulta más fácil de apreciar. También el cursor de ratón se ve mucho mejor sobre el fondo negro.

Así que vistas estas ventajas, y el hecho de que se obtiene una imagen más real, he decidido dejar como standard del programa esta forma de representación con fondo negro, aunque he dejado la posibilidad de volver a la imagen antigua a voluntad del usuario.

Así que es mi programa y no yo, quien se ha ido a negro.....

miércoles, 13 de junio de 2012

Control de tracción

Figura 1 - Control de tracción
En un artículo reciente (Un brindis) informé que había conseguido hacer funcionar un prototipo de lo que me propongo que sea el control de tracción en mi maqueta. El artículo acababa con la promesa de explicar el funcionamiento con detalle, y a eso voy a dedicar este artículo.

Como ya expliqué (Véase Cab Control), el sistema se basa en el denominado cab control, que es un sistema de controlar una maqueta de trenes analógica, dividida en cantones, mediante un conjunto de controladores de forma que cada uno de ellos controle un tren, y mantenga el control de ese tren aunque éste se mueva por todo el trazado y vaya pasando de cantón a cantón. Se obtiene por tanto una funcionalidad cercana a la obtenida con control digital, siendo la mayor diferencia con éste, el hecho de que sólo puede haber una locomotora moviéndose en cada cantón, por lo que el sistema debe estar asociado a un sistema de acantonamiento o block system, que se encarga de que se cumpla esta condición.

Aunque creo que van ya tres veces, repito aquí el esquema básico del Cab Control:
Figura 2 - Esquema del Cab Control
La figura2 representa un esquema con cuatro cantones (magenta, verde, azul y rojo) y cuatro controladores (1, 2, 3 y 4) y se muestra cómo, la alimentación de cada cantón, está unida a un conmutador, que permite asociar ese circuito de tracción a uno cualquiera de los controladores. En aquél artículo se comentaba que el número de controladores no tiene que ser igual al de cantones, siendo generalmente menor, y que los conmutadores pueden ser conmutadores mecánicos accionados manualmente, o puede automatizarse el sistema, y entonces serán relés u otros dispositivos electrónicos.

En la figura 2, los controladores están representados como unidades completas, y por lo tanto producen cada uno de ellos una corriente de tracción que se aplicaría directamente a las vías. En ese caso los conmutadores trabajan sobre la corriente de tracción. Pero podemos hacer otra cosa, y es que determinados elementos los situemos asociados a cada cantón, es decir entre el conmutador y la vía. Concretamente toda la parte de potencia y la conmutación de sentido de marcha puede hacerse de esta forma. Eso es lo que pensaba hacer cuando construí una unidad de potencia para ocho circuitos (Véase: La etapa de potencia II) Luego me he dado cuenta de que esta no era una buena idea, y he cambiado el diseño, haciendo que el sistema responda a un esquema como el representado en la Figura 1.

En esa figura se repite básicamente el mismo esquema, de la figura 2, pero ahora vemos que en vez de controladores completos, tenemos tres placas Velleman K8055. Cada una de estas placas puede producir dos salidas PWM, luego en definitiva es como si tuviésemos seis controladores, los cuales generan la señal de control que se distribuye por las seis vías del bus representado en la parte baja de la imagen.

Las placas marcadas como CABCON01 son las encargadas de seleccionar una de las seis señales, mediante un conmutador electrónico. Pero no sólo hacen eso, sino que incluyen toda la etapa de potencia e inversor de marcha, así como un estabilizador de tensión para cada placa. En definitiva todo lo que se necesita para generar la corriente de tracción para un cantón. Todas estas placas son idénticas y por lo tanto se llega a un diseño modular que permite utilizar el número de placas que sea necesario, y en caso de problemas sustituir una placa averiada por otra igual. La salida de estas placas es directamente la corriente de tracción para cada uno de los cantones, tal como vemos en el esquema, en el que estas salidas se han dibujado ya del color del cantón.

El programa de control genera las órdenes para que estas placas realicen tanto la  conmutación de entradas como la inversión de marcha. Como siempre la comunicación del programa con el hardware de control es a través de las placas Velleman. En este caso se utilizan las ocho salidas digitales de la placa número 2, ya que la placa 1 se utiliza para el control de aparatos de vía. El funcionamiento es completamente análogo al de la placa 1, ya que en ambos casos se produce una salida de muy corta duración por cada instrucción que envía el ordenador. Pero así como en el caso de la placa 1 la orden se ejecutaba sólo durante una fracción de segundo y se utilizaba para mover un relé biestable, o el motor de un semáforo o de un desvío, en el caso de las instrucciones de la placa 2 lo que se hace es actuar sobre circuitos latch que mantienen indefinidamente activa la orden recibida. Así que por ejemplo la orden de conectar el cantón 1 al la señal de control 3, se mantendrá indefinidamente hasta que otra orden cambie la conexión.

Al final he utilizado la siguiente técnica: Los ocho bits que constituyen la señal de salida de la placa Velleman numero 2, los considero divididos en dos cuartetos. Los cuatro bits superiores, se tratan con una técnica idéntica a lo que hacía con la placa 1 para el manejo de aparatos de vía: Estos cuatro bits se demultiplexan en 16 bits y cada uno de ellos activará una de las placas CABCON01. Realmente no voy a tener más que ocho placas, por lo que solo utilizo los tres primeros bits. El bit más alto queda en reserva por si se desease en algún momento pasar de 8 cantones.

Los cuatro bits inferiores llegan en paralelo a todas las placas pero sólo actuarán sobre la placa que esté activada, es decir, aquella cuyo pianillo tenga la dirección activa en ese momento. Estos cuatro bits no se demultiplexan sino que directamente los tres más bajos constituyen el dato de entrada para el conmutador electrónico y el cuarto es el que actúa sobre el inversor del sentido de la marcha.
Figura 3 . Esquema de CABCON00

La figura 3 muestra el esquema eléctrico de la placa CABCON00. Esta placa forma algo así como la placa madre del sistema ya que es la que recibe todas las conexiones externas, y ordena los datos que deben conectarse a cada bus. Lleva además la alimentación para las otras placas.

En la parte superior izquierda vemos la conexión a las salidas de la placa Velleman, que en este caso será la placa 2. Hay un array de resistencias de pullup y los datos se llevan al circuito U1 (74HC240) que es un buffer inversor. El poner el inversor me da la vuelta a los datos y ya no tengo que recurrir a aquello que contaba en "Al revés te lo digo..." . Como antes decía los cuatro bits bajos van directamente al buffer (D0, D1, D2, Inv) y de los cuatro altos, tres van al demultiplexor U2 (74HC238)  y el cuarto se conecta al enabled del demultiplexor (lo que proporciona un control adicional: si el bit más alto es 1 la señal no llega a ningún cantón) Este demultiplexor de 3 a 8 proporciona las ocho salidas L1...L8, que se llevan al bus.

En la zona inferior izquierda, vemos las entradas que corresponden a las salidas PWM de las placas Velleman. Cada placa tiene una conexión de tierra y dos salidas denominadas PWM1 y PWM2. También hay una matriz de resistencias de pullup y de nuevo curiosamente otro buffer inversor U3 (74HC240)

Lo primero que sorprende es que haya puesto cuatro entradas si solo voy a poner tres placas. Bueno, es una provisión por si en el futuro pongo una cuarta placa....o....¿porqué precisamente una placa Velleman? cualquier dispositivo que produzca una señal PWM podría conectarse aquí. por ejemplo uno de los controladores PWM manuales que ya estoy usando en mi maqueta.

Pero seguramente lo más sorprendente es que llevo estas señales PWM a un buffer inversor como si fueran señales digitales. Realmente una señal PWM es más bien analógica que digital, así que llevarla aquí no parece muy lógico. Sin embargo lo hago por dos razones: Por un lado también le doy la vuelta, de manera con el control en cero los trenes se paran y con el control en 255 los trenes van a toda velocidad (creo que ya he comentado que hasta ahora tenía el problema de que esto era al contrario, de modo que si no hacía nada para evitarlo, al encender el programa todos los trenes saldrían a toda velocidad). Además el buffer, en definitiva un flip-flop, me va a ajustar exactamente los valores de tensión alto y bajo de manera que cuando lleve esto al multiplexor la señal sea totalmente exacta.

Un comentario acerca de la parte de alimentación que vemos arriba: Voy a conectar este dispositivo a la fuente de alimentación que ya tengo, de 12 voltios. Hasta ahora esta fuente alimenta todas las bobinas de relés, todos los motores de desvíos, y todos los motores de semáforos mecánicos. Todo esto es un consumo mínimo porque nunca hay más de uno de estos elementos consumiendo al mismo tiempo, y además el consumo de cada uno de ellos se produce durante unas décimas de segundo, de manera que el consumo medio es insignificante. Hasta ahora los trenes se mueven alimentados desde otra fuente de 9 V.

Me propongo eliminar esta fuente de 9 V y que los trenes reciban alimentación desde esta fuente de 12 voltios, La potencia es de 2 Amperios, así que podría manejar 8 locomotoras consumiendo cada una 250 mA simultáneamente. ¡Nunca voy a llegar a eso!

Se observará que le he puesto un regulador de tensión de 12 V y 2 Amperios (78S12), y un bonito condensador de 2200 uF. No es que no fíe de la fuente de 12 voltios, pero es que realmente es regulable y la tengo regulada un poco alta, precisamente para que los motores de semáforos que son de 16 Voltios no me fallen. Así que admito que la tensión llegue más alta para no perder esa posibilidad, pero la estabilizo a 12 V al entrar en el control de tracción. A continuación pongo un segundo regulador de tensión de 5 V (LM7805) para todos los circuitos integrados de 5 V.

Y... adviértase que lo que saco son 12 voltios, y no 9 como correspondería a la corriente de tracción. Luego veremos porqué.

Sobre esta placa van a ir las ocho placas CABCON01, una para cada cantón. Voy a tratar de hacer un montaje con conectores apilables similar al que utiliza el sistema Arduino, Me parece que este tipo de montaje es muy práctico ya que resuelve simultáneamente la conexión mecánica y la conexión eléctrica y permite pasar datos de placa  a placa de una forma muy simple. Espero conseguirlo.

La siguiente imagen recoge el esquema eléctrico de la placa CABCON01:

Figura 4 - Esquema de CABCON01
En la parte superior izquierda tenemos las ocho entradas L1 a L8 que genera la placa base. Hay un pianillo de interruptores, de modo que la placa que tenga su interruptor cerrado correspondiente al dato activo será la que se activará. En este caso la activación se traduce en que la señal llega a los pines de ennabled del circuito U1 que es un 74HC75, el cual se activará y recogerá el dato que llega por el bus de datos (D0, D1, D2, Inv). Este circuito es un latch de cuatro bits, así que como está activado, estos datos aparecen en los pines de salida. Una vez que la señal emitida por la placa Velleman cambia a ceros, el latch se enclava y permanece con los datos recogidos en los pines de salida.

He puesto cuatro leds en las salidas para visualizar el estado de cada latch. Cuando esto quede montado en su posición definitiva los leds no serán muy visibles, pero ante cualquier problema existe la posibilidad de visualizar sus valores. Este latch tiene también las salidas inversas, que no voy a usar.

Abajo a la izquierda tenemos el famoso circuito U2 (74HC405) que hemos venido llamando conmutador electrónico o multiplexor. Como se puede ver, sus ocho entradas se conectan a las ocho señales PWM que vienen de la placa base. Sólo una de ellas será la que aparezca en el pin de salida, y ello será en función del valor de los tres datos A, B, C que vienen de los tres pines correspondientes a D0, D1 y D3 del latch.

La parte de potencia incluye un estabilizador de tensión de 9 V  (LM7809) y un diodo en serie. La misión del diodo aquí es bajar un poco la tensión para ayudar a que no se caliente demasiado el regulador, ya que lo quiero montar sin radiador. No quiero radiador para que el montaje sea muy plano y las placas se puedan apilar suficientemente juntas. Según las pruebas que he hecho, si el circuito se alimenta con 12 voltios, aguanta perfectamente con dos locomotoras funcionando (300 - 400 mA según la velocidad) aunque se calienta bastante. Realmente no debería haber nunca dos locomotoras salvo algún caso muy puntual en que se haga una doble tracción o algo así.

Al haber un regulador que baja la tensión de 12 a 9 V en cada placa CABCON01 pretendo conseguir que la corriente de tracción de cada cantón no se vea en absoluto afectada por la marcha de los trenes en otros cantones. Es un efecto desastroso (que ya he sufrido) el que por ejemplo al parar un tren en una señal, si hay un segundo tren rodando, éste se acelere al pararse el primero debido a que la tensión sube por haber disminuído la carga.

Para crear la corriente de tracción llevamos la señal PWM seleccionada por el multiplexor a la base de un transistor Darlington TIP 110. Este montaje es el mismo que utilizo en los reguladores PWM manuales que he construído, con resultados excelentes. El transistor va bastante sobrado así que tampoco necesita radiador.

Por último tenemos el circuito de inversor de marcha. El cuarto pin del latch mantiene la señal de inversión así que la llevo a un transistor BC547 para amplificarla antes de alimentar el relé TQ2.12. Este relé se alimenta a 12 voltios desde la entrada de 12 voltios de la placa y tiene sus contactos configurados como un inversor para actuar sobre la corriente de tracción. La salida de este inversor, es la que se lleva a las vías del cantón.

Los que hayan visto otros circuitos diseñados por mi, verán que este relé no es habitual en mis montajes. Lo he seleccionado porque tiene un perfil muy bajo, para mantener la mínima altura de cada placa.

Quiero advertir que los esquemas publicados en esta página son provisionales. Si algún lector tiene intención de construirlos le ruego que tenga la paciencia de esperar a que publique la versión definitiva en la página de Descargas.