miércoles, 22 de diciembre de 2010

Open-source hardware



El hardware libre o hardware abierto (OSHW)  es una forma de poner a disposición pública los diseños de hardware realizados por una persona u organización, de forma que no se impide que sean reproducidos por otras personas, aunque se mantiene la propiedad intelectual en posesión del autor, que puede restringir determinados usos de sus diseños. En general, se trata de desarrollos no comerciales sino debidos a investigaciones académicas o relacionadas con hobbys, aficiones o experimentos sin ánimo de lucro.

Como ya comenté en mi anterior artículo, ha sido siempre mi intención, publicar los diseños de los sistemas electrónicos que voy diseñando, pero sólo cuando estos están ya probados y funcionando. Por este motivo no lo he hecho hasta ahora, porque realmente hasta hace muy pocos días, mi sistema de control de aparatos de vía por ordenador, no había demostrado su funcionamiento correcto en una prueba real. Como esto ya es así, (tengo la intención de publicar pronto un vídeo demostrativo) he decidido "liberar" bajo la forma de Hardware libre, lo que sería la primera entrega de mi sistema, con la cual se puede ya controlar todos los aparatos de vía (Desvíos, desenganchadores, señales luminosas y mecánicas y puente giratorio y los sectores aislados de vía) Así que a partir de hoy, en mi página Web se pueden descargar todos los elementos necesarios para reproducir los elementos de control que he desarrollado.

Como se habrá podido ver a lo largo de los meses en que lo he estado describiendo, el diseño es modular, de modo que puede construirse del tamaño necesario. Cada placa Velleman puede manejar 256 direcciones.

Cada placa Welleman se conecta a un conjunto formado por una placa DEMU01, una o más DEMU02 y una DEMU03. La conexión se realiza con una placa base que es simplemente una placa perforada de tiras de cobre, con conectores de pines soldados (véanse fotografías en la página Web)

Para cada elemento a controlar se necesitan dos direcciones de manera que se pueden manejar hasta 128 elementos. Para cada 8 elementos se necesita una placa del tipo DEMU02 de manera que puede haber tantas como sean necesarias hasta un total de 16.

Si los elementos a manejar funcionan por impulsos, como es el caso de los desvíos de Märklin, o las señales mecánicas, no hace falta nada más, ya que se conectan directamente a las placas DEMU02. Para aquellos elementos que necesitan un interruptor o conmutador, como es el caso de los sectores aislados de vía, las señales luminosas, y los desenganchadores, se necesitan relés biestables que mantengan la posición indefinidamente. En ese caso hay que utilizar adicionalmente placas de tipo DEMU4, las cuales llevan, cada una, cuatro de estos relés, de modo que pueden manejar cuatro de estos elementos.

El hecho de no considerar a los desenganchadores como elementos movidos por impulsos, se debe a que en este sistema, los impulsos son siempre de una duración muy corta (típicamente 200 milisegundos) de modo que no son válidos para mantener el desenganchador activado durante el tiempo necesario, que puede ser de unos cuantos segundos. Por este motivo los desenganchadores funcionan activados por uno de los relés biestables, que se activan con un impulso y se desactivan por un segundo impulso una vez transcurrido el tiempo necesario para el desenganche.

El sistema necesita dos fuentes de alimentación de corriente continua, una de 5V y otra de de la tensión que haga funcionar los aparatos de vía movidos por impulsos (12, 14 o 16 V) Pueden ser sencillos transformadores enchufables ya que el consumo es mínimo.

Naturalmente, para que esto funcione se necesita además al menos una placa K8055 de Velleman, que el usuario deberá adquirir por su cuenta (En la "Lista de Material" se podrán ver referencias al fabricante y al distribuidor)

Esta placa viene acompañada de un CD con dos importantes elementos de software: Por un lado una librería de rutinas y por otro lado un programa en fuente de Visual Basic que permite manejar la placa. Naturalmente ambas cosas yo no las puedo distribuir desde mi página, porque están sujetas al Copyright de Velleman.

Estos dos elementos de software permiten un manejo sencillo del sistema, por lo que puede utilizarse para hacer pruebas o como base para un desarrollo propio de un programa de control.

Respecto de mi propio programa de control, también tengo la intención de publicarlo cuando esté terminado, y dejarlo en forma libre al menos en una versión "lite". Sin embargo, todavía falta bastante para que pueda llegar ese momento.

Adviértase que esta primera entrega, permite realizar un sistema de control, que permite manejar desde un programa de ordenador todos los elementos de la maqueta, excepto el control de los trenes.

Por lo tanto es completamente compatible con cualquier sistema de control de los trenes ya sea analógico o digital. En realidad esta primera fase del sistema sustituye con el ordenador a los clásicos paneles de control utilizados en las maquetas para el control de los aparatos de vía.

También es compatible con cualquier escala, sin más que utilizar un transformador de alimentación de la tensión adecuada a los aparatos de vía.

domingo, 19 de diciembre de 2010

La etapa de potencia II


Decían de Lope de Vega, que era tan rápido escribiendo obras de teatro que, "En horas veinticuatro, pasaba de las musas al teatro". Bueno, sin querer compararme con Lope, yo he pasado en cuatro o cinco días, de escribir acerca de la necesidad de hacer una etapa de potencia "octal" incluyendo los relés de conmutación para la inversión del sentido de la marcha, a poder encabezar este artículo con la fotografía de esta etapa de potencia terminada.

Tal como se describía en el anterior artículo, este circuito recibe por un lado las posibles 8 señales PWM provenientes del "conmutador" (habrá que buscarle un nombre: Se admiten sugerencias) y que en la imagen corresponden al conector situado en la parte inferior, y produce la corriente de tracción para cada uno de los ocho cantones. Las salidas hacia los cantones están en el conector de la parte superior, y como vemos hay ocho parejas de cables, que van respectivamente al carril derecho y al carril izquierdo de cada cantón.

El esquema eléctrico de este circuito lo tenemos en esta imagen:


Como podemos ver, se trata de ocho repeticiones de un mismo esquema, que incluye el amplificador de señal, propiamente dicho, constituido por el transistor TIP110, un circuito de protección contra sobrecargas, basado en un fusible térmico RKEF050, y el relé para inversión de marcha que es el V23079 A 1003B301

Para activar los relés, lleva la ya habitual matriz de transistores darlington ULN2803A que alimenta con corriente de 12 voltios las bobinas de los relés.

Por la derecha llegan los cables de alimentación de 9 y 12 voltios, y las ocho señales digitales que manejan la activación de los relés inversores.

Al final, como se puede ver, he montado los transistores sin refrigeradores, simplemente por falta de espacio, ya que quería hacer los ocho módulos en una sola placa, y sin pasarme de la medida estándar de placas que siempre utilizo (100 x 160 mm). Por cierto que la placa mantiene la longitud de 160 mm pero está recortada en anchura para que tenga exactamente el mismo ancho que las placas de Velleman. Además he puesto los taladros para los tornillos de montaje coincidentes con los de esas placas, con lo cual esta placa puede apilarse encima de las de Velleman.

El esquema eléctrico es como se ve bastante simple porque es muy repetitivo, pero el diseño de la placa es algo más complicado, porque aún cuando hay una parte que se repite igual a si misma ocho veces, a cada una de esas ocho zonas hay que llevar por un lado la señal PWM, por otro la señal de activación del relé, por otro la alimentación de 9 y de 12 voltios, y luego extraer una doble salida con la corriente de tracción, y todo esto debe ir a los correspondientes conectores.

Bueno, el resultado final, es el que se puede ver en la imagen siguiente:


Es una lástima no tener un sistema para transferir este diseño a la cara superior de la placa de circuito impreso, porque ésto les daría un aspecto muy profesional, y la mayoría del trabajo está hecho, ya que es necesario este diseño de componentes para ver la posición de éstos en la placa final y las interferencias que podrían darse

Al final como siempre, obtuve el fotolito, para hacer la exposición de la placa en la insoladora:


Aunque si se pulsa en estas imágenes, aparecen en su tamaño original, no se si el resultado es válido para imprimirlas y tener las plantillas para reproducirlas. En todo caso, tal como me comprometi, voy a ir subiendo a mi Web todos estos diseños en un formato que se pueda descargar y obtener una impresión exacta para todo aquél que quiera reproducir estos circuitos. De momento, si alguien está interesado en esto, le pido un poco de paciencia, porque no voy a subir ningún esquema que no esté perfectamente comprobado en su correcto funcionamiento.

A lo mejor algún lector se ha percatado de una cosa: En todos los casos anteriores, los relés que venía utilizando eran relés biestables, y así son todos los de las placas DEMU04. Sin embargo el relé que he usado aquí es un relé monoestable, de modo que en posición de reposo el tren marcha hacia delante y si el relé se activa, cambia a marcha atrás. O sea que mientras que queramos que el tren vaya en sentido contrario al del cantón, hay que mantener el relé activado y por lo tanto la señal que lo activa en "Hight". Todo esto viene a cuento de que esta segunda parte del sistema de control, ya no funciona por impulsos, como la parte ya hecha, sino que debe funcionar por "situaciones" es decir, la velocidad de movimiento de un tren o el sentido de su desplazamiento se deben mantener hasta tanto no haya ninguna variación, así que tengo que aplicar una filosofía distinta.

