SlideShare una empresa de Scribd logo
1 de 38
일어날람(일어나 알람)
김예슬 김영빈 김종성 김종현
INDEX
 서론
 프로젝트의 개요
 사용 I/O

 본론
 시나리오와 시연

 결론
 코드 재사용과 개발툴

 Q&A
 프로젝트 개요
 SM5에서 사용된 디바이스
 Arduino에서 사용된 디바이스
 전체 흐름도

 패킷 구성도 및 핀 번호 수정사항

서론
프로젝트 개요 및 전반적인 사항
개요
자르고.

쏘고

들고
SM5에서 사용된 디바이스
사용자가 해야
하는 활동 표시.
Guide 역할.

Text LCD

왕복 미션
카운터 표시.

LED

숫자 입력 표시.

7-Segment
Display

알람 요일 설정.

Dip Switch

Dot Matrix

전광판의 흐르는
문자 효과 및
온도 출력.

Keypad

사용자의 input
값 인지.

Piezo

알람 소리 출력.
Arduino에서 사용된 디바이스

프로그램 종료
시 사용자에게
온도 제공

Temperature
Sensor

Relay

커피포트에
전원 공급.

소리를 통해
미션 수행

Sound
Sensor

Open
Detector

문이나 창문이
열렸는지 감지.

SM5-아두이노
왕복 미션을 위
한 인식.

Switch

Light
Sensor

방의 밝기를
확인.

LED

왕복 미션에서
다음 터치해야
할 버튼 표시.
패킷 구성도 - 제어
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 Bytes 로
축소
0

1

2

Start
0x76

3
ID

0x00

0x10

4

5
Data

0x00

ElecSW
& Buzzer

6
Check Sum

LED

Check Sum
패킷 구성도 - 센서
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 Bytes로
축소

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
패킷 구성도 – 송신 패킷
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
핀 번호 변경사항
기존 핀 번호

현재 핀 번호

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
 시간설정 및 요일 설정
 알람 울림
 창문 열고 불 켜기
 Mission1: 흐르는 숫자 맞추기
 Mission2: 소리 지르기

 Mission3: 왕복하면서 버튼 누르기
 다시 자는지 확인
 온도 출력, 릴레이를 이용한 마무리

시나리오와 시연.
1. 시간설정 및 요일설정

Text LCD

“Set Morning Call”
문구 출력.

7-Segment
Display
설정 시간 표시.
AM/PM, 시간, 분
순으로 표시.

Set Morning Call

AM/
PM

Hour

Min
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

월

수

금

일
2. 알람 울림

Piezo

알람음
“학교종이 땡땡땡”
3. 창문 열고 불 켜기

Text LCD
Open the window
Bright your room
문구 출력.
Open the window
Bright your room

Activate
Open Detector, Light Sensor
ADK로 패킷 전송
3. 창문 열고 불 켜기
Activate
Open Detector, Light Sensor

ADK로 패킷 전송

Target 으로 패킷 전송

Data of
Open Detector, Light Sensor

Processor

패킷을 받아 센서들
활성화.

Open Detector
(for window)

창문이 열리는지에 대
한 데이터 전송.

Light Sensor

방 안의 조도를 체크하
여 데이터 전송.
3.창문 열고 불 켜기

Processor
송신 패킷을 통해 방의
불이 켜졌는지, 창문이
열렸는지 확인.

시간초과 시
2. 알람 울림
으로 돌아감

조건을
만족하면
다음 step.

Target 으로 패킷 전송

Data of
Open Detector, Light Sensor
4. Mission1: 흐르는 숫자 맞추기

Text LCD
Mission1
Press numbers
문구 출력.
Mission1
Press numbers

Open Detector
(for window)
임의의 숫자 데이터 6
자리를 우->좌로 흐르
게 하여 디스플레이.

3
7
1
5
2
4. Mission1: 흐르는 숫자 맞추기
7-Segment
Display
키패드를 통해 입력하
는 숫자 디스플레이.
숫자
입력시
Back
space

Keypad
임의의 숫자 데이터 6
자리를 우->좌로 흐르
게 하여 디스플레이.
1

