April 5, 2020

디바이스마트 미디어:

[57호]RFID모듈을 이용한 시각장애인용 음향 태그 신호기

57 ICT 음향태그신호기 (1)

2019 ICT 융합 프로젝트 공모전 참가상

RFID모듈을 이용한 시각장애인용 음향 태그 신호기

 

1. 심사평
칩센 이해하기 쉬운 심플한 기획 의도와 그에 걸맞는 정확한 작품이 구성된 것으로 보입니다. 현재 적용된 시각장애인용 횡단보도 시스템의 취약점을 쉽게 이해할 수 있었고, 사용자에게는 간단한 형태로 적용이 가능할 것으로 보입니다. 신호등에 적용된 시스템 또한 현재 사용 중인 버튼 형태의 시스템을 쉽게 대체할 수 있을 것으로 보입니다. 확실한 목표에 정확하게 도달한 좋은 작품으로 생각됩니다.
뉴티씨 시각장애인을 배려한 장치로 매우 유용하게 쓰일 수 있을 것으로 생각됩니다. 실제로, 실생활에서 시각장애인들이 사용할 수 있도록 한다면 많은 도움이 될 것으로 생각합니다. 다만, RFID의 종류를 잘 선택하여 거리 문제를 잘 극복해서 동작이 원활하도록 만들면 좋겠습니다.
위드로봇 실험 결과에 대한 분석을 보고서에 좀 더 정리하면 좋겠습니다.
펌테크 아이디어와 창의성, 실용성이 모두 돋보이는 우수한 작품으로 판단됩니다. 지팡이에 RFID 태그 이외에 별도의 구동 회로를 넣지 않고 무게를 줄인 부분은 현실성과 실용성이 반영되었다고 판단됩니다. 더불어 RFID 태그는 기존의 지팡이에 스티커 형태로 붙이는 것이 가능한 기술이기에 시각장애인 경우 별도의 지팡이를 구매하지 않고 별도의 큰비용 부담 없이 사용이 가능할 것으로 예상됩니다. 출품된 작품은 충분히 실생활에 바로 적용이 가능할 수 있는 상업성을 지닌 작품이라고 생각됩니다.

2. 작품 개요
이 작품을 개발하게 된 계기는 신호등에 부착되어있는 시각장애인용 음향신호기 버튼의 불편함을 개선하고자 이다.

57 ICT 음향태그신호기 (1)

우선 시각장애인의 관점에서 바라봤을 때, 시각장애인들은 앞이 보이지 않기 때문에 신호등 기둥 중간에 부착되어 있는 버튼을 찾는 데에 시간이 소요될뿐더러 점자 블록이 있어도 버튼을 찾으려는 기둥이 횡단보도 앞이기 때문에 위험성에 노출되어 있다고 판단하였다.

57 ICT 음향태그신호기 (2)

실제로 평소에도 시각장애인들이 벨을 찾으려고 해도 기둥마다 벨 위치가 달라서 누르지 못하거나, 벨을 눌러도 음향이 나오지 않기 때문에 평소에도 불편함을 갖고 있음을 뉴스를 통해서도 알 수 있다. 또한 위에 사진을 보면 이러한 기기들의 설치에도 문제가 있음을 볼 수 있다. 그만큼 사람들이 관심을 두고 있지 않으며 내구성에 대한 조치가 마련되어 있지 않음을 알 수 있다. 그 뿐만 아니라 초등 및 중학교 근처 신호등에서는 학생들이 음향신호기를 누르며 장난치는 것을 빈번하게 볼 수 있는데, 이러한 장난들 때문에 전력 소모는 물론이거니와 정작 버튼을 눌러야 하는 사람을 곤란하게 만들고, 벨 버튼의 고장이 발생하게 되는 상황에 놓이게 된다.

