dslab.konkuk.ac.krdslab.konkuk.ac.kr/class/2014/14cd2/28/졸업작품... · web view본팀의...

23
작작 작작 : CONOL 2014/10/31 졸졸졸졸 2 졸졸졸졸졸 [CONOL] 졸졸 : 졸졸졸 – 200811455 졸졸졸 – 200811458 졸졸졸 – 200811421 졸졸졸 : 2014/10/31 졸졸졸졸 : 졸졸졸 졸졸졸 졸졸 졸졸

Upload: vongoc

Post on 25-Apr-2018

224 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

졸업작품 2 차 중간보고서

[CONOL]

팀원 :

정용겸 – 200811455

조원진 – 200811458

김진철 – 200811421

제출일 : 2014/10/31

담당교수 : 박능수 교수님

0 작품 제목

담당 교수

Page 2: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

CONOL

1 개요

1.1 작품 개요

본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40 년전까지만 해도 우리나라의 IT 의 영향력은 그리 좋은 편이 아니었다. 하지만, 80 년대에 들어서면서부터 컴퓨터공학과 컴퓨터과학에 대한 대중의 관심도가 늘어났고, 그에 따른 대중의 IT 에 대한 접근성이 80 년대에서부터 현재까지 매우 향상되었다. 그리고 또한 삼성에서는 소프트웨어 고급인력 5 만명을 양성한다는 계획까지 가지고 있다. 이러한 시대의 흐름에 발맞춰 본팀은 아동들의 소프트웨어에 대한 관심도를 향상시키고자 아동을 위한 코딩 교육 프로그램을 개발하고자 한다.

그리고 현재 전 세계의 IT 흐름을 이끄는 리더들은 소프트웨어 교육의 중요성에 대해서 많은 인식을 하고 또 강조하고 있다. 그 예로 스티브 잡스의 말을 인용하자면, 다음과 같다. '이 나라의 모든 사람들은 프로그래밍을 배워야 한다. 그것은 당신이 어떻게 생각하는 지를 알려준다."라고 말했다. 그리고 여러 언론과 저명한 기관의 입장을 통해서도 소프트웨어 교육에 대한 중요성을 확인할 수 있다.

또한 한 나라의 뼈대와 국력은 바로 교육에서 부터 나오는 것이다. 그래서 그만큼 어릴 떄부터의 조기교육의 중요성이 대두되고 있는 것이 요즘의 현실이다. 이러한 측면으로 접근했을 때, 본팀은 대한민국 소프트웨어의 역량을 강화시키는 한 방법으로써 아동들의 소프트웨어 조기교육에 대해서 접근하였다.

아동들의 소프트웨어에 대한 관심을 증가시키면, 소프트웨어의 사회적 분위기와 경쟁력을 향상 시킬 수 있고, 바로 이러한 점에서 저희는 사회적 공헌이라는 측면을 발견했다.

1.2 간단한 프로젝트 설명

저희는 아동들에게 있어서 매우 어렵게 느껴지는 일반적인 프로그래밍 언어를 아기자기한 도형을 사용하여 비쥬얼 프로그래밍하는 것으로 대신하되, 그 기능을 매우 간략화하여 아이들이 흥미를 느낄 수 있게 하고 쉽게 접근할 수 있도록 하고자 한다.

그리고 우리가 만들고자 하는 프로젝트의 내용과 비슷한 몇 안되는 제품들이 존재하고 있다. 한 가지 예로, 레고사의 마인드스톰을 예로 들 수 있는데, 이것은 PC 에서 간단한 도형들을 사용하여 로봇에게 명령을 수행할 수 있는 것을 프로그래밍을 할 수 있다. 이러한 상용화된 제품들의 UI 는, 대부분 러프한 UI 를 가지고 있다.

