Universitat Oberta de Catalunya

Sistema visual de asignación automática de pasajeros en los filtros de seguridad aeroportuarios.

Asignatura: TFG de Creación Gráfica
Grado: Multimedia
Nombre del estudiante: Santiago Olmeda Fernández
Consultor y profesor: Sergio Schvarstein Liuboshetz y Irma Vilà Òdena

Introducción

Los últimos años de mi vida, tanto mi faceta personal, así como la profesional han tenido que adaptarse para dejar un nuevo hueco a los estudios en Grado Multimedia que he realizado en la UOC.

Este grado universitario me ha permitido enfrentarme a ciertos problemas de la vida profesional desde una nueva perspectiva de diseño y encontrar soluciones creativas que no habían sido contempladas antes desde este nuevo punto de vista.

Así es como surge la idea de resolver un problema cotidiano del aeropuerto donde desarrollo mis funciones y que todos hemos sufrido de alguna manera en alguna ocasión, las aglomeraciones de pasajeros en los controles de seguridad del aeropuerto.

Estas aglomeraciones, son un hecho que crea malestar en muchas ocasiones tanto a los trabajadores de seguridad asignados en estos puestos, así como a los pasajeros, los cuales pueden llegar a perder su vuelo si no acuden al aeropuerto con la antelación necesaria.

Actualmente el diseño de los filtros de seguridad no guía de ninguna manera al pasajero donde situarse, un problema que se ve agravado a su vez debido a la falta de información del pasajero sobre los objetos no prohibidos que debe depositar en bandejas antes de cruzarlos.

Este problema ha despertado mi interés en presentar una solución bajo un punto de vista del diseño funcional multimedia para permitir una mejor gestión de los filtros de pasajeros, así como una mejor experiencia a los pasajeros que transitan los aeropuertos españoles.

Etapas y retos

Elección de un modelo de trabajo

Durante el planteamiento inicial del proyecto me di cuenta que era fundamental organizarse siguiendo un modelo de trabajo, por ello y tras el estudio de la problemática me decanté por seguir el proceso de resolución creativa de problemas Desing Thinking, un modelo que utiliza las herramientas de diseño para dar respuesta a las necesidades de los usuarios y garantizar el éxito de los negocios.

La elección de este modelo ha sido clave para asumir los objetivos que planteaba este TFG, y por ello se siguen las etapas que propone el Hanssen-Plattner Institute of Design at Stanford¹:

Etapas Hanssen Plattner.

¹d.school: https://dschool.stanford.edu

Empatizar

El proceso comenzó con esta etapa, donde me puse el la piel del pasajero con tal de empatizar con el problema que sufre como usuario del aeropuerto, en este caso la aglomeración en su paso por los filtros de pasajeros.

Definir

Posteriormente definí cual era el problema analizando el comportamiento de los pasajeros, definiendo cual era el foco principal del problema que radica en mayor medida en la falta de un sistema de gestión y a la nula información que se dispone a los pasajeros.

Idear

Tras localizar la raíz del problema ideé una solución desde el punto de vista del diseño que consiste en un sistema de asignación de pasajeros mediante colores y el diseño de una cartelería para disminuir a su vez los tiempos de espera por falta de información de los usuarios.

Testear

Una vez fue definida la idea la diseñé como prototipo con tal de probar de forma real el rendimiento y mejora que supone, además de realizar la cartelería informativa en los principales idiomas según procedencia de los turistas en el aeropuerto.

Definición de objetivos

A su vez también me ha servido de gran ayuda definir de forma previa los objetivos que este sistema automático de gestión de pasajeros en los controles de seguridad debía cumplir, por ello se ha definido una serie de objetivos principales y secundarios.

Los objetivos principales de este proyecto son crear una solución en los filtros de seguridad al tiempo que:

  • Reduzca tiempo de espera de pasajeros en cada arco.
  • Dé información clara y concisa sobre los artículos no prohibidos.
  • Facilite el trabajo y minimice la carga de trabajo a los empleados asignados a estos sitios.

Por su parte los objetivos adicionales que se ha definido han sido:

  • La validación de la idea tras presentarse como solución
  • La realización de pruebas reales de la idea a modo de prototipo
  • Su Implantación en red de aeropuertos una vez validada la idea.

Definir la arquitectura del sistema

En cuanto a la arquitectura del sistema partía de un diseño que no diferenciaba los arcos o zonas destinadas al paso de pasajeros por los rayos X.

Situación actual y leyenda.

Por ello en el proyecto incluyo una remodelación visual que sirve para diferenciar cada uno de los filtros de pasajeros mediante vinilado de color, este vinilo es de utilidad tanto para guiar, así como para identificar cada filtro, remodelación que se acompaña de nuevos paneles de información sobre los objetos a depositar en bandejas.

Propuesta de vinilado.
Cartel informativo equipaje CAT/CAS.
Cartel informativo equipaje ENG/GER.
Cartel informativo objetos personales CAT/CAS.
Cartel informativo objetos personales ENG/GER.

