Page 147 - 최강 아두이노 스마트 자동차 로봇 키트
P. 147
OBJECT AVOIDANCE DRIVING(장애물 감지 운행)
예제 코드 4wd_ex_8 과 4wd_ex_2 코드를 변형 및 재구성하여 장애물 감지 운행코
드를 작성합니다.
ex_8 예제는 초음파 센서를 이용한 방향 구하는 코드입니다.
ex_2 예제는 DC 모터 방향 전환 코드입니다.
아두이노 우노 R3 부팅, 정지 상태입니다.
1 초후에 정방향 운행 시작합니다. 또는 1 초 딜레이 없어도 무방합니다.
정방향 운전 시작과 동시에 초음파 거리 센서 측정 계속 진행됩니다.
방향은 정방향 운행으로 시작합니다. 운행 중 거리값이 최소 거리일 경우에는 후진을
합니다. 후진 후 잠시 정시 시켜 방향을 살펴보고 적절한 방향으로 운행을 시작합니
다.
간단히 위의 행동을 반복하게 됩니다.
후진하게 되는 조건을 위한 변수가 추가되며 해당 변수를 사용하기 위한 간단한 로직
이 추가 구현되게 됩니다.
운행 로직이 추가 구현 되면서 기존의 함수도 약간 변경될 수 있습니다.
편의 기능 구현
손으로 초음파 센서 근접 작동하여 운행 시작/정지 기능을 구현해 보도록 합니다.
초음파 장애물 감지 운행시 시작과 끝을 리모컨이나 스위치를 사용하지 않고 손으로
초음파 센서의 3 방향을 근접위치로 막아주면 운행 시작, 정지 기능을 구현해 봅니다.
로직은 간단히 3 방향의 거리값 평균이 일정 수치보다 작으면 버튼 역할을 하게 해봅
니다.
아래는 수도(Pseudo,의사코드) 코드입니다.
int averageDistance = (LEFT + CENTER + RIGHT) / 3; // 3 방향의
평균을 구합니다.
if(averageDistance < 지정된 값 )
{
현재 모드 운행 모드 체크 후 처리해줍니다.
}
146