Como primera prueba, puedo conectar las ocho señales digitales de entrada a esta placa a las ocho salidas digitales de la segunda placa Velleman, de manera que cada bit de la señal, se activará o desactivará independientemente, y activará y desactivará en consecuencia el relé de inversión. De hecho estas placas están pensadas para funcionar así. Pero claro, funcionando así, me he "comido" las ocho salidas sólo para manejar los ocho relés inversores. El próximo paso irá por el camino de solucionar esto.



martes, 14 de diciembre de 2010

La etapa de potencia


Hace unas semanas, en el artículo "Acantonamiento electrónico" puse unos esquemas describiendo la forma en que quería organizar la alimentación de tracción de mi maqueta, implantando un sistema
de acantonamiento manejado por el programa de ordenador y controlando la tracción de los trenes mediante las señales PWM producidas por dos o más placas Velleman K8055.

Posteriormente en el artículo "COLA.02" daba cuenta del experimento realizado con varias locomotoras alimentadas por un prototipo del sistema, que resultó muy satisfactorio. Falta ahora juntar ambas ideas y diseñar la forma práctica de llevarlo a la práctica.

La idea expuesta en el primero de los artículos, es que cada unidad de control "persiga" a una determinada locomotora, y vaya cambiando de un cantón a otro según la locomotora cambia de cantón, todo ello naturalmente en base a los detectores situados en la vía, y bajo el control del programa de ordenador. Este sistema tiene la ventaja de que aunque hay ocho cantones en la maqueta, las unidades de control pueden ser menos, de manera que es válido utilizar sólo dos placas K8055, lo daría un total de cuatro señales de control

Sin embargo hay una cuestión a dilucidar: ¿donde está la divisoria entre lo que es unidad de control y lo que es cantón? El último esquema del primer artículo parecía ir en la dirección de que de cada unidad de control, llamadas "A" y "B" en aquél esquema, salía ya una corriente de tracción que mediante un hipotético conmutador se distribuía a las vías del cantón que debía recibir esa corriente en cada momento. Sin embargo ya en el texto hacía la consideración de que si este conmutador era electrónico, no podría manejar directamente la corriente de tracción, por los problemas de polaridad, intensidad, y desde luego sin llegar a pensar en la "aportación" de los dispositivos Gaugemaster

Así que hay elementos que hay que poner "aguas abajo" del Conmutador, y por lo tanto no asociados a la unidad de control, sino al cantón.

En primer lugar, desde luego, por su peligrosa actuación, los Gaugemaster deben ser el último elemento de la cadena.

Para mantener la polaridad constante en todos los circuitos electrónicos, el inversor de polaridad, debería ser también asociado al cantón, y situarse en penúltimo lugar. También podría situarse tras el Gaugemaster, pero esto haría que tuviera que conmutar la corriente ya con la frecuencia de limpieza incorporada. Ya he comentado que esto seguramente es un peligro para el relé del inversor, así que la solución de ponerlo antes evita en este caso toda complicación.

Y el tercer, peligro, o sea la intensidad relativamente importante junto con la tensión de 9V también aconsejan que que la conversión de los impulsos de PWM en corriente pulsada de tracción se haga también del lado del cantón. Yo he llamado a este último elemento "etapa de potencia" ya que en realidad es lo hace. Es un elemento que produce la corriente que alimenta los motores a partir de una corriente de 9V con un "perfil" definido por la señal PWM que recibe de la placa Velleman.

En resumidas cuentas que tiene que haber ocho etapas de potencia, más ocho inversores más ocho limpiavias asociados de manera unívoca uno a cada cantón.

Y ahora seguramente se preguntará el lector: ¿pero no habíamos quedado que las unidades de control "persiguen" a las locomotoras de cantón a cantón? ¿cómo resulta ahora que prácticamente todos los elementos que generan la corriente de tracción están asociados de manera fija uno a cada cantón?

La clave está es que ese elemento llamado "Conmutador" en el esquema (he estado tentado de llamarlo "Router") es el que envía la señal de PWM a la etapa de potencia correspondiente de manera que cuando la locomotora pasa del cantón 1 al cantón 2, si esta locomotora estaba pilotada por la señal PWM1, esta señal pasa de enviarse a la unidad de potencia del cantón 1 a enviarse a la unidad de potencia del cantón 2. Obsérvese que las señales PWM1 PWM2... en realidad actúan "pilotando" ("modulando" sería el término exacto) la unidad de potencia, de manera que la corriente de tracción tome la forma de la señal que le llega en cada momento. Hay que contemplar las salidas PWM de las placas Welleman como puramente una señal de control.

Así que como ya dije en "Acantonamiento electrónico" cuando la locomotora que venía por el cantón 1 pilotada por ejemplo por la señal PWM3, y por lo tanto estando el conmutador enviando la señal PWM3 al la etapa de potencia del cantón 1, al llegar al contacto 1, y estando libre el cantón 2, lo que ocurre es que la misma PWM3 empieza a enviarse la etapa de potencia del cantón 2. Por lo tanto aunque vengan de etapas de potencia distintas, las dos corrientes de alimentación, tanto del cantón 1 como del cantón 2 serán idénticas, incluso en fase, porque responden a la misma señal moduladora PWM3

Cuando la locomotora pasa por el  contacto2, la señal PWM3 deja de enviarse al cantón 1 y continúa enviándose al cantón 2, de modo que en efecto el la "señal" PWM3 es la que en realidad persigue a la locomotora.

En realidad lo que probé en "COLA.02" era una etapa de potencia (mejor dicho dos) y si nos fijamos la etapa de potencia es un elemento "tonto" ya que no recibe directamente control por parte del ordenador. De hecho toda esta parte asociada a los cantones solo recibe órdenes del programa de ordenador para cambiar la posición de los relés inversores de polaridad.

Bueno, en vista de esto, el paso siguiente va a ser construir la etapa de potencia "octal" con sus inversores asociados. Si construyo eso ya puedo manejar mis trenes con este sistema aunque el famoso conmutador no exista, simplemente conectando de forma fija las entradas de la etapa de potencia a señales PWM de las placas. Claro que no tendré mas que cuatro señales para ocho entradas pero puedo conectar cada señal a dos etapas y ya tendré mucho más que lo que tengo ahora con un solo System Joerger

Hay una cuestión que me ha traído un poco de cabeza con este esquema: En realidad yo voy a poder manejar cuatro locomotoras independientemente, si es que utilizo solo dos placas Velleman, es decir tendré cuatro "cabinas de mando virtuales" en el programa, desde cada una de las cuales controlo la velocidad de cada una de esas cuatro locomotoras, y que en realidad estará actuando sobre cada una de las cuatro señales PWM. Parece lógico que en esas cabinas virtuales haya un mando para ir adelante o atrás, con lo que la lógica dice que los inversores de polaridad deberían ser cuatro y por lo tanto asociados de alguna forma al numero de señales de control y no al número de cantones.

Sin embargo, las etapas de potencia no son "bidireccionales", De hecho su polaridad es bastante específica porque no solamente no puede invertirse sino que el polo común a todas las salidas es el positivo, así que el cambio de polaridad hay que hacerlo después, y por lo tanto cuando el sistema ya es de ocho vías.

Estaba un poco mosca con esto hasta que me di cuenta que, que no sólo era obligado por ese motivo, sino
por otra razón:


En algún punto de mi maqueta se forma uno de los famosos bucles de retorno.  En ellos, como en la figura, existe un punto en el que se encuentran enfrentados el carril derecho, alimentado normalmente con el polo positivo con el carril izquierdo del cantón siguiente, y viceversa. Esto quiere decir que en esos puntos puede darse la situación de que una locomotora vaya a pasar de un cantón con una polaridad a otro cantón con la polaridad inversa. En el momento en que el "Conmutador" se ponga a alimentar con la misma señal, en este caso indicada por PWMx a las dos etapas de potencia, la corriente producida va ser igual, pero para que la locomotora pueda pasar, hay que invertir la polaridad en el segundo cantón y no en el primero, de modo que la corriente en las vías tenga el mismo sentido en ambos cantones. Es decir, la misma señal pero con una polaridad en un cantón y la contraria en el siguiente. Así que es necesario tener un inversor en cada cantón.

lunes, 6 de diciembre de 2010

Orden Caótico


No se si he dicho antes que las fotografías de circuitos electrónicos tienen para mi un atractivo especial. Los colores variados, las formas diversas, y el orden que muchas veces reflejan, permiten bonitas fotografías, como alguna de las publicadas aquí, por ejemplo en la cabecera de este artículo: "Me lo estaba temiendo". Sin embargo la fotografía que encabeza el artículo de hoy, no refleja precisamente un modelo de orden.

