1.계획서

프로젝트 계획서 요약보고서


I. 프로젝트 개요


1.1 프로젝트 개요

본 프로젝트에서는 구현할 '안전운행을 위한 차량용 스마트 키보드'는 HUD(Head Up Display)방식을 이용하여 자동차 앞 유리에 HUD필름을 부착하여 운전자가 스마트폰을 이용하지 않고 메시지,SNS에 입력을 도와준다.

'안전운행을 위한 차량용 스마트 키보드'는 다음과 같은 기능을 운전자에게 제공한다.

첫 째, 스마트폰 입력 기능이다. 자동차 앞 유리에 천지인 키보드 배열을 HUD방식을 통해서 띄워주고 자동차 핸들에 Joystick을 장착하여 원하는 문자를 찾아가 스마트폰에 입력을 도와준다.

둘 째, 안전상황 감지기능이다. 차량에 장착된 OBD2 데이터를 Raspberry Pi 에서 처리, 차량의 상태를 확인하고 실시간 날씨정보, 급격한 속도변화, 도로 위 보호구역을 감지하여 운전 중 안전한 상황을 판단, 운전자가 스마트 키보드를 사용할 수 있는 범위를 제한한다.

1.2 추진 배경 및 필요성

1.2.1 운전 중 스마트폰 사용 증가

현재 우리나라는 높은 수준의 보급률로 많은 사람들이 어느 곳에서나 스마트폰을 사용하길 원하고 있다. 이러한 상황에서 최근 운전중 스마트폰 사용에 관한 위험성이 큰 이슈로 대두되고 있고, 대다수의 운전자들도 위험성을 인식하고 있다. 하지만 운전자의 90%가 운전 중 스마트폰 사용경험이 있고, 실제로 맣ㄴ은 운전자가 신호대기, 정차중 메시지, SNS, 음악 재생 등 여러 기능을 사용하고 있는 것으로 나타났다.



운전 중 스마트폰 사용에 관한 뉴스




1.2.2 설문조사를 통한 차량용 키보드의 필요성


운전 중 스마트폰 사용실태에 관한 설문조사



현재 프로젝트 계획수립에 앞서 실질적인 상황을 확인하기 위해 운전 중 스마트폰 사용실태에 관한 설문조사를 실시, 총 397명의 표본을 얻어 분석을 해보았다. 운전자는 주로 전화, 문자메세지, 카카오톡을 비롯한 SNS를 운전 중에 사용하였고, 응답장의 69%는 스마트폰을 만지지 않고 확인 및 입력기능을 원하는 것을 볼 수 있었다. 우리는 설문조사 응답결과를 바탕으로 운정네 집중해야 되는 상황을 차선변경, 제한구역, 급격한 속도변화로 나누어 안전상황을 고려한 차량용 스마트 키보드 제작하기로 하였다,

2 개발 목표 및 내용

2.1 목표

본 프로젝트의 목표는 크게 두 가지로 나눌 수 있다. 첫 번째, 운전 시 스마트폰을 만지지 않고 입력할 수 있는 차량용 키보드를 개발한다. 운전자가 전방을 주시하면서, 핸들에 부착되어 있는 키보드를 통해 원하는 문장을 입력할 수 있다. 두 번째, 운전에 집중해야 할 상황을 단계별로 나눈 후, 단계에 따른 키보드 사용을 제한하는 소프트웨어를 제작한다. 이 소프트웨어는 차량의 속력이나 방향 지시등의 사용유무, 기어변속, 현재 날씨의 정보를 종합하여 키보드 사용유무를 판단한다. 본 프로젝트는 운전자의 양 손이 핸들에서 떨어지지 않음과 동시에 전방을 주시하며 안전하게 키보드를 사용할 수 있는 것을 목표로 한다.

2.2 연구/개발 내용

2.2.1 스마트 키보드 개발

