Skip to content

Software Engineering Capstone Design / 2021 First Semester / Food Storage

Notifications You must be signed in to change notification settings

yamiblack/Polaris_Android

Repository files navigation

Polaris(Android Version)


목차

1. 개발 배경
2. 서비스 소개
3. System Architecture
4. 시연 영상
5. 상세 기능 소개
6. 사용 기술 스택
7. 주요 코드
8. WBS 및 Gantt Chart
9. 추후 보완 내용


1. 개발 배경


2. 서비스 소개

  • 스마트워치의 활용도 증가에 따라 이를 활용하여 보행 중 스마트폰을 주시하는 문제를 개선한다.

  • 스마트워치의 진동을 활용하여 도보 내비게이션 서비스 제공한다.

  • 사용자는 직접 스마트워치의 진동 패턴을 본인에게 맞춰 커스터마이징할 수 있다.

    • ex) 직진 : 진동 1번 / 좌회전 : 진동 2번 / 우회전 : 진동 3번

  • 보행 중 노이즈 캔슬링과 같이 주변의 소리를 못 듣는 경우에 폭발음, 경적음, 그리고 공사장 소리와 같이 큰 소리나 위협이 되는 소리가 감지면 이를 진동을 통해 사용자에게 안내한다.

  • 스마트워치에서 STT(Speech-to-Text) 기능을 활용하여 청각장애인의 소통 문제를 개선한다.

  • 해당 서비스의 SWOT 분석은 다음과 같다.

    image


3. System Architecture

image


4. 시연 영상

4.1. 진동 내비게이션

Video Label

  • 행 중 스마트폰을 사용할 경우의 위험(개발 배경1) 개선 했다.
  • GS25 편의점으로 목적지를 설정하면 스마트워치에서 이를 안내하여 목적지에 도착하는 것을 위 영상을 통해 확인할 수 있다.
  • 영상에서는 확인이 어렵지만, 초반에 좌회전할 때 설정한 횟수만큼 진동을 확인할 수 있었다.
  • 시간 관계상 영상을 배속으로 편집했다.

4.2. 위험 감지

Video Label

  • 주변의 위험을 인지하지 못할 경우의 위험(개발 배경2) 개선했다.
  • 위 영상과 같이 큰 소리가 감지되면 스마트워치는 진동으로 안내한다.

4.3. STT

Video Label

  • 마스크 착용으로 인한 청각장애인들의 불편함(개발 배경3) 개선했다.
  • 위 영상과 같이 스마트워치에서 STT 기능이 동작하는 것을 확인할 수 있다.
  • STT 기능은 단위 테스팅까지 완료된 상태이므로 추후에 통합 테스팅을 진행할 예정이다.

5. 상세 기능 소개

5.1. Firebase 활용 회원가입 및 로그인

  • Firebase 활용 회원가입 및 로그인 화면은 위 그림과 같다.

  • 좌측은 회원가입 성공화면을, 우측은 로그인 성공 화면을 나타낸다.

5.2. 주변 지도 표시 및 검색

  • 좌측은 현재 위치를 기반한 주변 지도를 나타낸다.
  • 우측은 검색창에서 목적지를 검색할 때의 검색 화면을 나타낸다.

5.3. 경로 탐색 및 내비게이션

  • 좌측과 같이 스마트폰에서 '길 안내 시작' 버튼을 터치하면 우측과 같이 스마트워치에서 길 안내가 시작된다.

5.4. 최근 검색

  • 위 그림과 같이 최근 검색 기록을 확인하고 '길 안내 시작' 버튼을 터치하여 바로 길 안내 서비스를 이용할 수 있다.

5.5. 즐겨찾기

  • 좌측과 같이 검색 결과에서 우측의 별 모양을 터치하면 우측과 같이 별의 색이 변하면서 즐겨찾기 목록에 등록이 된다.

  • 위 그림과 같이 즐겨찾기 목록을 확인하고 '길 안내 시작' 버튼을 터치하여 바로 길 안내 서비스를 이용할 수 있다.

5.6. 진동 패턴 설정

  • 위 그림과 같이 진동 패턴을 사용자별로 설정할 수 있다.

5.7. 음성인식 단어 관리

  • 위 그림과 같이 음성인식 단어를 사용자별로 관리할 수 있다.

6. 사용 기술 스택

  • Android(Java)
  • Tizen Native API
  • Samsung Accessory Protocol(SAP)
  • T map API

7. 주요 코드

7.1. SAP 연결 설정

<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에서 위와 같이 설정해야 한다.

7.2. Galaxy Watch 연결

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();
}

7.3. Galaxy Watch 데이터 전송

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();
}

8. WBS 및 Gantt Chart

image

image


9. 추후 보완 내용

  • STT 기능 통합
  • iOS Version 개발
  • Node.js 서버 구축
  • 디자인 수정
  • 안정성 개선

About

Software Engineering Capstone Design / 2021 First Semester / Food Storage

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages