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

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.