차량용 스마트 키보드를 개발한다. Head Up Display(HUD)에 키보드와 입력중인 문자를 실시간으로 띄워줌으로써 운전자가 전방 주시를 유지할 수 있도록 한다. 이 때, HUD에 화면을 보여주기 위해서 Raspberry Pi Raspberry Pi 용 모니터를 이용해 키보드 배열과 입력중인 문자열을 보여주는 화면을 상하좌우 대칭으로 출력한다. 출력된 화면을 HUD에 반사 시킴으로써 차량 앞 유리에 사용자가 봤을 때 정 방향의 화면을 보여준다.

또한 운전자의 양 손이 운전대에서 떨어지지 않도록 하기 위해서 Joystick 입력장치를 핸들에 부착한다. Joystick을 통해 HUD에 띄워진 키보드에서 원자는 문자를 선택하여 스마트폰에 입력할 수 있도록 한다.

HUD 부착 Concept Image


Joystick 부착 Concept Image

2.2.2 스마트하게 키보드를 사용하는 환경 구축

차량용 키보드를 안전하게 사용할 수 있도록 차량 내부정보, 차량 외부정보를 이용하여 차량용 키보드를 사용 가능 여부를 판단하는 소프트웨어를 개발한다.

차량 내부정보

차량 내부정보는 OBD2를 이용하여 차량 속도 정보, 방향 지시등의 사용, 기어의 변화를 감지한다. 전달 받은 데이터를 분석하여 현재 차량이 과도한 속도로 주행, /우회전, 기어 변속을 하고 있는지 소프트웨어가 상황을 판단하여 스마트 키보드를 비활성화 한다.

차량 외부정보

차량 외부정보는 GPS를 이용하여 현재 차량의 위치 정보를 받아온다. 현재 주행중인 지역의 날씨 정보를 이용하여 강수량, 적설량 등과 같이 운전에 집중을 해야 하는 환경인지 판단하여 스마트 키보드를 비활성화 한다.

소프트웨어가 키보드를 사용하기에 안전한 상황인지 판단기준

차량 내/외부 상황에 따라 점수를 부여하고 점수의 합이 일정 기준을 넘으면 키보드를 비활

성화한다.


차량 내/외부 정보에 따른 점수표.

2.2.3 Notification Application 개발

Notification Application은 입/출력제어기능을 담당하고 있는 Raspberry Pi 에 스마트폰으로 오는 카카오톡, 문자메시지 알림과 음악재생목록 정보를 전달할 수 있도록 하는 Application이다. 본 프로젝트에서 제작하게 될 어플리케이션은 현재 각자 다른 어플리케이션으로 오는 알림을 모아주는 역할뿐 아니라, 스마트폰 내의 알림 정보와 음악 재생목록을 Raspberry Pi 에 전달해준다. 사용자는 이 모든 내용을 차량 앞 유리의 HUD를 통해 확인할 수 있다. 또한 키보드로 입력한 내용은 해당 어플리케이션으로 전달된다.

Notification Application의 상세구현내용

수신된 카카오톡 메시지를 open API를 이용하여 내용을 Raspberry Pi 에 전송한다.

SMS 메시지를 수신했을 때 BroadcastReceiver를 사용하여 메시지 내용을 전송한다.

Notification Service를 통해 사용자의 스마트폰의 notify리스트를 가져온다.

④ 키보드로 선택한 메시지에 대한 답을 입력하면, 그 내용을 해당되는 어플리케이션에 전달한다.

안드로이드가 자체적으로 구축한 미디어 데이터베이스를 불러와 원하는 음악을 선

택하여 재생할 수 있도록 한다.

Notification App UI 구성안

위 그림은 처음 사용자가 어플리케이션을 실행했을 때의 화면이다. 사용자는 내용확인을 원하는 기능을 선택할 수 있으며, 사용자가 설정한 기능에 따라 내용을 Raspberry Pi 에 전송한다.



3 기대효과 및 활용방안

3.1 자동차 운전 중 스마트폰에 입력

차량용 키보드를 이용하여 운전 중에 스마트폰에 입력을 할 수 있다. 이때 HUD Display 사용하여 현재 입력중인 텍스트와 천지인 키보드 자판이 유리에 보여진다. 이로 인하여 사용자는 항상 전방 주시를 하며 스마트폰에 입력을 할 수 있다.