다음으로 우리 프로젝트가 제공하는 기능에 대해서 말하자면, 첫 번째로 모바일 장비에서 사용자에게 도형을 선택받은 후 도형을 알맞게 배치한다. 여기서 말하는 도형이란, 기본적인 WHILE 문과 IF 문에 해당하는 것이 있다. 그리고 그 동작 순서가 담긴 데이터의 sequence는 기기의 블루투스를 통해 하드웨어(자동차)에게 전송된다. 전송이 완료 된 후에 하드웨어(자동차)는 그 데이터를 받은 후, 그것을 해석하여 그에 따른 알맞은 동작을 수행하게 된다. 단, 하드웨어(자동차)는 외부 장애물의 유무를 센서를 통해 감지하여 여러 가지 경우의 수에 따른 다양한 행동패턴을 가지게 된다. 좀 더 세부적인 기능으로는, 전후좌우의 이동과 속도 조절 가능, 회전 각도의 컨트롤, 센서의 장착과 그에 따른 사물 인식, 그리고 LED 와 LCD 를 통한 시각적 효과가 있다. 여기서 LCD 는 한줄짜리 메시지를 출력하여 시각적인 효과를 극대화한다.

다음으로 우리 프로젝트와 다른 제품간의 차별성에 대해 말하자면, 첫 번째로, 우리는 다른 제품과는 다르게 모바일 장비를 사용하여 비쥬얼 프로그래밍을 수행한다. 그리고 우리는

Page 3: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

아동들의 시각, 청각, 촉각의 세 가지 감각의 발달을 돕기 위한 여러가지 요소를 만들었다.

그 요소 중에 하나가 특정 입력을 받게 되면 그에 따른 소리를 내게 하는데 이것은 아동의 청각을 돕기 위한 것이다.

그리고 다른 제품들이 만 8 세 이상인 것과는 다르게 우리 프로젝트는 주 사용 대상을 만 8세 이하로 정하고 있다. 그렇기 때문에 생긴 또 다른 차별성은 다른 제품의 러프한 UI 와는 달리 직관적이고 아동들에게 흥미를 유발할 수 있는 Design 을 구현하는 것이다.

[웹을 기반으로 하는 아동을 위한 프로그래밍 교육 시스템]

여러 개의 미션들이 모여 아이들이 프로그래밍을 하여 각각의 미션들을 성공해나갈 수 있도록 제작한 웹 프로그램 & 하드웨어.

일반적인 프로그래밍 언어에서 제공되는 반복문, 조건문, 함수, 연산문 등을 사용하여 각 미션에서 존재하는 캐릭터들을 최종 목적지로 이동시킬 수 있다. 각 미션들은 사실상 하나의 큰 이야기를 만들어나가는 각각의 단계로 아이들은 단순히 미션 하나하나를 맹목적으로 수행하는 것이 아니라 마치 소설을 읽는 것처럼 흥미 있게 진행할 수 있다. 웹 소프트웨어 뿐만 아니라 실제 하드웨어를 이용해 체험할 수 있는 것이 장점.

뿐만 아니라, 추가적으로 컴퓨터공학에서 다루는 쓰레드, 인터럽트 등의 개념들을 다룸으로써 수준이 뛰어난 아이들을 위해 좀 더 심도 있는 프로그래밍 교육 요소를 제공한다.

2 결과물 사양

2.1 결과물의 구성

본 졸업작품 프로젝트의 진행 과정에서 발생하는 주요 결과물의 구성은 다음과 같다.

단계 구분 결 과 물 결과물의 종류제안 문서 졸업작품 프로젝트 제안서 문서(20page)

분석

문서 요구사항 명세서 문서문서 기능 명세서 문서문서 Use Case 명세서 문서문서 Use Case 다이어그램 다이어그램

설계문서 모듈 설계서 문서문서 인터페이스 설계서 문서문서 어플리케이션 설계서 문서

구현소스코드 WISE+ 모듈 *.h / *.c 등실행파일 WISE+ 로봇 실행 파일 Binary실행파일 Android 어플리케이션 Android Apk

테스트문서 단위 테스트 설계서 문서문서 통합 테스트 설계서 문서문서 졸업작품 프로젝트 결과 보고서 문서

2.1.1 하드웨어 구성

Page 4: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

