martes, 18 de febrero de 2014

Simulador de "Hombre Muerto".


De entre todos los sistemas de seguridad que componen la supervisión de la correcta marcha de circulación de una Locomotora, hasta hace bien poco el más conocido popularmente era el de "Hombre Muerto".

Básicamente, el objetivo del sistema es el de activar el "freno de emergencia" en caso de que el maquinista "desatienda" la conducción en un breve espacio de tiempo, por cualquier circunstancia.  

Por desgraciados motivos, términos como "Baliza", "ASFA", "ERTMS", etc. ya no son del todo desconocidos para los ciudadanos y saben que se utilizan para regular el tráfico ferroviario y su seguridad.

Con el montaje siguiente, pretendo modestamente ilustrar al lector sobre el funcionamiento del sistema "Hombre Muerto" y constatar que el desarrollo de la actual tecnología electrónica e informática, nos permite  diseñar mecanismos cada vez más sofisticados y complejos, con el fin de por ejemplo, entre otras muchas funciones la de mantener las más altas cotas de seguridad.

Jamás puede justificarse el no utilizar los máximos medios y recursos que las nuevas tecnologías nos brindan, y mucho menos si esta carencia puede poner en peligro la integridad de las personas.

El sencillo montaje nos demuestra que incluso de forma "casera" y a un coste económico muy bajo, podemos simular uno de los sistemas más tradicionales en la vigilancia de la seguridad ferroviaria.

Para su diseño emplearemos una placa del conocido Arduino cómo cerebro del sistema, una protoboard, un zumbador, tres Led's, un pulsador, resistencias  y cables de conexión.

Ahhhh!!! y por supuesto el pequeño "programita" que lo hará funcionar todo.



Esquema en fritzing


El principio de funcionamiento es el siguiente:

El dispositivo nos demandará cada 20 seg. que pulsemos el pulsador al efecto avisándonos mediante el encendido del Led azul y un sonido del zumbador.

Si hacemos caso omiso y trascurridos 5 seg. desde el aviso anterior, se producirá la inmediata activación del "freno de emergencia". La simulación del "frenazo" aquí la indicaremos con el encendido del Led rojo y un sonido estridente del zumbador.

El total de tiempo empleado en activar el "freno de emergencia" si no pulsamos nada es de 25 seg.. Ése es el tiempo máximo establecido que podría ir sin "conducción humana" esta simulación de Locomotora.

Si pulsamos dentro del tiempo esperado, el sistema de control se reinicia de nuevo, se apaga el Led azul y el contador vuelve a cero.

Para aquellos que piensen en la "picaresca" e imaginen formas de saltarse este control, hay que decir que también se activará el "freno de emergencia" en caso de detectar una pulsación continua de más de 20 seg.

La función del Led verde es simplemente la de ver pasar el tiempo segundo a segundo, es decir de contador. 

También en el caso de un montaje real, en lugar o junto al Led rojo deberíamos conectar un relé u otro tipo de actuador para el accionamiento del freno.



Montaje en protoboard

En el código de programación he evitado deliberadamente usar funciones, procedimientos y llamadas a interrupciones que habrían optimizado mejor el programa, en favor de un código más rudimentario pero quizás más fácil de seguir por aquellos lectores menos avanzados.


Aquí el código fuente del programa.

/*
 Simulador de Sistema de Seguriddad "Hombre Muerto"
 Lenguaje Wiring/Arduino

 Creado el 24 Marzo 2014
 por Javier Orós Falces
 
 This example code is in the public domain.
*/

// define los pins del Arduino.
int zumbador = 13;
int Led_azul = 7;
int Led_rojo = 6;
int Led_verd = 3;
int pulsador = 2;
// define constantes
int tiempo = 10;                  // en segundos.
int x = 0;

////////////
void setup()
{
  // inicializa como salidas pins 13, 7, 6, y 3.
  pinMode(zumbador, OUTPUT); 
  pinMode(Led_azul, OUTPUT);
  pinMode(Led_rojo, OUTPUT);
  pinMode(Led_verd, OUTPUT);
}
////////////
void loop() 
{

inicio:                           // etiqueta para el "goto" y 
                                  // para molestar a los ortodoxos.
                                  
  digitalWrite(Led_rojo, LOW);    // pone valor bajo a los pins.
  digitalWrite(Led_azul, LOW);  
  digitalWrite(Led_verd, LOW);  
  digitalWrite(zumbador, LOW);  
  noTone(zumbador);

  x = 0;
  do                             // Evita picaresca de siempre pulsado.
  {
    delay(50);                   // espera que se estabilice el sistema.
    x = x + 50;
    if (x == tiempo*1000) {      // si pulsa 20 seg. seguidos salta freno.
    goto freno;                  // x1000 en milisegundos.
    }
  } while (digitalRead(pulsador) ==  HIGH);

  for(int x=0; x<tiempo; x++)    //bucle para aviso al valor de tiempo en seg. 
  {  
    if (digitalRead(pulsador) ==  HIGH) {
    goto inicio;                  // reinicia el sistema si pulsa.
    }
    digitalWrite(Led_verd, HIGH); // enciende y apaga el led verde cada 1 seg. 
    delay(500);
    digitalWrite(Led_verd, LOW);  
    delay(500);
  }  
 
  digitalWrite(Led_azul, HIGH);  // Aviso de alerta H.M.
  digitalWrite(zumbador, HIGH); 

  for(int x=0; x<5; x++)         // bucle 5 seg. para activar freno.
  {  
    if (digitalRead(pulsador) ==  HIGH) {
    goto inicio;                 // reinicia el sistema si pulsa.
    }
  digitalWrite(Led_verd, HIGH);
  delay(500);
  digitalWrite(Led_verd, LOW);  
  delay(500);
  }
  
freno: 
  // activa el freno de emergencia.
  digitalWrite(Led_azul, LOW); 
  digitalWrite(Led_verd, LOW); 
  digitalWrite(zumbador, LOW); 
  digitalWrite(Led_rojo, HIGH);  // activa led rojo y/o freno de emergencia.
  do                             // bucle sin fin hasta pulsar rearme.
  {
    delay(50);                   // espera que se estabilice el sistema.
    tone(zumbador,500);          // sonido estridente
    tone(zumbador,1000);
  } while (true);

}

////////////////////////////////////////////////////////////// fin del sketch.


Aquí ver vídeo del funcionamiento del montaje.
Para hacerlo más corto he cambiado el valor de los 20 seg. a solo 10 seg.





...y ahora la realidad.

Imágenes varias del interior de un Tractor de maniobras:

Vista de la cabina de conducción.




Detalle de cuadro de indicadores con luminoso en color azul del H.M.



Detalle del freno de emergencia "seta".



Imagen del pedal de accionamiento del "Hombre Muerto" en un Tractor de maniobras.




(fotografías cortesía de J. P. G.).


Espero haber contribuido a dar a conocer un poco mejor este sistema de seguridad.