57 ICT 음향태그신호기 (3)
또한 기사처럼 벨 버튼 말고도 음향신호기 리모컨을 사용하는 방식도 존재하였으나 리모컨 신호가 다른 인접 음향 신호와 혼선이 생기는 큰 단점이 있었기에 결국 벨 방식에서 벗어나지 못하였다. 하지만 RFID는 정해진 범위 내에 인식되는 태그만 인식하기 때문에 이러한 불편사항에 놓일 일이 없다. 또한 불편하게 리모컨처럼 건전지를 교환하거나 충전할 필요도 없고 지팡이 끝에 태그를 장착하거나 카드를 보급하면 되기 때문에 상용화하기에 적합하다고 판단하였다.
그리하여 지금의 벨 방식을 대신하여 개선점을 찾고, 기존의 기술들을 바탕으로 생각한 것이 바로 RFID를 이용한 태그 방식이다. 현재 시각장애인은 횡단보도를 걷는데 점자 블록을 통해 기둥을 찾고, 지팡이로 쳐서 그 기둥이 앞에 있는지 확인한 후 벨을 찾으려고 더듬는다. 심지어 점자 블록도 벨 버튼이 있는 곳 까지 이어져 있지 않아 위험에 노출되어 있다. 하지만 RFID를 이용하면 벨을 찾기 위해 더 이상 시간을 소비 하지 않을 수 있으며, 지금의 음향 시스템 보다 안전하게 사용할 수 있다. 뿐만 아니라 신체적으로 불편한 사람들과 휠체어를 이용하는 사람들도 이 시스템을 사용 가능하게 적용할 수 있다. 이렇게 보행자 신호를 필요로 하는 사람만 사용할 수 있게 개발하여 이용자가 음향태그 신호기를 이용하는데 불편하지 않도록 시스템을 구성하는 것이 목표이다.

3. 작품 설명
RFID를 이용한 시각장애인용 음향 신호기(태그버전)는 시각장애인들의 권리 및 편의를 위해 아이디어를 구상하게 되었다. 현재 버튼방식은 외부에 버튼이 부착되어있는 방식으로 날씨와 환경의 영향을 많이 받아 오염되고, 내구성이 많이 약해 작동되지 않으며, 학생들의 장난으로 오 작동되는 경우도 많았다. 이처럼 정작 시각장애인들이 사용해야 할 버튼의 남용과 정상 작동 또한 보장되지 못했던 기존의 방식을 개선한 형태를 보이기 위해 Arduino Uno와 RFID모듈처럼 이미 많이 사용되고 있는 기술력을 사용하여 버튼방식의 음향신호기를 태그방식으로 바꾸고 시각장애인이 지팡이로 쉽게 태그 할 수 있도록 설계될 수 있음을 보여주기 위함이다.

57 ICT 음향태그신호기 (4)

위 사진처럼 시각장애인이 기둥에 붙여있는 벨 버튼을 찾지 않아도 기둥 위치에 도달만 하면 지팡이를 이용하여 음향신호기를 이용할 수 있는 시스템이다. 기둥의 바닥은 시각장애인들이 이용하기 편하도록 RFID를 설치하였으며, 기둥의 중간에는 시각장애인 외의 신체적으로 불편한 사람들이 이용할 수 있도록 설계하였다.

3.1. 주요 동작 및 특징
1. 기존 신호등 빨간불이 15초라는 가정 하에 주어진 시간에 RFID가 태 그 되면 정해진 음성출력

· 1~13초 : 정해진 음성 ‘빨간 불이니 잠시만 기다려주세요.’
· 14~15초 : 음성신호가 2초이므로 13초 이후에는 태그 되지 않게 설정 태그 되지 않고 초록불로 넘어간 경우 초록불은 기본 10초 출력

2. 빨간불일 때 태그가 된 경우 초록색 불 시간 10초에서 16초로 연장
3. 초록불일 때 태그시 정해진 음성 ‘초록색 불입니다. 다음 신호를 기다려주세요.’ (초록불일 때 다음신호를 기다리는 이유는 시각장애인들은 신호가 얼마나 남았는지 모르기 때문에 다음 신호를 기다리게 한다.)
4. 빨간불일 때 또는 전 초록불 신호 때 태그 된 후 다음 초록불일 때 정해진 음성 ‘초록불입니다.’ 한번 말한 뒤 ‘삐삐삑삐삐삑’ 연속 출력