본 졸업작품 프로젝트의 결과물을 위해 필요한 하드웨어의 구성은 다음과 같다.

2.1.1.1Tablet, ATmega128, 블루투스 모듈, DC 모터 모듈, 인터페이스 모듈, USB 프로그램 다운로더, DC 모터, 모터전원 케이블, 10pin 케이블, 오프로드 바퀴, 오프로드 혼, 바퀴고정 볼트, 메인 프레임, 3x23 프레임, 10mm/30mm 지지대

2.1.2 소프트웨어 구성

본 졸업작품 소프트웨어는 Atmega128 이라는 마이크로프로세서에서 작동하는 펌웨어와 안드로이드 운영체제 하에서 작동한다.

그리고 아동들이 브라우저에서 프로그래밍을 할 수 있는 클라이언트 프로그램이 존재한다.

2.2 결과물 사양

2.2.1 하드웨어

2.2.1.1자동차

우리 팀은 www.probo.co.kr 에서 제공해주는 다음의 임베디드 장비를 기초로 개발을 시작한다.

Page 5: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

2.2.1.2모바일

우리는 다음의 모바일 장비로(갤럭시 탭 10.1 사용 예정) 아동들이 비쥬얼 프로그래밍을 할 수 있도록 한다.

2.2.2 소프트웨어

2.2.2.1Server

2.2.2.1.1 적용기술

2.2.2.1.1.1 DJango Framework

2.2.2.1.1.2 SQLite

2.2.2.1.1.3 Python, HTML5, CSS3

2.2.2.2Client

Page 6: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

2.2.2.2.1 브라우저 호환성

2.2.2.2.1.1 IE Browser 8.0 이상

2.2.2.2.1.2 Chrome Browser

2.2.2.2.2 적용 기술

2.2.2.2.2.1 Javascript, JQuery, Ajax, JSON

3 개발 방법

3.1 기술적 요구 사항

3.1.1 Tool-Chain

일반적으로, PC 상에서 실행되는 소프트웨어는 PC 상에서 개발하는 것과는 달리, 임베디드 소프트웨어는 타겟 보드 상에서 직접 소프트웨어를 개발하기가 불가능하기 때문에 타겟 보드용 소프트웨어, 즉 임베디드 소프트웨어는 결국 PC 상에서 개발해야 한다.

타겟 보드용 소스 코드를 컴파일하기 위한 크로스 컴파일러와 이때 필요한 시스템 라이브러리, 관련 유틸리티들을 한데 묶어 Tool-Chain 이라 한다. 임베디드 소프트웨어 개발 환경 중 가장 먼저 해주어야 할 것이 바로 ‘타겟 보드용 Tool-Chain을 설치 및 설정’해 주는 것이며 이를 ‘소프트웨어 개발 환경 구축’ 작업이라고 할 수 있다.

우리가 다루고자 하는 타겟 보드는 Atmega128 기반의 Processor 이며 하드웨어 개발 환경이다.

4 현재 구현한 기능 & 진행상황

4.1.1 현재 개발된 자동차의 사진

4.1.1.1스크린샷

4.1.1.1.1

Page 7: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

4.1.1.1.2

4.1.1.1.3

4.1.1.1.4

Page 8: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

4.1.1.1.5

4.1.1.1.6

4.1.1.1.7

4.1.1.2영상 링크

4.1.1.2.1 http://www.youtube.com/watch? v=bHBx8atrTpw&feature=youtu.be

4.1.1.2.1.1 이 영상에서 나오는 자동차의 움직임은, 배치된 도형(프로그래밍 된)을 따라서 움직이게 된다.

4.1.1.2.1.2 배치된 도형으로는 다음과 같다. 이 도형들을 조합하여 반복적인 움직임 패턴을 나타내었다.

Page 9: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

4.1.1.2.1.2.1전진

4.1.1.2.1.2.2우회전

4.1.1.2.1.2.3좌회전

4.1.1.2.1.2.4반복문

4.1.2 현재 개발된 CONOL 의 사진

4.1.2.1스크린샷

4.1.2.1.1

