/** <드론도전기> 에 있는 글은 드론 직접 제작에 도전하고, 시행착오를 겪은 글들의 모음입니다.
만약 드론을 직접 만들고 성공한 글을 확인하고 싶으시면 <how to, 아두이노드론> 카테고리를 방문해 주세요:) **/
아두이노 MEGA 핸드폰에 블루투스 연결하기
우리는 드론을 위한 컨트롤러를 따로 만들기 전에 핸드폰을 이용하기로 했다. 핸드폰에 블루투스로 연결하고 안드로이드 어플을 만들어서 컨트롤러를 만들어보자는 나름의 계획을 세웠다.
HC-06(블루투스 모듈)
위와 같이 생겼다. HC-06을 아두이노 MEGA 2560에 연결하여 모터를 작동해보려 한다. 참고로 안드로이드 폰만 연결이 가능하다.
아두이노 MEGA 2560 블루투스
아래는 UNO를 HC-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.RXD를 PIN 8에 TXD는 PIN 7에 연결해준다 VCC는 5V에 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임으로 MEGA의 22-53 PIN 중중 두 개를 이용하기로 했다.
결과
코딩은 그냥 디지털 핀에 꽂았다. 안된다. 연결하게 되면 HC-06가 안 깜빡거린다.근데 그것조차 안된다… MEGA의 많은 핀이 다른 기능이 있다고 하는데 더 공부해 봐야겠다…
V/R
윤
드론도전기 #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 |
댓글 영역