2

3

4

5

6

7

8

9

0
Backs
pace

Set
5. Mission2: 소리 지르기

Text LCD
Mission2
Make some noise
문구 출력.
Mission2
Make some noise

Activate
Sound Sensor
ADK로 패킷 전송
5. Mission2: 소리 지르기
Activate
Sound Sensor

ADK로 패킷 전송

Processor

Sound Sensor
Target 으로 패킷 전송

Data of
Sound Sensor

패킷을 받아 센서
활성화.
주변 소리 크기에 대한
데이터 전송.
5. Mission2: 소리 지르기

Processor

일정 수준 이상의 소
리가 들렸는지
확인.
시간초과 시
2. 알람 울림
으로 돌아감

조건을
만족하면
다음 step.

Target 으로 패킷 전송

Data of
Sound Sensor
6. Mission3: 왕복하면서 버튼 누르기

Text LCD
Mission3
Press buttons
문구 출력.
Mission3
Press buttons

Activate
Button, LED
ADK로 패킷 전송
6. Mission3: 왕복하면서 버튼 누르기
Activate
Button, LED

ADK로 패킷 전송

Processor

Button
Target 으로 패킷 전송

Data of
Button

LED

패킷을 받아
버튼, LED 활성화.
Button 클릭한
위치전송
다음 눌러야 할 버튼
위치의 LED 표시.
6. Mission3: 왕복하면서 버튼 누르기

Processor
송신 패킷을 통해 정해
진 위치의 버튼들이 눌
렸는지 확인.

시간초과 시
2. 알람 울림
으로 돌아감

조건을
만족하면
다음 step.

Activate
Button, LED
ADK로 패킷 전송

Target 으로 패킷 전송

Data of
Button
7. 다시 자는지 확인.

Text LCD
checking light..
checking door..
문구 출력.
checking light..
checking door..

Activate
Open Detector, Light Sensor
ADK로 패킷 전송
7. 다시 자는지 확인.
Activate
Open Detector, Light Sensor

ADK로 패킷 전송

Target 으로 패킷 전송

Data of
Open Detector, Light Sensor

Processor

Open Detector
(for Door)

Light Sensor

패킷을 받아
센서들 활성화.
문이 열렸는지에 대한
데이터 전송.

불이 꺼졌는지 확인.
7. 다시 자는지 확인.

Processor
송신 패킷을 통해 불이
켜져 있는지 확인.
방문이 열리면 무조건
만족.
시간초과 시
2. 알람 울림
으로 돌아감

조건을
만족하면
다음 step.

Target 으로 패킷 전송

Data of
Open Detector, Light Sensor
8. 온도 출력, 릴레이를 이용한 마무리

Text LCD

Good Morning!
문구 출력.
Good Morning!

Activate
Temperature Sensor
ADK로 패킷 전송
8. 온도 출력, 릴레이를 이용한 마무리
Activate
Open Detector, Light Sensor

ADK로 패킷 전송

Target 으로 패킷 전송

Data of
Temperature Sensor

Processor

Temperature
Sensor

패킷을 받아
센서들 활성화.

실외 온도 데이터 전송.
8. 온도 출력, 릴레이를 이용한 마무리

Processor
송신 패킷의 온도 데이
터가 올바른 데이터인
지 판단, Dot Matrix로
출력.

온도 출력 후 다음 step.

Dot Matrix
온도 데이터 출력.

22
Target 으로 패킷 전송

Data of
Temperature Sensor
8. 온도 출력, 릴레이를 이용한 마무리

Text LCD

Good Morning!
문구 출력 중.
Good Morning!

Activate
Relay
ADK로 패킷 전송
8. 온도 출력, 릴레이를 이용한 마무리
Activate
Relay

ADK로 패킷 전송

Processor

Relay

패킷을 받아
센서들 활성화.

커피포트 전원 공급.
8. 알람 종료.

내일 또 봅시다.
 코드 재 사용성
 개발 편의를 위해 제작된 툴
 개발 환경 및 동작 환경
 어려웠던 점

 발전 방향
 QnA

