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.
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.
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.
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.
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.
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.
Hola Javier, estoy empezando con arduino y una de las cosas que quería hacer es esto mismo, un hombre muerto para mi simulador de trenes. Funciona perfectamente, pero he intentado modificar la secuencia del código fuente y no ha salido bien. Si me pudieses echar un cable dímelo y te comento, te estaría muy agradecido. Un saludo y gracias!
ResponderEliminarMuy bien Manel, indícame el problema y veré que puedo hacer.
EliminarSaludos.
Gracias por responder Javier.
EliminarMi idea era hacer la misma secuencia que usan los trenes actuales.
Pedal presionado 25 seg + 2,5 seg luz aviso + 2,5 seg luz y soneria = 30 seg freno emergencia. Pedal sin presionar, luz aviso 2,5 seg + 2,5 seg luz y soneria = 5 seg freno emergencia.
Si salta emergencia se rearma con el mismo pedal soltando y presionando.
He intentado modificar y poner el programa así, pero se engancha en la primera secuencia de tiempo y de ahí no sale.
Si me pudieses guiar para saber como hacerlo y entender que hago mal, te lo agradezco mucho.
He fabricado una cabina de tren que conectada al PC funciona con el Train simulator, pero me falta esto para darle uso real al pedal del suelo. Si me dices un e-mail te puedo pasar fotos de la cabina para que sepas de lo que hablo.
Una vez más, gracias!!!
Saludos, Manel.
Este comentario ha sido eliminado por el autor.
ResponderEliminar