[공모전 수상] 2019 빛가람 에너지밸리 소프트웨어 작품 경진대회
1. 서론
제 대학생활의 마지막을 불사른 (주)한전KDN 주최 빛가람에너지벨리 공모전 리뷰를 해보려 합니다.
2. 참여 계기
사실 이 공모전 참여 전 방학 동안 다른 공모전 2개를 연달아 진행하여 막 마무리가 된 상황이었습니다. 그래서 이제 더 이상 공모전을 할 일은 없지 않을까 생각하고 있었습니다.
그런데 방학이 끝나고 같은 과 형 한 명이 캡스톤프로젝트도 할 겸 한전KDN 공모전에 참가하자고 제안을 해왔습니다.
처음엔 또 공모전 ?이란 생각으로 고민을 했는데 생각해보니 현재 상황이 졸업을 위해 인턴을 가거나 캡스톤프로젝트를 하거나 둘 중 하나를 선택해야만 했습니다. 어차피 인턴은 나중에도 할 수 있지만 대학생 공모전은 이번이 마지막 기회 일테니 공모전 한번 더 해보자! 하고 마음먹었습니다.
3. 주제 선정
저희 팀이 선정한 주제는 시각장애인을 위한 버스 탑승 어플리케이션입니다.
선정하게 된 배경에는 버스나 지하철같은 탈 것들을 저희는 대중교통이라 부릅니다.
하지만 실제 버스를 타보면 장애인들이 이용하는 모습을 좀처럼 볼 수가 없습니다.
1995년 교통약자의 이동권에 대한 개념이 없던 시절 많은 분들의 노력으로 교통약자의 이동편의 증진법이 시행 되면서
지하철의 휠체어 리프트나 엘리베이터 또 저상버스들을 도입하게 되었습니다.
지하철의 경우 이제는 어느 정도의 시설이 갖추어져 있기 때문에 버스에 비해 나은 편이라고는 하지만
버스는 저상버스의 수를 점점 늘려가고 있다 해도 아직 그 수가 적고 다른 편의시설은 전무해 장애인들 특히 시각장애인들은 이용이 불가능한 상황입니다.
즉 아직까지 대중교통 특히 버스는 장애인들에게는 대중적이지 못한 상황인겁니다.
저희는 이러한 문제를 완전히 타개하진 못하더라도 많은 사람들이 다시 생각해보게 하고 몇 몇의 해결방법을 제시해보고자 이 주제를 선정하였습니다.
4. 시각 장애인과 스마트폰
저희 프로젝트의 주 기능은 스마트폰 어플리케이션을 사용하였습니다.그런데 프로젝트를 진행하며 놀란 부분이 있습니다. 많은 사람들이 시각장애인을 위한 어플리케이션을 만든다고 하면 시각장애인이 스마트폰 사용이 가능한가?에 대해 의문을 가진다는 점이었습니다.
자판이 물리적으로 존재하는 휴대폰의 사용이 훨씬 편리하지 않냐는 생각인데 실제론 시각장애인들 역시 대부분 스마트폰을 사용하고 이들이 사용하기 편하도록 여러 기능을 제공하고 있습니다.
문자를 음성으로 읽어주는 TTS(Text to Speach) 기능이나 화면에 손가락으로 특정한 패턴의 터치를 하면 해당하는 기능이 실행되는 제스처라는 기능도 있습니다. 저희 프로젝트도 이러한 기능을 중점으로 구현하였습니다.
저희가 조사했던 자료에 의하면 시각장애인의 72.6% 가 스마트폰을 보유하고 있었고 이 수치는 점점 늘고 있었으니
현재는 더 많은 분들이 스마트폰을 이용하고 계실겁니다.
이런 작은 오해가 편견과 선입견이 되고 이런 견해들이 차별을 불러올 수도 있을 것 같습니다.
저 역시 다른 사람들을 선입견에 빠져 오해를 하고 있지는 않나 다시 생각해봐야겠습니다.
5. 기능 소개
저희 프로젝트의 대부분의 기능들은 안드로이드 스튜디오를 이용해 안드로이드의 어플리케이션을 이용해 동작하도록 구현 하였습니다.
또 실제상황을 가정하기 위해 버스 모형을 만들고 버스의 기능은 라즈베리파이를 활용해 구현 하였습니다.
UI
화면 구성은 실제 시각장애인이 스마트폰을 사용할 때 모습을 보고 위와 같이 화면 전체를 4분할 또는 2분할 한 버튼으로 구성하여 화면의 모서리 네 부분만을 구분하여도 버튼 클릭이 가능하게 만들었습니다.
모든 기능은 버튼을 한번만 클릭하면 TTS로 해당 버튼의 기능명을 음성으로 안내해주고 두번 연속으로 클릭하면 그 기능이 실행되게 됩니다.
기능 1
정류소 탐색 기능
이 기능을 사용하게 되면 스마트폰의 GPS로 받아온 현재 좌표와 가까운 순으로 4분할 되어 정류소들이 나열됩니다.
각 정류소의 좌표는 공공데이터 포털에서 받아왔습니다.
각 버튼을 클릭하면 정류소의 이름이 음성으로 안내되고 사용자가 원하는 정류소를 두번 클릭하면
해당 정류소의 버스정보가 같은 방식으로 4분할 되어 화면에 나타납니다.
기능 2
버스 탑승 예약
화면에 나와있는 버스를 클릭하면 버스 번호와 도착까지 남은 시간에 대해 안내해줍니다.
버스 정보들은 api를 활용해 실시간으로 받아 왔습니다.
더블클릭하면 예약이 가능하고 예약을 하게 되면 해당 정보가 DB서버로 보내집니다.
DB는 구글에서 제공하는 Firebase를 사용했습니다.
서버에서는 정보를 받으면 버스기사가 이를 인지할 수 있도록 해당 정류소 이전 정류소에 도착 했을때 알림을 보내줍니다. 버스기사가 인지함으로써 해당 정류소에 버스에 타겠다고 서있는 사람이 없더라도 잠시 정차하여 살펴보도록 만들었습니다.
예약을 하게 되면 버스 도착 알림 기능으로 넘어갑니다.
기능 3
버스 도착 알림
이 기능을 구현하기 위해 콩테크에서 제작한 플루토콘이라는 BLE비콘을 사용하였습니다.
BLE비콘은 저전력 블루투스 비콘으로 조그만 크기에도 한 건전지로 5년간 사용이 가능하고 50미터 떨어진 위치까지 패킷을 브로드 캐스팅 방식으로 보낼 수 있고 오차 5cm 이내로 거리를 알 수 있다는 장점이 있습니다.
현재 스타벅스의 사이렌 오더 등 여러 분야에서 사용되고 있습니다.
각 버스의 구분은 비콘이 보내는 패킷의 UUID,MAJOR,MINOR 값을 이용해서 사용자가 예약한 버스인지 구분하고 어플에서 자신이 기다리는 패킷이 들어오면 버스가 근접하고 있다는 것을 알아채고 사용자에게 알림을 주도록 하였습니다.
버스가 10미터 이내로 접근하여 정차하면 버스가 도착했음을 알리고 버스까지의 위치를 안내해줍니다.
기능 4
사용자가 버스에 탑승하고 도착 할 곳까지 다다르면 하차벨을 누르지 않고 하차예약이 가능합니다.
이 역시 하차예약 버튼을 누르면 DB로 전송되어 자동으로 하차벨이 눌리고 사용자가 다음 정류장에서 내릴 것이라는 것을 버스기사가 인지 할 수 있도록 구현하였습니다.
위 4가지가 저희 프로젝트의 핵심 기능들입니다.
6. 내가 한 것
저는 위 기능중 파이어베이스 설계와 버스 안의 라즈베리파이 기능 구현,
비콘 UUID,MAJOR,MINOR 값 설계 및 어플에서의 패킷수신 작업을 진행하였습니다.
구현언어로는 라즈베리파이는 파이썬을 사용하고 안드로이드 구현은 자바를 사용하였습니다.
7. 마치며
현재 광주에 비슷한 어플리케이션이 있는데 위 기능 중 탑승예약을 하면 버스기사님이 인지 할 수 있도록 하는 기능을 서비스 하고 있습니다. 하지만 실제 어플을 다운받아 확인해보니 실제 사용하기에는 부족함이 많아 보였고 실사용도 안되고 있는 것 같았습니다.
많은 사람들이 이런 사회 문제에 대해 알게되어 실제로 이런 문제들을 해결 할 수 있는 실용적인 서비스가 생겨나면 좋겠습니다.
이제는 시간이 많이 지나버렸지만 공모전 진행하면서는 정말 즐겁게 했던 것 같습니다~~
사실 마지막 공모전 발표 때 실수가 많아서 아쉬움이 조금 남지만 그래도 우수상도 수상하고 결과는 좋았답니다.
함께했던 팀원들 다들 고생 많았고 앞으로 다 잘 되길~~