T.B.S 팀(팀장 : 윤관호)
2022년 전국 ICT 창의융합 캡스톤 디자인 경진대회에 출품된 작품으로, 국제대학교 컴퓨터공학과 소속학생 2명(윤관호:팀장, 이건민)이 참여한 작품으로 대회 은상을 수상.
아두이노/C언어, 라즈베리파이/C++, 안드로이드 앱(Java)와 GPS, 비컨, 공공 API, 데이터 서버 등을 활용하여 교통약자(시각장애인)을 위한 버스 예약, 예약 알림, 승차/하차 승객 알림(기사)에 대한 시스템을 구현하여 안드로이드 앱을 이용하여 음성으로 예약을 진행하고, 예약 상태를 기사에 알려주며, 하차 자동 예약 및 결제 시스템으로 시각장애인이 대중교통을 이용함에 있어 불편함이 없도록 하는 시스템이다.
프로젝트 요약
우연히 뉴스에서 시각 장애인이 버스 이용에 불편함을 겪고 있다는 내용을 보게 되었고, 이후부터는 대중교통을 이용하면서 교통약자의 모습에 자연스레 눈이 가게 되었다. 또한, 유튜브와 같은 매체를 통해 자세히는 알기 힘들었던 교통약자들의 대중교통 이용 방법이나 그 과정에서 생기는 고충까지도 알 수 있었다.
시스템을 설계함에 있어 해당 시스템을 이용하려고 하는 사용자가 무엇을 불편해하고 어려워하는지 파악하고자 노력하였고, 그에 맞도록 필요한 기능들이 버스를 기다리는 것 부터 시작하여 탑승과 하차, 결제 까지의 전 과정에서 적절하게 배치되어 버스 이용의 불편함이 생기지 않도록 하였고, 이에 따라서 시스템의 동작 순서나 기능들은 해당 과정에 맞게 1. 탑승예약, 2. 하차 예약과 자동 하차 알림, 3. 자동 결제라는 크게 3개의 모듈로 나누어 진행하였다.
구현된 시스템을 활용한다면, 시각 장애인을 포함한 많은 교통약자가 버스를 이용하는 것에 부담을 느끼는 원인을 상당 부분 해소할 것이며, 이동하는 것에 버스라는 선택지가 하나 추가될 수 있게 될 수 있고, 자연히 이동권의 보장 문제에 있어서도 해결책이 될 수 있을 것으로 생각된다. 또한, 이러한 시스템 뿐만 아니라 버스 정류장에 교통약자 배려석 공간을 따로 두어 예약을 받은 버스는 해당 구역을 반드시 들려서 갈 수 있도록 하는 정책을 도입한다면, 더욱 나은 환경을 제공할 수 있고, 버스 기사에게도 사전에 정보를 줄 수 있으므로 불편을 호소하는 이에게 도움을 미리 줄 수 있게 되며 이는 다른 사람에게도 더 나은 버스 환경의 제공으로도 이어일 수 있을 것으로 기대한다.
1. 과제의 개요
사회적 이슈
우연히 뉴스에서 시각 장애인이 버스 이용에 불편함을 겪고 있다는 내용을 보게 되었고, 이후부터는 대중교통을 이용하면서 교통약자의 모습에 자연스레 눈이 가게 되었다. 또한, 유튜브와 같은 매체를 통해, 자세히는 알기 힘들었던 교통약자들의 대중교통 이용 방법이나 그 과정에서 생기는 고충까지도 알 수 있었다.
최근 까지도 휠체어를 타고 있는 지체 장애인이나 앞이 보이지 않는 시각 장애인인 경우에도 대줄교통을 조금 더 쉽게 이용할 수 있도록 사회에서 많은 관심을 쏟고 있으나, 현실에서 느끼는 고충을 전부 반영하지 못하는 실정이며, 특히 여러 대중교통 가운데 버스를 이용하는 것에 많은 어려움을 느끼는 것을 알게 되었다.
경기연구원의 “교통복지 사각지대에 방치된 시각 장애인 이동 편의 보고서(2022)”에 따르면, 시각 장애인들은 대중교통 이용 시 특히 버스에 큰 불편함을 느끼는 상황이라고 설명했다. 지난 2019년 9월 ~ 10월 디지털 시각 장애인 연대가 전국 시각 장애인 252명을 대상으로 인식 조사한 결과, 가장 불편한 교통수단으로 전체 52.8%가 버스 정차 위치와 노선 번호를 파악하기 어렵다는 이유로 버스를 지목했다.
사회적 이슈에 대한 해결방안 제시
따라서, 이를 보조하기 위해 실제로 어려움을 느끼는 부분들에 대한 해결책들을 담은 시스템을 구현하고자 하였고, 최종적으로 버스 예약 시스템이라는 형태로 연구하게 되었다.
연구한 시스템은 버스를 이용하고자 하는 교통약자 중에서 제일 취약하다고 여겨지는 시각 장애인들의 입장에 최대한 맞추고자 하였으며, 시각 장애인들이 버스를 타고 내리는 순간까지의 전 과정을 서비스의 대상으로 삼았다.
이와 같은 목적을 가진 시스템의 도입은 장애인을 포함한 모든 교통약자의 이동권을 보장하는 것에 꼭 필수적이며, 이는 사회가 앞으로 더 다양한 사람들의 사정을 고려한 정책이나 시스템의 개발을 하는 것에 있어서도 디딤돌이 되어 줄 수 있을 것으로 사료된다.
2. 과제개발 주요과정
2-1. 버스 예약 시스템 개념 설계
시스템을 설계하기 전 연구결과를 이용하려고 하는 사용자가 무엇을 불편해하고 어려워하는지 파악하고자 노력하였고, 그에 맞도록 필요한 기능들이 버스를 기다리는 것부터 시작하여 탑승과 하차, 결제까지 원스톱으로 진행될 수 있도록 적절하게 서비스를 배치하여 버스 이용의 불편함이 없도록 노력하였다.
따라서, 본 연구에서는 시스템의 동작 순서나 기능들은 해당 과정에 맞게 첫째. 탑승예약, 둘째. 하차 예약과 자동 하차 알림, 셋째. 자동 결제라는 크게 3개의 모듈로 나누어 개발하고, 시스템의 표적 대상은 사용자와 버스 기사를 가정하여 연구하였다.
사용자는 [그림 3]과 같이 모바일 환경에서 예약을 실행하게 되므로, 안드로이드 플랫폼을 활용하였으며, (1) 로그인 ~ (7) 예약 실행 까지의 과정을 진행하는 동안, 웹 서버에서는 각각의 선택 사항에 부합하는 값들을 가져와 화면에 표시하게 된다.
각각의 라즈베리파이(버스)는 자신의 고유 ID를 가지고 있으며, GPS를 통해 어디에 위치해있는지 실시간으로 데이터베이스에 저장한다. [그림 3]에서 안드로이드를 통해 입력된 값들에 따라 다음 화면의 조건이 바뀌므로, 웹 서버에서는 해당 조건에 부합하는 데이터를 [그림 4]와 같이 데이터베이스에서 가져오게 되고, 예약 절차가 끝나면, 다른 예외 상황이 없는지 시스템 내에서 최종적으로 검사 후 예약 데이터베이스에 값을 저장하게 된다. 이때, 라즈베리파이는 주기적으로 값을 읽어오며, 만약 자신의 아이디와 일치한다면 해당 예약 정보를 가져와 표시한다.
[그림 5]와 같이 데이터베이스에서 가져온 예약 정보에 의해 (1) 기사에게 사용자가 탑승할 위치 안내, (2) 사용자가 탑승할 시 비콘에서 사용자 인식, (3) 사용자의 목적지 전 정류장에서 기사에게 하차 안내 및 자동 하차 벨 알림, (4) 사용자가 하차 후, 일정 거리 이상 멀어지게 되면 비콘에서 인식하여 자동으로 결제되는 총 4단계로 구분하여 동작한다.
2-2. 사용자 환경
사용자 환경은 최대한 단순하게 구성하려고 하였으며, 원래의 목적인 버스 예약을 잘 수행할 수 있는지에 대해 초점을 맞추었다. 또한 화면의 구성도 이에 맞게 최소한의 위젯만을 두어 사용의 직관성을 높이고자 하였다.
[그림 6]은 사용자가 보는 화면의 일부이며, [그림 6]의 첫 번째 화면은 음성인식을 이용하여 출발지를 입력하는 화면이며, 두 번째는 사용자의 예약 정보를 다시 한번 확인한 뒤, 실행 버튼을 눌러 실제 예약을 하는 화면이다. 또한 예약하는 과정마다 사용자가 요청한 내용이나 누른 버튼의 내용이 맞는지 확인하기 위해 TTS기능을 추가하여 음성으로 안내하도록 하였다.
2-3. 버스 기사 환경
버스 기사용 화면에서는 앞으로 탑승할 사용자의 예약 내역이 나오게 되며, 예약이 발생하지 않은 경우 빈 화면으로 표시한다. 만약 예약이 발생한 경우 사용자의 아이디와 출발지, 도착지가 표시된다.
또한, 버스가 이동함에 따라 사용자의 출발지나 도착지에 도달하게 되며, 이 경우 기사에게 LCD를 통해 안내되어야 하므로 GPS를 통해 버스의 위치 정보와 정류장의 위치 정보를 비교하여 일정 범주 내로 들어올 경우 해당 상황에 맞는 화면으로 넘어가도록 하였다.
버스에서 사용자의 예약 정보를 받고 이에 맞춰 화면이나 벨 알림과 같은 기능을 처리하는 방식은 라즈베리파이 기반의 프론트 엔드 – 백 엔드 구조를 활용하였다.
3. 과제의 기술내용
3-1. 소프트웨어 설계
버스 안내 시스템은 탑승 예약, 하차 예약과 자동 하차 알림, 자동 결제 기능으로 나누어 개발하였으며, 동작 방식은 기능의 순서대로 진행된다.
탑승 예약은 사용자가 버스 정류장에 도착 후, 가고자 하는 목적지에 맞는 버스를 선택하는 과정이며 해당 과정이 끝나면, 시스템은 운행하는 버스 중에서 사용자의 조건에 부합하는 버스를 선택하여 탑승 예약을 하게 된다. 탑승 예약이 실행되는 과정에서 사용자의 출발지 및 도착지 정보가 데이터베이스에 저장하게 되며, 이때 입력된 도착지 정보에 맞게 자동으로 하차 예약이 완료된다.
사용자가 목적지에 도착 직전 버스 기사에게 LCD 화면으로 하차 알림과 동시에 하차 벨이 울리게 되며, 사용자가 하차한 뒤 버스와 일정 이상의 거리가 멀어지게 되면 비콘에서 인식하여 자동으로 결제가 완료된다. 여기에서 사용자가 시스템을 사용하는 환경은 모바일 환경이므로 안드로이드 플랫폼에서 개발 하였고 실제 동작의 구현은 Java 언어를 사용하였고, 사용자 환경은 XML로 처리하였다.
앱에서 웹 서버를 통해 데이터베이스를 거치게 되고, 다시 데이버베이스에서 라즈베리파이로 연결되는 구조이므로, 라즈베리파이에 LCD, GPS 등의 센서를 부착하고, 비콘화 개발을 먼저 한 뒤, 화면의 구성을 위해 HTML, CSS 등을 이용하여 프론트 엔드 개발을 하였다.
안드로이드와 웹 서버 간의 데이터 교환을 위한 클래스를 개발한 후 , 웹 서버에서 데이터베이스의 값을 저장하거나 읽어오는 기능은 PHP를 이용하여 백 엔드 개발을 하였다. 개발하는 동안 앱에서 웹 서버, 데이터베이스, 라즈베리파이까지 하나로 연결하여 각각의 요소끼리 필요한 데이터를 송/수신하는 것과 받은 데이터에 맞게 동작하는 것에 특히 집중하였다.
3-2. 동작 시나리오
#1. 버스 정류장에서 사용자가 버스를 예약하는 경우
#1-1. 버스 예약 시스템 앱을 실행. [그림 9]
#1-2. 로그인을 수행한 후 다음 단계로 넘어간다. [그림 10]
#1-3. 음성인식을 통한 출발지 입력. [그림 11]
#1-4. 출발지에 따른 버스와 노선 선택. [그림 12]
#1-5. 음성인식을 통한 목적지 입력. [그림 13]
#1-6. [그림 13]에서 확인 버튼을 누르면 예약 확인 화면으로 전환되며, 실행 버튼을 누르면 예약 정보가 데이터베이스에 저장된다. 만약 저장에 성공했다면, 예약 성공 화면이 표시된다.[그림 14]
#2. 예약한 정보가 데이터베이스에 저장된다.
#3. 버스에 예약 정보가 들어온 경우
#3-1. 버스의 기본 화면과 예약된 경우. [그림 16]
#3-2. 버스가 출발지에 다다르면 GPS를 통해 다음 정류장에 탑승객 정보를 LCD로 안내하고, 사용자가 목적지에서 하차하는 경우 위와 같은 원리로 동작하여 자동으로 하차 벨이 울린다.[그림 17]
#3-3. 사용자가 하차한 후, 서로 간의 거리가 일정 이상 멀어지면, 비콘에서 이를 인식한 후 자동으로 결제 처리되며, 결제 완료 후 결제 성공 화면을 표시한다.
4. 연구결과
본 연구를 진행하고자 했던 동기는 시각 장애인의 버스 이용 불편 사례에 공감하였기 때문이었고, 이후에도 여러 교통 약자의 사례들을 보며 버스 이용에 불편함을 줄이려면 어떻게 해야 하는지 고민한 결과를 과제물에 충분히 표현하고자 하였다.
먼저, 버스의 탑승조차 힘들어하는 사람을 위해 타고자 하는 버스를 예약하여 탑승의 불편함을 해소하고자 하였고, 하차에서 가장 큰 문제 중 하나 인 하차 정류장에 도착 직전 반드시 눌러야 하는 하차 벨을 누르는 것 자체에 문제가 생기는 경우였다. 이는 하차 벨이 멀리 떨어져 있거나, 사람이 많은 경우 또는 보이지 않아 누르지 못하는 경우가 발생하였고, 이를 해결하는 방법에는 목적지를 먼저 파악한 뒤, 전 역에서 미리 하차 벨이 자동으로 눌려 다음 역에서 내릴 수 있게 하는 것이다.
따라서, 위와 같은 문제를 해결할 수 있도록 노력하였으며, 그 결과로 사용자가 출발지에서 입력만 하면 시스템에서 자동으로 탑승 예약부터 하차 예약, 결제까지 될 수 있도록 하였고, 이는 혼자서 처음부터 해결해야 하는 문제를 시스템의 도움을 받아 어려움을 해결 할 수 있어 시각 장애인을 포함한 많은 교통약자가 버스를 이용하는 것에 대한 부담을 어느 정도 해소할 것으로 기대한다.
5. 활용방안 및 기대효과
일반인과 달리 교통 약자의 대중교통 이용은 매우 어렵고 부담스럽다. 특히 버스의 이용은 다른 교통 수단과 달리 쉽게 도움을 요청할 수 없는 환경으로 비춰진다.
본 연구 결과를 활용 한다면, 이동권의 보장 문제에 있어 해결책이 될 수 있을 것으로 사료되며, 연구 결과의 시스템과 더불어 버스 정류장에 교통약자 배려석 공간을 따로 두어 예약을 받은 버스는 해당 구역을 반드시 들러서 갈 수 있도록 하는 정책을 도입한다면, 더욱 나은 환경을 제공할 수 있을 것이고, 버스 기사에게도 사전에 정보를 충분히 줄 수 있어 불편을 호소하는 이에게 도움을 미리 줄 수 있게 되며 이는 다른 사람에게도 더 나은 버스 환경의 제공으로도 이어질 수 있을 것으로 기대한다.
0개의 댓글