martes, 19 de febrero de 2013

Si, ya funciona!

 


A finales del pasado Junio, publiqué un artículo titulado ¿Ya funciona? referido a las primeras pruebas del control de tracción. Aunque los resultados fueron satisfactorios, me di cuenta de que podían mejorarse algunas cosas, así que pensé rehacer los dispositivos electrónicos. Sin embargo entre la llegada del verano y luego una serie de temas personales que me han tenido liado durante el otoño, el proyecto ha estado parado hasta que me puse de nuevo en marcha al rehacer las placas de circuito el pasado Diciembre (PCB DIY). Ahora, por fin he conseguido la tranquilidad suficiente para meterme de nuevo con el tema y realizar las pruebas de las nuevas placas. Probar esto no es algo que se haga en un momento.

Lo primero que he hecho es una ligera modificación en el programa de comunicaciones para poder introducir los datos de forma cómoda, es decir definir los datos de cantón, sentido de movimiento, y número de controlador PWM. El programa calcula la codificación binaria correspondiente tal como se explicó en el artículo anterior "Lógica del control de tracción". 

La segunda modificación es automatizar en este mismo programa de comunicaciones la función de grabar en el circuito Latch la dirección del controlador que hay que asignar a cada cantón. Como ya se vió en el capítulo anterior las órdenes que el programa emite hacia el circuito de control, son palabras de ocho bits que incluyen tres bites para el controlador uno para el sentido y otros tres para el cantón. El bit más alto es el que controla la lectura y grabación del dato, lo que se suele llamar strobe en electrónica digital.

Asi que lo que hace el programa es crear la palabra necesaria con el bit alto a cero, con lo cual el latch la ignora; después de un tiempo ajustable, cambia el bit alto a 1, con lo cual el latch lee el dato, y después de otro intervalo de tiempo igual, vuelve a cambiar el bit alto a 0, con lo cual el dato se enclava en el latch. Por último pone todo los bits a cero.

La verdad es que luego he pensado que no tengo porqué hacer el último cambio para poner todos los bits a cero. De hecho la palabra 000 0 000  tiene un significado ya que lo que hace es ordenar que el cantón 1 de conecte al controlador 1. El hecho de que no se ejecute ese cambio es porque no se activa el bit más alto, así que lo mismo que esa palabra puede quedar en la salida cualquier otra, con tal de no activar el bit alto. Si la que dejamos es precisamente la última emitida, ahorro un intervalo de tiempo. Tengo que corregir el programa en ese sentido.

Se puede poner el tiempo por ejemplo a un segundo para ver bien el proceso, pero luego para funcionar podrá ser muy inferior. Uno de los objetivos es probar cuanto se puede reducir este tiempo sin que se pierdan datos.

En este primer vídeo se puede ver cómo se conecta una placa Welleman al puerto USB del ordenador. A continuación se carga el programa de control "ControlZ" y una vez que ha mostrado el trazado de vías, abrimos la ventana de control de comunicaciones para trabajar desde ella.

Podemos ver como marcamos en el programa el cantón 4 y el controlador 6 con marcha adelante.

 Como ya vimos en el artículo anterior esto se traduce en la codificación:

                                                                       x0110101

La x del bit más alto es la que va ser cambiada por el programa. Como se aprecia en el vídeo, cuando se rellenan los datos de cantón, sentido y control, el programa calcula la expresión decimal (53)  y binaria, poniendo un cero en el bit más significativo.

También se ajusta la duración a 1000 milisegundos, para que se vea bien. En primer lugar vemos como la ventana de control de transmisiones refleja la emisión del código 53 (Hexadecimal : 35) cada vez que pulsamos el botón Latch

Al final la imagen muestra los diodos que señalizan la salida digital de la placa Velleman,  Como vemos por cada pulsación del botón Latch se iluminan mostrando la lectura de la palabra:

                                                                         00110101

después de 1 segundo,  se enciende el bit más significativo y permanece 1 segundo encendido, y después se vuelve a apagar manteniéndose todavía un segundo más la palabra codificada.





El segundo vídeo muestra ya como incorporo el controlador CABCON. Lo primero que se ve es una fuente conmutada de 12 V y 4 A que es la que voy a usar definitivamente para alimentar toda la maqueta. Ya he comentado que pretendo que todas las placas de circuito lleven exclusivamente alimentación de 12 V e internamente llevarán los reguladores de tensión para los distintos voltajes que se requieran. Este caso es muy claro, ya que la placa se alimenta con 12 V y se utilizan internamente 5 V para toda la electrónica digital, y 9 V para la tracción. Se puede ver la conexión a la fuente de 12 Voltios mediante dos cables atornillados a una clema que es precisamente la toma de 12 V para todo el control de tracción.

Luego se ve una cosa curiosa: El circuito lleva un relé que corta la corriente de tracción. Este relé será manejado por el sistema de control de aparatos de vía, y obedecerá al boton "Tracción" que presenta el programa de control. Para activarlo, se ve que uso una pila, y que al tocar los pines del conector se enciende el piloto que indica que la tracción está conectada. Como el relé es biestable permanece indefinidamente activado.

