티스토리 뷰

라인트랙 자동차 알고리즘

스크래치 아두이노로 라인 트랙 자동차 코딩을 해보겠습니다. 먼저 라인 트랙 자동차의 원리를 알아보겠습니다.

그림 3-31 라인 트랙 자동차 움직이는 모습

 

라인 트랙 자동차는 검은색 선을 따라 움직이게 됩니다. <그림 3-31>

 

왼쪽 라인 센서가 검은색을 읽고 오른쪽 라인 센서가 흰색을 읽으면 왼쪽으로 선이 휘었다는 뜻입니다. 그래서 왼쪽으로 움직여야 합니다. 반대로 왼쪽 라인 센서가 흰색을, 오른쪽 라인 센서가 검은색을 읽으면 오른쪽으로 선이 휘었다는 뜻입니다. 그래서 오른쪽으로 움직여야 합니다. 

 

센서 2개 모두 흰색이라고 읽으면 직선이라는 뜻입니다. 그래서 앞으로 움직여야 합니다. 반대로 센서 2개가 모두 검은색이라고 읽으면 정지선이라는 뜻입니다. 따라서 멈춰야 합니다.

 

이것을 표로 정리했습니다.

 

왼쪽 라인 센서는 디지털 3번 핀과 연결했고, 오른쪽 라인 센서는 디지털 4번 핀과 연결했습니다. 1단원과 2단원에서 배운 내용을 잘 이용해서 멋진 라인 트랙 자동차 프로그램을 만들어 봅시다. 

 

어떻게 하면 될까요? 문제를 나눠서 잘 생각해 봅시다. 우선 조건이 2개 있습니다. 왼쪽 센서와 오른쪽 센서의 값에 따라 조건이 달라집니다. 즉 왼쪽-오른쪽 센서의 값을 모두 생각해서 조건을 만들어야 합니다. <그림 3-32>

 

<그리고>를 사용하면 멋지게 문제를 해결할 수 있지 않을까요? 먼저 <왼쪽 센서>와 <오른쪽 센서>라는 변수를 2개 만듭니다. 그리고 라인 센서에서 읽을 값을 저장합니다.

그림 3-32 왼쪽 센서와 오른쪽 센서 변수 만들기

 

그리고 그림 3-33처럼 함수를 만들어서 4가지 경우에 따라 움직일 수 있게 코딩을 합니다.

그림 3-33 라인 트랙 자동차 프로그램 함수 모음

 

그리고 그림 3-34처럼 만약 ~ 블록 명령을 이용해서 앞에 나왔던 표 순서대로 코딩을 해보겠습니다.

그림 3-34 라인 트랙 자동차 멈추기

 

두 변수의 값이 모두 1이라면(왼쪽, 오른쪽 둘 다 검은색) 멈춥니다. 어때요 참 쉽죠? 그림 3-35와 같이 나머지 3가지 경우도 모두 코딩해 봅시다.

그림 3-35 라인 트랙 자동차 프로그램 코딩하기

 

짜잔~ 드디어 라인 트랙 자동차 프로그램을 만들었습니다. <기다리기> 블럭을 사용하면 더 자연스럽게 라인을 따라 움직입니다. 너무 오래 기다리면 자동차가 라인을 벗어날 수 있습니다. 그리고 <무한 반복하기> 블록 아래쪽에 <기다리기> 블록을 하나만 넣어도 됩니다. 

 

이제 누가 더 코딩을 잘했는지 겨루는 시합을 해보겠습니다.

댓글
댓글쓰기 폼