학습목표
•
센서 및 모터의 역할을 설명하고 제어할 수 있다.
•
기초 프로그래밍 문법을 피지컬 컴퓨팅에 응용할 수 있다.
•
라인트레이싱의 작동 원리를 서술할 수 있다.
라인트레이싱의 기본적인 작동원리
•
라인 트래킹 센서는 적외선 LED가 물체에 반사되어 들어오는 빛을 감지한다.
라인 트래킹 센서의 구조
자율주행 자동차의 뒷면
라인 트래킹 센서의 작동원리
•
자동차가 지나는 바닥면이 흰색일 때 센서 1의 값, 검정색일 때 센서 0의 값을 이용해 자동차 모터를 제어한다.
•
직진, 정지, 좌회전, 우회전의 경우
바퀴의 역학적 구조를 이용해 효율적인 동선 작성
•
자동차 바퀴의 지름을 원의 둘레 공식에 활용하면 주행거리 계산이 가능하다.
•
(원의 둘레 공식은 2 π r이지만 계산 편의를 위해 지름*π로 서술함.)
•
자동차 바퀴 지름이 430mm(4.3cm)일 때, 1회전 당 주행거리는 1350mm(13.5cm)
•
라인트레이싱 트랙을 이용할 때 직선 코스 주행거리를 미리 계산하면 더 빠른 이동이 가능하다.
라인 트레이싱에 사용되는 핵심 파이썬 문법
1. while 문
•
2. if ~ elif 문
3. 라인트레이싱 센싱 코드 작성법
가. mirco:bit Python Editor 접속
•
나. main.py 항목에서 코드 작성 시작
다.라이브러리 및 변수 설정
import maqueen # 마퀸라이브러리 불러오기
auto = maqueen.Maqueen() # 자율주행차 변수 auto에 마퀸 자율주행 함수를 할당한다.
Python
복사
라. while True 내부에 무한 반복 시킬 센서 변수 할당하기
import maqueen # 마퀸라이브러리 불러오기
auto = maqueen.Maqueen() # 자율주행차 변수 auto에 마퀸 자율주행 함수를 할당한다.
while True:
left = auto.read_patrol(0) #왼쪽 센서 값 변수 left에 할당
right = auto.read_patrol(1) #오른쪽 센서 값 변수 right에 할당
Python
복사
마. if~elif 문을 이용해 직진, 정지, 좌회전, 우회전 조건 작성하기
import maqueen # 마퀸라이브러리 불러오기
auto = maqueen.Maqueen() # 자율주행차 변수 auto에 마퀸 자율주행 함수를 할당한다.
while True:
left = auto.read_patrol(0) #왼쪽 센서 값 변수 left에 할당
right = auto.read_patrol(1) #오른쪽 센서 값 변수 right에 할당
if left==1 and right==1: #양쪽 센서값이 1이면 양쪽 모터 속도 30으로 직진
auto.set_motor(0, 30)
auto.set_motor(1, 30)
Python
복사
바. 자율 주행 전체 코드 작성
import maqueen # 마퀸라이브러리 불러오기
auto = maqueen.Maqueen() # 자율주행차 변수 auto에 마퀸 자율주행 함수를 할당한다.
while True :
left = auto.read_patrol(0)
right = auto.read_patrol(1)
if left==1 and right==1: #양쪽 센서값이 1이면 양쪽 모터 속도 30으로 직진
auto.set_motor(0, 30)
auto.set_motor(1, 30)
elif left==0 and right==0: #양쪽 센서값이 0이면 양쪽 모터 속도 0으로 차량 정지
auto.set_motor(0, 0)
auto.set_motor(1, 0)
elif left==0 and right==1: #오른쪽 센서값이 1이면 오른쪽 모터 속도 30으로 좌회전
auto.set_motor(0, 0)
auto.set_motor(1, 30)
elif left==1 and right==0: #왼쪽 센서값이 1이면 왼쪽 모터 속도 30으로 우회전
auto.set_motor(0, 30)
auto.set_motor(1, 0)
Python
복사