Se trata del sistema de control de mi maqueta, que por fin está acabado y funcionando. Creo que he repetido varias veces anteriormente la frase "algo que tenga 256 cables para conectar a distintos aparatos tiene que ser necesariamente algo grande y complicado" No cabe duda de que tenía razón, y eso que este sistema en realidad no tiene 256 salidas, sino solamente 192 (12x16), y esto es porque no necesitaba más. Con esas 192 direcciones, puedo manejar los 42 desvíos, los seis desenganchadores los 48 sectores aislados, y... la rotonda. Incluso tengo todavía 32 direcciones libres, que utilizaré para accionar los semáforos cuando monte el sistema de acantonamiento.


El aparente caos que muestra la fotografía es en realidad un caos ordenado ( o si lo preferimos, un orden caótico). Por ejemplo los colores de los cables tienen su significado, aunque realmente este significado depende de la misión del cable: Los cables que llevan corriente de tracción son del color del cantón (el mismo color en que se visualiza cada cantón en la pantalla del programa. Cantón 1 marrón, cantón dos rojo, etc). Los cables que llevan datos digitales tienen un código de color asociado al bit correspondiente (A0=negro, A1=marrón, etc).

En general los cables está agrupados mediante lazadas para mantener unidos los que tienen el mismo origen y destino. En la parte izquierda hay sin embargo un gran número de cables que se cruzan, y esto es debido a que aquí llegan los cables planos desde la maqueta, y se conectan a las salidas del demultiplexor. No se pueden hacer uniones más ordenadas, porque los cable planos que vienen de la maqueta están agrupados "por proximidad" es decir que por un determinado cable pueden venir conexiones de varios desvíos, de algún desenganchador, y de algún sector aislado que en la maqueta estarán próximos, y por eso sus conexiones se agrupan en un cable. Cuando este cable llega a la unidad de control, cada cable debe conectarse a las correspondientes salidas que están agrupadas por sus direcciones digitales. Como ambas cosas no coinciden el cruce de cables es inevitable.

También se puede ver que hay etiquetas adhesivas en las placas y códigos escritos sobre determinados conectores, de forma que si hay que desmontar alguna parte, se pueda volver a montar con facilidad.

Y seguramente algún lector me diría: Bueno, pero tendrás un plano eléctrico con todos esos cables representados en un esquema para saber de dónde a dónde va cada cable. Sobre todo si dentro de un cierto tiempo, cuando ya se me hayan olvidado los detalles del montaje, necesito hacer alguna comprobación o modificación. Pues la respuesta es NO

Yo se que en la industria son habituales esos esquemas eléctricos, que son planos llenos de líneas que representan cada cable y los bornes de los aparatos a que se conecta. A mi siempre me ha parecido que esos planos son poco prácticos porque para seguir un cable hay que recorrer toda la línea que lo representa sin perderse ni desviarse. Además por supuesto, hacer un trabajo así para un equipo como el que he construido es un trabajo de chinos.

Así que lo que he hecho, es mucho más sencillo, y a mi me parece que mucho más práctico: Simplemente he creado un tabla en Excel  con una línea por cada cable, indicando para cada uno el origen y el destino, la señal que lleva, el color. etc.  Por supuesto voy a guardar cuidadosamente copia de ese Excel para el futuro, y además voy a imprimir una copia y pegarla en la parte interna de la tapa, para tener un referencia rápida en cualquier momento. He ido rellenando el Excel en paralelo con el montaje, de modo que es más bien una documentación "as built " en lugar de documento de proyecto.

La conexión a la maqueta se realiza mediante cables planos de 20 vías que van unidos a los conectores que vemos en fotografía adjunta. Hay 12 conectores, así que en total son 240 posibles conexiones. No están usadas todas, pero está previsto utilizar las que quedan en la señalización y detección de los trenes.

También vemos en las fotografías las placas Velleman. En efecto, he decidido sustituir definitivamente la placa de Micropik por la de Velleman. En las fotografías se ven dos placas, aunque la segunda está solo de adorno, ya que será la que usaré para el tema de la tracción de los trenes.

Bueno, pues realmente se puede decir que he concluido con éxito esta importante parte de la construcción de mi maqueta. Realmente esta fase comenzó a finales de Mayo (De nuevo con los voltios), así que la terminado en  6 meses, incluyendo todo el proyecto de la parte electrónica, el diseño y construcción de los circuitos impresos, y todo el montaje. Lo malo ha sido que en todo este tiempo, he tenido mis trenes cuidadosamente guardados, así que tengo muchas ganas de hacerlos rodar otra vez, bajo el mando del nuevo sistema.

En los próximos días modificaré el artículo de mi Web que describe el sistema, de manera que allí quedará de forma concisa y ordenada toda la descripción del mismo, incluyendo esquemas y demás documentación a disposición de los interesados

sábado, 27 de noviembre de 2010

Al revés te lo digo...


La foto de la cabecera, muestra las placas DEMU01 y DEMU03 de mi proyecto conectadas entre si, y conectadas a la placa K8055 de Velleman. Como ya he comentado, la placa DEMU01 lleva un circuito demultiplexor 74HC154 que decodifica los cuatro bits más altos de la señal recibida.

Hasta ahora esa señal, provenía de la placa de Micropick, pero con esta prueba se ve que funciona igual con la señal producida por la placa de Velleman, o sea que puedo sustituir una placa por la otra cuando quiera. Se puede ver que está marcando una determinada dirección, ya que hay unos leds encendidos y otros no ("leyendo" los leds verdes se ve que la dirección es 9A)

Todo muy bonito, pero...

Ya he comentado que mis conocimientos de electrónica son nulos, aunque poco a poco me voy peleando con los problemas y voy aprendiendo algo. Una cosa que me desconcierta mucho, es la utilización de lo que que llaman lógica negativa, es decir aquellos elementos cuya señal se compone de ceros y unos, o sea valores bajos y altos (Low y Hight) pero cuyo sentido está "al revés" (por lo menos para mi cuadriculado cerebro) de modo que los datos altos significan los "ceros" y los datos bajos significan los "unos".

En las hojas de datos de los dispositivos están siempre indicado "Active Low" o "Active Hight" para cada conjunto de datos, y me da la sensación de que es más habitual la forma Active Low. De hecho, en la fotografía de cabecera, se ven los Leds amarillos de la salida del 74HC154 y como vemos están todos encendidos (hight) excepto uno, precisamente el que corresponde al bit activo.

Algo parecido ocurre con las salidas de los datos, desde la placa de Welleman. Las salidas de los bits de la señal están hechas en la forma que llaman colector abierto. Esto significa que en vez de lo que parece "normal", es decir que haya una conexión común a tierra y cada bit se manifieste por una tensión positiva o nula respecto de esa tierra. Bueno pues no: Lo que hace el sistema es conectar la salida a masa cuando se activa, y cuando no se activa queda abierta.

La disposición habitual entonces es llevar un positivo común a todos los dispositivos que van a recibir la señal, y un negativo a cada uno, que estará abierto si está inactivo o conectado a tierra cuando se active. Cuando el dispositivo que recibe la señal es un relé, esto funciona bien, porque un extremo de la bobina se conecta al positivo común y al conectarse a masa el otro extremo de la bobina, la corriente circula y el relé se activa.  Este tipo de salidas a "colector abierto" se hacen normalmente con transistores Darlington, bien aislados o encapsulados en un chip como el ULN2803 que consiste en un conjunto de 8 transistores.

Yo he empleado este sistema en las salidas de impulsos que produce mi circuito DEMU02 y efectivamente va muy bien, ya que se independiza la alimentación del dispositivo a controlar. Por ejemplo en mi caso los 12 V que alimentan las bobinas de los relés se llevan de forma permanente al común de las bobinas de los desvíos (cable amarillo según el código de Märklin) y al activarse una de las dos salidas, el otro extremo, (cable azul) se pone a masa, con lo que la bobina se activa.

Esto es tan habitual, que tanto la placa de Micropick como la de Velleman llevan esta forma de salida, pensada para activar directamente conjuntos de ocho relés. Mi problema es que en mi caso, este paso ya lo haré yo más adelante con los ULN2803 que van en las placas DEMU03. Sin embargo yo necesito quedarme un "paso antes" es decir en la señal que entra al ULN2803 que una señal "Active Hight", tal como yo la necesito para entrar al demultiplexor.

Como ya digo, este problema se me presentaba igual en la placa de Micropick que en la de Velleman, y la solución adoptada ha sido la misma: He construido un falso ULN2803 que consiste en un zócalo con cablecillos que unen cada pin de entrada con la correspondiente salida. Es decir 9 cablecitos entre pin y pin del zócalo. Par "dar el pego", le pongo una cartulina negra pegada encima  y queda tan aparente. Seguro que si no lo señalo, nadie lo notaría. Así que he quitando el ULN2803 y he colocando este falso, y las salidas recogen exactamente las entradas (¡¡ Active Hight!!) de cada bit.

