언어 자료구조 알고리즘/프로그래밍 실습

[NCS 임베디드 SW엔지니어링] 펌웨어설계 실습

언제나휴일 2018. 2. 6. 11:45
반응형

[NCS 임베디드 SW엔지니어링] 펌웨어설계 실습


과정명

IoT기반 융합 SW 개발자 양성과정

과목명

펌웨어설계(2001020312_16v3 )

요소명

하드웨어 테스트 SW 설계

수행일자

201802.01

훈련생

 

 

수행과제

아두이노 보드에 하드웨어(쉴드 혹은 모듈)를 연결하여 사용하려고 한다. 해당 하드웨어가 정상적으로 동작하는지 판별하기 위해 태스크(스케치)를 어떻게 작성해야 하는지 설명하시오.

테스트 하기 위한 환경 제시(1), 테스트 코드의 설정에서 해야 할 일 명시(1),

테스트 코드의 Loop에서 해야 할 일 명시(2), 각 상황에 따라 오류 판별(1)

jejutour@daum.net 메일로 2018209일까지 제출하시오.

과제를 통해 확인할 능력 사항

- 정의된 순서에 따라 하드웨어 테스트 모듈을 결정할 수 있다.

- 하드웨어의 기능 항목별로 테스트 코드를 지정할 수 있다.

- 정의된 기능 항목별 테스트 코드에 따라 하드웨어 초기화 절차 및 동작 여부를 확인하는 절차를 설계할 수 있다.

수행결과

 

 

 

펌웨어 설계 실습.hwp

펌웨어 설계 실습 예.hwp


수행 결과 예

실험: HC06을 이용한 통신

- 테스트 환경

1. 아두이노 보드

2. 테스트 대상 모듈 또는 쉴드 (이번 수행에서는 HC06 모듈 사용)

3. 아두이노 IDE

 

- 테스트 코드의 설정에서 해야 할 일

테스트를 위해 하드웨어의 Document 또는 Datasheet에 명시된 기능이나 값 범위를 확인하여 스케치를 작성하여야 한다.


setup은 태스크 실행 초반에 단 한 번 수행하는 코드로 설정을 담당합니다.

HC06은 시리얼 통신을 사용하므로 통신 속도를 설정합니다. (HC06은 기본값으로 9600 baudrate를 사용하므로 이에 맞게 설정합니다.)

#include <SoftwareSerial.h>

SoftwareSerial us(3,2);

void setup(){

us.begin(9600);

Serial.begin(9600);

}

- 테스트 코드의 Loop에서 해야 할 일 명시

loop 메서드는 주기적으로 해야 하는 일을 작성하는 부분입니다. 여기에서는 HS06에서 수신한 것을 Serial로 보내는 것과 Serial이 수신한 것을 HS06으로 보내는 것을 반복하는 작업을 수행하게 작성하였습니다.

void loop(){

if(us.available()){

Serial.write(us.read());

}

if(Serial.available()){

us.write(Serial.read());

}

}

- 각 상황에 따라 오류 판별

datasheet 1번 기능의 테스트로 OK를 출력하면 성공한 것입니다.

만약, OK를 출력하지 않는다면 오류가 발생한 것입니다.

반응형