4권 · 6. 자율 주행 자동차 만들기 2
자율 주행 자동차 만들기 2
엘리오 자동차가 고개를 좌우로 돌리며 길을 살펴봐요. 장애물을 만나도 똑똑하게 피하는 코딩 히어로가 되어 봐요! 🚗
오늘의 미션
서보모터로 왼쪽과 오른쪽을 확인하는 자율 주행 자동차를 만들어요.
무엇을 만들까?

서보모터를 움직이면 자동차가 왼쪽과 오른쪽 거리를 확인할 수 있어요.
확인이 끝나면 방향을 0으로 돌려 다시 앞을 보게 해요.
친구와 대결하며 누가 더 잘 피하는지 코드를 바꿔 볼 수 있어요.
준비물
- 엘리오 자동차코드를 따라 움직이는 주인공이에요.
- 서보모터센서가 왼쪽과 오른쪽을 보게 돌려 줘요.
- 거리 센서앞에 장애물이 얼마나 가까운지 확인해요.
따라해 보자
- 1
새 이름으로 저장해요
프로젝트를 ‘자율 주행 자동차 만들기 2’로 저장해요.
- 2
왼쪽을 확인해요
서보모터 방향을 70으로 바꾸어 왼쪽 거리를 살펴봐요.
- 3
오른쪽을 확인해요
서보모터 방향을 -70으로 바꾸어 오른쪽 거리를 살펴봐요.
- 4
다시 앞을 봐요
확인이 끝나면 방향을 0으로 돌려 앞을 보게 해요.
완성 코드
🧱완성 코드 94블록 — 블록이 아주 많아요! 눌러서 펼쳐 보기
이 작품은 코드가 길어요. 천천히 부분부분 따라 만들어 봐요. 아래는 실제 Scratch 3.0 완성 코드예요.
스프라이트 1
정의하기 거리 구하기
(5)번 반복하기
[거리▾] 을(를) (거리)로 정하기
[거리 합▾] 을(를) (거리)만큼 바꾸기
[거리 평균▾] 을(를) ((거리 합) ÷ (5))로 정하기
[거리 합▾] 을(를) (0)로 정하기
정의하기 왼쪽으로
모터1▾ 회전속도 , 모터2▾ 회전속도 으로 정하기
⚑ 클릭했을 때
[회전속도▾] 을(를) (50)로 정하기
[속도▾] 을(를) (100)로 정하기
정의하기 회전속도 정하기
만약 [up arrow▾] 키를 눌렀는가? (이)라면
[회전속도▾] 을(를) (5)만큼 바꾸기
만약 (회전속도) > (100) (이)라면
[회전속도▾] 을(를) (100)로 정하기
만약 [down arrow▾] 키를 눌렀는가? (이)라면
[회전속도▾] 을(를) (-5)만큼 바꾸기
만약 (회전속도) < (0) (이)라면
[회전속도▾] 을(를) (0)로 정하기
(0.1)초 기다리기
정의하기 거리 기준 정하기
만약 [right arrow▾] 키를 눌렀는가? (이)라면
[기준▾] 을(를) (1)만큼 바꾸기
만약 (기준) > (50) (이)라면
[기준▾] 을(를) (50)로 정하기
만약 [left arrow▾] 키를 눌렀는가? (이)라면
[기준▾] 을(를) (-1)만큼 바꾸기
만약 (기준) < (0) (이)라면
[기준▾] 을(를) (0)로 정하기
(0.1)초 기다리기
정의하기 앞으로
모터1▾ (-1) × (회전속도) , 모터2▾ 회전속도 으로 정하기
정의하기 왼쪽-오른쪽 회전 정하기
만약 [s▾] 키를 눌렀는가? (이)라면
[회전시간▾] 을(를) (0.1)만큼 바꾸기
만약 (회전시간) > (3) (이)라면
[회전시간▾] 을(를) (3)로 정하기
만약 [a▾] 키를 눌렀는가? (이)라면
[회전시간▾] 을(를) (-0.1)만큼 바꾸기
만약 (회전시간) < (0) (이)라면
[회전시간▾] 을(를) (0)로 정하기
(0.1)초 기다리기
⚑ 클릭했을 때
[회전속도▾] 을(를) (50)로 정하기
[기준▾] 을(를) (25)로 정하기
[회전시간▾] 을(를) (1)로 정하기
무한 반복하기
회전속도 정하기
거리 기준 정하기
왼쪽-오른쪽 회전 정하기
정의하기 오른쪽으로
모터1▾ (-1) × (회전속도) , 모터2▾ (-1) × (회전속도) 으로 정하기
정의하기 뒤로
모터1▾ 회전속도 , 모터2▾ (-1) × (회전속도) 으로 정하기
정의하기 움직이는 방향 정하기
만약 (왼쪽 거리) > (오른쪽 거리) (이)라면
왼쪽으로
(왼쪽으로 갑니다.) 을(를) (1)초 동안 말하기
아니면
오른쪽으로
(오른쪽으로 갑니다.) 을(를) (1)초 동안 말하기
(1)초 기다리기
정의하기 멈추기
모터1▾ 0 , 모터2▾ 0 으로 정하기
정의하기 오른쪽 확인
오른쪽으로
(회전시간)초 기다리기
거리 구하기
[오른쪽 거리▾] 을(를) (거리 평균)로 정하기
왼쪽으로
(회전시간)초 기다리기
⚑ 클릭했을 때
[거리▾] 을(를) (0)로 정하기
[거리 합▾] 을(를) (0)로 정하기
[거리 평균▾] 을(를) (0)로 정하기
무한 반복하기
앞으로
거리 구하기
장애물을 만났다면
정의하기 서보모터 왼쪽 확인
방향1▾ 70 으로 정하기
(회전시간)초 기다리기
거리 구하기
[왼쪽 거리▾] 을(를) (거리 평균)로 정하기
(회전시간)초 기다리기
방향1▾ 0 으로 정하기
정의하기 서보모터 오른쪽 확인
방향1▾ -70 으로 정하기
(회전시간)초 기다리기
거리 구하기
[오른쪽 거리▾] 을(를) (거리 평균)로 정하기
(회전시간)초 기다리기
방향1▾ 0 으로 정하기
정의하기 왼쪽 확인
왼쪽으로
(회전시간)초 기다리기
거리 구하기
[왼쪽 거리▾] 을(를) (거리 평균)로 정하기
(회전시간)초 기다리기
오른쪽으로
정의하기 장애물을 만났다면
만약 (거리 평균) < (기준) (이)라면
[왼쪽 거리▾] 을(를) (0)로 정하기
[오른쪽 거리▾] 을(를) (0)로 정하기
멈추기
(0.5)초 기다리기
서보모터 왼쪽 확인
(0.5)초 기다리기
서보모터 오른쪽 확인
(0.5)초 기다리기
움직이는 방향 정하기
진짜 소스: 7.자율 주행 자동차 만들기 2.sb2 · 94블록
도전!
장애물을 더 부드럽게 피하도록 왼쪽과 오른쪽 확인 순서를 바꿔 보세요.


순서, 반복, 조건, 함수를 기억한 여러분은 멋진 코딩 히어로예요! 🌟