라즈베리 파이 장애물 회피 로봇 만들기 - 초보자 가이드
라즈베리 파이 입문자로 소프트웨어와 하드웨어 결합한 실습 프로젝트 원하신다면, 이 가이드가 적외선 센서로 장애물 감지·회피하는 파이썬 제어 로봇 제작을 안내합니다.
장애물 회피 로봇은 로보틱스 학습에 인기 있고 놀랍게도 조립이 단순합니다. 이 튜토리얼 따라하면 로봇에 신뢰성 있는 객체 회피 기능 추가하거나 단순히 파이썬과 라즈베리 파이 GPIO 생태계 탐색 가능.
필요한 것들
- 라즈베리 파이 B, B+, 2, 3, 4 및 기본 주변기기 (SD 카드, 키보드, 마우스, 전원 공급 장치)
- IR 거리 센서 모듈 (예: 대중적 4채널 IR 센서)
- 섀시용 적합한 토크 가진 기어드 DC 모터
- L293D 모터 드라이버 보드
- 로봇 섀시와 바퀴
- 안정성용 캐스터 바퀴
- 브레드보드와 양면 테이프
- 암-암 / 암-수 점퍼 와이어
- 9V 배터리와 적절한 커넥터
- 푸시 버튼과 220Ω 저항 (전원 온 제어용)
작동 원리
로봇 핵심 기능은 5-6cm 범위 내 객체 감지하는 두 IR 센서에 의존. 객체 존재 시 센서 출력 핀이 LOW (0V), 미감지 시 HIGH (5V) 유지. 라즈베리 파이 GPIO 핀으로 이 디지털 신호 읽고 부착된 파이썬 스크립트가 모터 제어.
IR(적외선) 모듈은 IR LED 송신기와 포토다이오드 수신기로 구성. 객체가 방출된 IR 빛 일부를 수신기로 반사하면 LOW 신호 발생해 근접 알림. 이 신호들이 파이 GPIO 입력으로 라우팅.
로봇 시작 - 푸시 버튼 누르면 트리거 - 파이가 L293D 드라이버로 DC 모터 전진 구동. IR 센서가 장애물 감지하면 스크립트가 모터 잠깐 후진 후 회전 기동으로 장애물 회피.
1단계: IR 센서 배선
센서에 파이 5V와 GND로 전원 공급, 출력 핀을 GPIO 3번과 16번 연결 (공식 GPIO 핀아웃 다이어그램 참조). 보드 GPIO.BOARD 모드는 헤더상 핀 번호 그대로 사용.
다음 스크립트 irtest.py로 저장:
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
# 우측 센서 (GPIO 3)
GPIO.setup(3, GPIO.IN)
# 좌측 센서 (GPIO 16) 풀업 포함
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
right = GPIO.input(3)
left = GPIO.input(16)
if right == 0:
print("Obstacle detected on Right", right)
time.sleep(0.1)
elif left == 0:
print("Obstacle detected on Left", left)
time.sleep(0.1)
sudo python irtest.py로 실행. 손으로 센서 가릴 때 콘솔에 어느 쪽이 장애물 감지했는지 메시지 출력.
2단계: L293D 드라이버로 모터 연결
L293D에 9V 배터리 전원 공급 (양극을 + 핀, 음극을 – 핀). 보드 그라운드를 파이 GND와 연결. 모터 출력을 드라이버 출력 핀에, 제어 핀을 추가 GPIO에 배선 (L298N 데이터시트 핀 정의 참조). 모터 배선 완료 후 스크립트로 전진, 후진, 회전 명령 가능.
하드웨어 조립 완료 후 라즈베리 파이 전원 켜고 푸시 버튼 누르면 로봇이 장애물 피하며 내비게이션 시작.
추가 학습 자료로 라즈베리 파이와 아두이노 무료 eBook 다운로드해 실력 심화.