Y a continuación empiezan las pruebas: En la placa Velleman, a la izquierda vemos los leds que señalizan la salida de datos. A la derecha vemos la placa CABCON01 que tiene un led verde que se enciende cuando se activa el bit más alto, y cuatro leds que se encienden para mostrar el estado de los bits del circuito latch. Estos cuatro bits corresponden a los tres bits que indican el controlador que hay que conectar a este cantón, y el cuarto es el que marca el sentido del movimiento. Con este último bit activo se activa el relé del inversor de movimiento, situado completamente a la derecha de la placa. Al activarse este relé se enciende un led verde en esta parte derecha.

En el vídeo se hacen varias veces la misma secuencia de comandos:

- Cantón 2 al circuito 8 en marcha adelante:    001 0 111
- Cantón 2 al circuito 8 en marcha atrás;          001 1 111
- Cantón 2 al circuito 1 en marcha atrás:          001 1 000
. Cantón 2 al circuito 1 en marcha adelante:     001 0 000

Se hace una primera secuencia de estos cuatro comandos con el intervalo ajustado en 1 segundo, viéndose como los diodos del latch recuerdan la orden recibida hasta que es sustituída por una nueva orden.

Siempre la orden se dirige al cantón 2 porque estamos viendo la placa del cantón 2. Cualquier orden dirigida a otra placa sería ignorada por esta placa.

Luego se hace otra secuencia de los mismos cuatro comandos, pero víendose la ventana del programa de comunicaciones en la que ajustamos los valores para cada comando.

Por último, con un plano un poco más amplio que permite ver la parte derecha de la placa con el led indicador del relé de dirección, se hace otra vez la misma secuencia, pero esta vez con el intervalo ajustado a una décima de segundo. Como se ve funciona igual, pero a mucha mayor velocidad.




Y, claro, queda lo más importante, ver como todas estas órdenes se materializan en llevar la señal de cada controlador al correspondiente cantón, y controlar la correspondiente etapa de potencia que es en definitiva la que alimenta las vías.

En el tercer vídeo se ve esto en pleno funcionamiento. Empezamos viendo como se coloca una locomotora en las vías, y en seguida empieza a moverse manejada por el ratón del ordenador. Luego con más detalle, vemos la pantalla del ordenador que está visualizando un control de cabina, concretamente el número 3 y a la derecha tenemos superpuesta la ventana de comunicaciones. Desde el control de cabina manejamos la velocidad del movimiento y desde la ventana de comunicaciones manejamos el sentido de la marcha, ya que el enlace para manejarlo desde el control de cabina todavía no está hecho. Además en esta ventana de comunicaciones vemos todo el flujo de mensajes que se emiten hacia las placas Velleman.

Se puede comprobar que el control de velocidad se maneja con el ratón clicando en la velocidad deseada. Inmediatamente la locomotora empieza a frenar o a acelerar de forma progresiva hasta alcanzar la velocidad seleccionada. Se puede decir que realmente lo que marcamos es la velocidad objetivo, y la locomotora acelera o frena progresivamente hasta llegar a esa velocidad objetivo. La mayor o menor rapidez en alcanzar la velocidad objetivo depende de un cálculo en el que intervienen varios parámetros que habrá que ajustar, cuando se haga la función para obtener el perfil de las locomotoras. Lo previsto es que una vez ajustado el programa a cada locomotora se alcance siempre la velocidad objetivo después de un recorrido de 60 cm

Como se ve en el vídeo la locomotora responde perfectamente a todas las órdenes, así que no cabe duda de que esta prueba ha sido todo un éxito. Así  que en efecto: Ya funciona!

Al final del vídeo, se ve la pantalla del osciloscopio conectado directamente a las vías. Lo que vemos en la imagen es la corriente PWM que genera el sistema, y cómo la anchura de pulso aumenta o disminuye según acelerera la locomotora.



La verdad es que quizá el ver una locomotora controlada por un programa de ordenador, no resulte nada sorprendente, porque estamos acostumbrados a ver esto como algo habitual en aquellas maquetas digitales manejadas por los programas de control de trenes existentes en el mercado. Sin embargo no hay que olvidar que esa locomotora que vemos en el vídeo, es una locomotora analógica, y desde luego no solo no lleva ningún decoder sino que tampoco hay ninguna central digital por el camino. Como se ha visto en este artículo, al ordenador se conecta por USB la placa Velleman, a ésta el controlador CABCON y directamente de éste salen los cables hacia las vías.

Está claro que mi próximo trabajo es construir las siete placas CABCON01 que me faltan, ya que sólo he hecho una por si en las pruebas salía alguna cosa a modificar. Como no ha sido así, ya no tengo más que hacer otras siete placas iguales y tendré completo el sistema de control de tracción para ocho cantones.

Próximamente publicaré aquí los esquemas de los circuitos, y pondré a disposición de los lectores de este blog, las descargas de los  circuitos y placas PCB de los elementos diseñados para este control



No hay comentarios:

Publicar un comentario en la entrada

Gracias por expresar tus opiniones.

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