4.1.2.1.2

4.1.2.1.3

Page 10: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

4.1.2.1.4

4.1.2.1.5

4.1.2.1.6

4.1.3 개발 진행 모습

4.1.3.1AVR Studio 4 에서의 자동차 로직 관련 부분 코드

4.1.3.1.1

4.1.3.1.2

4.1.3.1.3

Page 11: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

4.1.3.2Eclipse 에서 안드로이드 애플리케이션의 로직 부분

4.1.3.2.1

4.1.4 도형의 종류

4.1.4.1도형 배치 예시

4.1.4.1.1

4.1.4.2자동차의 움직임 관련

4.1.4.2.1 전진 도형

4.1.4.2.1.1 인자 없음.

4.1.4.2.2 후진 도형

4.1.4.2.2.1 인자 없음.

4.1.4.2.3 우회전 도형

4.1.4.2.3.1 인자( 다음의 세 가지 중에 하나를 선택 )

4.1.4.2.3.1.190 도

4.1.4.2.3.1.2180 도

Page 12: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

4.1.4.2.3.1.3360 도

4.1.4.2.4 좌회전 도형

4.1.4.2.4.1 인자( 다음의 세 가지 중에 하나를 선택 )

4.1.4.2.4.1.190 도

4.1.4.2.4.1.2180 도

4.1.4.2.4.1.3360 도

4.1.4.2.5 정지 도형

4.1.4.2.5.1 인자 없음.

4.1.4.3연산 관련

4.1.4.3.1 적외선 센서를 통해서 사물을 만났을 때 참인 도형

4.1.4.3.1.1 도형의 이름 : 장애물을 만났을 때.

4.1.4.3.1.2 인자 없음.

4.1.4.3.2 적외선 센서를 통해서 사물을 안 만났을 때 참인 도형

4.1.4.3.2.1 도형의 이름 : 장애물을 만나지 않았을 때.

4.1.4.3.2.2 인자 없음.

4.1.4.3.3 컬러 센서를 통한 사물 종류 인식 도형

4.1.4.3.3.1 인자( 다음의 세 가지 중에 하나를 선택 )

4.1.4.3.3.1.1빨강

4.1.4.3.3.1.2초록

4.1.4.3.3.1.3파랑

4.1.4.3.4 스위치가 눌렸는지 안 눌렸는지를 인식하는 도형

4.1.4.3.4.1 인자 없음.

4.1.4.4제어 관련

4.1.4.4.1 IF 문 도형

4.1.4.4.1.1 인자

4.1.4.4.1.1.1연산이 들어감.

4.1.4.4.2 IF – ELSE 문 도형

4.1.4.4.2.1 인자

4.1.4.4.2.1.1IF 문 도형과 동일함.

4.1.4.4.3 WHILE 무한 반복문 도형

Page 13: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

4.1.4.4.3.1 인자 없음.

4.1.4.4.4 WHILE 상수 반복문 도형

4.1.4.4.4.1 인자

4.1.4.4.4.1.1상수 하나.

4.1.4.4.5 WHILE 조건 반복문 도형

4.1.4.4.5.1 인자

4.1.4.4.5.1.1연산 하나가 사용됨.

4.1.4.4.6 BREAK 문 도형

4.1.4.4.6.1 인자 없음.

4.1.4.5그 외 특수 기능

4.1.4.5.1 모바일에서 소리 나게 하는 도형.

4.1.4.5.1.1 인자(다음의 네 가지를 선택할 수 있음.)

4.1.4.5.1.1.1단순 멜로디.

4.1.4.5.1.1.2엄마 밥 주세요.

4.1.4.5.1.1.3엄마 용돈 주세요.

4.1.4.5.1.1.4아빠 집에 일찍 들어오세요.

4.1.4.5.2 LCD 로 메시지 출력하는 도형.

4.1.4.5.2.1 인자

4.1.4.5.2.1.1문자열을 직접 입력할 수 있는 EditText.

4.1.4.5.3 LED 를 켜는 도형

4.1.4.5.3.1 인자

