프로젝트 10: 🏎️ 스마트폰 조종 블루투스 RC카
무선 통신과 동력 제어의 결정체, 나만의 무선 자동차를 완성하고 조종해 봅시다.
1. 프로젝트 개요
이 프로젝트는 아두이노에 블루투스 모듈(HC-06)을 달아 스마트폰과 연결하고, 스마트폰 앱에서 보낸 명령('F': 전진, 'B': 후진 등)을 받아 모터 드라이버(L298N)를 통해 두 개의 DC 모터를 구동하는 프로젝트입니다.
📦 준비물
아두이노 우노 x 1
RC카 섀시 세트 (프레임, 바퀴 2개)
DC 모터 x 2
L298N 모터 드라이버 x 1
HC-06 블루투스 모듈 x 1
9V 배터리 또는 18650 배터리 세트
2. 상세 회로 결선도 (Wiring Diagram)
블루투스 모듈은 SoftwareSerial을 사용해 2, 3번 핀에 연결하고, 모터 드라이버는 전력 소모가 크므로 배터리 전원을 직접 연결해야 합니다.
▲ RC카 하드웨어 구성도: 블루투스 신호를 받아 드라이버가 모터를 제어합니다.
3. 코드 작성하기
스마트폰에서 문자를 보내면 그에 맞춰 모터의 핀을 제어하는 switch-case 문을 사용합니다.
#include <SoftwareSerial.h>
// 블루투스 설정: 2번(RX), 3번(TX)
SoftwareSerial BTSerial(2, 3);
// 모터 핀 설정 (L298N 연결 핀)
int IN1 = 4; int IN2 = 5; // 왼쪽 모터
int IN3 = 6; int IN4 = 7; // 오른쪽 모터
void setup() {
BTSerial.begin(9600);
for(int i=4; i<=7; i++) pinMode(i, OUTPUT);
}
void loop() {
if (BTSerial.available()) {
char cmd = BTSerial.read();
switch(cmd) {
case 'F': moveForward(); break; // 전진
case 'B': moveBackward(); break; // 후진
case 'L': turnLeft(); break; // 좌회전
case 'R': turnRight(); break; // 우회전
case 'S': stopCar(); break; // 정지
}
}
}
void moveForward() {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}
void stopCar() {
for(int i=4; i<=7; i++) digitalWrite(i, LOW);
}
// ... (나머지 방향 함수들도 위와 유사하게 작성합니다)
4. 조종하는 방법
📱 스마트폰 앱 사용법
플레이스토어(Android)에서 **"Arduino Bluetooth Controller"** 앱을 다운로드하세요. 앱 설정에서 화살표 버튼들에 각각 'F', 'B', 'L', 'R', 'S' 문자를 매핑하면 준비 끝!
- 페어링: 스마트폰 설정에서 HC-06을 찾아 페어링합니다 (비밀번호는 주로 1234 또는 0000).
- 전원 관리: 아두이노는 USB로 전원을 공급할 수 있지만, 모터는 힘이 많이 들기 때문에 반드시 별도의 외부 배터리를 드라이버에 연결해야 합니다.
5. 🎉 마스터 가이드 종료: 새로운 시작
축하합니다! 10개의 프로젝트를 통해 C언어의 기초부터 복잡한 로봇 제어까지 모두 섭렵하셨습니다. 이제 여러분은 단순히 코드를 짜는 사람이 아니라, 현실의 물리적인 문제를 소프트웨어로 해결하는 '메이커(Maker)'가 되었습니다.
🚀 다음 단계는 무엇인가요?
이제 배운 내용들을 바탕으로 자신만의 창의적인 프로젝트를 시작해 보세요. 사물인터넷(IoT), 인공지능(AI) 카메라 등을 접목하면 더 놀라운 세상을 만들 수 있습니다. 여러분의 도전을 응원합니다!