5. SM5에서 사용된 디바이스
사용자가 해야
하는 활동 표시.
Guide 역할.
Text LCD
왕복 미션
카운터 표시.
LED
숫자 입력 표시.
7-Segment
Display
알람 요일 설정.
Dip Switch
Dot Matrix
전광판의 흐르는
문자 효과 및
온도 출력.
Keypad
사용자의 input
값 인지.
Piezo
알람 소리 출력.
6. Arduino에서 사용된 디바이스
사용자가 해야
하는 활동 표시.
Guide 역할.
Temperature
Sensor
Relay
커피포트에
전원 공급.
숫자 입력 표시.
Sound
Sensor
Open
Detector
문이나 창문이
열렸는지 감지.
SM5-아두이노
왕복 미션을 위
한 인식.
Switch
Light
Sensor
방의 밝기를
확인.
LED
왕복 미션에서
다음 터치해야
할 버튼 표시.
7. 패킷 구성도 - 제어
0
1
2
Start
0x76
3
4
5
ID
0x00
0x10
6
7
8
Data
0x00
Motor
Directio
n
Motor
Speed
Check Sum
ElecSW
& Buzzer
LED
Check Sum
7 bits 로
축소
0
1
2
Start
0x76
3
ID
0x00
0x10
4
5
Data
0x00
ElecSW
& Buzzer
6
Check Sum
LED
Check Sum
8. 패킷 구성도 - 센서
0
1
2
3
Start
0x76
4
ID
0x00
0x20
5
6
7
8
Data
0x00
Sensor
0
Check Sum
0
0
Check Sum
비트
7 bits 로
축소
7 6
5
4
3
2
1
0
명칭
0 0
Temp
Switch
Open Detect
Motion Detect
Light
Sound
0
1
2
Start
0x76
3
4
ID
0x00
0x20
5
6
Data
0x00
Sensor
Check Sum
0
Check Sum
비트
7 6
5
4
3
2
1
0
명칭
0 0
Temp
Switch
Open Detect
- Door
Open Detect
Light
Sound
Window
9. 패킷 구성도 – 송신 패킷
0
1
2
Start
3
4
5
6
7
ID
8
9
10
11
Data
12
Check Sum
0x76
0x00
0x21
0x00
Sound
Sound
Light
Light
Motion
Detect
Open
Detect
Switch
Temp
Check Sum
0
1
2
3
4
5
6
7
8
9
10
11
12
Start
0x76
0x00
ID
0x21
Data
0x00
Sound
Sound
Light
Light
Open
Detect
- Door
Check Sum
Open
Detect
Window
Switch
Temp
Check Sum
10. 핀 번호 변경사항
기존 핀 번호
현재 핀 번호
Buzzer
40
Buzzer
41
Electronic
Switch
38
Electronic
Switch
38
Open
Detector
3
Open
Detector
0, 15
Light
A1
Light
3
Temp
A2
Temp
A2
Sound
A0
Sound
6
11. 시간설정 및 요일 설정
알람 울림
창문 열고 불 켜기
Mission1: 흐르는 숫자 맞추기
Mission2: 소리 지르기
Mission3: 왕복하면서 버튼 누르기
다시 자는지 확인
온도 출력, 릴레이를 이용한 마무리
시나리오와 시연.
12. 1. 시간설정 및 요일설정
Text LCD
“Set Morning Call”
문구 출력.
7-Segment
Display
설정 시간 표시.
AM/PM, 시간, 분
순으로 표시.
Set Morning Call
AM/
PM
Hour
Min
13. 1. 시간설정 및 요일설정
Dip Switch
Keypad
On 된 Switch 에 따라
서 알람 활성 요일 설
정.
버튼을 이용하여 시간
변경. Set 버튼 클릭
시 세그먼트를 깜빡이
고 버튼 Lock.
목
토
Hour
+1
Min
+1
Min
+10
Change
화
Change
Hour
-1
Min
-1
Min
-10
Init.
Seg.
Set
AM/PM
AM/PM
월
수
금
일
15. 3. 창문 열고 불 켜기
Text LCD
Open the window
Bright your room
문구 출력.
Open the window
Bright your room
Activate
Open Detector, Light Sensor
ADK로 패킷 전송
16. 3. 창문 열고 불 켜기
Activate
Open Detector, Light Sensor
ADK로 패킷 전송
Target 으로 패킷 전송
Data of
Open Detector, Light Sensor
Processor
패킷을 받아 센서들
활성화.
Open Detector
(for window)
창문이 열리는지에 대
한 데이터 전송.
Light Sensor
방 안의 조도를 체크하
여 데이터 전송.
17. 3.창문 열고 불 켜기
Processor
송신 패킷을 통해 방의
불이 켜졌는지, 창문이
열렸는지 확인.
시간초과 시
2. 알람 울림
으로 돌아감
조건을
만족하면
다음 step.
Target 으로 패킷 전송
Data of
Open Detector, Light Sensor
18. 4. Mission1: 흐르는 숫자 맞추기
Text LCD
Mission1
Press numbers
문구 출력.
Mission1
Press numbers
Open Detector
(for window)
임의의 숫자 데이터 6
자리를 우->좌로 흐르
게 하여 디스플레이.
3
7
1
5
2
19. 4. Mission1: 흐르는 숫자 맞추기
7-Segment
Display
키패드를 통해 입력하
는 숫자 디스플레이.
숫자
입력시
Back
space
Keypad
임의의 숫자 데이터 6
자리를 우->좌로 흐르
게 하여 디스플레이.
1
2
3
4
5
6
7
8
9
0
Backs
pace
Set
20. 5. Mission2: 소리 지르기
Text LCD
Mission2
Make some noise
문구 출력.
Mission2
Make some noise
Activate
Sound Sensor
ADK로 패킷 전송
21. 5. Mission2: 소리 지르기
Activate
Sound Sensor
ADK로 패킷 전송
Processor
Sound Sensor
Target 으로 패킷 전송
Data of
Sound Sensor
패킷을 받아 센서
활성화.
주변 소리 크기에 대한
데이터 전송.
22. 5. Mission2: 소리 지르기
Processor
일정 수준 이상의 소
리가 들렸는지
확인.
시간초과 시
2. 알람 울림
으로 돌아감
조건을
만족하면
다음 step.
Target 으로 패킷 전송
Data of
Sound Sensor
23. 6. Mission3: 왕복하면서 버튼 누르기
Text LCD
Mission3
Press buttons
문구 출력.
Mission3
Press buttons
Activate
Button, LED
ADK로 패킷 전송
24. 6. Mission3: 왕복하면서 버튼 누르기
Activate
Button, LED
ADK로 패킷 전송
Processor
Button
Target 으로 패킷 전송
Data of
Button
LED
패킷을 받아
버튼, LED 활성화.
주변 소리 크기에 대한
데이터 전송.
다음 눌러야 할 버튼
위치의 LED 표시.
25. 6. Mission3: 왕복하면서 버튼 누르기
Processor
송신 패킷을 통해 정해
진 위치의 버튼들이 눌
렸는지 확인.
시간초과 시
2. 알람 울림
으로 돌아감
조건을
만족하면
다음 step.
Activate
Button, LED
ADK로 패킷 전송
Target 으로 패킷 전송
Data of
Button
26. 7. 다시 자는지 확인.
Text LCD
checking light..
checking door..
문구 출력.
checking light..
checking door..
Activate
Open Detector, Light Sensor
ADK로 패킷 전송
27. 7. 다시 자는지 확인.
Activate
Open Detector, Light Sensor
ADK로 패킷 전송
Target 으로 패킷 전송
Data of
Open Detector, Light Sensor
Processor
Open Detector
(for Door)
Light Sensor
패킷을 받아
센서들 활성화.
문이 열렸는지에 대한
데이터 전송.
불이 꺼졌는지 확인.
28. 7. 다시 자는지 확인.
Processor
송신 패킷을 통해 불이
켜져 있는지 확인.
방문이 열리면 무조건
만족.
시간초과 시
2. 알람 울림
으로 돌아감
조건을
만족하면
다음 step.
Target 으로 패킷 전송
Data of
Open Detector, Light Sensor
29. 8. 온도 출력, 릴레이를 이용한 마무리
Text LCD
Good Morning!
문구 출력.
Good Morning!
Activate
Temperature Sensor
ADK로 패킷 전송
30. 8. 온도 출력, 릴레이를 이용한 마무리
Activate
Open Detector, Light Sensor
ADK로 패킷 전송
Target 으로 패킷 전송
Data of
Temperature Sensor
Processor
Temperature
Sensor
패킷을 받아
센서들 활성화.
실외 온도 데이터 전송.
31. 8. 온도 출력, 릴레이를 이용한 마무리
Processor
송신 패킷의 온도 데이
터가 올바른 데이터인
지 판단, Dot Matrix로
출력.
온도 출력 후 다음 step.
Dot Matrix
온도 데이터 출력.
22
Target 으로 패킷 전송
Data of
Temperature Sensor
32. 8. 온도 출력, 릴레이를 이용한 마무리
Text LCD
Good Morning!
문구 출력 중.
Good Morning!
Activate
Relay
ADK로 패킷 전송
33. 8. 온도 출력, 릴레이를 이용한 마무리
Activate
Relay
ADK로 패킷 전송
Processor
Relay
패킷을 받아
센서들 활성화.
커피포트 전원 공급.
35. 코드 재 사용성
개발 편의를 위해 제작된 툴
개발 환경 및 동작 환경
어려웠던 점
발전 방향
QnA
결론
36. 코드 재 사용성
각 디바이스를 제어하는 함수들을 모듈화하여 코드의 재 사용성을 높임과 동시에 개발 효율
성 극대화.
Static 수정자(Modifier), Getter/Setter 등을 이용한 모듈화.
Display Buffer 를 활용하여 Thread 환경에서도 무리 없이 동작 가능.
37. 개발 편의를 위해 제작된 툴
Dot Matrix와 7-segment에 대한
데이터를 보다 편하게 생성할 수 있
도록 직접 툴을 제작하여 구현의 효
율성을 높임.