본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 HC-06 블루투스 모듈과 L298P 모터쉴드를 사용해 블루투스 스마트 카를 만들어 보고 스마트폰으로 무선으로 제어해 보기

by 오마이엔지니어 2019. 6. 22.
반응형

Arduino Uno 로 HC-06 블루투스 모듈과 L298P 모터쉴드를 사용해서 스마트 카를 만들어
안드로이드 폰으로 아두이노 블루투스 컨트롤 어플을 사용해 무선으로 스마트카를 구동시켜 보는 프로젝트 입니다

 


아두이노 스마트카 차대 를 기본으로 해서 HC-06 블루투스 슬레이브 모듈, L298P 모터 컨트롤 쉴드와 그밖의 부품들을 사용해 아두이노 블루투스 스마트 카를 구성해 봅니다

(부품을 개별로 준비하기 번거롭다면 아두이노 블루투스 스마트 카 키트 도 손쉽게 구할 수 있습니다)


HC-06 블루투스 슬레이브 모듈
HC-06 블루투스 슬레이브 모듈은 다양한 무선 블루투스 프로젝트를 가능하게 합니다
Arduino(아두이노) 나 PC, 안드로이드 폰과 연결하여 다양한 프로젝트를 수행할 수 있습니다
무선이라 편리하며 Google 안드로이드 앱으로 다양하게 응용이 가능합니다

 

 

 


Arduino Uno 로 HC-06 블루투스 슬레이브 모듈을 사용해 LED 깜박이기
Arduino Uno 로 HC-06 블루투스 슬레이브 모듈을 사용해 AT커맨드 통신하기
Arduino Uno 로 HC-06 블루투스 슬레이브 모듈을 사용해 무선으로 코드 업로드 해보기

L298P 다기능 모터 컨트롤 쉴드
L298P 듀얼 블릿지 드라이버 기반의 아두이노 우노 또는 호환보드에 장착해서 DC모터, 스텝모터, 서보모터, 블루투스
초음파센서, RGB LED 등을 사용할수 있게 제작된 다가능 쉴드 입니다
아두이노에 장착해서 블루투스나 기타 센서등을 사용해 간편하게 다양한 모터를 제어할 수 있습니다

 

L298P 다기능 모터쉴드 사용법 알아보기

사용된 부품

Arduino Uno R3
L298P 다기능 모터 쉴드
HC-06 블루투스 슬레이브 모듈

아두이노 스마트 카 차대

배선용케이블
9V DC JACK
9V 배터리

AA배터리 4개
안드로이드 OS 스마트폰

사용된 키트
아두이노 블루투스 스마트 카 키트


구성 배선도

 

 

사용된 예제소스

example code.txt


#include <SoftwareSerial.h> //시리얼 통신 라이브러리 호출

// Bluetooth 관련
int blueRx=1;   //Rx (받는핀 설정)
int blueTx=0;   //Tx (보내는핀 설정)
SoftwareSerial btSerial(blueTx, blueRx);  //시리얼 통신을 위한 객체선언
String myString=""; //받는 문자열

RX, TX 는 블루투스 모듈과 크로스 되게 연결 되어야 하므로 RX=1, TX=0 입니다

int E1 = 10;      // 1번(A) 모터 Enable
int E2 = 11;      // 2번(B) 모터 Enable
int M1 = 12;      // 1번(A) 모터 PWM
int M2 = 13;      // 2번(B) 모터 PWM

