| 로보트사관학교 - 첫페이지 | 1단계 | 2단계 | 3단계 | 4단계 | 5단계 | 문의사항 | 로보트 스토아 |

|음식나르는 로보트 - 첫 페이지 | 프로그램 사용방법 | 전선 연결하기 | 프로그램 작성하기 | 맥가이버에 프로그램 넣기 |

프로그램의 상세한 설명

테크맨이 음식을 집어들고 손님의 테이블로 음식을 옮겨 놓는 작업의 상세한 프로그램 설명입니다.

1. 팔을 벌린다.
2. 음식을 조리하는 주방으로 전진한다.
3. 팔을 모아서 음식을 집어 올린다.
4. 뒤로 후진한다.
5. 왼쪽으로 회전한다.
6. 지정된 장소로 가기위해 전진한다.
7. 오른쪽으로 회전한다.
8. 테이블 쪽으로 전진한다.
9. 지정된 손님의 식탁에 음식을 내려 놓는다.
10. 뒤로 빠져 나온다.
11. 팔을 모으고 다음 작업을 기다린다.

work.jpg (30025 bytes)

프로그램을 작성하기 위해 필요한 기본적인 명령어를 설명하겠습니다.
아래의 5가지 명령어와 기본설정내용 그리고 1가지 기호를 배우고 나면,
여러분들은 누구나 로보트를 자유자재로 움직이도록 프로그램할 수 있습니다.

1. Ddrb = &B11111100 : Portb = &B00000000
- 맥가이버 컨트롤러를 사용하기 위한 기본 설정 내용입니다. 그대로 입력해서 사용합니다.

2. Start
- 프로그램의 시작을 알리는 명령어입니다.

3. Set
- 모타의 동작을 지시하는 명령어입니다. 즉, Set Portb.2 라고 명령하면 모타 1을 전진시키라는 의미입니다.

4. Portb.숫자
- 로보트에게 지시사항을 내보내고 외부환경을 인식하는 통로인 15개의 입력/출력(Input/Output) 포트(Port)입니다.
음식을 운반하는 로보트인 테크맨에는 3개의 모타가 있습니다.
모타 2와 3으로 두개의 바퀴를 작동시키고,
모타 1은 팔을 좁히게 하거나 벌리는데 사용합니다. 즉, 모타 1,2,3 번을 사용합니다.

Portb.0
Portb.1
Portb.2 - 모타 1 전진(테크맨의 팔이 벌어지도록 모타를 작동 시킨다)
Portb.3 - 모타 1 후진(테크맨의 팔이 안으로 좁혀지도록 모타를 작동 시킨다)

Portb.4 - 모타 2 전진
Portb.5 - 모타 2 후진

Portb.6 - 모타 3 전진
Portb.7 - 모타 3 후진

Portd.0
Portd.1
Portd.2
Portd.3
Portd.4
Portd.5
Portd.6

motor-cable.jpg (32056 bytes)

5. Wait 8
- 지정한 시간만큼 작동을 계속하라는 명령어입니다. 따라서 Wait 8은 8초간 작동을 계속하라는 의미입니다.

6. Reset
- 모타를 정지 시키는 명령어입니다.즉, Reset Portb.2 라고 명령하면 모타 1을 정지시키라는 의미입니다.

7. End
- 프로그램을 종료하라는 명령어입니다.

8. ' : " 기호
- 여러개의 명령어를 한줄에 작성할 경우 사용하는 기호입니다. 따라서 개별 명령어를 여러줄로 나누어
작성할 경우에는 사용할 필요가 없습니다.

다시 설명하면 여러분들은 Start , Set , Wait , Reset , End 라는 5개의 명령어만 배우고 Portb.x 라고 불리는
입출력 포트의 종류만 알면 곧바로 로보트를 제어하기 위한 다양한 프로그램을 작성할 수 있는 것입니다.
정말 쉽죠 ! 물론 초등학교 학생인 경우 아직 영어를 모르는 학생들이 있으므로 어렵다고 생각할 수 있으나,
영어를 조금 배우게되면 5개의 명령어가 영어의 기본 단어라는 사실을 알게될 것입니다.
그만큼 베이직 언어는 배우기 쉬운 언어인 것이지요.

*참고
베이직 언어에서 사용되는 명령어의 의미는 영어사전을 찾아보면 쉽게 알 수있습니다.
Start - 시작
Set - 제자리에 놓아라.
Reset - 원 위치로 돌려 놓아라
Wait - 하던 작업을 계속해라
End - 끝

아래의 프로그램은 테크맨이 물건을 집어들고 지정한 장소에 물건을 옮겨 놓는 작업입니다.
같은 색으로 표시된 부분은 동일한 작업을 수행하는 것입니다. 즉, 주황색을 모두 전진하라는
명령어입니다. 따라서, 프로그램을 처음부터 작성하지 않고도 필요한 부분을 복사해 넣으면,
훌륭한 프로그램이 완성되는 것입니다.

Ddrb = &B11111100 : Portb = &B00000000
Start:
Set Portb.2 : Wait 8 : Reset Portb.2 -----------------------------------------팔을 벌린다.
Set Portb.4 : Set Portb.6 : Wait 3 : Reset Portb.4 : Reset Portb.6 ------ 전진
Set Portb.3 : Wait 8 : Reset Portb.3 ---------------------------------------- 음식을 집는다.
Set Portb.5 : Set Portb.7 : Wait 3 : Reset Portb.5 : Reset Portb.7 ------- 후진
Set Portb.7 : Wait 4 : Reset Portb.7 ---------------------------------------- 왼쪽으로 회전
Set Portb.4 : Set Portb.6 : Wait 3 : Reset Portb.4 : Reset Portb.6 ------- 전진
Set Portb.6 : Wait 2 : Reset Portb.6 ---------------------------------------- 오른쪽으로 회전
Set Portb.4 : Set Portb.6 : Wait 3 : Reset Portb.4 : Reset Portb.6 ------- 전진
Set Portb.2 : Wait 8 : Reset Portb.2 ---------------------------------------- 팔을 벌린다.
Set Portb.5 : Set Portb.7 : Wait 3 : Reset Portb.5 : Reset Portb.7 ------- 후진
Set Portb.3 : Wait 8 : Reset Portb.3 ---------------------------------------- 팔을 모은다.
End

프로그램의 상세한 설명입니다.

명령어 의미 로보트의 반응
 

Ddrb = &B11111100
Portb = &B00000000

 

 

기본으로 설정

 

 
Start:

 

시작

 

시작

 

Set Portb.2
Wait 8
Reset Portb.2

 

모타 1 전진
8초간 지속
모타 1 정지

 

팔을 벌린다

 

 

Set Portb.4
Set Portb.6
Wait 3
Reset Portb.4
Reset Portb.6

 

모타 2 전진
모타 3 전진
3초간 지속
모타 2 정지
모타 3 정지
전진
Set Portb.3
Wait 8
Reset Portb.3

 

모타 1 후진
8초간 지속
모타 1 정지
팔을 모아 음식을 집는다
Set Portb.5
Set Portb.7
Wait 3
Reset Portb.5
Reset Portb.7

 

모타 2 후진
모타 3 후진
3초간 지속
모타 2 정지
모타 3 정지

 

후진

 

Set Portb.7
Wait 4
Reset Portb.7

 

모타 3 후진
4초간 지속
모타 3 정지
왼쪽으로 회전
Set Portb.6
Wait 2
Reset Portb.6

 

모타 3 전진
2초간 지속
모타 3 정지
오른쪽으로 회전
End   작업 끝