- 필요한 재료 :
- Line Follower의 개념
- Raspberry Pi 라인 팔로워 로봇 회로 다이어그램 및 설명 :
- Raspberry PI 프로그래밍 :
- 작동중인 Raspberry Pi 라인 팔로워 :
우리 모두 알고 있듯이 Raspberry Pi는 ARM 마이크로 프로세서를 기반으로 한 멋진 개발 플랫폼입니다. 높은 계산 능력과 개발 옵션으로 전자 애호가 나 학생의 손에서 놀라운 일을 해결할 수 있습니다. Raspberry Pi 및 작동 방식에 대해 자세히 알아 보려면 Raspberry Pi를 사용하여 라인 팔로워 로봇을 구축해 보겠습니다.
로봇 공학에 관심이 있으시면 " Line Follower Robot " 이라는 이름을 잘 알고 계실 것입니다. 이 로봇은 한 쌍의 센서와 모터를 사용하여 선을 따라갈 수 있습니다. Raspberry Pi와 같은 강력한 마이크로 프로세서를 사용하여 간단한 로봇을 만드는 것은 효율적으로 들리지 않을 수 있습니다. 그러나이 로봇은 무한한 개발을위한 공간을 제공하며 Kiva (Amazon 창고 로봇)와 같은 로봇이 이에 대한 예입니다. 다른 라인 팔로워 로봇도 확인할 수 있습니다.
- 8051 마이크로 컨트롤러를 사용하는 라인 팔로워 로봇
- Arduino를 사용한 라인 팔로워 로봇
필요한 재료:
- Raspberry Pi 3 (모든 모델이 작동해야 함)
- IR 센서 (2Nos)
- DC 기어 모터 (2Nos)
- L293D 모터 드라이버
- 의자 (골판지를 사용하여 직접 만들 수도 있습니다)
- 파워 뱅크 (사용 가능한 모든 전원)
Line Follower의 개념
라인 추종자 로봇은 IR 센서의 도움으로 라인을 추적 할 수 있습니다. 이 센서에는 IR 송신기와 IR 수신기가 있습니다. IR 송신기 (IR LED)는 빛을 전송하고 수신기 (포토 다이오드)는 전송 된 빛이 다시 돌아올 때까지 기다립니다. IR 라이트는 표면에 반사되는 경우에만 다시 돌아옵니다. 반면, 모든 표면은 IR 빛을 반사하지 않으며, 아래 그림과 같이 색상 표면의 흰색 만 완전히 반사 할 수 있으며 검은 색 표면은 완전히 관찰합니다. 여기에서 IR 센서 모듈에 대해 자세히 알아보십시오.
이제 우리는 두 개의 IR 센서 를 사용 하여 로봇이 라인과 트랙에 있는지 확인하고 두 개의 모터를 사용하여 로봇이 트랙에서 벗어날 경우 로봇을 수정합니다. 이러한 모터는 고전류를 필요로하며 양방향이어야합니다. 따라서 L293D와 같은 모터 드라이버 모듈을 사용합니다. 또한 IR 센서의 값을 기반으로 모터에 지시하기 위해 Raspberry Pi 와 같은 계산 장치가 필요합니다. 동일한 블록 다이어그램이 아래에 나와 있습니다.
이 두 IR 센서는 라인의 양쪽에 하나씩 배치됩니다. 센서가 검은 색 선을 감지하지 못하는 경우 PI는 아래 그림과 같이 모터에 전진하도록 지시합니다.
왼쪽 센서가 검은 색 선에 나타나면 PI는 오른쪽 바퀴 만 회전하여 로봇에게 왼쪽으로 회전하도록 지시합니다.
오른쪽 센서가 검은 색 선에 나타나면 PI는 왼쪽 바퀴 만 돌려서 오른쪽으로 회전하도록 로봇에 지시합니다.
두 센서가 모두 검은 색 선에 있으면 로봇이 멈 춥니 다.
이렇게하면 로봇이 트랙을 벗어나지 않고도 라인을 따라갈 수 있습니다. 이제 회로와 코드가 어떻게 생겼는지 살펴 보겠습니다.
Raspberry Pi 라인 팔로워 로봇 회로 다이어그램 및 설명:
이 Raspberry Pi Line Follower 로봇 의 전체 회로 다이어그램 은 다음과 같습니다.
보시다시피 회로에는 두 개의 IR 센서와 Raspberry pi에 연결된 한 쌍의 모터가 포함됩니다. 전체 회로는 모바일 파워 뱅크 (위 회로에서 AAA 배터리로 표시됨)에 의해 전원이 공급됩니다.
핀 세부 정보는 라즈베리 파이에 언급되어 있지 않으므로 아래 그림을 사용하여 핀을 확인해야합니다.
그림에서 볼 수 있듯이 PI의 왼쪽 상단 모서리 핀은 + 5V 핀이며, 이 + 5V 핀을 사용하여 회로도 (빨간색 와이어)와 같이 IR 센서에 전원을 공급합니다. 그런 다음 검정색 와이어를 사용하여 접지 핀을 IR 센서 및 모터 드라이버 모듈의 접지에 연결합니다. 황색 와이어는 각각 센서 (1)과 (2)의 GPIO 핀 및 (3)의 출력 핀을 연결하는 데 사용된다.
모터를 구동하려면 4 개의 핀 (A, B, A, B)이 필요합니다. 이 4 개의 핀은 각각 GPIO14,4,17 및 18에서 연결됩니다. 주황색과 흰색 와이어는 함께 하나의 모터에 대한 연결을 형성합니다. 그래서 우리는 두 개의 모터에 대해 두 쌍을 가지고 있습니다.
모터는 그림과 같이 L293D 모터 드라이버 모듈에 연결되며 드라이버 모듈은 파워 뱅크에 의해 전원 이 공급됩니다. 파워 뱅크의 접지가 Raspberry Pi의 접지에 연결되어 있는지 확인해야 연결이 작동합니다.
Raspberry PI 프로그래밍:
조립과 연결이 끝나면 로봇은 다음과 같이 보일 것입니다.
이제 봇을 프로그래밍하고 실행해야 할 때입니다. 이 봇에 대한 전체 코드는이 자습서의 하단에서 찾을 수 있습니다. 여기에서 Raspberry Pi의 프로그램 및 실행 코드에 대해 자세히 알아보세요. 중요한 줄은 아래에 설명되어 있습니다.
라이브러리에서 GPIO 파일을 가져올 것입니다. 아래 기능을 사용하면 PI의 GPIO 핀을 프로그래밍 할 수 있습니다. 또한 "GPIO"의 이름을 "IO"로 변경하고 있으므로 프로그램에서 GPIO 핀을 참조 할 때마다 'IO'라는 단어를 사용합니다.
RPi.GPIO를 IO로 가져 오기
때때로 우리가 사용하려는 GPIO 핀이 다른 기능을 수행 할 때도 있습니다. 이 경우 프로그램을 실행하는 동안 경고를 받게됩니다. 아래 명령은 PI가 경고를 무시하고 프로그램을 진행하도록 지시합니다.
IO.setwarnings (False)
PI의 GPIO 핀을 보드의 핀 번호 또는 기능 번호로 참조 할 수 있습니다. 보드의 'PIN 29'와 마찬가지로 'GPIO5'입니다. 그래서 우리는 여기서 핀을 '29'또는 '5'로 나타낼 것이라고 말합니다.
IO.setmode (IO.BCM)
6 개의 핀을 입출력 핀으로 설정하고 있습니다. 처음 두 핀은 IR 센서를 읽기위한 입력 핀입니다. 다음 4 개는 출력 핀으로 처음 2 개는 오른쪽 모터를 제어하는 데 사용되고 다음 2 개는 왼쪽 모터에 사용됩니다.
IO.setup (2, IO.IN) #GPIO 2-> 왼쪽 IR 출력 IO.setup (3, IO.IN) #GPIO 3-> 오른쪽 IR 출력 IO.setup (4, IO.OUT) #GPIO 4- > 모터 1 단자 A IO.setup (14, IO.OUT) #GPIO 14-> 모터 1 단자 B IO.setup (17, IO.OUT) #GPIO 17-> 모터 좌측 단자 A IO.setup (18, IO.OUT) #GPIO 18-> 모터 좌측 단자 B
IR 센서는 흰색 표면 위에 있으면 "True"를 출력합니다. 두 센서가 모두 True 로 표시되는 한 앞으로 나아갈 수 있습니다.
if (IO.input (2) == True 및 IO.input (3) == True): # 둘 다 앞으로 이동 IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, False) # 2B-
우리는해야 우회전 최초의 IR 센서는 검은 색 라인을 통해 제공합니다. 이것은 IR 센서를 읽고 조건이 충족되면 아래 코드와 같이 오른쪽 모터를 중지하고 왼쪽 모터 만 회전합니다.
elif (IO.input (2) == False 및 IO.input (3) == True): # 우회전 IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, False) # 2B-
우리는해야 좌회전 두 번째 IR 센서는 검은 색 라인을 통해 제공합니다. 이것은 IR 센서를 읽고 조건이 충족되면 아래 코드와 같이 왼쪽 모터를 중지하고 오른쪽 모터 만 회전합니다.
elif (IO.input (2) == True 및 IO.input (3) == False): # 왼쪽으로 돌리기 IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
두 센서가 모두 검은 색 선 위에 있으면 로봇이 정지 해야 함을 의미합니다. 아래 코드와 같이 모터의 두 단자를 모두 참으로 만들면됩니다.
else: # 그대로 유지 IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
작동중인 Raspberry Pi 라인 팔로워:
라인 추종자 용 Python 코드를 Raspberry Pi에 업로드 하고 실행합니다. 우리는 휴대용 전원 공급 장치가 필요합니다.이 경우에는 전원 은행이 편리해 지므로 동일한 것을 사용했습니다. 제가 사용하고있는 것은 2 개의 USB 포트와 함께 제공되므로 아래 그림과 같이 PI에 전원을 공급하고 다른 하나는 Power Motor Driver에 전원을 공급하는 데 사용했습니다.
이제해야 할 일은 자신 만의 검은 색 트랙을 설정하고 그 위에 봇을 놓는 것입니다. 검정색 절연 테이프를 사용하여 검정색 재료를 사용할 수있는 트랙을 만들었지 만 바탕색이 어둡지 않은지 확인하십시오.
봇의 완전한 작동은 아래 주어진 비디오 에서 찾을 수 있습니다. 프로젝트를 이해하고 재미있게 만들었기를 바랍니다. 질문이 있으면 아래 댓글 섹션에 게시하십시오.