4.1.4.5.3.1.13 가지의 LED종류( 왼쪽눈, 오른쪽눈, 후미등 )를 켤 수 있는 인자 선택.

4.1.4.5.3.1.1.1 0 : 왼쪽 눈

4.1.4.5.3.1.1.2 1 : 오른쪽 눈

4.1.4.5.3.1.1.3 2 : 후미등

4.1.5 사용할 기능 명세

4.1.5.1안드로이드 어플리케이션

4.1.5.1.1 도형

Page 14: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

4.1.5.1.1.1 자동차의 기본적인 움직임

4.1.5.1.1.1.1전진, 후진, 우회전, 좌회전, 정지

4.1.5.1.1.2 기본적인 움직임을 토대로 하는 확장된 움직임

4.1.5.1.1.2.1원 돌기

4.1.5.1.1.2.2장애물과 일정 횟수 충돌하기

4.1.5.1.1.2.3장애물을 반환점으로서 찍고 되돌아 오기

4.1.5.1.1.2.4우회해서 통과하기

4.1.5.1.1.2.5LED 깜박이기

4.1.5.1.1.2.6스피커로 단순 소리 내기

4.1.5.1.1.2.7LCD 로 아이에게 특정 메시지 출력하기

4.1.5.1.1.2.8제자리에서 회전하기

4.1.5.1.1.2.8.1 180 도 회전하기

4.1.5.1.1.2.8.2 360 도 회전하기

4.1.5.1.1.3특수 기능

4.1.5.1.1.3.1스피커를 통한 단음 출력

4.1.5.1.1.3.2LED 를 통한 빛 출력

4.1.5.1.1.3.3LCD 를 통한 메시지(문자열) 출력

4.1.5.1.1.4연산

4.1.5.1.1.4.1적외선 센서를 통한 거리 인식

4.1.5.1.1.4.2컬러 센서를 통한 사물의 종류 인식

4.1.5.1.1.4.3내부적인 논리 연산

4.1.5.1.1.4.3.1 <, >, =, AND, OR, NOT

4.1.5.1.1.5 제어

4.1.5.1.1.5.1IF 문

4.1.5.1.1.5.1.1 단순 IF 문

4.1.5.1.1.5.1.2 IF - ELSE 문

4.1.5.1.1.5.2WHILE 문

Page 15: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

4.1.5.1.1.5.2.1 무한 반복문

4.1.5.1.1.5.2.2 상수 반복문

4.1.5.1.1.5.2.3 조건부 부분에 연산문이 사용된 반복문

4.1.5.1.1.5.3BREAK 문

4.1.5.2자동차

4.1.5.2.1 적외선 센서 모듈

4.1.5.2.1.1 자동차의 전방에 장애물의 존재 유무 파악

4.1.5.2.2 컬러 센서 모듈

4.1.5.2.2.1 장애물의 색상 파악(종류 파악)

4.1.5.2.3 시작 스위치

4.1.5.2.3.1 이 스위치를 누르면 자동차가 움직임이 실행된다.

4.1.5.3미션의 기본적인 논리 단위

4.1.5.3.1 원 돌기

4.1.5.3.2 네모 돌기

4.1.5.3.3 사물 충돌하기

4.1.5.3.4 장애물을 반환점으로서 찍고 되돌아 오기

4.1.5.3.5 우회해서 통과하기

4.1.5.3.6 LED 깜박이기

4.1.5.3.7 모바일에서 스피커로 단순 소리 내기

4.1.5.3.7.1 모바일에서 소리 내기 블록을 배치한 후 녹음 버튼을 누른 후, 녹음을 하고서 실행을 하면, 그 녹음한 소리가 나게 하는 것 되게 하기.

4.1.5.3.8 LCD 로 아이에게 특정 메시지 출력하기

4.1.5.3.9 제자리에서 회전하기

4.1.5.3.9.1 90 도 회전하기

4.1.5.3.9.2 180 도 회전하기

4.1.5.3.9.3 360 도 회전하기

4.1.5.4미션의 예시

