본문 바로가기

로봇만들기

SRC 라인트레이서 고급 명령어 알아보기

 

라인트레이서에서 ST 나 GF 처럼 기본 방향설정을 위한 명령이 있는가 하면 LED와 BUZZER 를 작동하거나 특수한 상황에서 기본 명령어로 해결이 되지 않을 때 사용하는 명령들이 있습니다. 이런 고급 명령들은 속성을 잘 알고 자주 사용하여 필요할 때 어떤 명령을 사용해야 하는지 판단할 수 있도록 해야 합니다.

SRC에서 사용하는 고급 명령들을 나열해 보겠습니다.

LED(횟수, 시간);          ---         LED(3, 300);      ---  횟수는 깜빡이는 횟수를 나타내고 시간은 1/1000초 단위로 나타 냅니다. 그래서 위의 명령은 0.3초 간격으로 3번 깜빡이라는 명령입니다.

BUZZER(횟수, 시간);   ---        BUZZER(2, 200);   ---    0.2초 간격으로 2번 소리를 내라는 명령입니다.

위의 두 명령은 라인트레이서의 기본 움직임 외에 추가로 적용되는 미션을 수행하기 위해서 사용되는 명령들입니다. 기본 명령과 함께 꼭 사용되는 명령이라고 생각하셔야 합니다.

MOTOR_MOVE(왼쪽모터, 오른쪽모터);  ---   MOTOR_MOVE(-100,100);     ---    양쪽 모터의 속도를 조절 합니다. 숫자에 ' - '를 넣으면 뒤로 가고 0을 넣으면 정지 합니다. 위의 명령은 왼쪽방향으로 회전하게 됩니다.

MOTOR_SENSOR(센서번호, 왼쪽모터, 오른쪽모터);     ---    MOTOR_SENSOR(S1&&!S7, SPEED, SPEED);     ---     센서번호의 조건이 만족할때 까지 양쪽 모터가 움직입니다. 위의 명령은 센서의 S1이 선을 감지하고 S7은 선을 감지하지 않는 상황이 될때 까지 양쪽 모터가 SPEED라는 속도로 움직이라는 명령입니다.

MOTOR_TIME(시간, 왼쪽모터, 오른쪽모터);   ---    MOTOR_TIME(2000, 50, 50);     ---    시간이 지날때 까지 양쪽 모터를 움직이라는 명령입니다. 위의 명령은 2초동은 양쪽 모터를 50의 속도로 가라는 명령입니다.

위의 MOTOR가 앞에 붙은 명령들은 라인보다는 모터의 움직임을 더 중요시하는 명령들입니다. 라인과 관련된 명령으로 미션이 해결 불가능 할 경우 사용할 때가 많습니다.

LINE_SENSOR(센서번호, 주행속도);    ---   LINE_SENSOR(S1&&S2&&S6&&S7, 80);    ---    센서번호의 센서들이 선을 감지 할 때까지 선을 따라 가라는 명령입니다. 위의 값은 S1, S2, S6, S7이 모두 선을 감지 할 때까지 80의 속도로 선을 따라 움직이라는 명령입니다.

LINE_TIME(시간, 속도);      ---      LINE_TIME(500, 80);      ---   지정한 시간 만큼 라인을 따라 가라는 명령입니다. 위의 값은 0.5초 동안 80의 속도로 라인을 따라 가라는 명령입니다.

위의 LINE이 앞에 붙은 명령들은 라인을 중요시하며 움직이는 명령들입니다. 라인을 따라가며 기본 명령으로 해결이 불가능 한 것들을 위해 사용합니다.

지금까지 SRC 라인트레이서에서 사용되는 고급명령들의 일반을 알아보았습니다. 각각의 명령들을 어느 상황에서 사용해야 할지 말아야 할지는 프로그램을 작성하는 사람의 몫입니다. 기본 명령어로 충분하게 해결이 가능하지만 좀 더 짧게 프로그래밍을 하고 싶을 경우에도 사용이 가능하고 특수한 상황을 해결하기 위해 사용하기도 합니다. 중요한 것은 많은 연습으로 명령들의 사용 방법을 다양하게 익히는 것입니다.