Por lo que respecta a la colocación de los diferentes carteles he previsto que se encuentren en el foco donde se origina el problema, el lugar destinado a depositar los objetos en bandejas.

Espacio previsto para instalación de los paneles.

Gracias a la diferenciación de los filtros mediante colores he podido implementar un sistema de asignación automática que ha sido diseñado para guiar al pasajero mediante un panel utilizando los mismos colores que el vinilado anterior:

Asignación de pasajeros por el sistema automático.

Su funcionamiento se basa en electrónica Arduino y la utilización de la red existente de sensores 3D ubicados en diferentes partes del techo (Xovis). El sistema cuenta a los pasajeros independientemente en cada zona acotada y se almacenan los datos en un archivo MySQL. 

Cuando un pasajero acceda con su tarjeta de embarque en el torno, el sistema de asignación basado en Arduino realiza una consulta a la base de datos y esta devuelve el valor mínimo entre los filtros activos. 

Los datos en la base de datos del servidor Xovis almacenan de la siguiente forma en la tabla PP_MainSecurity_Norte_X-Rays:

Tabla PP_MainSecurity_Norte_X-Rays.

Para obtener como resultado el filtro con menos carga tendremos que lanzar la consulta siguiente a la base de datos mediante PHP:

SELECT  MIN (Pasajeros), nombre
FROM  PP_MainSecurity_Norte_X-Rays
WHERE  Estado = ‘ABIERTO’
Captura de pantalla cliente Xovis.

En cuanto a la conexión del Arduino con la base de datos, he utilizado la extensión Ethernet Shield, una placa que se conecta a la electrónica del Arduino mediante el puerto IC2 y que nos añade funcionalidades extra al incorporar un puerto ethernet.

Extensión Ethernet Shield para Arduino.

Una vez que he tenido el Ethernet Shield conectado he realizado la conexión mediante MySQL Connector Arduino:

#include <Ethernet.h>
#include <MySQL_Connection.h>
#include <Dns.h>

byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };//MAC del nostre Shield

char hostname[] =; // direcció IP del servidor Xovis
char user[] = "";               // el nostre username per tal d’accedir a la base de dades Xovis
char password[] = "";         // La nostra constrasenya

IPAddress server_ip;
EthernetClient client;
MySQL_Connection conn((Client *)&client);
DNSClient dns_client;   // DNS instance

