산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 나노로 만드는 음성 제어 로봇 - 블루투스와 안드로이드 앱 활용

부품 및 소모품

부품 수량 비고
아두이노 나노 R3 (Arduino Nano R3) 1
L298N 모터 드라이버 모듈 1
HC-05 블루투스 모듈 1
DC 모터 + 호환 휠 2
다기능 로봇 PCB 1 직접 제작 또는 브레드보드 사용 가능
수/암 헤더 핀 여러 개

필요 도구

앱 및 온라인 서비스

프로젝트 소개

로봇은 멋집니다. 내 음성 명령에 따라 움직이는 로봇이라면 더 멋지겠죠. 아두이노로 음성 제어 로봇을 만드는 건 더더욱 멋집니다. 아두이노는 저렴하고 수정하기 쉽기 때문입니다.

아두이노 나노로 만드는 음성 제어 로봇 - 블루투스와 안드로이드 앱 활용
필요한 전자 부품들

1단계: 필요한 부품

전자 부품:

차체 제작용:

소프트웨어:

2단계: 작동 원리

아두이노는 마이크로컨트롤러로 음성 인식을 수행할 만큼의 연산 능력이 없습니다(현재 기준). 하지만 PCB에 블루투스 모듈 포트가 있어, 아두이노를 무선으로 다른 기기와 연결할 수 있습니다. 이를 활용해 안드로이드 앱에서 구글 API(인터넷 필요)를 이용해 '음성→텍스트' 변환을 수행하고, 변환된 텍스트를 블루투스로 아두이노에 전송하는 방식입니다.

예: "Forward"라고 말하면 앱이 'F' 문자를 아두이노로 전송 → 아두이노가 전진.

3단계: 차체 제작

PVC 시트를 칼로 잘라 모터와 휠을 보드 안쪽에 장착하고 글루건으로 고정했습니다. 영상을 참고하세요. 본인의 취향에 맞게 자유롭게 제작하시면 됩니다.

4단계: 회로 구성 - 브레드보드 vs PCB

아두이노 나노로 만드는 음성 제어 로봇 - 블루투스와 안드로이드 앱 활용
EasyEDA로 설계한 PCB
아두이노 나노로 만드는 음성 제어 로봇 - 블루투스와 안드로이드 앱 활용
PCB 레이아웃

브레드보드로도 가능하지만 배선이 복잡하고 한 번의 잘못된 연결로 전체 프로젝트가 망가질 수 있습니다. 그래서 저는 PCB를 선호합니다. EasyEDA로 설계하고 PCBWay에서 주문했습니다(10장에 $5, 학생 프로젝트 후원도 함). 블랙 색상으로 주문했는데 아주 깔끔하게 나왔습니다.

PCB 주문이 어렵다면 브레드보드나 기판에 직접 배선하셔도 됩니다. 프리칭 파일(speech-controlled-robot-schematic.fzz)을 제공합니다.

5단계: 전자 부품 연결

아두이노 나노로 만드는 음성 제어 로봇 - 블루투스와 안드로이드 앱 활용
회로 연결도

모터 → 모터 드라이버:

모터 제어 핀 (L298N → 아두이노):

블루투스 모듈 (HC-05 → 아두이노):

배터리:

모터용 7.4V 배터리를 모터 드라이버 입력단자와 아두이노 VIN, GND에 연결. 공통 그라운드 필수.

6단계: 아두이노 프로그래밍

시리얼로 문자를 수신하면 해당 동작 수행:

블루투스 모듈은 시리얼 포트(9600 bps)로 통신.

코드 설명