Es algo parecido al problema que comentaba en el último artículo acerca de la forma en que se controlan los motores. También aquí, la alimentación de los motores, 9V queda aislada de la placa, y solamente el transistor se encarga de controlar la corriente que llega al motor, mediante los impulsos que recibe por la base. Pero estos impulsos, lo que hacen es poner alternativamente el transistor en corte y en conducción, de manera que el motor recibe corriente tanto más tiempo por ciclo, cuanto más tiempo está el transistor en conducción  y por lo tanto cuanto más estrechos sean los pulsos. Lo malo es que si no le llega ninguna tensión al transistor,  la corriente en el motor es máxima. Así que esto tiene dos consecuencias negativas: La primera, fácil de solucionar, implica cambiar la señal que se envía a la placa, de forma que vaya desde 0 para la máxima velocidad hasta 255 para la mínima. La segunda, que ya veremos lo que me complica la vida, es que un cantón que "se queda sin alimentación" según lo explicado en "AcantonamientoElectrónico" se quedará en principio alimentado a tope, de manera que si ponemos ahí una locomotora, saldrá a toda velocidad.

Así que hay que tener mucho cuidado con todo esto, porque en general los circuitos electrónicos aplican aquello de "al revés te lo digo para que me entiendas"

jueves, 25 de noviembre de 2010

COLA.2


Hace ya bastantes meses (Nuevo Oficio), hice unos experimentos para poder comprobar si era factible hacer un control PWM para alimentar las locomotoras, regulado desde un programa de ordenador. Este elemento recibió el nombre de COLA y la verdad es que funcionó bien, aunque yo no estaba absolutamente conforme con el diseño, ya que me basé en un elemento, el potenciómetro digital DS1669-100 que resultó un tanto caprichoso. También hubo un problema al interaccionar un canal con otro, lo cual me obligó a hacer un complicado diseño con fuentes de alimentación distintas para cada cantón. Por esta razón cuando me di cuenta de que las placas de Velleman tenían dos salidas de tipo PWM, pensé que podría repensar el control de las locomotoras en base a estas salidas.

Tenía que probar si esto era factible, antes de tomar la decisión de cambiar a este nuevo sistema de control, ya que. al menos en una pequeña parte afecta al sistema de control de desvíos y demás aparatos de vía que estoy a punto de terminar. Ya comenté que la forma de conseguir controlar varias placas simultáneamente pasaba por tener abiertas varias instancias de un programa de comunicaciones cuyo funcionamiento es diferente al de las placas Micropick, así que tenía que decidir si efectivamente iba a necesitar tener activas más de una placa, y eso sólo era necesario si iba a usar el control PWM de estas placas.

Una dificultad que he encontrado es que Velleman, que explica bastante bien otros temas, no dice prácticamente nada acerca de las salidas PWM en sus manuales. Afortunadamente, en la web de Velleman hay un foro, y buscando las preguntas acerca de la placa K8055 encontré varias preguntas acerca de cómo conectar las salidas PWM para controlar motores. Tal como yo intuía , se trata de llevar la salida producida por la placa a la base de un transistor, cuya corriente de colector regula la intensidad que pasa por el motor. Sin embargo nunca está de más ver un esquema con la forma práctica de hacerlo, y en efecto, en este foro aparece este esquema varias veces.

El transistor queda un poco en el aire, pero he recordado que en el diseño del primer COLA utilicé un transistor MPSA13 que es un transistor Darlington, por tanto con una gran ganancia de corriente, así que parece que ese tipo es el apropiado. Recuerdo que hice algunas pruebas con dos locomotoras y se calentaba bastante, por lo que este transistor parecía estar muy justito. Algún lector del blog se lamentó de que si tenía algún tren con dos motores, o que si quería hacer una doble tracción, esa alimentación iba muy justa. Por este motivo he seleccionado un transistor más potente y he escogido el TIP110. Es un transistor también tipo Darlington,  con 2 Amperios de corriente de colector.

Había que probar todo esto, así que esta mañana he hecho un montaje con la placa de prototipos. Lo primero que he hecho ha sido preparar una tabla con cuatro vías independientes para poder probar cuatro circuitos de mando simultáneamente. Unos tacos de gomaespuma, "contienen" a las locomotoras para que funcionen patinando.  Luego, en la placa de prototipos he montado los dos transistores TIP110, alimentando desde una única fuente de alimentación de 9 V. Después de colocar el resto de elementos del circuito (un diodo de protección, y una resistencia de polarización, según el esquema del blog de Velleman) he conectado este doble circuito a las dos salidas de PWM de la placa de Velleman. Y...¡funcionando!

Aclaremos en primer lugar, que el programa que maneja la placa ya no es el que proporciona Velleman, como en artículos anteriores sino  una primera versión del programa "autónomo" de comunicaciones, de manera que lo que vemos en la pantalla del ordenador es justamente la ventana de este programa que ya tengo desarrollado (la verdad es que es muy sencillo). Aunque en la práctica el usuario no tiene que ver este programa cuando esté funcionando conjuntamente con ControlZ, para que se pueda utilizar de forma autónoma como en este caso, tiene una ventana que permite monitorizar la comunicación con la placa, e incluso emitir desde aquí cualquier orden (que luego vendrá de ControlZ). Así puedo manejar la placa cómodamente sin tener que arrancar Control Z, que además todavía no está preparado para controlar locomotoras.

En la parte superior de esta imagen, de la pantalla del programa, vemos las indicaciones PWM1 y PWM2 y dos barras cuya longitud indica la amplitud actual de cada una de las salidas PWM. La conexión USB del ordenador con la placa, lleva esas instrucciones a la placa de comunicaciones que genera la corriente pulsada con el ancho de pulso correspondiente. La siguiente imagen, de la pantalla del osciloscopio, muestra las dos salidas PWM1 en rojo y PWM2 en amarillo. Como se ve, son formas de ondas cuadradas, de anchura de pulso variable, y se puede ver que esta anchura de pulso es proporcional a la orden transmitida desde mi programa. Por cierto, hay una curiosidad, y es que en la pantalla del ordenador vemos que la barra de PWM1 es mayor que la de PWM2, que es muy corta. Sin embargo en el osciloscopio la traza roja, de PWM1 es de pulsos mas cortos que la amarilla de PWM2, que tiene los pulsos casi en el límite de su anchura. Y es que este circuito funciona al revés. Cuando la salida tiene el valor 0 la corriente es máxima, y según aumenta hasta 255, los pulsos van acortándose hasta que con el valor 255 la corriente se anula. Esto se debe a que en realidad la corriente llega al motor cuando el transistor está en corte, por lo tanto, tanto más tiempo cuanto menos tiempo esté el transistor en conducción. Bueno, no me cuesta nada cambiar el programa para que en vez de un valor N transmita 255-N. Si esto me hubiera pasado a mi, creería que estaba haciendo algo mal, pero ya lo advertían en el foro.

Todas las fotografías están tomadas en pleno funcionamiento, como se puede ver fijándose en las ruedas de las locomotoras. Precisamente para esta prueba he puesto dos locomotoras en cada vía, de manera que se trataba de hacer una prueba del comportamiento del sistema con dos locomotoras durante un tiempo bastante largo. He podido notar que el transistor se calienta ligeramente, lo cual me indica que está muy bien dimensionado, ya que esta prueba representa la peor situación respecto del calentamiento que va a soportar. Seguramente acabaré por poner un refrigerador a cada transistor, pero por puro preciosismo.
Así que esta prueba, ha resultado todo un éxito, y ya no tengo duda de que voy a usar las placas Velleman, en principio dos placas, para tener el sistema de Control por Ordenador de Locomotoras Analógicas (COLA), que como se trata de una nueva versión habrá que llamar COLA.2

No he mencionado la misión del polímetro que se ve en las pruebas. Está controlando la intensidad que absorbe el circuito. La intención es poner algún sistema de protección para evitar que se destruya el transistor por sobrecargas o cortocircuitos, que pueden ocurrir fácilmente en las vías por caída de objetos, descarrilamientos etc.

Voy a colocar en cada circuito de alimentación un fusible térmico, para que en caso de que la intensidad supere 500 mA se abra el circuito. Como el TIP110 aguanta 2 A, espero que esta protección sea eficaz. El termofusible que he pedido es este: RKEF050 

Y por cierto, he pedido también unos sensores de efecto hall......

jueves, 18 de noviembre de 2010

Ya tengo Osciloscopio


Bueno, estaba claro que con los "dibujos" en los que me estoy metiendo, necesitaba hacerme con un osciloscopio. La verdad es que ya el año pasado, cuando comencé a hacer diseños de alimentaciones electrónicas, pude contar con un osciloscopio, antiguo pero muy bueno, que me habían regalado "por si a ti te sirve para algo" Agradecí mucho el obsequio, pero desafortunadamente al cabo de poco tiempo dejó de funcionar, seguramente debido a un fallo en su alimentación a base de baterías recargables (baterías que debían tener más de treinta años)

Así que, ahora que estoy de nuevo en esta fase de diseño electrónico, necesitaba un osciloscopio y decidí hacerme con uno. Dado que tampoco voy a utilizarlo  mucho, y siempre para temas muy elementales, la verdad es que me vale cualquier osciloscopio, por sencillo que sea. Se presentaban varias alternativas.

Buscar en E-Bay un osciloscopio antiguo. Se venden habitualmente bastante baratos, pero la experiencia con el que me había dejado de funcionar no me animaba mucho por esa opción.