void setup() {
  Serial.begin(115200);
  while (!Serial); // temps d’espera fins activació
  Ethernet.begin(mac_addr); // Cerca de DNS
  dns_client.begin(Ethernet.dnsServerIP());
  dns_client.getHostByName(hostname, server_ip);
  Serial.println(server_ip); // Finalitza busqueda de DNS
  Serial.println("Connecting...");
  if (conn.connect(server_ip, 3306, user, password)) {
    delay(1000);
    // Espai per introduir codi de consulta
  else
    Serial.println("Connection failed.");//Informa de error de connexió
  conn.close();
}
void loop() {
}

.

Para su implementación he previsto un equipo Arduino por cada uno de los tornos de acceso y he diseñado como seria el panel led informativo encargado de iluminarse del color del filtro con menor carga de trabajo:

Implementación del sistema en los tornos.
Diseño del panel led.

Quedado su esquema de conexión y su árbol de procesos de este modo:

Esquema de conexión del sistema basado en Arduino + Shield.
Árbol de procesos del sistema.

Maquetación del prototipo

Debido a la complejidad existente para mostrar el funcionamiento del proyecto sobre todo para emular los sensores Xovis, decidí desarrollar una versión destinada a ser mostrada en una maqueta. Esta ha sido realizada con forex, un material similar a una espuma que es de fácil modelado y que tiene instalado un Arduino en su parte inferior.

Esta maqueta de los filtros basada en sensores de distancia ultrasónicos HC-SR05, sirve para mostrar de forma básica el replanteo gráfico filtros, así como el funcionamiento de asignación de pasajeros de una forma sencilla.

Esquema conexión de la maqueta.
Maqueta vista superior.
Maqueta vista inferior.

Esta versión destinada a mostrar el funcionamiento en maqueta obtiene la distancia hasta el último pasajero (un obstáculo) midiendo el tiempo que tardan los ultrasonidos al rebotar, realiza una conversión de la distancia a un número y comparara entre estos es el menor, encendiendo el led del color correspondiente al mismo color del vinilo de este filtro.

En cuanto al código para su funcionamiento he utilizado el siguiente:

const unsigned int TRIG1_PIN=13;
const unsigned int ECHO1_PIN=12;
const unsigned int TRIG2_PIN=11;
const unsigned int ECHO2_PIN=10;
const unsigned int TRIG3_PIN=9;
const unsigned int ECHO3_PIN=8;
const unsigned int BAUD_RATE=9600;

void setup() {
  pinMode(TRIG1_PIN, OUTPUT);
  pinMode(ECHO1_PIN, INPUT);
  pinMode(TRIG2_PIN, OUTPUT);
  pinMode(ECHO2_PIN, INPUT);
  pinMode(TRIG3_PIN, OUTPUT);
  pinMode(ECHO3_PIN, INPUT);  

  Serial.begin(BAUD_RATE);
}
String str;
void sensor1() {
  digitalWrite(TRIG1_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG1_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG1_PIN, LOW);
  const unsigned long duration1= pulseIn(ECHO1_PIN, HIGH);
  int distance1= duration1/29/2;

 if(duration1==0){
   Serial.println("Warning: no pulse from sensor1");
   } 
  else if (distance1 <=6){
      Serial.println("5 personas en Filtro 1");
  }
    else if (distance1 <=10){
      Serial.println("4 personas en Filtro 1");
  }
      else if (distance1 <=15){
      Serial.println("3 personas en Filtro 1");

  }
        else if (distance1 <=20){
      Serial.println("2 personas en Filtro 1");
  }
          else if (distance1 <=24){
      Serial.println("1 personas en Filtro 1");
  }
}
  void sensor2() {
  digitalWrite(TRIG2_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG2_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG2_PIN, LOW);
  const unsigned long duration2= pulseIn(ECHO2_PIN, HIGH);
  int distance2= duration2/29/2;

 if(duration2==0){
   Serial.println("Warning: no pulse from sensor2");
   } 
  else if (distance2 <=6){
      Serial.println("5 personas en Filtro 2");
  }
    else if (distance2 <=10){
      Serial.println("4 personas en Filtro 2");
  }
      else if (distance2 <=15){
      Serial.println("3 personas en Filtro 2");
  }
        else if (distance2 <=20){
      Serial.println("2 personas en Filtro 2");
  }
          else if (distance2 <=24){
      Serial.println("1 personas en Filtro 2");
  }

}
  void sensor3() {
  digitalWrite(TRIG3_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG3_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG3_PIN, LOW);
  const unsigned long duration3= pulseIn(ECHO3_PIN, HIGH);
  int distance3= duration3/29/2;

 if(duration3==0){
   Serial.println("Warning: no pulse from sensor3");
   } 
  else if (distance3 <=6){
      Serial.println("5 personas en Filtro 3");
  }
    else if (distance3 <=10){
      Serial.println("4 personas en Filtro 3");
  }
      else if (distance3 <=15){
      Serial.println("3 personas en Filtro 3");
  }
        else if (distance3 <=20){
      Serial.println("2 personas en Filtro 3");
  }
          else if (distance3 <=24){
      Serial.println("1 personas en Filtro 3");
  }

}
void asigna() {
  digitalWrite(TRIG1_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG1_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG1_PIN, LOW);
      const unsigned long duration1= pulseIn(ECHO1_PIN, HIGH);
  int distance1= duration1/29/2;   
    digitalWrite(TRIG2_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG2_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG2_PIN, LOW);
          const unsigned long duration2= pulseIn(ECHO2_PIN, HIGH);
  int distance2= duration2/29/2;
    digitalWrite(TRIG3_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG3_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG3_PIN, LOW);
          const unsigned long duration3= pulseIn(ECHO3_PIN, HIGH);
  int distance3= duration3/29/2;
if (distance1 > distance2 && distance1 > distance3){
    Serial.println("Filtro 1 tiene menor carga");
    }
else if (distance2 > distance1 && distance2 > distance3){
    Serial.println("Filtro 2 tiene menor carga");
    }
else if(distance3 > distance1 && distance3 > distance2){
    Serial.println("Filtro 3 tiene menor carga");
    }
}
void loop() {
if(Serial.available())
{
str = Serial.readStringUntil('\n');


if(str == "filtro1"){
sensor1();
  } 
  
if(str == "filtro2"){
sensor2();
  }  

  if(str == "filtro3"){
sensor3();
  } 
 
 if(str == "carga"){
asigna();
  }
 
 if(str == "todo"){
sensor1();
sensor2();
sensor3();
asigna();
  }  
}
}

Conclusiones

En el trascurso de este TFG ha podido diseñar y desarrollar una solución para un problema habitual en los aeropuertos españoles, a pesar de que se precisa de más desarrollo e inversión para su implantación física el producto se muestra como un concepto que incluye funcionalidades básicas y reales para solventar la problemática existente.

Durante la realización del presente proyecto he podido aplicar los conocimientos obtenidos del catálogo de asignaturas que he cursadas y he aprendido a desenvolverme en Programación Web, Diseño de base de datos y Javascript, lo que me ha permitido el desarrollo de este proyecto.

El presente proyecto se Muestra como un concepto viable continuar desarrollando y mejorando con la meta de mejorar los tiempos de espera en los Aeropuertos.

A pesar de que el tiempo ha sido escaso para el alcance del proyecto me siento satisfecho en el trabajo realizado, así como para el apoyo proporcionada por profesores, consultores y personal del aeropuerto a la realización de este trabajo final de grado.

Documentación:

Deja un comentario