차량용 스마트 키보드 Concept Image

3.2 운전 중 전방 주시를 하며 스마트폰 알림 확인

HUD displayRaspberry PiTFT를 사용하여 차량 앞 유리에 스마트폰의 카카오톡, 메시지, 음악 재생목록을 보여준다. 이를 통하여 운전자는 항상 전방 주시를 하며 보다 안전하게 스마트폰 정보를 확인할 수 있다.


3.3 스마트 안전 판단 모듈

차량 내부정보, 외부정보를 전달받아 스마트 안전 판단 모듈이 현재 차량용 키보드를 사용해도 안전한 상황인지 판단하여 안전한 상황이 아닐 시 키보드를 비활성화한다. 이렇게 차량정보와 스마트 안전 판단 모듈을 사용하여 스마트하게 차량용 키보드를 사용할 수 있다.






II. 배경기술

2.1 기술적 요구사항

2.1.1 차량용 키보드 개발환경

Hardware : Raspberry PI, Joystick, HDMI Display

운영체제 : Linux

개발언어 : Python
- Raspberry PI
GPIO Joystick 드라이버 이용하여 키보드 배열 구성

사용 라이브러리

- WiringPi2-python

Arduino의 대부분의 기능을 Raspberry Pi에 맞게 재 구성한 WiringPi에 입출력 확장장치를 관리하기 위하여 일부 기능이 추가된 것이다.

- GPIO

General Purpose Input/Output의 줄임말로 어떤 목적을 위해서 Input으로도 Output으로도 쓸 수 있고, Chip 자체의 기능으로도 쓸 수 있는 Chip의 하나하나의 PIN을 뜻한다.


2.1.2 스마트 안전 판단 모듈

Hardware : OBD2 USB Scanner, Raspberry PI

운영체제 : Linux

개발언어 : Python 2.7

사용 라이브러리

- pySerial

시리얼 통신을 하기 위한 Python 통신모듈로써, OBD2Raspberry Pi 간의 통신을 가능하게 한다.

- pyOBD

OBD2와 데이터를 주고 받을 수 있는 Python Library이다. 이를 통해 차량 내부 정보에 쉽게 접근할 수 있다.



2.1.3 App기능 통합 관리 어플리케이션

운영체제 : Window 7 32bit / 64bit

개발언어 : JAVA

Java 전용 Software Develoser’s KitJDK를 이용하여 Application을 개발한다.

개발 툴 : Eclipse

Android SDK : 안드로이드 소프트웨어를 개발하기 위한 Toolkit

Android ADT : EclipseAndroid SDK를 연결해주는 Plugin

사용 라이브러리

- Broadcast Receiver

각각의 Component들 간에 메시지를 전달할 수 있는 방법을 제공한다. 문자나 전화가 올 경우 해당 액션을 캐치하고, 이 액션이 핸드폰에 도달하면 Android OS에서는 이를 휴대폰 내의 모든 어플리케이션에게 Broadcast한다. 알림을 받아올 인텐트에 Receiver를 등록해놓으면, 그 인텐트에서 액션이 있었을 때의 행동을 정의하는 방법으로 사용이 가능하다.

- Notification Listener Service

스마트폰에 Notify가 발생하는 것을 전부 캡쳐할 수 있고, 새로 추가 또는 삭제 기능까지 쉽게 구현이 가능하다. 또한 리스너 형태이기 때문에 언제 notify가 온지를 쉽게 확인할 수 있다.

- File

안드로이드 파일 입출력 라이브러리로서, SD Card에 저장되어 있는 파일에 절대경로 및 상대경로로 접근 할 수 있도록 해준다. 스마트폰 SD Card의 저장되어있는 음악목록에 접근하여 재생할 수 있도록 한다.

2.2 현실적 제한 요소 및 그 해결 방안

제한 요소

설명

해결 방안

자동차라는 공간의 제한