Page 16: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

다음과 같이 미션을 구성할 것이다.

4.1.5.4.1 빨간색 구렁이를 만나면 사람들에게 소리를 내서 위험을 알리고, 자동차로 구렁이를 한 번 때립니다. 그리고 우회해서 피해갑니다.

4.1.5.4.2 파란색 친구를 만났습니다. 반가움의 표시로 친구를 한 바퀴 돌고 LED 2 개를 깜빡여서 반갑다는 인사로 눈을 깜빡이며 즐거움을 표시합니다. 이것을 2 번 반복합니다.

4.1.5.4.2.1 만약 원을 돌면서 반가움을 표시하는 중에 싫어하는 빨간색 친구를 만났다면 소리를 내서 친구를 쫓아냅니다.

4.1.5.5미션의 성공 여부

4.1.5.5.1 안드로이드 어플리케이션에서 판단하며, 성공한 경우에만 다음 번 미션을 위해 이야기를 계속해서 진행한다.

4.1.6 프로콜과 그 예시

4.1.6.1개략적인 프로토콜 관련 문자

4.1.6.1.1 ! : 반복문의 끝.

4.1.6.1.2 # : 반복문의 시작.

4.1.6.1.3 / : 조건문의 시작

4.1.6.1.4 | : 조건문의 else 부분 시작

4.1.6.1.5 @ : 조건문의 끝.

4.1.6.1.6 $ : break 문.

4.1.6.1.7 ^ : 도형이 sequence 로 번역된 문자열들의 끝을 나타내기 위한 문자.

4.1.6.1.8 *: 모듈을 구분하기 위한 문자.

4.1.6.2모듈 관련

0. 전진(goFoward) ex) *0

1. 후진(goBack) ex) *1

2. 우회전(turnRight) ex)*2(0) , *2(1), *2(2)

A. 각도

i. 0. 90 도

Page 17: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

ii. 1. 180 도

iii. 2. 360 도

3. 좌회전(turnLeft)

A. 우회전과 동일

4. 정지(stop) ex)*4

A. 시간 : 3초

5. 소리(sound) ex)*5(1~3)

A. 사운드 종류 : 1~3 번

6. LED(led) ex)*6(0~2)

A. LED 부위

i. 왼쪽눈

ii. 오른쪽눈

iii. 후미등

7. LCD(lcd) ex)*7(line1)

A. LCD Line1 문자열

B. 시간 : 5초

8. 스위치

A. 무한 정지 ex)*8

4.1.6.3조건 연산에 들어가는 적외선과 컬러 정의. { } <- 이 부분 안에 들어갈 기호.

4.1.6.3.1 적외선센서 ex)`0, `1

4.1.6.3.1.1 `n

4.1.6.3.1.1.1장애물을 안 났을 경우 : `0

4.1.6.3.1.1.2장애물을 만났을 경우 : `1

4.1.6.3.2 컬러센서

4.1.6.3.2.1 _n

4.1.6.3.2.1.1N 이 0 이면 빨강. 센서에 의해서 빨강색이면 true 를 반환한다.

Page 18: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

4.1.6.3.2.1.21 이면 초록

4.1.6.3.2.1.32 이면 파랑

4.1.6.4기타 기호들

조건문.

각 조건문 시작과 끝에 번호를 메김.

레벨에 따라 번호가 다르며 가장 바깥쪽의 연산문이 1 레벨.

Ex) #1(4) *0 /2{`0} *2(0)*5(2) |2 *3(1) @2 !1

If : /n @n *** n 은 상수 ***

If-else : /n |n @n

반복문

레벨에 따라 번호가 다르며 가장 바깥쪽의 연산문이 1 레벨.

While : #n !n

While 문은 단순 반복과 조건 반복의 2종류로 나뉜다.

#n(n)

#n{ } |n !n

#nI !n

기타 제어문

Break : $

End : ^

4.1.6.5 전체적인 예시

#( 3 ) *0(3)(1) /{a<3} *1(4)(0)*8(a+)| *2( 1 )$ @ /{a>10} #{a=12}*9(a+3) ! @ #{b<7}*8(b-) ! !

