Implement a silly simple pet having switches, wheels and leds to represent his emotion, reacting to their environment. The system is implemented using uc/OS III (2015. 6)
4. 소개 - 사용된 입출력 장치들
초음파
센서
온도
센서
스위치
Cortex-M3
보드
G
P
I
O
G
P
I
O
LED
DC 모터
유아트
입력
유아트
출력
5. 소개 - 사용된 입출력 장치들 – Pin 할당
핀 용도
PE0 LED-빨강
PE1 LED-노랑
PB9 LED-초록
PE5 스위치-빨강
PE6 스위치–노랑
PE7 스위치-초록
PE3 초음파-Trigger
PE4 초음파-Echo
PE8 왼쪽 모터-A
PE9 왼쪽 모터-B
PE10 오른쪽 모터-A
PE11 오른쪽 모터-B
PC1 온도 입력
PA9 유아트1 출력
PA10 유아트1 입력
6.
7. 입출력 모델 명세
1. 빨강색 스위치를 누르면 펫의 상태가 화남으로 변함.
2. 노랑색 스위치를 누르면 펫의 상태가 활발함으로 변함.
3. 초록색 스위치를 누르면 펫의 상태가 평온함으로 변함.
4. 차분함 상태에서, 10초가 지나면 활발함 상태로 변함.
5. 활발함 상태에서, 측정되는 거리가 짧고(IMMEDIATE), 온도가
증가하는 상태(TEMP_INC)라면 화남 상태로 변함.
6. 화남 상태에서 다른 상태로의 전환은 스위치 누르는 수 밖에
없음.
7. 화남 상태에서 LED의 점등 패턴이 거리에 따라(IMMEDIATE,
NEAR, MODERATE, (FAR, VERY_FAR)) 4가지 패턴으로 나뉨.
8. 활발함과 평온함 상태에서 LED 점등 패턴은 거리에 따라 3가지
패턴으로 나뉨.
9. 화남 상태에서 펫의 이동 경로는 repetive_step_spin,
zigzag이다
10.활발함 상태에서 펫의 이동 경로는 rectangular, hexagon,
star이다
11.차분함 상태에서 펫의 이동 경로는 clkwise_whole_spin,
cclkwise_whole_spin, back_and_forth이다.
9. uC/OS III의 feature 활용 사례
- ISR에서 Deferred Post 방식을 통한 펫의 상태 전환
버튼 ISR
IntQPost ISR
Handler
Task
OSSemPost
Control
Task
status
변경
Angry Lively Calm
OSTaskSemPost
15. uC/OS III의 feature 활용 사례
- 센서 값의 범위에 따른 이벤트 플래그 설정
이벤트 조건
Event1 온도 증가
Event2 온도 일정
Event3 온도 감소
Event4 거리 증가
Event5 거리 일정
Event6 거리 감소
temp distance
and
control
status