프로젝트 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번 핀에 연결하고, 모터 드라이버는 전력 소모가 크므로 배터리 전원을 직접 연결해야 합니다.

Arduino Uno D2(RX) | D3(TX) | D4~D7(Motor) HC-06 BT Signal L298N Driver Left Motor Right Motor Battery
▲ 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' 문자를 매핑하면 준비 끝!

5. 🎉 마스터 가이드 종료: 새로운 시작

축하합니다! 10개의 프로젝트를 통해 C언어의 기초부터 복잡한 로봇 제어까지 모두 섭렵하셨습니다. 이제 여러분은 단순히 코드를 짜는 사람이 아니라, 현실의 물리적인 문제를 소프트웨어로 해결하는 '메이커(Maker)'가 되었습니다.

🚀 다음 단계는 무엇인가요?

이제 배운 내용들을 바탕으로 자신만의 창의적인 프로젝트를 시작해 보세요. 사물인터넷(IoT), 인공지능(AI) 카메라 등을 접목하면 더 놀라운 세상을 만들 수 있습니다. 여러분의 도전을 응원합니다!