4.1.7 AVR Studio

Page 19: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

블루투스 로봇 안에 들어가는 코드는 AVR STUDIO 라는 오픈소스 프로그램을 이용한다. AVR STUDIO 는 atmel 회사에서 만든 프로그램으로 Host PC 에서 소스를 크로스 컴파일하여 임베디드 보드에서 프로그램이 동작하는 환경을 제공한다.

4.1.8크로스 컴파일

크로스 컴파일은 컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일 방법이다. 이것은 운영체제를 지원하지 않는 마이크로컨트롤러와 같이 컴파일이 실현 불가능한 플랫폼에 컴파일하는데 사용된다.

AVR STUDIO 에서는 크로스 컴파일러로 WINAVR 을 사용한다. 사용자가 간단히 모터와 센서 관련 API 를 사용하여 코드를 생성하면 WINAVR 이 컴파일하여 AVR 에 다운로드 해주는 프로그램이다. 매우 간단하면서 편리하게 구성되어 있다.

4.1.9 코드 해석 알고리즘

어플리케이션에서 블루투스를 이용해 전송된 코드는 차량 내의 Buffer 에 저장된다. 블루투스 전송이 완료되면 Buffer 내에는

‘char buffer[1024] = #1(2) *0 *2(0) !1’

위와 같이 중간 코드가 저장된다. 무사히 전송 되었다면 해석 알고리즘에 의해 차량이 동작을 수행한다.

해석 알고리즘에 의해 정의한 동작을 한 단위로 하여 프로그램이 동작하고 다시

Page 20: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

버퍼를 읽어 다음 동작을 수행한다. 모든 동작을 수행하고 포인터가 버퍼의 마지막을 가르킬 경우 프로그램을 종료한다.

4.2 개발 방법

본 팀은 SASD(Structured Analysis & Structured Design) 설계 방식을 사용하여 이 시스템을 개발한다. SASD 방법은 분할&정복(Divide & Conquer)방식을 사용하여 큰 범위의 문제를 작은 범위로 쪼개어 해결해 나간다. 그리고 Top-down 접근 방식을 사용하며 그림 중심의 표현, 그리고 데이터의 흐름과 상태 기반의 설계 방식을 따른다. 이것은 임베디드 시스템과 같은 실시간 프로그램 설계에 적합하므로, 이 방식을 선택하게 되었다.

SASD 설계 방식은 SA(Structured Analysis)가 끝났을 때 설계 검증을 수행하고, SD(Structured Design)이 끝나면 비로소 종합적인 검증을 수행하게 된다.

5 개발 중 장애요인과 해결방안

본 졸업작품 프로젝트의 진행 과정에서 프로젝트의 성공 여부와 결과물의 품질에 영향을 줄 수 있는 위험요인을 미리 예측하고 이를 해결하는 일은 매우 중요하다. 따라서 본 졸업작품 팀은 위험요소 관리(Risk Management)를 통해 프로젝트 진행 과정에서 예상되는 장애요인을 식별하고 분석하여 이에 대한 대응 계획을 수립하였다.

구분

위험 식별(Identification) 위험 분석(Analysis) 위험 계획(Planning)

발생한 장애요인(Risk) 가능성 영향 해결방안

프로젝트 진행

팀원들과의 의사소통 부족으로 인한 비효율과 역할 분담 후 시스템 통합 및 구축 시 어려움 발생

높음 높음성공적인 프로젝트 관리와 효율적인 결과물 개발을 위해 소프트웨어 개발 방법론 도입

졸업작품 프로젝트 규모의 과소 평가로 인한 개발 시 어려움 발생 중간 허용

각 요구사항에 대한 충분한 사전 조사와 프로젝트 일정관리를 통해 부분적으로 해결 가능

하드웨어

프로젝트에 필요한 하드웨어 장비/부품에 물리적인 결함, 불량 발생 중간 치명적

관련 제조/부품 업체 비상연락망을 통해 문제 발생 시 즉각적인 대응조치 가능

