라즈베리 파이 & 안드로이드 스마트폰으로 WiFi 제어 로봇 만들기
스마트폰으로 로봇 조종해보고 싶으셨나요? 라즈베리 파이, L293D 모터 드라이버, RootSaid WiFi Command Center 앱으로 모바일 제어 로봇을 실현하세요. 부품 선정부터 리스너 스크립트 작성까지 전 단계를 안내합니다.
필요한 부품
링크 클릭해 아마존(또는 선호 리테일러)에서 각 아이템 구매.
- 라즈베리 파이 (GPIO 핀 있는 모든 모델)
- 12V 리튬폴리머 (LiPo) 배터리
- DC 모터 2개
- 로봇 섀시 (폼 보드, 얇은 금속판, 또는 기성 키트)
- L293D 듀얼 H-브리지 모터 드라이버
- RootSaid – WiFi Command Center 설치된 안드로이드 폰
- WiFi 네트워크 (라우터 또는 핫스팟)
단계별 빌드 가이드
1. 섀시 조립
라즈베리 파이, L293D, 배터리 수납 가능한 튼튼한 베이스 설계. 폼 보드나 얇은 금속판 같은 경량 소재로 무게 최소화. 기성 로봇 섀시 온라인 구매도 가능.
2. 전원 시스템 설정
12V LiPo가 모터와 L293D 내부 레귤레이터 구동. 라즈베리 파이 보호를 위해 DC-DC 컨버터나 벅 레귤레이터로 전압을 5V로 강하해 파이 5V 입력에 공급.
3. 모터 드라이버 마운트
L293D를 섀시에 고정하고 두 DC 모터에 배선. L293D 데이터시트 핀아웃 참조. 모터 드라이버 인에이블 핀을 하이(로직 1)로 유지해 연속 동작 보장.
4. 라즈베리 파이 준비
라즈베리 파이 OS(구 라즈비안) 로드된 마이크로SD 카드 삽입. 파이 전원 켜고 sudo passwd pi로 pi 사용자 비밀번호 설정, sudo apt update -y && sudo apt upgrade -y로 시스템 최신화.
5. WiFi 연결
파이를 WiFi 네트워크 연결. 터미널에서 ifconfig 또는 hostname -I로 파이 IP 주소 확인. 파이에서 폰 IP 핑으로 연결성 검증.
6. GPIO 핀 배선
모터 제어용 6개 GPIO 핀 사용:
- 모터 1: GPIO 33 (IN1), GPIO 11 (IN2)
- 모터 2: GPIO 13 (IN3), GPIO 15 (IN4)
- 인에이블 핀: GPIO 29, GPIO 31 (둘 다 HIGH 유지)
7. 리스너 스크립트 설치
파이에서 다음 파이썬 스크립트 다운로드해 controller.py로 저장. UDP 포트 5050 리슨하며 수신 명령 모터 액션으로 변환.
import socket
import RPi.GPIO as GPIO
# GPIO 설정
GPIO.setmode(GPIO.BOARD)
# 모터 1
GPIO.setup(33, GPIO.OUT)
GPIO.setup(11, GPIO.OUT)
# 모터 2
GPIO.setup(13, GPIO.OUT)
GPIO.setup(15, GPIO.OUT)
# 인에이블 핀
GPIO.setup(29, GPIO.OUT)
GPIO.setup(31, GPIO.OUT)
GPIO.output(29, GPIO.HIGH)
GPIO.output(31, GPIO.HIGH)
# UDP 소켓
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('', 5050))
print('Listening for commands on port 5050...')
while True:
data, addr = sock.recvfrom(1024)
cmd = data.decode().strip().lower()
if cmd == 'forward':
GPIO.output(33, GPIO.HIGH); GPIO.output(11, GPIO.LOW)
GPIO.output(13, GPIO.HIGH); GPIO.output(15, GPIO.LOW)
elif cmd == 'backward':
GPIO.output(33, GPIO.LOW); GPIO.output(11, GPIO.HIGH)
GPIO.output(13, GPIO.LOW); GPIO.output(15, GPIO.HIGH)
elif cmd == 'left':
GPIO.output(33, GPIO.LOW); GPIO.output(11, GPIO.HIGH)
GPIO.output(13, GPIO.HIGH); GPIO.output(15, GPIO.LOW)
elif cmd == 'right':
GPIO.output(33, GPIO.HIGH); GPIO.output(11, GPIO.LOW)
GPIO.output(13, GPIO.LOW); GPIO.output(15, GPIO.HIGH)
elif cmd == 'stop':
GPIO.output(33, GPIO.LOW); GPIO.output(11, GPIO.LOW)
GPIO.output(13, GPIO.LOW); GPIO.output(15, GPIO.LOW)
else:
print('Unknown command:', cmd)
python controller.py로 스크립트 실행. 파이 이제 UDP 명령 수신 준비.
8. 폰에 RootSaid 설치
구글 플레이 스토어에서 RootSaid – WiFi Command Center 앱 다운로드. 앱 열기, 파이 IP 주소와 포트 5050 입력, 화면 방향 버튼으로 이동 명령 전송.
9. 로봇 테스트
모든 것 연결되고 전원 들어간 상태에서 폰으로 각 방향 시도. 모터 즉각 반응하면 안드로이드 기기와 라즈베리 파이 간 링크 성공 확인.
축하합니다! 스마트폰으로 바로 조종 가능한 완전 기능 WiFi 제어 로봇 완성.