BLE 블루투스로 음성 제어 아두이노 자동차 만들기 – DIY 가이드
부품 및 소모품
| 부품 |
수량 |
| 아두이노 우노 (Arduino UNO) |
1 |
| 브레드보드 (일반) |
1 |
| DC 모터 (일반) |
2 |
| 리니어 레귤레이터 (7805) |
1 |
| 텍사스 인스트루먼트 L293D 듀얼 H-브리지 모터 드라이버 |
1 |
| 점퍼 와이어 (일반) |
1 |
| 블루투스 저에너지 (BLE) 모듈 (일반) |
1 |
프로젝트 소개
구성품
- 아두이노 우노
- 브레드보드
- 모터 2개
- 바퀴 2개
- 적절한 크기의 섀시
- 전압 레귤레이터 LM7805
- L293D 모터 드라이버
- 12V 배터리 (전원)
- 점퍼 와이어
- 블루투스 모듈 HC-05
사용할 앱: Google Play 링크
아이디어
블루투스 모듈을 모바일 앱과 연결합니다. 앱에서 내린 명령이 모듈을 통해 아두이노로 전송됩니다. 시리얼 버퍼에서 문자 단위로 수신해 문자열로 조합한 뒤, 미리 정의된 명령어와 비교해 일치하면 해당 동작을 수행합니다. 예를 들어 "Right" 문자열을 수신하면 오른쪽으로 회전합니다.
연결 방법
상세 연결도는 여기를 참조하세요.
코드
int motor_input1 = 11;
int motor_input2 = 10;
int motor_input3 = 5;
int motor_input4 = 6;
String voice;
void setup() {
Serial.begin(9600);
pinMode(motor_input1, OUTPUT); // 오른쪽 모터
pinMode(motor_input2, OUTPUT); // 오른쪽 모터
pinMode(motor_input3, OUTPUT); // 왼쪽 모터
pinMode(motor_input4, OUTPUT); // 왼쪽 모터
}
void loop() {
while (Serial.available() > 0) {
delay(10);
char c = Serial.read();
if (c == '#') {
break;
}
voice += c;
}
if (voice == "forward") {
digitalWrite(motor_input1, LOW);
digitalWrite(motor_input2, HIGH);
digitalWrite(motor_input3, LOW);
digitalWrite(motor_input4, HIGH);
delay(5000);
} else if (voice == "back") {
digitalWrite(motor_input1, HIGH);
digitalWrite(motor_input2, LOW);
digitalWrite(motor_input3, HIGH);
digitalWrite(motor_input4, LOW);
delay(5000);
} else if (voice == "left") {
digitalWrite(motor_input1, LOW);
digitalWrite(motor_input2, HIGH);
digitalWrite(motor_input3, HIGH);
digitalWrite(motor_input4, LOW);
delay(800);
} else if (voice == "right") {
digitalWrite(motor_input1, HIGH);
digitalWrite(motor_input2, LOW);
digitalWrite(motor_input3, LOW);
digitalWrite(motor_input4, HIGH);
delay(800);
}
if (voice.length() > 0) {
Serial.println(voice);
voice = "";
digitalWrite(motor_input1, LOW);
digitalWrite(motor_input2, LOW);
digitalWrite(motor_input3, LOW);
digitalWrite(motor_input4, LOW);
}
}