로봇에 부착된 컬러 센서가 색상을 잘 인식하지 못하는 문제 발생 중간 높음 센서 제어 또는 조명 제거, 색상

변환 등을 통해 해결 가능

개발

C 언어와 AVR Studio 4 사용 미숙으로 인한 마이크로프로세서와 로봇 모듈 개발 시 어려움 발생

중간 허용개발 시 사전 충분한 교육과 개발 능력 향상을 통해 해결 가능

6 단계별 개발 계획

6.1 업무와 내용

업무

내용결과물

Page 21: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

T1 시스템의 목적과 수행해야 할 기능, 그리고 제약조건 분석 요구사항 명세서

T2 자동차의 블루투스 모듈과 모바일 장비와의 블루투스 통신 분석

T3 자동차에 장착된 Sensor 와 Actuator 분석

T4 사용되어질 API 함수 분석 System Context DiagramT5 자동차 내부 또는 외부에서 전달되는 데이터 종류와 이동방향 분석

T6 모바일 장비와 블루투스 모듈 간에 전달되는 데이터 흐름 분석

T7 구현되어질 사용자 정의 함수 분석 Data Flow DiagramT8 자동차가 가질 수 있는 상태 종류 파악.T9 자동차의 각 상태들의 상태 전이도 작성. State Transition DiagramT10 이전까지 수행했던 분석 결과를 통합&검증

T11 개발 계획서 작성 개발 계획서

T12 Eclipse & Android SDK 구축과 자료구조 & 모듈 설계

T13 각 모듈의 Module Call 관계 분석Structured Chart

T14 자동차에 작성되는 소프트웨어 구현

T15 모바일 장비에 작성되는 소프트웨어 구현

T16 자동차와 모바일 장비의 소프트웨어 통합 구현 소프트웨어 소스코드

T17 시스템 검증 및 최적화

T18 결과 보고서 작성 결과보고서

6.2 업무와 기간

SASD SASD 세부사항 업무 기간 종속성

Structured Analysis

요구사항 분석 T1 5/27 ~ 5/30

외부시스템과 상호작용하는 입출력 장치 분석

T2 6/2 ~ 6/6 T1(M1)T3 6/7 ~ 6/12 T2(M2)T4 6/13 ~ 6/18 T3(M3)

각 모듈간에 전달되는 데이터 흐름 분석

T5 6/19 ~ 6/21 T4(M4)T6 6/22 ~ 6/24 T5(M5)T7 6/25 ~ 6/26 T6(M6)

상태 전이 분석T8 6/27 T7(M7)T9 6/28 T8(M8)

설계 검증T10 6/29 ~ 6/30 T9(M9)T11 5/27 ~ 6/31

개발환경 구축 T12 7월 4 째주 T10,T11(M10)

Structured Design

각 모듈간의 구조적 분석 T13 7월 5 째주 T12(M11)

설계 구현

T14 8월 1 째주 ~ 10월 2 째주

T13(M12)

T15 8월 1 째주 ~ 10월 2 째주

T13(M12)

T16 10월 3 째주 ~ T14,T15(M1

Page 22: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

10월 4 째주 3)

검증 종합 검증T17 8월 1 째주 ~

11월 1 째주T13(M12)

T18 11월 2 째주 T18(M14)

6.3 Activity Network

6.4 일정 차트

Page 23: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2014/14CD2/28/졸업작품... · Web view본팀의 프로젝트의 진행 배경에 대해서 설명하자면, 불과 대략 3~40년전까지만

작품 제목 : CONOL 2014/10/31

7 참여인원과 업무 분담

이 름 학 번 역 할 업무분담정 용 겸 200811455 팀 장 1. 차량 내부 해석 알고리즘 구현.

2. 하드웨어 부품 선정김 진 철 200811421 팀 원 1. 차량 내부 해석 알고리즘 구현

2. 하드웨어 부품 선정조 원 진 200811458 팀 원 1. 코드 생성 알고리즘 구현

2. 안드로이드 UI 개발