영상 인식을 활용한 비글 자율주행

햄스터 AI 카메라와 스크래치의  카메라로 주행하기 블록을 활용한 예제입니다.

카메라로 주행하기의 차선 찾기 블록을 활용해 자율주행 차를 만들어요.

보안 프로그램이 스크래치 코드를 바이러스로 인식하는 경우가 있을 수 있습니다.
A3 도안을 다운받아 각각 출력하여 이어 붙인 후 하나의 도안을 만들어 활용합니다.
A1 도안 활용 시에는 인쇄소에서 플로터로 인쇄하여 하나의 도안으로 활동을 할 수 있습니다.
STOP 도안은 따로 출력하여 원하는 위치에 붙여 사용하시기 바랍니다.

부품을 준비해 주세요.

필요 재료수량
비글1대
햄스터 AI 카메라1개
비글용 카메라 거치대1개
Express Receiver1개
무선 네트워크 어댑터1개
컴퓨터1대

하드웨어를 준비해요.

1. 햄스터 AI 카메라를 무선 네트워크 어댑터에 연결합니다.

2. 로봇 코딩 소프트웨어에서 스크래치3를 선택해 접속합니다.

코딩을 해요.

알고 가기

코딩을 시작하기 전 스크래치에서 카메라를 활용하는 방법은 아래 버튼을 클릭하면 이동하는 페이지에서 확인합니다.

카메라 거치하기

햄스터 AI 카메라와 비글용 카메라 거치대를 준비합니다.

   

아래 그림과 같이 비글에 카메라를 장착합니다.

거치한 모습은 아래와 같습니다.

코딩 하기

1. 코드에 사용할 블록을 추가합니다.

확장 기능 추가하기에서 ‘카메라로 주행하기’를 추가합니다.

코드에 활용할 블록을 살펴봅니다.

주행을 위해 각 차선의 좌표 값과 가로 거리를 활용합니다.

주행 시 화면 오른쪽 상단의 를 클릭해 화면 크기를 640×320으로 하여 주행합니다.

이렇게 하면 화면의 가로 길이가 더 길어져 차선을 인식하기가 더욱 수월합니다.

2. 주행 코드를 작성합니다.

* 아래의 블록들은 연결해서 작성해야 하지만 설명을 위해 분리해 놓았어요.

햄스터 AI 카메라는 좌우가 반전되어 나타나므로 비디오 켜기 블록을 사용합니다.

차선은 주행할 도안에 따라 다르게 지정합니다.

주행 코드 작성 전 차선 형태에 따른 바퀴의 움직임에 대해 알아보겠습니다.

차선 찾기를 수행하면 아래와 같이 카메라가 인식한 영역 위로 해당 색과 같은 색의 네모 박스가 나타납니다.

감지된 값은 다음 블록들을 사용해 코드 작성에 활용합니다.

* 비글 이동 방향과 바퀴 속도

 왼쪽으로  이동 ↖

왼쪽 바퀴의 속도를 낮추고 오른쪽 바퀴의 속도를 높여 왼쪽으로 이동합니다.

오른쪽으로 이동↗

왼쪽 바퀴의 속도를 높이고 오른쪽 바퀴의 속도를 낮춰 오른쪽으로 이동합니다.

앞서 살펴보았던  블록의 값을 활용해 바퀴의 값을 조절합니다.

양 차선의 ‘가로 거리’ 차이값을 활용한 코드는 아래와 같습니다.

비글이 정지 신호를 보면 멈추는 코드를 작성합니다.

앞서 작성한 코드를 더하여 자율 주행 코드를 완성합니다.

실시간으로 차선을 감지해야 하므로 ‘무한 반복하기’ 블록을 가져옵니다.

차선 찾기와 비글의 움직임, 정지 동작을 반복하기 블록 안에 넣어줍니다.

4. 완성된 코드는 아래와 같습니다.

응용하기

여러분 만의 트랙을 만들거나 표지판을 만들어 다양한 형태의 자율 주행 활동을 체험해 봅니다.