void setup() {
  pinMode(lm1, OUTPUT); pinMode(lm2, OUTPUT);
  pinMode(rm1, OUTPUT); pinMode(rm2, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  while(Serial.available() == 0); // 데이터 수신 대기
  val = Serial.read();            // 문자 읽기
  
  if (val == 'F') {      // 전진
    digitalWrite(lm1, HIGH); digitalWrite(rm1, HIGH);
    digitalWrite(lm2, LOW);  digitalWrite(rm2, LOW);
  }
  else if (val == 'B') { // 후진
    digitalWrite(lm2, HIGH); digitalWrite(rm2, HIGH);
    digitalWrite(lm1, LOW);  digitalWrite(rm1, LOW);
  }
  else if (val == 'R') { // 우회전
    digitalWrite(lm1, HIGH); digitalWrite(rm2, HIGH);
    digitalWrite(lm2, LOW);  digitalWrite(rm1, LOW);
  }
  else if (val == 'L') { // 좌회전
    digitalWrite(lm2, HIGH); digitalWrite(rm1, HIGH);
    digitalWrite(lm1, LOW);  digitalWrite(rm2, LOW);
  }
  else {                 // 정지
    digitalWrite(lm1, LOW); digitalWrite(rm1, LOW);
    digitalWrite(lm2, LOW); digitalWrite(rm2, LOW);
  }
  delay(10);
}

7단계: 음성 인식 안드로이드 앱 제작 (MIT App Inventor)

아두이노 나노로 만드는 음성 제어 로봇 - 블루투스와 안드로이드 앱 활용
MIT App Inventor로 만든 음성 제어 앱

MIT App Inventor로 제작했으며, .aia 파일을 다운로드해 수정·커스터마이징 가능합니다.

앱 동작 흐름:

  1. HC-05 블루투스 모듈과 페어링 (기본 비밀번호: 1234 또는 0000)
  2. 구글 Speech-to-Text API로 음성을 텍스트 변환 (인터넷 필요)
  3. 소문자로 변환 후 if-else로 매칭
  4. "forward" 감지 시 아두이노로 'F' 전송 → 전진

APK 파일로 빌드해 설치하거나 제공된 APK를 사용하세요.

8단계: 전원 켜고 앱 실행하고 출발!

배터리를 연결하고 안드로이드 앱으로 새 로봇을 조종해보세요!

코드

아두이노 전체 코드

/**** Arduino Speech/Voice Controlled Robot ***
 * by Ashraf Minhaj
 * mail: ashraf_minhaj@yahoo.com
 * tutorial: ashrafminhajfb.blogspot.com
 */
int lm1 = 4;  // 왼쪽 모터 핀
int lm2 = 5;
int rm1 = 2;  // 오른쪽 모터 핀
int rm2 = 3;
char val;

void setup() {
  pinMode(lm1, OUTPUT); pinMode(lm2, OUTPUT);
  pinMode(rm1, OUTPUT); pinMode(rm2, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  while(Serial.available() == 0);
  val = Serial.read();
  
  if (val == 'F') { // 전진
    digitalWrite(lm1, HIGH); digitalWrite(rm1, HIGH);
    digitalWrite(lm2, LOW);  digitalWrite(rm2, LOW);
  }
  else if (val == 'B') { // 후진
    digitalWrite(lm2, HIGH); digitalWrite(rm2, HIGH);
    digitalWrite(lm1, LOW);  digitalWrite(rm1, LOW);
  }
  else if (val == 'R') { // 우회전
    digitalWrite(lm1, HIGH); digitalWrite(rm2, HIGH);
    digitalWrite(lm2, LOW);  digitalWrite(rm1, LOW);
  }
  else if (val == 'L') { // 좌회전
    digitalWrite(lm2, HIGH); digitalWrite(rm1, HIGH);
    digitalWrite(lm1, LOW);  digitalWrite(rm2, LOW);
  }
  else { // 정지
    digitalWrite(lm1, LOW); digitalWrite(rm1, LOW);
    digitalWrite(lm2, LOW); digitalWrite(rm2, LOW);
  }
  delay(10);
}

회로도

아두이노 나노로 만드는 음성 제어 로봇 - 블루투스와 안드로이드 앱 활용
Fritzing 회로도 (speech-controlled-robot-schematic_hUoWKpapKe.fzz)

GitHub

https://github.com/ashraf-minhaj/speech-controlled-robot

제조공정

  1. 블루투스 제어 라즈베리 파이 로봇 만들기 - 오디오 피드백 포함
  2. 아두이노 & 라즈베리 파이로 인터넷 제어 영상 스트리밍 로봇 만들기
  3. 윈도우 10 IoT 코어 라즈베리파이 2로 음성 제어 로봇 만들기
  4. 파이썬으로 와이파이 제어 라즈베리파이 로봇 만들기 – 단계별 가이드
  5. 낡은 RC카를 아두이노와 엑스박스 컨트롤러로 조종하는 차량으로 개조하기
  6. 아두이노 우노로 자율 주행 라인 트레이서 로봇 만들기
  7. 아두이노 메가 기반 닌텐도 눙크 컨트롤 6자유도 로봇 암 키트
  8. 이더넷 제어 로봇팔: 아두이노 101과 WIZ750SR로 원격 제어
  9. MobBob: 아두이노 로봇 직접 만들기, 안드로이드 스마트폰으로 매끄럽게 제어
  10. 피봇(PiBot): 아두이노 기반 88건반 피아노 연주 로봇