Comprar un osciloscopio "de PC". Estos aparatos están muy de moda y consisten en una misteriosa caja que se conecta a un PC por USB y que lleva conectores para las sondas. Se acompañan con un software que ejecutado en el PC presenta en la pantalla del ordenador un osciloscopio virtual . Los hay de muchos precios, pero digamos que para que sean un poco decentes estamos hablando de alrededor de 200€

Estaba casi decidido a ir a uno de estos elementos, pero hay una cosa que me frenaba: Mi uso más habitual va a ser comprobar  el funcionamiento de los elementos electrónicos manejados por el programa ControlZ. Esto implica que el ordenador tiene que tener este programa funcionando, de modo que si además está funcionando el programa que emula el osciloscopio el manejo se complica mucho.  (Ya he tenido problemas parecidos tratando de grabar con una WebCam conectada al ordenador el funcionamiento del programa de control)

Así que hace unos días, buscando por E-Bay alguna de las dos alternativas con un precio asequible, descubrí unos osciloscopios nuevos, de la marca OWON (rigurosamente china) que son osciloscopios "exentos" (no de PC) por un precio bastante económico. Tanto que el más bajo de la gama, el PDS5022S tiene un precio de alrededor de 200 €. Incluso los había por debajo de ese precio, pero usados y sin sondas. Así que me estiré un poco más, y pedí uno nuevo.

Y esta mañana, nueve días después del pedido, me ha llegado. La primera impresión es muy favorable. La verdad es que para ser el más barato que he encontrado, está bastante bien. Tiene una pantalla en color de 16 x 12 y un aspecto bastante serio. Es un osciloscopio digital, o sea que la pantalla no es un TRC  sino de cristal líquido, y todo el procesado se hace en forma digital (hoy en día esto es mucho más barato que los antiguos osciloscopios analógicos) . Precisamente por eso, aunque su cara frontal es bastante grande, 34 x 16 cm tiene muy poco fondo, sólo 10 cm, y muy poco peso. Por supuesto, trae sus dos sondas, con atenuadores 1x y 10x conmutables, además de un cable de conexión para el barrido externo. Se acompaña con un cable USB y un software de modo que se puede conectar al ordenador, con dos objetivos: El primero, grabar tablas de datos leídos, y el segundo, ¡Presentar un osciloscopio virtual en pantalla!. Bueno, de momento está claro que no voy a usar esa opción, aunque bien pensado, el caputurar la imagen de la pantalla del ordenador es una opción mucho mejor que tomar una fotografía de la pantalla del osciloscopio, para asi poder ilustrar alguno de estos comentarios.

Naturalmente, la primera prueba que he querido hacer, ha sido ver las salidas PWM de las placas de Velleman. En la imagen de cabecera vemos el osciloscopio conectado a las dos salidas, y la imagen en pantalla de la forma de onda producida. Se ve que producen una corriente pulsada de ancho de pulso variable, en función de la posición del control del programa. ¡perfecto!

Por cierto, que al ser digital, tiene algunas características muy particulares que hasta ahora sólo se podían tener en aparatos carísimos. Por ejemplo, basta pulsar una tecla y la imagen pasa a presentar lo que se llama FFT (Fast Fourier Transform) o sea, el espectro de frecuencias de la descomposición en serie de Fourier de la forma de onda *. También se puede visualizar la función suma, diferencia, producto y cociente de ambos canales.

Sin meterme en tantas profundidades una cosa agradable es que en la propia pantalla aparecen una serie de medidas y datos, que en osciloscopio clásico requerían primero un delicado ajuste, y luego buena vista y un cálculo para obtenerlos. Por ejemplo en la parte derecha de la pantalla leemos directamente que la frecuencia de la señal del canal 1 es de 23,44 kHZ,  la amplitud pico a pico es de 1,92 Voltios. y la tensión eficaz es 895 mV.

Bueno, lo malo es que me he quedado sin presupuesto para una larga temporada......


* Fourier demostró que una onda periódica de cualquier forma de onda se puede descomponer en una suma de ondas senoidales, la primera de las cuales es de la misma frecuencia que la original, y los siguientes sumandos de frecuencias doble, triple, cuádruple, etc. Cada una de estas ondas senoidales tienen una amplitud distinta cuyo cálculo es el meollo de esta cuestión, y esa serie de amplitudes o "Coeficientes de Fourier" correspondientes cada uno a una de esas frecuencias, forman el llamado espectro de frecuencias de la señal original. (todavía me acuerdo!)

domingo, 14 de noviembre de 2010

Tenía que hacer esta prueba


Ya he comentado que la placa de comunicaciones K8055 de la empresa Velleman ha sido para mi, todo un hallazgo, que al final tendré que agradecerle a Micropik.

Una de las ventajas es que a cada placa se le puede asignar una dirección entre 0 y 3 de modo que el ordenador puede manejar cuatro placas...¿simultáneamente?. Esos interrogantes definen cuál era mi duda. No sabía si el programa podía trabajar al mismo tiempo con cuatro placas o cómo se manejaba esta situación. Así que, para resolverlo, me decidí a pedir una segunda placa. Realmente como ya tengo prácticamente decidido utilizar las salidas PWM de estas placas para controlar la corriente de tracción, necesitaba al menos dos placas para tener cuatro salidas y poder manejar cuatro trenes simultáneamente, así que tarde o temprano iba a necesitar al menos una segunda placa.

Una vez la segunda placa montada, y probada, ha llegado el momento de hacer la prueba conjunta. Examinando el programa fuente que proporciona Velleman, ya me había dado cuenta que las instrucciones de llamada a las funciones de comunicación, no llevan el parámetro que indicaría la placa, como sería lo perfecto.

Así que la conexión no es simultánea sino alternativa. Es decir si doy la instrucción desde el programa de abrir la comunicación con una placa, ésta placa será la activa, y todas las funciones de comunicación se dirigen a esa placa. Si en un momento dado doy la orden de abrir la segunda placa, todas las instrucciones a partir de ese momento se dirigen a la segunda placa, quedando la primera inactiva,  y así sucesivamente.

De entrada esto es un inconveniente: Si necesito dirigirme a cualquiera de las dos placas en función de las circunstancias del programa o bien llevo una cuidadosa cuenta de cuál es la placa activa en cada momento para que si no es la que necesito activarla, o bien, de una forma más segura pero menos elegante, cada vez que necesite dirigirme a una placa doy la orden de activarla, sin preocuparme de si ya estaba o no estaba activada. No cabe duda de que es una complicación, pero, realmente, programando esta actuación en un procedimiento de comunicaciones, no supone mayor problema.

Sin embargo me he dado cuenta de otro problema: El que la placa esté activa o no, no solo afecta a las salidas sino también a las entradas. Estas entradas, como ya he comentado recibirán la señal producida por los detectores de trenes, ya sean estos ampollas reed, o sensores hall. El problema está en que si se recibe una señal de entrada cuando la placa está inactiva, esta señal se perderá.

Afortunadamente se me ha ocurrido una solución, y es la que podemos ver en la imagen. En la pantalla se ve que el programa de comunicaciones, en este caso el programa que proporciona Velleman está abierto dos veces. Podemos ver en la imagen de la pantalla, las dos ventanas correspondientes con las dos instancias del programa. Cada una de estas dos instancias, abre inicialmente una de las dos placas, y ya permanece siempre en comunicación con esa placa. Ahora si que tengo las dos placas activas simultáneamente, y no sólo puedo enviar en cualquier momento señales de salida a cualquiera de las dos placas, sino que, y esto es lo importante, ambas placas están permanentemente activas y por lo tanto no se pierde ninguna señal de entrada.

Naturalmente era importantísimo probar si esto podía funcionar así, antes de tomar cualquier otra determinación, incluyendo la de mayor importancia de pasarme definitivamente al sistema de Velleman. La prueba ha sido completamente satisfactoria.

Quizá alguno de mis lectores, sepa lo suficiente de programación como para echar de menos el final de la explicación. La cuestión es que si yo tengo UN programa como ControlZ funcionando, solo puedo comunicarme con una placa, y si abro otra instancia de ControlZ para comunicarme con la otra placa, voy a tener dos ventanas distintas con el esquema de vías, etc.

La idea es que voy a tener un solo programa Control Z funcionando, pero le voy a quitar la actual rutina de comunicaciones, Además arrancaré automáticamente dos programas de comunicaciones adicionales ( o tres o cuatro) cada uno de los cuales pilotará una de las placas. Entonces no hay más que organizar una zona de intercomunicación a la que tengan acceso todos los programas y se intercambien los datos. Es algo parecido a aquellas "áreas COMMON" que utilizábamos hace años cuando programábamos en FORTRAN.

jueves, 11 de noviembre de 2010

Sensores de efecto Hall


En un comentario a mi anterior artículo sobre la forma de realizar un sistema de acantonamiento gobernado por un programa de ordenador, Un fiel seguidor de este blog (Raul) incluyó un comentario con varios enlaces, entre ellos uno a una universidad norteamericana, donde estaban llevando a cabo una serie de estudios sobre sistemas de control de procesos en tiempo real, y para las prácticas empleaban una maqueta de trenes.

