본문 바로가기

연구 노트/Embedded

[Modulabs] 2020년 임베디드랩 시즌1 마지막 프로젝트

모두의 연구소 임베디드 랩 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일)에서 결과물을 공유한다.
  • 결과물의 동작되는 모습을 블로그에 게시하도록 한다.