3.2. 전체 시스템 구성
기존에 벨이 부착되어 있던 기둥에 벨을 제거하고 기둥 맨 밑에 RFID 모듈을 장착하여 반경 5cm~10cm 내에 태그를 인식 할 수 있게 하며, 시각장애인용 지팡이(길잡이)에 태그 할 수 있도록 ID가 입력된 모듈(태그)을 부착하여 횡단보도에서 일부러 버튼을 찾아서 누르는 번거로움 없이 안전하게 지팡이로 기둥을 치면 RFID가 인식하여 기둥에서 음향신호가 나오고 신호등은 초록불 시간을 늘린다. 다시 말해서 시각장애인은 손으로 기둥을 만져가며 벨을 누를 필요가 없으며 범위 안에 들어온 지팡이를 RFID가 인식만 하면 음향신호가 동작하게 개선했다. 더 나아가 신체가 불편하거나 휠체어를 타는 사람들의 키에 맞는 곳에도 RFID를 설치하여 이용할 수 있게 만들 수 있다.
카드를 구입해야하는 단점도 생길수도 있지만 태그로 사용될 카드나 태그가 부착된 지팡이의 가격은 저렴하며 벨을 누르는 것보다 태그로 인식하는 방법이 보행자가 위험에 노출될 상황을 낮출 수 있다. 시각장애인의 지팡이에 추가적으로 RFID태그가 부착된 것뿐이라서 사용자의 불편함도 없다고 할 수 있다. 또한 비 이용자가 벨을 눌러 다른 이용자에게 불편함을 주는 일도 제한할 수 있다.
하드웨어로는 기술력으로도 쉽게 접근하여 만들 수 있음을 보이기 위해 Arduino Uno를 선택하게 되었다. 그리고 LED를 이용하여 신호등을 구현하고 RFID가 인식되면 Uno에 연결된 MP3모듈을 통해 스피커에서 음향 신호가 나오고 청색등 출력 시간이 늘어날 수 있게 구성되어 있다.

3.3. 개발 환경(개발 언어, Tool, 사용시스템 등)
개발언어: C언어
사용 tool: Ardoino IDE, Solidworks2013, Cura(3D 프린팅프로그램), Fritzing(아두이노 회로도작성프로그램), Ultimaker 3D프린터

4. 단계별 제작 과정
4.1. 아이디어 브레인스토밍
우선 팀에서 나온 주제는 시각장애인을 대상으로 선정한 주제였으며 이미 많은 사람들이 그들을 위해 개발해온 여러 가지 제품들도 확인 하였다. 하지만 시각장애인이 횡단보도를 이용하는 부분에 대한 개선이 확실히 이루어져 있지 않았기에 그 부분에 대한 개선을 생각하게 되었다. 그리고 시각장애인의 지팡이는 공공장소에서 접을 수 있어야 하고, 무엇보다 가벼운 제품이야 했기에 무게가 있거나 전력이 필요한 장치를 장착하기에는 실용성이 없어 보였다. 그러던 중 RFID를 떠올리게 되었으며, 그 모듈을 이용하여 횡단보도를 이용하는 시각장애인에게 조금이나마 더 도움을 주고자 하였다.
현재 RFID를 이용한 장비들을 실생활에서 많이 찾아볼 수 있다. 하이패스, 여권, 교통카드 비접촉 결제 서비스 등 다양하게 사용되고 있으며, 이러한 태그방식을 통해 음향 신호기에 의존하는 사람들이 좀 더 이용하기 편하게 만들 수 있을 것이라 생각했다. 시각장애인의 사용편의를 위해 실용화하기 적합한 모듈은 태그범위가 좁은 NFC보다는 범위의 여유가 있는 RFID가 이번 프로젝트에 적합하다고 생각하였으며, 추후에 사용화가 되면 이용자에 한에서만 태그가 가능하도록 지팡이나 카드에 고유아이디번호를 지정하여 지정된 번호만 인식하게 설정할 것이다.
그리고 하드웨어를 Ardoino Uno를 사용한 이유는 이 프로젝트의 기술적인 면을 다른 사람이 쉽게 이해할 수 있고 접할 수 있게 만들기 위하여 사용되었으며, 우리가 필요로 하는 RFID모듈, MP3모듈, LED등을 쉽게 구할 수 있기에 선정하게 되었다.
마지막으로 회로를 구성하여 동작 유무를 확인한 뒤에 소형 횡단보도와 신호등을 직접 만들어 보여주는 것이 목표였다. 또한 기존의 벨의 부식과 낮은 내구성을 보완하기 위해 신호등의 기둥에 연결될 RFID와 스피커에 커버를 만들기로 하였다. 그리고 RFID와 스피커에 맞는 케이스가 따로 준비 되어있지 않기에 직접 SolidWorks2013 프로그램으로 직접 모형을 제작하고, 3D프린팅하여 부착하는 것으로 정하게 되었다.

