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