안전 운행을 하기 위해서는 전방 주시를 해야 하며 자동차 핸들을 양손으로 잡고 있어야 한다.

Joystick을 핸들에 부착하고 기존 키보드의 형식을 탈피하여 HUD를 통해 키보드의 구성과 현재 입력중인 텍스트를 안전하게 확인할 수 있다.

지도정보

현재 위치는 GPS 센서로 알 수 있지만 고속도로인지 일반도로인지를 비교할 지도정보는 구매해서 사용해야 한다. 따라서 제한속도, 보호구역과 같은 현재 위치에 대한 구체적인 정보를 알 수 없다.

절대속도, 방향 지시등, 조향각 정보로 키보드의 기능을 제한한다.




III. 역할분담

이름

역할

신지웅

- 스마트 안전판단 모듈 개발

- OBD2, GPS, 인터넷을 통해 데이터를 획득, 분석, 판단하여 점수화

- 점수화한 결과를 LEVEL하여 키보드 사용여부 판단

김도헌

서준교

- 키보드 통합관리 모듈 개발

- 조이스틱 입출력에 따른 모드전환 및 기능관리

- Raspberry PI에서HUD UI 제작

양호남

김현송

- APP기능 통합관리 안드로이드 어플리케이션 개발

- 카카오톡, 문자 음악재생목록에 관한 CORE모듈 개발

- 입력에 따른 app호출과 라즈베피 파이 통신관리

- 사용자가 전달받길 원하는 기능을 선택하는 제어판 제작

오동은


IV. 성과물 계획

1) 차량용 키보드

대분류

소분류

기능

형식

비고

소프트웨어

키보드 통합관리

HUD UI 관리

모듈

입력에 따른 모드 전환 및 기능관리

모듈

Joystick 입/출력 관리

모듈

하드웨어

Display

HUD Dispolay

출력장치

하드웨어

Raspberry Pi

입/출력 제어

제어장치

하드웨어

Joystick

문자입력

입력장치

하드웨어

OBD2 센서

차량내부정보 전달

모듈

2) 스마트 안전 판단 모듈

대분류

소분류

기능

형식

비고

소프트웨어

집중도 레벨화에 따른 키보드 사용 제한

점수화한 결과를 Level화 및 키보드 사용 가능 여부 판단

모듈

ODB2를 이용한 차량 내부 정보, GPS를 이용한 위치정보, 인터넷을 통한 현재 날씨 정보 획득

모듈

획득한 Data를 통해 점수화

모듈

3) 어플리케이션

대분류

소분류

기능

형식

비고

소프트웨어

App기능 통합관리

Raspberry Pi 통신 관리

모듈

입력에 따른 관련 어플리케이션 호출

모듈

카카오톡, 메시지 관련 핵심 모듈

모듈

음악재생목록 관련 핵심 모듈

모듈

사용자가 전달받기 위하는 기능 선택

모듈

4) 문서

대분류

소분류

기능

형식

비고

기술문서

문서

스마트 키보드 사용 매뉴얼

Doc


V. 개발 일정




첨부 성과물 문서와 발표자료 포함


1발표자료파워포인트로 작성된 발표자료입니다.
계획서발표ppt_Hole in one(음성).ppsx
2PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
수행계획서_Hole in one.pdf
3PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
계획서발표슬라이드_Hole in one.pdf
4성과물이 프로젝트의 성과물입니다.
중간보고서_홀인원_ver1.2.docx
5PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
중간보고발표자료_홀인원.pdf
6발표자료파워포인트로 작성된 발표자료입니다.
중간보고발표자료_홀인원.pptx
7성과물이 프로젝트의 성과물입니다.
2차중간보고서_HoleInOne_ver1.3_최종.docx
8PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
홀인원 최종PPT ver1.2.pdf
9PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
홀인원 최종결과보고서 ver1.3.pdf
10발표자료파워포인트로 작성된 발표자료입니다.
홀인원 최종PPT ver1.2.pptx
11PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
12조_홀인원_포스터.pdf