Raul llamaba la atención sobre la descripción del sistema de acantonamiento (en inglés se denomina "block system") ya que efecto la descripción que hacen del sistema que tienen pensado coincide con sorprendente exactitud con el que yo he pensado para mi maqueta. En resumen, distribuyen la corriente de alimentación a los distintos bloques (¡precisamente ocho bloques!) mediante un sistema digital gobernado por señales de control.

Sin embargo, al leer el texto, me llamó la atención una mención que hacen a que el sistema de detección de los trenes se basa en "sensores de efecto hall"

Había visto en algunas web's de componentes electrónicos, mencionar este tipo de dispositivos, entre los sensores de luz, de temperatura, etc. Pero nunca había tenido la curiosidad de saber su utilidad. Al ver que detectaban los trenes con estos dispositivos me ha parecido interesante investigar sobre ellos, y he llegado a las siguientes conclusiones:

Los detectores de efecto hall responden al campo magnético, más exactamente a la variación del campo magnético. De forma parecida a un fototransistor, cuando el campo magnético supera un determinado valor, el dispositivo pasa un estado conductor, y cuando vuelve a descender pasa al estado de corte.

Así que si acercamos un imán a uno de estos detectores, este "se enciende" dando un "1" lógico en el pin de salida mientras dura la presencia del imán. En principio, perfecto para detectar un tren, con el habitual sistema de colocar un imán en la panza de la locomotora.

Como es sabido, mi previsión era utilizar contactos reed para detectar los imanes de las locomotoras. La verdad es que estos contactos reed funcionan perfectamente de modo que para decidirme a cambiar, tendría que encontrar importantes ventajas.

De entrada la conexión es algo más complicada ya que necesitan alimentación. Así que llevan tres pines uno de tierra, otro de alimentación y el pin de salida que se pone a  "H" o a "L" con el campo magnético.  Para un sistema como el que yo tengo previsto esto es una ventaja, porque me da directamente la señal de entrada hacia el sistema digital. Con los reed en cambio hay que poner unas resistencias de pull-up para conseguir la señal de entrada. 

El principal inconveniente de los reed es su tamaño. Se fabrican en varios tamaños pero para Z los apropiados son unos muy pequeños que es muy difícil encontrar. Estos tan pequeños soportan una intensidad muy pequeña, lo que puede ser peligroso si han de actuar directamente sobre relés. Afortunadamente con mi sistema, la intensidad es mínima, por lo que esto tampoco es significativo.

En cuanto a los sensores Hall, los que yo he localizado son también muy pequeños. Hay un tipo con montura de transistor SIP de 3 x 4 mm y un espesor de 1.5 mm, que por lo tanto podría situarse entre las vías. Además está la versión en montaje superficial SOT 23 que mide sólo 2 x 3 mm y 1 mm de espesor. lo que también permite situarlo entre las vías. Respecto de los reed. son más pequeños y además su aspecto es más parecido a una baliza de vías de un ferrocarril real.

Bueno, y ¿cuanto valen?. evidentemente esta pregunta es fundamental, porque tiene uno la sensación de que estamos hablando de un elemento de muy alta tecnología. Pues sorprendentemente están "tiraos". En la página donde yo los he localizado, venden cinco por 0,91 € en versión SIP y cinco por 1,26 € en versión SOT. (los precios de los componente electrónicos cada vez me asombran más)

Así que en cuanto tenga ocasión, voy a pedir algunos de estos componentes y veré como se comportan. Lo más importante es averiguar la sensibilidad que tienen, lo que se traducirá en la necesidad de que el imán de la locomotora pase más o menos cerca del sensor. Si esta distancia es muy pequeña y muy crítica, la ventaja estaría del lado de los contactos reed. Pero podría ocurrir que fuesen muchísimo más sensibles. Sería estupendo que fuesen tan sensibles que detectasen el imán desde el otro lado del tablero. Esto facilitaría muchísimo el montaje.

Lo que me ha llamado mucho la atención al leer sobre estos elementos es que en algunos casos el imán está adosado al sensor hall, de forma que éste está incluido en el campo magnético permanentemente.  Entonces cuando acercamos un objeto de hierro (no un imán) el campo magnético se deforma y se concentra más (debido a la mayor permeabilidad magnética del hierro) lo que provoca el disparo del sensor. ¿¿ sería posible que con sólo la presencia de las panzas metálicas de las locomotoras, se activasen los sensores sin necesidad de poner imanes en las mismas??

martes, 2 de noviembre de 2010

Acantonamiento electrónico.



En mi último artículo esbozaba las ideas que me habían surgido como consecuencia de las posibilidades que aporta la tarjeta de Welleman. Todo ello se refiere al control de tracción de los trenes, un tema que hasta ahora apenas había esbozado en este blog. Así que ahora que me he calentado el coco con este asunto , conviene dejarlo por escrito, en primer lugar para mi mismo.

La idea inicial, ha sido siempre dividir toda la maqueta en sectores aislados. con la condición de que sólo puede haber una locomotora moviéndose en cada uno de esos sectores. (Puede haber más. pero necesariamente estarán "aparcadas" en una vía de estacionamiento, que tiene abierto el circuito de alimentación) Como el concepto de estos sectores coincide con la definición de cantones, yo les llamo cantones, pero hay que entender que no solo me refiero a los cantones del circuito principal que permiten la circulación de varios trenes en dicho circuito, sino que hay otros cantones más, en concreto dos más que corresponden a la estación principal (dibujado en violeta en el proyecto) y al taller de vapor (dibujado en gris).

El primer esquema de este artículo corresponde a esta solución: He dibujado dos cantones contiguos cualesquiera, a los que he llamado Cantón 1 y Cantón 2 y el circuito se recorre en el sentido de la flecha.

Las líneas de puntos indican las conexiones con el ordenador

Como se ve, hay una alimentación unida a cada cantón de forma fija, de modo que A alimenta el cantón 1 y B alimenta el cantón 2.

He colocado, cerca del final de cada cantón un contacto (tipo reed) y otro al principio. El situado al principio, como son los marcados como 2 y 4 están situados a solo unos pocos centímetros del principio del cantón y tienen la misión de detectar que un tren ha entrado en el cantón. El situado al final de cada cantón (como 1 y 3) está sin embargo a una cierta distancia. Esta distancia permite que un tren que circule por ese punto, se pueda detener de manera progresiva sin llegar a salirse del cantón. Obsérvese que no hay un trozo de vía aislado para detener el tren al final del cantón de salida o al principio del cantón de entrada para que allí se detengan los trenes, como es habitual en los sistemas analógicos. Los trenes se paran y arrancan suavemente porque son comandados desde la correspondiente alimentación, y no porque se queden en un carril aislado.

Así que el funcionamiento es como sigue: Mientras el tren está en el cantón 1, todos los controles que el usuario maneja en el ordenador referidos a la locomotora, se dirigen a la alimentación A que es la que maneja el cantón por el que circula esa locomotora. Cuando un tren se aproxima a un cambio de cantón y cierra el contacto 1. el programa de ordenador sabe si el cantón siguiente está libre o está ocupado. Si está ocupado, actúa sobre la alimentación A, para reducir progresivamente la velocidad del tren y que éste frene antes de llegar al final del cantón.

Obsérvese que cuando el tren queda frenado al final del cantón, todo el cantón tiene la alimentación a cero. Así que si por accidente se había metido otro tren en el cantón también quedará parado, de manera que nunca puede llegar a chocar con el tren parado al final.

Cuando el cantón siguiente queda libre, lo que hace el programa es "poner en paralelo" la alimentación B con la A (es decir a partir de este momento ambas funcionan al unísono) y hacer una arrancada suave del tren actuando simultáneamente sobre las dos alimentaciones. Cuando la locomotora pasa del cantón 1 al 2, pasa de recibir corriente de la alimentación A a hacerlo de la B, pero como ambas están actuando al unísono, en principio no debería notarse ninguna transición en el movimiento. Una vez que toda la locomotora está ya en el segundo cantón, el tren pasa por el contacto 2. Este contacto le indica al ordenador que el cantón 2 ha quedado ocupado y el cantón 1 ha quedado libre. Entonces ambas alimentaciones se dessincronizan, pasando a ser entonces la alimentación B la que pilota el tren. Evidentemente el programa de ordenador debe actuar en consecuencia, de modo que los controles del programa que se refieren a la locomotora deben pasar a actuar sobre la alimentación B en lugar de hacerlo sobre la A.

Desde luego, si cuando el tren llega al contacto 1, el cantón siguiente está libre, no se ordena ningún frenado sino que se pasa directamente a la sincronización de ambas alimentaciones.

Este fue mi pensamiento inicial, y en realidad es una solución posible, aunque tiene dos inconvenientes: En primer lugar el software resulta complicado, porque esa operación de "sincronizar" dos fuentes de alimentación, requiere un programa que no es tan fácil de hacer, sobre todo si se están considerando temas como la simulación de inercia, frenado, peso del tren, etc.

