[NCS 임베디드 SW엔지니어링] 펌웨어설계 실습
과정명 | IoT기반 융합 SW 개발자 양성과정 | ||
과목명 | 펌웨어설계(2001020312_16v3 ) | 요소명 | 하드웨어 테스트 SW 설계 |
수행일자 | 2018년 02.01 | 훈련생 |
|
수행과제 |
아두이노 보드에 하드웨어(쉴드 혹은 모듈)를 연결하여 사용하려고 한다. 해당 하드웨어가 정상적으로 동작하는지 판별하기 위해 태스크(스케치)를 어떻게 작성해야 하는지 설명하시오. 테스트 하기 위한 환경 제시(1점), 테스트 코드의 설정에서 해야 할 일 명시(1점), 테스트 코드의 Loop에서 해야 할 일 명시(2점), 각 상황에 따라 오류 판별(1점) jejutour@daum.net 메일로 2018년 2월 09일까지 제출하시오. |
과제를 통해 확인할 능력 사항 |
- 정의된 순서에 따라 하드웨어 테스트 모듈을 결정할 수 있다. - 하드웨어의 기능 항목별로 테스트 코드를 지정할 수 있다. - 정의된 기능 항목별 테스트 코드에 따라 하드웨어 초기화 절차 및 동작 여부를 확인하는 절차를 설계할 수 있다. |
수행결과 |
|
실험: 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를 출력하지 않는다면 오류가 발생한 것입니다.
'언어 자료구조 알고리즘 > 프로그래밍 실습' 카테고리의 다른 글
[NCS 응용SW 엔지니어링 실습] 애플리케이션 구현 - 단위 테스트 (0) | 2018.03.27 |
---|---|
[NCS 임베디드 SW엔지니어링] 임베디드 애플리케이션 구현 실습 (0) | 2018.03.19 |
[NCS 실습, SW아키텍처] SW아키텍처 설계하기 (0) | 2018.03.17 |
[NCS 임베디드 SW엔지니어링] 임베디드 애플리케이션 설계 (0) | 2018.03.14 |
[NCS 임베디드 SW엔지니어링] 펌웨어 구현 환경 구축 (0) | 2018.03.05 |
[NCS 임베디드 SW엔지니어링] 펌웨어분석 실습 (0) | 2018.01.29 |
[NCS 임베디드 SW엔지니어링] 오픈 플랫폼 활용 실습 (0) | 2018.01.14 |
[NCS 임베디드 SW엔지니어링 실습] 하드웨어 분석 - 시험 요구사항 도출하기 (0) | 2018.01.06 |
[NCS 임베디드 SW엔지니어링 실습] 하드웨어 분석 - 하드웨어 자료 수집하기 (0) | 2018.01.06 |
[DB 활용 실습] 동적으로 테이블 생성 및 활용 (0) | 2017.12.28 |