결론
코드 재사용

 각 디바이스를 제어하는 함수들을 모듈화하여 코드의 재 사용성을 높임과 동시에 개발 효율
성 극대화.
 Static 수정자(Modifier), Getter/Setter 등을 이용한 모듈화.
 Display Buffer 를 활용하여 Thread 환경에서도 무리 없이 동작 가능.
 Recv_proc(int , int *)

 함수
개발 편의를 위해 제작된 툴
 Dot Matrix와 7-segment에 대한
데이터를 보다 편하게 생성할 수 있
도록 직접 툴을 제작하여 구현의 효
율성을 높임.
Q&A

Más contenido relacionado

Similar a Embedded final

모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx
모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx
모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptxssuser011a5c
 
[IoT] MAKE with Open H/W + Node.JS - 4th
[IoT] MAKE with Open H/W + Node.JS - 4th[IoT] MAKE with Open H/W + Node.JS - 4th
[IoT] MAKE with Open H/W + Node.JS - 4thPark Jonggun
 
라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강Circulus
 
Softbox review and quickstartguide-20180926
Softbox review and quickstartguide-20180926Softbox review and quickstartguide-20180926
Softbox review and quickstartguide-20180926봉조 김
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypiYeonah Ki
 
라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기Circulus
 

Similar a Embedded final (8)

모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx
모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx
모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx
 
Lighteye 222
Lighteye 222Lighteye 222
Lighteye 222
 
[IoT] MAKE with Open H/W + Node.JS - 4th
[IoT] MAKE with Open H/W + Node.JS - 4th[IoT] MAKE with Open H/W + Node.JS - 4th
[IoT] MAKE with Open H/W + Node.JS - 4th
 
라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강
 
Softbox review and quickstartguide-20180926
Softbox review and quickstartguide-20180926Softbox review and quickstartguide-20180926
Softbox review and quickstartguide-20180926
 
Zimiidle
ZimiidleZimiidle
Zimiidle
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypi
 
라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기
 

Embedded final

  • 2. INDEX  서론  프로젝트의 개요  사용 I/O  본론  시나리오와 시연  결론  코드 재사용과 개발툴  Q&A
  • 3.  프로젝트 개요  SM5에서 사용된 디바이스  Arduino에서 사용된 디바이스  전체 흐름도  패킷 구성도 및 핀 번호 수정사항 서론 프로젝트 개요 및 전반적인 사항
  • 5. SM5에서 사용된 디바이스 사용자가 해야 하는 활동 표시. Guide 역할. Text LCD 왕복 미션 카운터 표시. LED 숫자 입력 표시. 7-Segment Display 알람 요일 설정. Dip Switch Dot Matrix 전광판의 흐르는 문자 효과 및 온도 출력. Keypad 사용자의 input 값 인지. Piezo 알람 소리 출력.
  • 6. Arduino에서 사용된 디바이스 프로그램 종료 시 사용자에게 온도 제공 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 Bytes 로 축소 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 Bytes로 축소 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 활성화. Button 클릭한 위치전송 다음 눌러야 할 버튼 위치의 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 패킷을 받아 센서들 활성화. 커피포트 전원 공급.
  • 34. 8. 알람 종료. 내일 또 봅시다.
  • 35.  코드 재 사용성  개발 편의를 위해 제작된 툴  개발 환경 및 동작 환경  어려웠던 점  발전 방향  QnA 결론
  • 36. 코드 재사용  각 디바이스를 제어하는 함수들을 모듈화하여 코드의 재 사용성을 높임과 동시에 개발 효율 성 극대화.  Static 수정자(Modifier), Getter/Setter 등을 이용한 모듈화.  Display Buffer 를 활용하여 Thread 환경에서도 무리 없이 동작 가능.  Recv_proc(int , int *)  함수
  • 37. 개발 편의를 위해 제작된 툴  Dot Matrix와 7-segment에 대한 데이터를 보다 편하게 생성할 수 있 도록 직접 툴을 제작하여 구현의 효 율성을 높임.
  • 38. Q&A