Sin embargo hay un problema más grave y es que la locomotora pasa de una alimentación a otra al pasar el corte de los carriles, por lo que en un momento dado puede estar recibiendo corriente sumada de las dos fuentes (tomada una por las ruedas delanteras y la otra por las traseras. Como ya demostró Ángel en su blog (Transiciones I) esto puede producir una irregularidad en el movimiento, ya que no se puede garantizar la coincidencia de fases entre las dos alimentaciones.*

Basándome en la solución aportada en el blog de Ángel (Transiciones II) tenía pensado ir a un esquema del tipo siguiente:

El esquema es similar, pero se añaden dos elementos SA y SB que son relés, por supuesto también comandados desde el programa. La variación estriba en que cuando el cantón está libre o se libera, no sólo se sincronizan ambas alimentaciones A y B, sino que el conmutador, en este caso SB conmuta la alimentación del cantón 2 para que sea también alimentado (todo el cantón) desde la alimentación A. Por ello el tren pasa por el corte de los carriles sin la menor afectación, porque ambos lados del corte están alimentados`por la misma alimentación.

Al llegar al contacto 2, el programa actúa sobre el relé SB cambiando instantáneamente la alimentación desde la fuente A a la fuente B. Ya no se produce la posibilidad de que la locomotora reciba la corriente sumada de las dos fuentes, y la conmutación es rapidísima,así que si las dos fuentes estaban bien sincronizadas no se debe notar ningún salto.

Obsérvese que excepto en unos intervalos muy cortos, se sigue manteniendo el esquema de que cada cantón es alimentado por su propia fuente de alimentación, por lo que sigo necesitando ocho alimentaciones. El programa sigue manteniendo la dificultad de conseguir la sincronización entre dos fuentes y el control necesario para que las instrucciones destinadas a cada locomotora vaya a parar a la alimentación que la controla en cada momento.

Como he comentado siempre he pensado en los conmutadores SA y SB como relés, precisamente por el motivo de que deben conmutar la corriente de tracción, y por lo tanto por el mismo motivo ya explicado para los interruptores de las vías de apartadero

La nueva idea, mantiene un esquema similar, pero los conmutadores ahora son múltiples, y están colocados al revés: En vez de permitir que un cantón se alimente desde una u otra fuente de alimentación, lo que hacen es que cada fuente de alimentación se pueda llevar a uno cualquiera de los 8 cantones. De hecho, aunque no está así dibujado, cada fuente de alimentación se puede llevar a dos cantones cualesquiera, a uno solo o a ninguno.

El funcionamiento es entonces como sigue. Suponiendo que la alimentación A está unida al cantón 1, cuando el tren llega al detector 1, el programa comprueba si el cantón 2 está libre. Si lo está dirige el conmutador de la alimentación A de modo que alimente simultáneamente al cantón 1 y al cantón 2 (si no está detiene el tren antes de que salga del cantón como en los casos anteriores) El tren pasa entonces el corte de carriles sin ningún problema puesto que ambos cantones están alimentados desde la fuente A. Al cerrar el segundo contacto, 2, la alimentación A se desconecta del cantón 1, pero continúa conectada al cantón 2, donde ahora está la locomotora.

Las ventajas son muy importantes: En primer lugar, la locomotora no ha cambiado de alimentación, de modo que no hay nada que sincronizar ni hay posibilidad de ninguna irregularidad en el funcionamiento. En segundo lugar el programa no tiene que ocuparse de cambiar los controles de esa locomotora a otra alimentación, ya que la alimentación no ha cambiado. Ambas cosas simplifican tremendamente el programa de control,

Y como tercera ventaja, si se observa el razonamiento, la alimentación 2 no ha hecho falta para nada. Así que con este sistema se puede funcionar sólo con cuatro o cinco alimentaciones. El número de alimentaciones no tiene relación con el número de cantones sino con el máximo número de trenes que queramos rodar de forma simultánea.

La complicación de este tercer método a ido a parar al hardware ya que esos conmutadores son complicados de hacer. Hacerlos con relés sería muy complicado ya que se requiere un número muy grande. Por eso me propongo intentar realizarlos con conmutadores estáticos (multiplexores analógicos) como el 74HC4051. Hay además una dificultad adicional, y es que la situación de estos conmutadores debe mantenerse indefinidamente en el tiempo (hasta que se reciba una orden para cambiar su estado) lo cual parece apuntar a la necesidad de utilizar circuitos de enclavamiento como el 74HC373.

Y por supuesto, soy consciente de que con este tipo de dispositivos sólo puedo manejar tensiones de 5V y corrientes de microamperios con una polaridad dada**, de modo que la parte de amplificación, inversión y por supuesto los Gaugemasters, deben quedar "aguas abajo" y asociarse a los cantones y no a las alimentaciones.

No se si he explicado suficientemente el tema, porque yo mismo tengo todavía algunas vacilaciones, pero creo que esta última vuelta de tuerca ha sido muy positiva. He podido comprobar por las estadísticas de este blog que todos los temas relacionados con el control de los cantones, son de los que más lecturas acumulan. Espero que este novedoso método de acantonamiento basado en ordenador no provoque más dudas que soluciones.

Una cosa: El tren puede estar funcionando en "automático" o en "manual". La diferencia está simplemente en que en automático, si el tren se puede mover se moverá y lo hará a una velocidad programada. En cambio en modo manual, el tren no se mueve hasta que el operador actúa sobre el control en el ordenador, y puede ajustar la velocidad. Sin embargo, aunque el operador pretenda saltarse una señal y entrar en un cantón cerrado, el programa frenará el tren automáticamente, como si estuviera en modo automático.

A lo mejor esto parece poco real, pero el sistema que he descrito, incluyendo los detectores situados uno de ellos con tiempo para el frenado y el otro junto al punto de parada, y el hecho de que si pretendo saltarme una señal el tren se frena solo reproducen casi exactamente el sistema ASFA que es el empleado normalmente en las líneas férreas reales. Véase este vídeo:



* Contando con dos alimentaciones conectadas a dos salidas PWM de la misma placa Welleman, dado que ambas provienen del mismo microcontrolador me sorprendería que no estuvieran en fase. Sin embargo cuando se trata de alimentaciones de placas distintas, no creo que haya forma de sincronizarlas

** En realidad podría manejar la corriente como positiva o negativa ya que este multiplexor es analógico, pero a base de una dificultad en la alimentación que no me compensa.

domingo, 31 de octubre de 2010

Sigo sin tener arreglo!


Ayer tuvo lugar, por fin, una comida organizada por el grupo LCTM, en sustitución de la cena que no se pudo celebrar en la reunión de Alicante, a causa de la tremenda tormenta que nos cayó encima justo en el momento que nos dirigíamos al restaurante. Al final, nos reunimos en un restaurante de Madrid, con tarta y velitas incluidas para celebrar el décimo aniversario del grupo.

Sin embargo yo estuve un poco distraído en esta comida, porque me bullían en la cabeza una serie de ideas que me había sugerido la lectura de los manuales de la placa K8055 de Welleman. Así que en cuanto llegué a casa, me puse a hacer pruebas. (Aunque ya la había montado,todavía no sabía siquiera si funcionaba)

Bueno, en la imagen de la cabecera podemos ver esta placa, ya montada y conectada al ordenador. Detrás se ve el programa de prueba que proporciona Welleman en Visual Basic, donde por cierto se ve la pantallita de control que han reproducido en la carátula de la caja de kit.

En la foto ya se ve que los leds están encendidos, lo cual indica que está funcionando.

Este "está funcionando" implica muchas más cosas de las que puede parecer: En primer lugar indica que la placa en si, está bien montada, lo cual es importante porque se trata de un kit y siempre se puede cometer algún error de montaje o soldadura. En segundo lugar indica que la placa funciona, lo cual en este caso es también importante porque lleva un microcontrolador que se supone que tiene que venir programado. En efecto, debe estar bien el programa, porque todo responde como debiera.

Luego está la unión de la placa con el ordenador, mediante el puerto USB. También funciona, y esto es asimismo importante porque recuerdo que cuando probé la placa de Micropik tuve que instalar un driver, y al instalarlo, daba una serie de mensajes poco tranquilizadores (véase ¡¡AHJJJ qué fallo!!). Aquí no ha habido que cargar ningún driver, lo cual, es sin duda una ventaja. Para ser justos hay que decir que en este caso hay que copiar una DLL al directorio System del ordenador, pero eso, no da ningún problema, y por lo menos para mi, no me supone ni mucho menos tanto trauma como instalar un driver de USB, sobre todo cuando el sistema operativo se queja de su procedencia desconocida.

Y aunque parezca poco transcendente, lo más importante que se comprueba, es que el programa en fuente de VisualBasic que se suministra con el kit, lo he podido cargar sin ningún problema en mi entorno de programación de Visual Basic, y hacerlo funcionar a la primera. Contrasta esto con todos los problemas que tuve con Micropik. lo que dio lugar a un agrio intercambio de correos electrónicos y que acabó sin que contestasen al último de ellos. Afortunadamente pude apañarme y resolver el problema, pero no precisamente gracias a un buen servicio de asistencia de Micropik.

Así que en este momento, no tengo ninguna duda de que cuando quiera, puedo sustituir la placa de Micropick por la de Welleman. Tengo que hacer unos cambios en el programa, porque esta placa se maneja de forma distinta, y quizá alguna adaptación en el circuito DEMU01 pero son cosas mínimas.



Sin embargo lo que me ha dejado fascinado, son las dos salidas PWM que trae esta placa. Actuando sobre los controles de la ventana del programa, los dos LEDS que sirven para monitorizar estas salidas suben y bajan suavemente de intensidad luminosa, (¡en 256 pasos!). Desafortunadamente no tengo un osciloscopio para ver la forma de onda, pero no dudo que basta llevar esta señal a la base de un transistor Darlington alimentado con 9 V para tener un regulador de corriente de tracción por PWM perfecto.

El problema es que solo hay dos salidas, PWM en la placa. Sin embargo cada placa trae unos jumper para asignarle una dirección de 0 a 3, de modo que puedo llegara a tener hasta cuatro placas y conseguir así los ocho reguladores que necesito. (Tengo que comprobar si el mismo programa puede actuar en paralelo con las cuatro placas o solo puede actuar con una, e ir cambiando de una a otra). Parece un poco exagerado poner cuatro placas de éstas, pero cada una me da dos salidas y valen a 35 € mientras que un regulador System Jeorger vale 39 € y sólo es para un circuito. Además si pongo cuatro placas tendré una enorme cantidad de entradas y salidas digitales adicionales.

Y... (ahora viene la justificación del título: sigo sin tener arreglo!).. ¿porqué tengo que tener justamente ocho reguladores PWM?

Desde el principio, he tenido en mente, que si tenía en mi maqueta ocho cantones, tendría ocho reguladores, alimentando uno a cada cantón. Hace apenas unos días, terminaba el artículo Qué complicado! diciendo que iba a construir ocho reguladores COLA, aunque de momento iba a conectar un solo Joerger para poder hacer circular los trenes.

Efectivamente con un solo regulador puedo alimentar los ocho cantones, y un único tren puede circular por todos ellos, porque mando la corriente de ese regulador a los ocho cantones. Sin embargo si tengo ocho reguladores, el tren va pasando de un cantón a otro, y por tanto de un regulador a otro. Manejar esto así, es imposible, porque nunca sabes qué mando le toca a cada tren, así que de ahí la necesidad de que el mando sea electrónico. Si el programa sabe en que cantón esta cada tren, puede ir cambiando el regulador asignado a cada locomotora, según esta pasa de un cantón a otro, de manera que el el usuario, con un único mando maneja siempre la misma locomotora esté el cantón que esté. Dicho así, y ese era mi razonamiento hasta hoy, es evidente que necesito ocho reguladores, uno por cantón.

Pero esta mañana me he dado cuenta de que ese sistema es mejorable: Es mucho mejor que cada regulador sea asignado a una locomotora, y el sistema le haga actuar precisamente sobre el cantón en el que está esa locomotora. Cuando una locomotora pasa de un cantón a otro, el regulador asignado a esa locomotora pasa a alimentar el nuevo cantón, y deja de alimentar el anterior que queda libre para otra locomotora que venga detrás. Incluso cuando una locomotora va a pasar de un cantón a otro, su regulador alimentará tanto al cantón entrante como al saliente, de modo que la locomotora nunca está sin alimentación y siempre es alimentada por el mismo regulador. La dificultad de saber cuando una locomotora pasa de un cantón a otro también existía en el caso anterior y desde luego siempre he pensado basarme en detectores reed. Me parece un sistema mucho más claro y mucho más perfecto. y evita de raíz los problemas de las locomotoras cuando pasan de un control por PWM a otro, que mi amigo Angel ya hizo notar en su blog ( Transiciones )

Y desde luego contesta la pregunta: ¿porqué ocho reguladores?. En realidad el número de reguladores lo que implica es el número de trenes que pueden circular simultáneamente. Con un regulador (situación actual) funciona un sólo tren, pero con cuatro, por ejemplo pueden circular cuatro trenes y en un momento dado, habrá cuatro cantones cada uno alimentado por uno de los reguladores, sobre los que circula un tren por cada uno, y otros cuatro que están vacíos y que además ¡no tienen alimentación!

Así que no necesito ocho reguladores, y por tanto tampoco necesito cuatro placas K8055. De hecho con los ocho cantones de la maqueta sólo pueden llegar a circular simultáneamente siete trenes, así que el octavo regulador siempre sobra. Es más creo que con seis es más que suficiente, y hasta con cuatro, estaría ya muy bien. Lo bueno es que puedo hacer un sistema para cuatro trenes con sólo dos placas, y si en el futuro veo la conveniencia de pasar a seis, compro una tercera placa y paso a un sistema de seis trenes.

Pero ¡un momento! Con este sistema cada regulador debe poder ser dirigido a ocho posibles cantones con un sistema manejado digitalmente. Habría que poner ocho relés en la salida de cada regulador para que se pudieran conectar al cantón correspondiente en cada momento. Sólo para cuatro reguladores eso son ya 32 relés. Bueno, no es para asustarse demasiado, pero además es que posiblemente no sea necesario llegar a esa solución.

Hay un tipo de circuito integrado, llamado multiplexor, y que curiosamente no es exactamente lo contrario que un demultiplexor como los que ya he usado, y que tiene esa función. De hecho, lo que hace es exactamente es dirigir una "señal" a una de varias salidas en función de un dato que le llega en forma digital. Lo bueno es que esa señal puede ser analógica, de modo que vale perfectamente para distribuir la señal procedente del PWM (antes de ser amplificada a 9 voltios) hacia las salidas que necesitemos. Por ejemplo este circuito: 74HC4052 hace exactamente eso.

Naturalmente hay que organizar todo el sistema de control de los multiplexores que necesite, pero como voy a tener al menos dos placas de comunicaciones, no tengo peligro de que se me acaben las direcciones libres.

Bueno, ya tengo para entreterme unos cuantos meses!!

viernes, 29 de octubre de 2010

No tengo arreglo!


En artículos pasados, he escrito que no quería entretenerme ahora en buscar una alternativa a la placa de Micropik, sino continuar con el cableado de la maqueta, al menos hasta pode hacer circular de nuevo los trenes.

Sin embargo el descubrimiento de la empresa Welleman, y sus kits de comunicaciones, me ha puesto "los dientes largos" ya que tienen una buena variedad de dispositivos de este tipo, tanto para conectar por puerto serie como por USB. Después de estudiar los existentes, me ha parecido que el K8055 era el más adecuado a mis necesidades, y desde luego el más parecido a la placa de Micropik.

Por otra parte, he encontrado un distribuidor de esta marca que no sólo tiene tienda en Madrid, sino que tiene una tienda on-line. En su catálogo figuran casi todos los productos de Welleman, por lo que parece que esta solución es bastante "sólida" desde el punto de vista de la seguridad del suministro.

La empresa se llama Diotronic y esta es la página de su tienda con los kits de comunicaciones de Welleman, incluida la placa K8055.

El precio de esta placa en kit es de 33.58 €, así que resulta notablemente más barata que la placa de Micropik (empiezo a comprender sus dificultades), así que no pude resistir la tentación y ayer hice el pedido de uno de estos kits (¡no tengo arreglo!).  Esta mañana casi me saca de la ducha un mensajero que me traía el paquete. (buen servicio, si, señor)


El kit viene en una caja de plástico muy aparente y dentro, además de la placa y todos los componentes vienen folletos de instrucciones en varios idiomas, y un mini-cd que (supongo) trae el software que acompaña al kit. La placa de circuito impreso es de doble cara, con máscaras de soldadura y serigrafiado de componentes, o sea totalmente profesional.


Entre la documentación, podemos encontrar un esquema completo del circuito que reproduzco a continuación (haciendo click se verá a tamaño natural).

El microcontrolador es un PIC16C745 que incluye la interfase para comunicaciones por USB. Lo han configurado para cinco entradas digitales y dos analógicas y ocho salidas digitales y dos PWM. Como se puede ver, es bastante parecido a lo que tenía con la placa de Micropick. Hay por ahí también un amplificador operacional TLV274 implicado en la parte analógica.

Realmente esta es una placa "entrenadora" o "evaluadora", es decir que no se trata sólo de dar soporte al microprocesador, sino de poder probar su funcionamiento (Wellemer la llama "Experiment interface board") . Así que lleva incorporados unos leds para visualizar las salidas, y unos pulsadores para activar las entradas digitales. Incluso hay unos potenciómetros para activar las entradas analógicas. Esto me viene muy bien ya que puedo desarrollar el programa de comunicaciones del PC y probarlo con mucha comodidad.

Supongo que no habrá ningún problema con el montaje y funcionamiento de la placa. Sin embargo lo que más me interesa investigar es la parte de software, que parece bastante diferente del el sistema de Micropik. No me preocupa, porque en todo caso, el tema de comunicaciones es una mínima parte del programa total de control de la maqueta. De lo poquito que he visto, hay una cosa que me ha gustado, y es que está prevista en la programación la forma de dirigirse a varias placas, si es que tenemos más de una conectada. Esto hace que el límite total de entradas y salidas pueda llegar a ser muy alto. Trataré de hacer un programa que sea válido para ambos sistemas, el de Welleman y el de Micropick

Bueno, pues espero que esto solucione todos mis problemas, y posiblemente los de algún seguidor de este blog. Ya contaré lo que resulta