L298N 이나 L9110S 기반의 모터 드라이버를 사용할 때와는 다르게 모터 설정 핀이 10, 11, 12, 13 인것을 알 수 있습니다

  if (myString.length() > 0) {
    Serial.println(myString);
    if (myString == "f") {
      motor_forward();
    } else if (myString == "s") {
      motor_stop();
    } else if (myString == "r") {
      motor_right();
    } else if (myString == "l") {
      motor_left();
    } else if (myString == "b") {
      motor_backwards();


전진=f , 후진=b, 우회전=r, 좌회전=l, 멈춤=s 의 키세팅 입니다

하단 동영상에서도 확인할수 있듯이 좌회전과 후회전시 한쪽 바퀴가 움직이고
다른쪽 바퀴가 반대 방향으로 움직이면서
좌/우 회전을 와일드하게 회전합니다

좌회전과 우회전시 조금 더 부드럽게 회전 하기를 원한다면

void motor_right() {
  motor_right(MOTER_SPEED);
}
 
void motor_right(int speed) {
  digitalWrite(M1, HIGH);
  digitalWrite(M2, LOW);
  analogWrite(E1, speed);
  analogWrite(E2, speed);  -----> analogWrite(E2, 0); 
}
우회전 예제코드의 E2 부분 위 빨간글씨 처럼 변경해 줍니다

void motor_left() {
  motor_left(MOTER_SPEED);
}
 
void motor_left(int speed) {
  digitalWrite(M1, LOW);
  digitalWrite(M2, HIGH);
  analogWrite(E1, speed); -----> analogWrite(E1, 0);
  analogWrite(E2, speed);
}

마찬가지로 좌회전 예제코드의 E1 부분 위 빨간글씨 처럼 변경해 줍니다

스마트폰 어플 설치 및 사용방법
스마트폰으로 블루투스를 사용해 스마트 카 를 제어하기 위해서 "Arduino Bluetooth Controller" 어플을 다운 받습니다
https://play.google.com/store/apps/details?id=eu.jahnestacado.arduinorc
위 링크에서 다운받거나 Google 플레이 스토어에서 "Arduino Bluetooth Controller" 로 검색해서 다운받아 설치합니다

설치가 끝나면 아이콘이 생깁니다

 

아이콘을 클릭해서 어플을 실행합니다 (어플을 실행하면 스마트폰 블루투스 기능을 실행하겠다는 메세지가 나옵니다, 실행하면 됩니다)

 

Proceed 를 눌러서 진행합니다

 

Scan for devices 를 눌러서 블루투스 모듈을 검색합니다 (null 이나 HC-06 이라는 이름으로 검색이 됩니다)
검색된 HC-06 디바이스를 선택하면 페어링을 시작합니다 (페어링시 초기 비밀번호는 0000 또는 1234 입니다)
페어링이 정상적으로 되면 전원만 공급되도 지속적으로 깜박이던 HC-06 블루투스 모듈의 동작 LED가 점등된 상태로 멈추게 됩니다 

 

페어링이 끝나면 위 이미지 처럼 몇개의 메뉴가 나옵니다 스마트 카를 제어할 것이므로 "Controller Mode" 를 선택하면 됩니다

 

컨트롤 모드 실행 모습니다
(여기서 버튼 설정을 위해 세부메뉴를 눌러 줍니다,
스마트폰 마다 세부메뉴 버튼 위치가 다를수 있으니 잘 확인해 봅니다)
샘송 갤럭시 라서 하단 왼쪽을 눌러서 세부메뉴를 실행했습니다

 

세부메뉴 버튼을 누르면 위 이미지 처럼 세부 메뉴가 뜹니다, 버튼 설정을 위해 "Set Commands" 를 선택합니다

 

위 이미지 처럼 각각의 버튼 설정을 눌러서 방향 설정을 해줍니다
UP ARROW (전진) : f
DOWN ARROW (후진) : b
LEFT ARROW (좌회전) : l
RIGHT ARROW (우회전) : r
START BUTTON (정지) : s


 

편의상 START BUTTON 에다가 (정지) S 를 설정했습니다
테스트 하기 편한대로 세모나 네모 버튼에 정지 S를 선택해도 되고, 하고 싶은대로
f, b, l, r, s 가 버튼에 포함되도록 알파벳만 주의해서 설정하면 됩니다

주의사항

테스트 도중 갑자기 전원을 제거 한다거나 블루투스 모듈 통신이 끊어지면 HC-06 블루투스 모듈이 뻑이 날수 있습니다
뻑이나면 블루투스 연결도 안되고 동작 LED도 들어오지 않는 먹통 상태가 되버립니다
이 경우 블루투스 모듈의 VCC에 연결된 5V를 아두이노의 3.3V에 연결하면 다시 동작 LED가 깜박이면서 동작합니다
이때 다시 전원을 5V에 연결해 주고 스마트폰으로 다시 페어링을 해주면 됩니다
블루투스 모듈이 페어링이 되어 있는데 갑자기 전원을 제거해서 블루투스 모듈에 손상이 가지 않도록 각별히 주의 하도록 합시다
HC-06 블루투스 모듈은 여러가지 버전이 있고 버전에 따라서 위 프로젝트를 진행할 수 없는 경우도 있다는것을 알고 넘어 갑시다


프로젝트 동영상



동영상 처럼 전진, 후진, 좌회전, 우회전 정지 버튼을 눌러서 무선으로 스마트 카 를 간단하게 제어할 수 있습니다

HC-06 블루투스 모듈 자체가 그렇게 고사양의 블루투스 모듈이 아니라서 그런지 통신이 아주 깔끔하고 완벽하게 되지는 않지만
스마트폰을 사용해서 블루투스 통신 방식으로 스마트 카 를 제어해 보는 방식을 알아보고 테스트 해보는대는 크게 무리가 없는 것 같습니다

참고 포스팅
Arduino Uno 로 HC-06 블루투스 모듈과 L9110S 듀얼 모터 드라이버를 사용해 블루투스 스마트 카를 만들어 보고 스마트폰으로 무선으로 제어해 보기

 
example code.txt
0.0MB
반응형

댓글