모두의 연구소 임베디드 랩 2020년 시즌1 모임의 마지막 프로젝트를 위한 요구사항 명세서입니다. 이 프로젝트는 공개강좌인 Embedded Systems - Shape The World의 15장 내용을 참고하여 진행합니다. 충분한 시간을 가지지 않고 진행하는 것이라 부족한 점이 있을 수 있습니다. 그럼에도 도움이 될 수 있는 경우가 있을 수 있기에 내용을 공유합니다.
이 글에서 소개하는 요구사항 명세서 양식은 앞서 알려드린 강좌의 7장 (Design and Development) 내용을 살펴보시면 상세히 알 수 있습니다.
요구사항 명세서
1. 개요
1-1. 목적
- 임베디드랩 2020년 시즌1을 마감하며 이제까지 배웠던 기술을 하나의 시스템에 통합해본다.
- 통합되는 기술을 나열하면 아래와 같다.
- 디지털 입력
- 아날로그 입력(아날로그-디지털 변환)
- 직렬 통신
- 인터럽트
- 디스플레이 제어
1-2. 절차
- 최종 실습을 7장에 소개된 설계 및 개발 프로세스를 따라서 구현한다.
1-3. 역할과 책임
- 각 연구원들은 정해진 시간 내에 구현하도록 한다.
- 각 연구원들은 각자 구현한 결과물 및 구현 과정을 임베디드 랩 인원들에게 공개한다.
1-4. 기존 시스템과 상호작용
- 각 모듈은 시즌1에서 실습한 예제를 바탕으로 구현할 수 있다.
- 디지털 입력을 위해 푸시 스위치를 사용한다.
- 아날로그 입력을 위해 가변 저항을 사용한다.
- 디스플레이는 Nokia 5110을 사용한다.
- 개발 보드와 LCD 디스플레이 사이의 통신 방식은 SSI(SPI)를 사용한다.
1-5. 용어
- 스프라이트: 화면 내에서 움직일 수 있으며 사라지기도 하는 가상 엔티티(entity)이다. 게임에서 모선과 침략자, 탄환이 스프라이트에 해당된다.
1-6. 보안
- 해당사항 없음
2. 기능 명세
2-1. 기능
- 스페이스 인베이더를 모사한 게임이다.
- 가변 저항을 이용해 모선의 위치를 제어할 수 있다.
- 모선은 화면 내 좌우 방향으로만 움직일 수 있다.
- 푸시 스위치를 누르면 인터럽트를 감지해 침략자들을 향해 총알이 발사하는 듯한 효과가 나타난다.
- 푸시 스위치를 누르면 LED에 켜진다.
- 스프라이트는 주기적인 인터럽트에 따라 움직이도록 한다.
- 모선과 스프라이트의 움직임은 LCD 화면에 표시한다.
2-2. 범위
- 이 프로젝트를 제어 모듈, 출력 모듈, 게임 엔진 모듈로 나눈다.
- 이 중 제어 모듈과 출력 모듈을 구현하는 데 집중하도록 한다.
- 첫째 주에는 제어 모듈을 구현한다.
- 둘째 주에는 출력 모듈을 구현한다.
- 마지막에는 제어 모듈과 출력 모듈을 통합한다.
2-3. 프로토타입
- 각 모듈을 테스트할 수 별도의 프로그램을 만들도록 한다.
- 제어 모듈 프로토타입은 푸시 스위치와 가변 저항의 입력이 정상적으로 읽히는지 확인할 수 있어야 한다.
- 출력 모듈 프로토타입은 모선과 스프라이트 이미지를 디스플레이에 출력할 수 있어야 한다.
2-4. 성능
- 게임 조작에 방해가 되지 않는 선에서 사용자 입력이 화면에 출력되어야 한다.
2-5. 사용성
- 이 시스템 인터페이스는 아래와 같다.
인터페이스 요소 | 설명 |
---|---|
푸시 스위치 | 1회 누를 때 총알이 하나 발사된다. LED가 켜진다. |
가변 저항 | 모선의 위치를 좌우로 제어할 수 있다. |
디스플레이 | 게임의 내용을 출력하는 역할을 한다. |
2-6. 안전
- 게임 조작 시 감전되는 일이 없도록 한다.
3. 결과물
3-1. 보고서
- 시스템의 목적과 기능을 설명하는 최종 보고서를 블로그에 게시하도록 한다.
3-2. 평가
- 다른 사람이 이 개발 상홍을 알 수 있도록 카카오톡 단톡 방이나 블로그에 공유하도록 한다.
3-3. 결과
- 마지막 모임(11월 25일)에서 결과물을 공유한다.
- 결과물의 동작되는 모습을 블로그에 게시하도록 한다.
'연구 노트 > Embedded' 카테고리의 다른 글
[TM4C] GPIO 초기 설정 방법 해설 (0) | 2020.11.22 |
---|---|
CCS 프로젝트 include 경로 설정 (4) | 2020.11.18 |
[TM4C] TivaWare 프로그래밍 모델 (0) | 2020.11.02 |
[TM4C] TI사에서 제공하는 예제 프로젝트 추가하기 (0) | 2020.10.19 |
[TM4C] Code Composer Studio 프로젝트 만들기 (0) | 2020.10.19 |