4.2. 시각장애인용 음향 태그 신호기 모형 제작과정
모형을 제작하기 전에 SoiidWorks2013프로그램을 이용해 모델링을 하고, 실제로 모형을 제작할 때 신호등 내부의 배선 구성과 RFID모듈의 부착위치 등을 고려했다.

57 ICT 음향태그신호기 (5)

57 ICT 음향태그신호기 (2)

신호등을 구현하기 위해 신호등 커버와 모형 안에 연결해야할 led를 고려해서 제작하고 있는 모습이다.

57 ICT 음향태그신호기 (3)

신호등을 부착할 기둥에 전선이 들어갈 수 있도록 배선 구멍을 뚫고, 모형부착 위치를 표기, 그리고 실제 신호등이 부착된 기둥을 재현하기 위해 내구성 있는 철로 구성된 제품을 사용했다.

57 ICT 음향태그신호기 (6)

신호등과 음향기기 시스템을 구성할 회로도를 짜는 모습이다. 회로가 제대로 동작하는지 확인하기 위해서 모형에 연결하기 전에 소형 회로도를 구성하였다.

57 ICT 음향태그신호기 (4)

위에서 만든 모형을 바탕으로 실제 도로상황을 유사하게 구현하는 모습 중 한 장면이며, 그 일환으로 RFID모듈과 전선을 잇기 위해 납땜을 하는 모습이다.

57 ICT 음향태그신호기 (5) 57 ICT 음향태그신호기 (6)

SolidWorks프로그램으로 만든 모형을 Cura프로그램으로 3D프린팅 할 수 있는 파일로 변환 시켰으며, 3D프린팅 된 모형에 RFID모듈을 넣어 기둥에 부착한 사진 이다.(가볍고 내구성이 좋은 ABS를 사용해 프린팅)

57 ICT 음향태그신호기 (7)

우리가 개선시킨 횡단보도 시스템을 축소해서 만든 모형과 직접 시각장애인들의 시점에서 테스트하는 모습이다.

5. 기타
5.1. 프로그래밍 작성 및 해석

#include <SPI.h> // RFID는 SPI통신을 하기 때문에 사용
#include <MFRC522.h> // RFID를 사용할 수 있는 헤더파일
#include <SoftwareSerial.h> // MP3모듈이 시리얼 통신을 때문에 사용
#include <DFPlayer_Mini_Mp3.h> // MP3모듈을 사용할 수 있는 헤더파일

#define RST_PIN 9 // reset핀은 9번으로 설정
#define SS_PIN 10 // SlaveSelect핀은 10번으로 설정
#define RST2 7 // reset핀은 7번 설정
#define SS2 8 // SlaveSelect핀은 8번 설정
#define ledred 2 // 빨간색 신호등 불
#define ledgreen 4 // 초록색 신호등 불
int c = 0; // 카운터 의미로써 사용하기 위한 변수

MFRC522 mfrc(SS_PIN, RST_PIN); // MFR522를 사용해 RFID의 Slave //Select와 Reset핀을 지정하여 mfrc1 객체 생성MFRC522 mfrc2(SS2, RST2); // MFR522를 사용해 RFID의
//Slave Select와 Reset핀을 지정하여 mfrc2 객체 생성

