A Line Follower Robot은 대부분의 학생 / 애호가들이 제작할 수있는 간단하면서도 매력적인 로봇입니다. 이 튜토리얼에서는 라인 팔로워 로봇의 작동 원리 와 PIC 마이크로 컨트롤러 PIC16F877A를 사용하여 로봇 을 구축하는 방법 을 배웁니다. PIC16F877A는 Microchip의 40 핀 다목적 MCU이며 전체 PIC 튜토리얼 시리즈에서이 IC를 사용했습니다. 처음 사용하는 경우 여기에서이 PIC 자습서를 살펴보고이 IC의 기본 사항과 프로그램을 마이크로 컨트롤러에 업로드하는 방법을 배울 수 있습니다. 튜토리얼에서이 정보를 이미 다루었으므로 아래 설명에서는 생략하겠습니다.
로봇 공학에 관심이 있으시면 " Line Follower Robot " 이라는 이름을 잘 알고 계실 것입니다. 이 로봇은 한 쌍의 센서와 모터를 사용하여 선을 따라갈 수 있습니다. 이 로봇은 무한한 개발을위한 공간을 제공하며 Kiva (Amazon 창고 로봇)와 같은 로봇이 이에 대한 예입니다. 다른 라인 팔로워 로봇도 확인할 수 있습니다.
- 8051 마이크로 컨트롤러를 사용하는 라인 팔로워 로봇
- Arduino를 사용한 라인 팔로워 로봇
- Raspberry Pi를 사용하는 라인 팔로워 로봇
필요한 재료:
- PIC16F877A
- IR 센서 (2Nos)
- DC 기어 모터 (2Nos)
- L293D 모터 드라이버
- 의자 (골판지를 사용하여 직접 만들 수도 있습니다)
- 파워 뱅크 (사용 가능한 모든 전원)
Line Follower의 개념
라인 추종자 로봇은 IR 센서의 도움으로 라인을 추적 할 수 있습니다. 이 센서에는 IR 송신기와 IR 수신기가 있습니다. IR 송신기 (IR LED)는 빛을 전송하고 수신기 (포토 다이오드)는 전송 된 빛이 다시 돌아올 때까지 기다립니다. IR 라이트는 표면에 반사되는 경우에만 다시 돌아옵니다. 반면, 모든 표면은 IR 빛을 반사하지 않으며, 아래 그림과 같이 색상 표면의 흰색 만 완전히 반사 할 수 있으며 검은 색 표면은 완전히 관찰합니다. 여기에서 IR 센서 모듈에 대해 자세히 알아보십시오.
이제 우리는 두 개의 IR 센서 를 사용 하여 로봇이 라인과 트랙에 있는지 확인하고 두 개의 모터를 사용하여 로봇이 트랙에서 벗어날 경우 로봇을 수정합니다. 이러한 모터는 고전류를 필요로하며 양방향이어야합니다. 따라서 L293D와 같은 모터 드라이버 모듈을 사용합니다. 또한 IR 센서의 값을 기반으로 모터에 명령을 내리 려면 PIC 와 같은 마이크로 컨트롤러가 필요합니다. 동일한 블록 다이어그램이 아래에 나와 있습니다.
이 두 IR 센서는 라인의 양쪽에 하나씩 배치됩니다. 센서가 검은 색 선을 감지하지 못하는 경우 PIC 마이크로 컨트롤러는 모터에 아래 그림과 같이 앞으로 이동하도록 지시합니다.
왼쪽 센서가 검은 색 선에 나타나면 마이크로 컨트롤러는 오른쪽 바퀴 만 돌려서 왼쪽으로 회전하도록 로봇에 지시합니다.
오른쪽 센서가 검은 색 선에 있으면 마이크로 컨트롤러는 왼쪽 바퀴 만 돌려서 오른쪽으로 회전하도록 로봇에 지시합니다.
두 센서가 모두 검은 색 선에 있으면 로봇이 멈 춥니 다.
이렇게하면 로봇이 트랙을 벗어나지 않고도 라인을 따라갈 수 있습니다. 이제 회로와 코드가 어떻게 생겼는지 살펴 보겠습니다.
회로도 및 설명:
이 PIC 기반 라인 팔로워 로봇 의 전체 회로 다이어그램 은 다음과 같습니다.
회로는 위와 같이 모터 드라이버 모듈과 함께 두 개의 IR 센서와 한 쌍의 DC 기어 모터를 사용합니다. 이 프로젝트에 사용 된 모터 드라이버 모듈은 L293D입니다. PIC 마이크로 컨트롤러의 출력 핀이 모터가 구동하기에 충분한 전류를 공급할 수 없기 때문에 모터 드라이버가 필요합니다. 이 모듈은 회로에 표시된대로 전원 (5V)에서 직접 전원을 공급받습니다. 모듈에는 모터의 방향을 제어하기 위해 PIC에 연결된 4 개의 핀 (각 모터에 대해 2 개)이 있습니다. 또한 PIC 마이크로 컨트롤러에 대한 입력 역할을하는 두 개의 IR 센서가 있습니다. 이 센서는 흰색 표면 위에 있으면 높고 (1) 검은 색 표면 위에 있으면 낮게 (0) 갈 것입니다. 전체 핀 연결은 아래 표에 나와 있습니다.
S. 아니 |
다음에서 연결됨 |
연결됨 |
1 |
IR 센서 왼쪽 핀 |
RD2 (핀 21) |
2 |
IR 센서 오른쪽 핀 |
RD3 (핀 22) |
4 |
모터 1 채널 A 핀 |
RC4 (23 번 핀) |
5 |
모터 1 채널 B 핀 |
RC5 (핀 25) |
6 |
모터 2 채널 A 핀 |
RC6 (핀 26) |
7 |
모터 2 채널 B 핀 |
RC7 (핀 27) |
실제 하드웨어에서는 USB 포트를 통해 직접 + 5V의 출력을 제공하는 파워 뱅크 를 사용했습니다. 따라서 7805 전압 조정기를 우회하고 동일한 것을 사용하여 PIC, 센서 및 모터에 전원을 공급했습니다. 회로에 표시된대로 레귤레이터와 함께 12V 배터리를 사용하는 것과 동일하게 할 수 있습니다.
PIC 마이크로 컨트롤러 프로그래밍:
하드웨어가 준비되면 프로그래밍을 시작할 시간입니다. 이 PIC 라인 팔로워 로봇 프로젝트 의 전체 프로그램 은이 페이지 끝에 제공됩니다. 그러나 중요한 청크는 아래에 설명되어 있습니다.
다음 행으로 I / O 핀을 초기화하십시오. 2 개의 IR 센서 핀은 입력으로 작동하고 4 개의 모터 핀은 출력 핀으로 작동합니다.
TRISD2 = 1; TRISD3 = 1; // 욕조 IR 센서 핀은 입력으로 선언됩니다. TRISC4 = 0; TRISC5 = 0; // 출력으로 선언 된 모터 1 핀 TRISC6 = 0; TRISC7 = 0; // 출력으로 선언 된 모터 2 핀
이제 IR 센서의 상태를 읽고 그에 따라 모터를 제어해야합니다. 예를 들어 두 센서가 모두 높으면 (검은 색 선 아래에 있지 않음) 아래 프로그램과 같이 두 모터를 앞으로 이동 합니다.
if (RD2 == 1 && RD3 == 1) // 두 센서 모두 balck 라인 위에 있지 않음 {RC4 = 0; RC5 = 1; // 모터 1 앞으로 RC6 = 1; RC7 = 0; // 모터 2 앞으로}
왼쪽 센서가 검은 색 선 위로 오면 모터 1을 가만히 잡고 모터 2를 정방향으로 돌려 우회전 합니다. 이러한 유형의 선삭을 차동 선삭 이라고 합니다.
else if (RD2 == 0 && RD3 == 1) // 왼쪽 센서가 검은 색 선 위에 있습니다. {RC4 = 1; RC5 = 1; // 모터 1 정지 RC6 = 1; RC7 = 0; // 모터 2 앞으로}
마찬가지로 오른쪽 센서가 검은 색 선 위로 오면 아래 그림과 같이 두 번째 모터를 가만히 잡고 첫 번째 모터 만 정방향으로 회전시켜 왼쪽으로 회전 하도록 봇을 만듭니다.
else if (RD2 == 1 && RD3 == 0) // 오른쪽 센서가 검은 색 선 위에 있습니다. {RC4 = 0; RC5 = 1; // 모터 1 앞으로 RC6 = 1; RC7 = 1; // 모터 2 정지}
마지막으로 두 센서가 모두 검은 색 선 아래에 있으면 봇을 중지 할 시간 입니다. 이것은 두 모터의 모든 핀을 높이면 가능합니다. 동일한 작업을 수행하는 코드는 다음과 같습니다.
else // 검은 선 위에 두 센서 모두 {RC4 = 1; RC5 = 1; // 모터 1 정지 RC6 = 1; RC7 = 1; // 모터 2 정지}
즉, 프로그램이 준비되었으며 PicKit과 같은 프로그래머를 사용하여 PIC에 업로드 할 수 있습니다.
실행중인 PIC 라인 팔로워:
하드웨어와 코드가 준비되면 조치를 취할 시간입니다. 앞서 말했듯이 저는 파워 뱅크를 사용하여 봇에 전원을 공급 했으므로 하드웨어 설정과 코드가 이미 업로드 된 봇에 파워 뱅크를 연결하기 만하면됩니다.
PIC 성능 보드는 PIC 마이크로 컨트롤러를 사용하는 방법을 배운 PIC 튜토리얼 시리즈 용으로 제작되었습니다. Pickit 3을 사용하여 프로그램을 굽는 방법을 모르는 경우 MPLABX 및 XC8을 사용하는 PIC 마이크로 컨트롤러 자습서로 돌아가고 싶을 수 있습니다. 모든 기본 정보를 건너 뛸 것입니다.
이제 검은 선 위에 봇을 실행하기 만하면 선을 따라가는 것을 볼 수 있습니다.
이 경우 처음에 몇 가지 어려움에 직면 할 수 있습니다. 바퀴가 반대 방향으로 회전하면 바퀴가 반대 방향으로 회전하는 모터의 극성을 바꾸면됩니다. 봇이 라인에서 벗어나면 IR 센서를 교체하면 모두 정상이어야합니다.
봇의 완전한 작동은 아래 주어진 비디오 에서 찾을 수 있습니다. 당신이 프로젝트를 좋아하고 비슷한 것을 만드는 것을 즐겼기를 바랍니다. 이 작업을 수행하는 데 문제가있는 경우 아래 댓글 섹션에 게시하여 문제를 해결하거나 당사 포럼을 사용하여 기술 내용을 논의 할 수 있습니다.