- 강의명 : 2021학년도 1학기 소프트웨어공학 캡스톤 프로젝트
- 팀명 : 북두칠성
- 관련 수상 :
1. 개발 배경
2. 서비스 소개
3. System Architecture
4. 시연 영상
5. 상세 기능 소개
6. 사용 기술 스택
7. 주요 코드
8. WBS 및 Gantt Chart
9. 추후 보완 내용
- 보행 중 스마트폰을 사용할 경우의 위험 (개발 배경1)
- 보행 중 주의분산 실태와 사고특성 분석_삼성교통안전문화연구소
- '스몸비, 블좀족' 보행자 위험경보
- 스몸비 : 길거리에서 스마트폰을 보면서 걷는 사람을 넋 빠진 시체 걸음걸이에 빗대어 일컫는 말로, ‘스마트폰’과 ‘좀비’의 합성어
- 블좀족 :블루투스 이어폰으로 발생하는 잦은 사고로 인하여 ‘블루투스 이어폰’과 ‘좀비처럼 걷는 보행자’를 일컫는 합성어
- 주변의 위험을 인지하지 못할 경우의 위험 (개발 배경2)
- 마스크 착용으로 인한 청각장애인들의 불편함 (개발 배경3)
- 스마트워치의 활용도 증가
-
스마트워치의 활용도 증가에 따라 이를 활용하여 보행 중 스마트폰을 주시하는 문제를 개선한다.
-
스마트워치의 진동을 활용하여 도보 내비게이션 서비스 제공한다.
-
사용자는 직접 스마트워치의 진동 패턴을 본인에게 맞춰 커스터마이징할 수 있다.
-
보행 중 노이즈 캔슬링과 같이 주변의 소리를 못 듣는 경우에 폭발음, 경적음, 그리고 공사장 소리와 같이 큰 소리나 위협이 되는 소리가 감지면 이를 진동을 통해 사용자에게 안내한다.
-
스마트워치에서 STT(Speech-to-Text) 기능을 활용하여 청각장애인의 소통 문제를 개선한다.
-
해당 서비스의 SWOT 분석은 다음과 같다.
- 행 중 스마트폰을 사용할 경우의 위험(개발 배경1) 개선 했다.
- GS25 편의점으로 목적지를 설정하면 스마트워치에서 이를 안내하여 목적지에 도착하는 것을 위 영상을 통해 확인할 수 있다.
- 영상에서는 확인이 어렵지만, 초반에 좌회전할 때 설정한 횟수만큼 진동을 확인할 수 있었다.
- 시간 관계상 영상을 배속으로 편집했다.
- 주변의 위험을 인지하지 못할 경우의 위험(개발 배경2) 개선했다.
- 위 영상과 같이 큰 소리가 감지되면 스마트워치는 진동으로 안내한다.
- 마스크 착용으로 인한 청각장애인들의 불편함(개발 배경3) 개선했다.
- 위 영상과 같이 스마트워치에서 STT 기능이 동작하는 것을 확인할 수 있다.
- STT 기능은 단위 테스팅까지 완료된 상태이므로 추후에 통합 테스팅을 진행할 예정이다.
- Firebase 활용 회원가입 및 로그인 화면은 위 그림과 같다.
- 좌측은 회원가입 성공화면을, 우측은 로그인 성공 화면을 나타낸다.
- 좌측은 현재 위치를 기반한 주변 지도를 나타낸다.
- 우측은 검색창에서 목적지를 검색할 때의 검색 화면을 나타낸다.
- 좌측과 같이 스마트폰에서 '길 안내 시작' 버튼을 터치하면 우측과 같이 스마트워치에서 길 안내가 시작된다.
- 위 그림과 같이 최근 검색 기록을 확인하고 '길 안내 시작' 버튼을 터치하여 바로 길 안내 서비스를 이용할 수 있다.
- 좌측과 같이 검색 결과에서 우측의 별 모양을 터치하면 우측과 같이 별의 색이 변하면서 즐겨찾기 목록에 등록이 된다.
- 위 그림과 같이 즐겨찾기 목록을 확인하고 '길 안내 시작' 버튼을 터치하여 바로 길 안내 서비스를 이용할 수 있다.
- 위 그림과 같이 진동 패턴을 사용자별로 설정할 수 있다.
- 위 그림과 같이 음성인식 단어를 사용자별로 관리할 수 있다.
- Android(Java)
- Tizen Native API
- Samsung Accessory Protocol(SAP)
- T map API
<uses-permission android:name="com.samsung.accessory.permission.ACCESSORY_FRAMEWORK" />
<uses-permission android:name="com.samsung.wmanager.APP" />
<uses-permission android:name="com.samsung.WATCH_APP_TYPE.Companion" />
<receiver android:name="com.samsung.android.sdk.accessory.MessageReceiver">
<intent-filter>
<action android:name="com.samsung.accessory.action.MESSAGE_RECEIVED" />
</intent-filter>
</receiver>
<receiver android:name="com.samsung.android.sdk.accessory.RegisterUponInstallReceiver">
<intent-filter>
<action android:name="com.samsung.accessory.action.REGISTER_AGENT" />
</intent-filter>
</receiver>
<receiver android:name="com.samsung.android.sdk.accessory.ServiceConnectionIndicationBroadcastReceiver">
<intent-filter>
<action android:name="com.samsung.accessory.action.SERVICE_CONNECTION_REQUESTED" />
</intent-filter>
</receiver>
<service android:name="com.samsung.android.sdk.accessory.SAService" />
<meta-data
android:name="AccessoryServicesLocation"
android:value="/res/xml/accessoryservices.xml" />
- SAP 사용을 위해서는 AndroidManifest.xml에서 위와 같이 설정해야 한다.
private void connectGalaxyWatch() {
SAAgentV2.requestAgent(getApplicationContext(), MessageConsumer.class.getName(), agentCallback);
new Thread() {
@Override
public void run() {
while (true) {
if (messageConsumer != null) {
messageConsumer.findPeers();
break;
}
try {
Thread.sleep(3000);
} catch (Exception e) {
e.printStackTrace();
}
super.run();
}
}
}.start();
}
if (messageConsumer != null) {
messageConsumer.sendData("guide/" + etStraight.getText().toString() + "/straight");
messageConsumer.sendData("guide/" + etLeft.getText().toString() + "/left");
messageConsumer.sendData("guide/" + etRight.getText().toString() + "/right");
messageConsumer.sendData("guide/" + etTwo.getText().toString() + "/two");
messageConsumer.sendData("guide/" + etFour.getText().toString() + "/four");
messageConsumer.sendData("guide/" + etEight.getText().toString() + "/eight");
messageConsumer.sendData("guide/" + etTen.getText().toString() + "/ten");
Toast.makeText(context, "성공적으로 설정됐습니다.", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "갤럭시워치 연결을 확안해주세요.", Toast.LENGTH_SHORT).show();
}
- STT 기능 통합
- iOS Version 개발
- Node.js 서버 구축
- 디자인 수정
- 안정성 개선