brunch

You can make anything
by writing

C.S.Lewis

by 알프레드 Mar 21. 2018

RC탱크 만들기 7(완)

RC 블루투스 조정기 만들기


방법 1 :  휴대폰 어플 다운로드하여 사용하기 (초보자분들에게 추천)

블루투스 조정기를 가장 쉽게 준비하는 방법은 Bluetooth SPP를 지원하는 어플을 검색해 보는 것입니다.

SPP는 Serial Port Profile의 약자로 블루투스를 통해 마치 직렬포트에 통신하는 방식으로 무선으로 제어할 수 있도록 되어 있습니다. 불행히 아이폰은 이 부분이 오픈되어 있지 않습니다. 안드로이드 폰용으로는 여러 어플이 있으니 마음에 드시는 것을 골라서 사용하시면 됩니다. 


방법 2 : 직접 어플 개발하기.(프로그래머라면 도전!)

저는 직접 안드로이드 어플을 하나 만들었습니다.

기울기 센서가 있으니 버튼은 Fire 버튼 하나면 충분합니다.

정말 뭔가 발사되는 건 아니고 폰에서 탱크 발사하는 효과음이 납니다.

먼저 블루투스 연결을 요청합니다.

맥 어드레스나 암호는 프로그램에 박혀 있습니다. 




기울기 조정이라 그냥 수평으로 두었을 때 모습입니다.



오른쪽으로 기울였을 때 모습입니다.


각방향으로 기울일 때마다 탱크 모습이 바뀝니다.

기울기 센서로 조정하는 건 생각보다 편하지는 않더군요....

조이 스틱이 훨씬 편할 듯합니다.

Fire 버튼은 누르면 콰광하고  폰에서 소리가 납니다. 

실제로 조정하는 동영상은 첫번째 글에서 소개드렸으니 이 글에서는 생략하도록 하겠습니다.


방법 3. 아두이노를 이용하여 조정기 만들기. 

좀 더 편하게 조정해 보려고 직접 블루투스 마스터 모듈과 조이스틱을 이용해서 간단히 아두이노 탱크 조정기를 만들어 보았습니다.


하드웨어는 블루투스 마스터 모듈의 RX, TX를 아두이노 5,6번 핀에 연결하고, 조이스틱의 V.H 를 analog input A0, A1에 연결하는 것이 전부입니다.

다음은 조정기의 아두이노 스케치 소스입니다.


#include <SoftwareSerial.h>


const int vPin = A0;    

const int hPin = A1;

char cmd=' ';

SoftwareSerial BTSerial(5, 6);


void setup(){

 BTSerial.begin(9600);

 //Serial.begin(9600); 


void loop(){

   char cur =readJoystick();

    if(cur!=cmd){

      cmd = cur;

      BTSerial.write(cmd);

    }

   //Serial.print("  cmd=");

   //Serial.println(cmd);

  delay(200);

}


char readJoystick() {

   int V =analogRead(vPin);

   int H =analogRead(hPin);

   int Vc = 150;

   int Hc = 150;   

   V=map(V,0,1023,-255,255);

   H=map(H,0,1023,-255,255);   

   /*

   Serial.print("V=");

   Serial.print(V, DEC);

   Serial.print("  H=");

   Serial.print(H, DEC);

   */   

    if(V> Vc){

       return (H> Hc)? 'X' : (H < -Hc)? : 'W' : 'F'; 

    }

    else if(V <-Vc) {

       return (H> Hc)? 'Z' : (H <  -Hc)? : 'Y' : 'B'; 

    }

    else {

       return (H> Hc)? 'R' : (H < -Hc)? : 'L' : 'S'; 

    }

}


다음은 직접 만든 조정기로 RC 탱크를 조정하는 동영상입니다. 

자작 조정기로 RC탱크 조정하는 모습


이상으로 7회에 걸쳐 RC탱크를 만드는 과정을 설명드렸습니다.


하드웨어에 대한 자세한 설명이나 회로도는 부족하다는 생각이 들지만, 직접 도전해 보면서 더 많은 것을 얻을 수 있을 것이라 생각합니다.  


앞으로도 이 매거진을 통해 다른 도전해 볼 만한 아두이노 프로젝트를 올려 볼까 합니다. 다른 관심 있는 작가 분들도 참여 환영합니다!



매거진의 이전글 RC탱크 만들기 6
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari