1. 2015 스마트디바이스지능통신 중간 고사(100)
Smart Device M2M
Date: 2015-04-29
1. Wearable Device의 최근 Trend를 이끌고 있는 중요 제품으로 Smartwatch
가 있습니다. Smartwatch로 할 수 있는 응용을 2가지 이상 자유롭게 논술하
시오. (20)
- u-Health Device: Smartwatch에 가속 센서와 심박계 등을 장착하여 사용자
의 기초적인 건강 정보를 획득하여, 이 정보를 분석하여 건강 정보를 축적함
- Smartphone 정보 알리미: Bluetooth를 이용하여 Smartphone을 꺼내지 않
고도 통화, 문자, 앱의 알림 정보 등을 알 수 있도록 Smartwatch에 표시함
2. Serial Communication에 대해 답하시오. (40)
1) 매우 오래된 통신 방식인 Serial Communication이 현재에도 광범위하게
쓰이는 이유를 3가지 이상 서술하시오. (20)
- 범용성: 오랜 역사를 가진 통신 방식이므로 광범위한 장비에서 기초적인
Protocol로 Serial을 지원함
- 단순성: 통신 장비를 2선으로 연결만 하더라도 신호 송수신이 가능하므로
통신 설정에 필요한 HW가 매우 단순함
- 저가격: 매우 많은 장비에서 사용되고 있으므로 대량 생산이 가능하여
Serial을 구현할 때 필요한 소자 가격이 매우 낮음
2) Data를 8bits로 Encoding하고 마지막에 Odd Parity를 붙인다. 다음 두 가
지 경우에 대해 적절한 Parity Bit를 붙이고 설명하라. (20)
- 10101010(?)
- 11010111(?)
- 101010101: 8bits Data가 표현하는 1의 개수가 4이므로 마지막에 단순히 1
2. 만 붙여 전체 9bits의 1의 개수가 홀수가 되도록 한다.
- 110101111: 8bits Data가 표현하는 1의 개수가 6이므로 마지막에 1을 추가
로 붙여 전체 9bits의 1의 개수가 홀수가 되도록 한다.
3. Arduino A와 B를 이용하여 Serial Communication을 구현한다고 가정한다.
Arduino A의 Tx는 D11, Rx는 D10으로 설정하고, Arduino B도 동일하게 Tx
D11, Rx D10으로 설정한다. (40)
- SoftwareSerial 변수를 정의하고 getSerialInput, getToken 등을 사용하라.
- setup과 loop 함수만 사용해 작성하라.
1) Arduino A와 B 사이에서 “Smart”를 수신하면 “Device”를 자동으로 송신하
는 Code를 작성하라. (10)
#include <SoftwareSerial.h>
#include <myString.h>
SoftwareSerial myPart(10, 11);
void setup() {
myPart.begin(9600);
}
void loop() {
String sInput = getSerialInput(myPart);
if (sInput == “Smart”) myPart.print(“Device”);
delay(100);
}
2) Arduino A(송신)에서 Arduino B로 “turnon”을 송신하면, Arduino B(수신)의
D3에 연결된 LED가 켜지고, “turnoff”가 송신되면 Arduino B의 D3 LED가 꺼
지는 Code를 Arduino A(송신), B(수신)에 대해 각각 작성하라. (30)
Arduino A를 위한 Code Arduino B를 위한 Code
#include <SoftwareSerial.h> #include <SoftwareSerial.h>