void setup() // 초기 설정
{
Serial.begin(9600); //아두이노 통신 속도 설정 9600bps
SPI.begin(); // SPI 초기화 (SPI통신을 사용하겠다.)
mfrc.PCD_Init(); // RFID1 모듈 초기화
mfrc2.PCD_Init(); // RFID2 모듈 초기화
pinMode(ledred , OUTPUT); // 빨간색 신호등 세팅
pinMode(ledgreen , OUTPUT); // 초록색 신호등 세팅
mp3_set_serial (Serial); // mp3모듈에 9600bps 통신 속도 설정
delay(1); // 스피커 소리 크기 세팅시간 1ms
mp3_set_volume (30); // 스피커 소리 크기 최대 30
} // setup 끝
void loop()
{
for(int a=0; a < 30; a++) // 빨간불 15초 출력
{
digitalWrite(ledred , HIGH); //빨간색 신호등 ON
digitalWrite(ledgreen , LOW); //초록색 신호등 OFF
delay(500); //0.5초

if ( mfrc.PICC_IsNewCardPresent() && mfrc.PICC_ReadCardSerial() ) // 시각장애인용 태그 인식 했을 때
{
c=1; //카운터를 1로 설정
if(24<=a) //13초 이후에 인식하면 소리출력 안함
{break;}
mp3_play (1); //‘빨간불이니 잠시만 기다려주세요.’ 출력
delay(3000); //3초
a=a+6; //3초만큼의 a값을 더함
}
if ( mfrc2.PICC_IsNewCardPresent() && mfrc2.PICC_ReadCardSerial() ) // 반대쪽 신호등 시각장애인용 태그 인식 했을 때
{
c=1; //카운터를 1로 설정
if(24<=a) //13초 이후에 인식하면 소리출력 안함
{break;}
mp3_play (1); //‘빨간불이니 잠시만 기다려주세요.’ 출력
delay(3000);
a=a+6; //3초만큼의 a값을 더함
}
} // 빨간불 신호 문 끝

if(c == 0) // 시각장애인용 태그가 인식 되지 않았을 때
{
for(int b=0; b<20; b++) //초록불 신호 (10초)
{
digitalWrite(ledred, LOW); // 빨간색 신호등 OFF
digitalWrite(ledgreen, HIGH); // 초록색 신호등 ON
delay(500); // 0.5초 딜레이

if ( mfrc.PICC_IsNewCardPresent() && mfrc.PICC_ReadCardSerial() ) // 초록색 신호 때 시각장애인용 태그 인식 했을 때
{
c=1; //카운터를 1로 설정
f(14<=b) //7초 이후에는 음성출력 안함
{break;}
mp3_play (2); // ‘초록불이니 다음신호를 기다려주세요.’를 출력
delay(3000); //3초 출력
b=b+6; //3초만큼의 b값을 더함
}

if ( mfrc2.PICC_IsNewCardPresent() && mfrc2.PICC_ReadCardSerial() ) // 초록색 신호 때 반대쪽 신호등 시각장애인용 태그 인식 했을 때
{
c=1; //카운터를 1로 설정
if(14<=b) //7초 이후에는 음성출력 안함
{break;}
mp3_play (2); // ‘초록불이니 다음신호를 기다려주세요.’를 출력
delay(3000); //3초 출력
b=b+6; //3초만큼의 b값을 더함
}
}
return; // 밑의 신호를 중복하지 않기 위해 설정
} // 보행자 보행 신호 종료

if(c == 1) // 시각장애인용 태그가 인식 되었을 때
{
digitalWrite(ledred, LOW);
digitalWrite(ledgreen, HIGH); // 초록색 신호등 ON
c=0; // 시각 장애인용 신호로 바뀌었으니 카운터를 0로 설정
mp3_play (3); //‘초록불이 되었습니다, 조심이건너가세요.’를 출력
delay(4000); //4초정도 출력

for(int b=0; b<12; b=b+3)
{
mp3_play (4); // ‘삐삐삐삑 삐삐삐삑’ 출력
delay(3000); //3초정도 출력
if ( mfrc.PICC_IsNewCardPresent() && mfrc.PICC_ReadCardSerial() ) // 초록색 신호 때 시각장애인용 태그 인식 했을 때
{ c=1; } //카운터를 1 설정

if ( mfrc2.PICC_IsNewCardPresent() && mfrc2.PICC_ReadCardSerial() ) // 초록색 신호 때 반대쪽 신호등 시각장애인용 태그 인식 했을 때
{ c=1; } //카운터를 1로 설정

} //for문 끝
} //초록불 if문 끝
} //loop문 끝



5.2. 회로도

57 ICT 음향태그신호기 (7)

 

57 ICT 음향태그신호기 (8)

5.3. 참고문헌

http://news1.kr/articles/?764858

https://news.sbs.co.kr/news/endPage.do?news_id=N0311112954#open%20PrintpOPUP

http://www.ablenews.co.kr/News/NewsContent.aspx?CategoryCode=0006&NewsCode=000620130720092415261366#z

 

 

 

 

 

Leave A Comment

*