상세 컨텐츠

본문 제목

드론도전기 #7_20.02.04

드론도전기/software

by 퍼블리셔환 2020. 2. 20. 16:27

본문

/**  <드론도전기> 에 있는 글은 드론 직접 제작에 도전하고, 시행착오를 겪은 글들의 모음입니다.

만약 드론을 직접 만들고 성공한 글을 확인하고 싶으시면 <how to, 아두이노드론> 카테고리를 방문해 주세요:)  **/

 

아두이노 MEGA 핸드폰에 블루투스 연결하기

 우리는 드론을 위한 컨트롤러를 따로 만들기 전에 핸드폰을 이용하기로 했다. 핸드폰에 블루투스로 연결하고 안드로이드 어플을 만들어서 컨트롤러를 만들어보자는 나름의 계획을 세웠다.

 

HC-06(블루투스 모듈)

 

위와 같이 생겼다. HC-06을 아두이노 MEGA 2560에 연결하여 모터를 작동해보려 한다. 참고로 안드로이드 폰만 연결이 가능하다.

 

아두이노 MEGA 2560 블루투스

아래는 UNOHC-06을 이용한 블루투스 코딩이다.

 

#include <SoftwareSerial.h>

#define BT_RXD 8
#define BT_TXD 7
SoftwareSerial BTSerial(BT_RXD, BT_TXD);

void setup(){
  Serial.begin(9600);
  BTSerial.begin(9600);
}

void loop(){
  if (BTSerial.available()>0) {
    Serial.write(BTSerial.read());
  }
  if (Serial.available()>0) {
    BTSerial.write(Serial.read());
  }
}​

1.RXDPIN 8TXDPIN 7에 연결해준다 VCC5V GND GND에 연결한다.

2.헤더파일 SoftwareSeria.h를 이용해서 BTSerial이라는 블루투스 정보를 받을 함수를 만든다.

 

3.블루투스의 통신 속도는 9600 보드 레이트 임으로 void setup()에 선언해준다.

 

4.loop()함수 내에 if(BTSerial.available()>0)은 블루투스로 읽은 정보가 있는지 없는지 알아보는 조건이다. BTSerial.available의 값이 0이라면 아무것도 핸드폰을 통해 입력이 안된 것이다.

 

If(Serial.available()>0)은 시리얼 화면에 값의 입력 여부를 알려준다.

 

결과적으로 이 코딩을 통해서 핸드폰으로 입력해준 값이 시리얼 화면이 보이고 그 역으로도 가능하다.

이렇게 하려다 보니 모터 드라이브 때문에 쓸 수 있는 PIN이 제한적이라 문제가 발생했다;;

그래서 나는 7,8핀이 어차피 DIGITAL PIN임으로 MEGA22-53 PIN 중중 두 개를 이용하기로 했다.

 

결과

코딩은 그냥 디지털 핀에 꽂았다. 안된다. 연결하게 되면 HC-06가 안 깜빡거린다.근데 그것조차 안된다… MEGA의 많은 핀이 다른 기능이 있다고 하는데 더 공부해 봐야겠다

 

V/R

 

 

'드론도전기 > software' 카테고리의 다른 글

드론도전기 #10_20.02.15  (1) 2020.02.28
드론도전기 #9_20.02.11  (0) 2020.02.28
드론도전기 #8_20.02.06  (0) 2020.02.20
드론도전기 #4_20.01.30  (0) 2020.02.20

관련글 더보기

댓글 영역