-
Notifications
You must be signed in to change notification settings - Fork 1
블루투스를 이용한 telemetry 이용해보기
"갑작스럽지만 저, 블루투스를 이용해보기로 했습니다."
-조영광-
Pixhawk는 3DR Radio 라는 녀석을 사용한다. 보통 드론을 조종하기 위해서 리시버, 트렌시버를 사용하는것을 보는것는 어렵지않다. 말하자면 이 3DR Radio는 무선 리시버/트렌시버다. 이를 알아보기 위해서는 먼저 GCS(지상 통제소?) 에 대해 알아볼 필요가 있다.
전문 지식 없이 막연하게 RC기기를 이용한다면 당연히 '앞으로', '뒤로' 같은 단순한 명령을 생각해 낼 것이다. GCS는 이런 기본적인것 뿐 아니라 드론의 비행 모드를 변경하거나 이동할 위치를 지정한다든지, 드론에서 보내는 정보를 실시간으로 체크한다든지 하기 위한 좀더 전문화된 시스템이다. 이를 이용하면 비행중의 드론의 자세나 센서에서 측정되는 값, GPS 위치 정보 등 다양한 정보를 볼 수 있다.
당연하지만 이런 시스템을 이용해 드론에 명령을 내리거나, 값을 받기 위해서는 리시버나 트렌시버와 같은 장비를 필요로 한다. Pixhawk 에서는 3DR Radio라는 무선 장치를 이용하고 있다.
그런데 앞선 디버깅을 위한 UART 파악 글을 보았다면 이러한 장치들이 UART(보통 시리얼이라고 하는)포트중 C포트 등에 연결되는 것을 볼 수 있을 것이다. 즉, 사실상 UART 통신을 이용하고 있다고 봐도 무방할 것이다. 그렇다면 전압 레벨만 맞춰준다면 일반 FTDI칩셋을 이용하는 USB to Serial 모듈이나 UART통신을 사용할 수 있는 블루투스 모듈을 이용할 수 있지 않을까 하여 진행해보았다.
만약 3DR Radio 장치가 어떤 특수한 프로토콜을 처리하는 과정까지 포함하고 있다면 어쩔 수 없겠지만, 자료를 찾아본 결과 이러한 시도는 이미 해외에서 이루어 진 적이 있었고, 블루투스를 이용한 장치를 펀딩한 적도 있는 듯 하다.
Mission Planner Bluetooth Connectivity
Connecting your phone, tablet or laptop to APM/Pixhawk using Bluetooth
Event38 Bluetooth Telemetry Bridge Review
그래서 현재 보유하고 있는 블루투스 모듈로 실제로 잘 되는지 실험을 해 보기로 했다.
- 블루투스 2.0을 사용하는 모듈이다.
- 기본적으로 동작전압은 3.3v 이나 백보드가 붙은 몇몇 제품들은 5.0v를 이용할 수 있다.
- 115200 까지의 Baudrate를 설정해서 사용할 수 있다.
- Master/Slave 로 구분되며, 일반적으로 스마트폰 등과 연결되는 모드는 Slave 모드다.
- 당연히 Master/Slave간 1:1 통신도 가능하다. 장치이름과 PIN번호만 맞춰주면 된다.
Pixhawk의 TELEM1 포트(C번 포트)를 이용할 것이고, 통신속도는 57600를 사용해야 한다. (변경 가능한지는 잘 모르겠다,,,)
HC-06은 기본 Baudrate는 9600이며 Slave 로 설정되어 있을 것이다. 경우에 따라 Master로 설정되어 있는 경우도 있다. 기본 PIN은 1234이다.
- Baudrate를 57600으로 변경
AT+BAUD7 - Slave 로 설정
AT+ROLE=S - PX4BLU로 이름 변경
AT+NAMEPX4BLU
PIN은 귀찮아서 변경하지 않았지만, 바꾸고 싶다면 예로 5555로 설정하고 싶다면 AT+PIN5555 해주면 된다.
Pixhawk 와 연결시에는 TX, RX에 신경써 본인과 같이 올바르게 연결했다는 착각에 빠져 해매지 말자~~(이래놓고 나중에 또 이런거에 해맨다.)~~.
연결시에 Pixhawk의 TX는 블루투스 모듈의 RX에, Pixhawk의 RX는 블루투스 모듈의 TX에 교차해서 연결해야 함을 잊지 말자.
안드로이드의 Google Play를 찾아봐도 드론 관련 앱은 쉽게 발견할 수 있다. 그중 Pixhawk에서 쓰던 3DR Radio 와 같은 3DR 에서 안드로이드용 SDK등을 제공하는 앱이 있는데, 해당 앱을 이용한 Tower 라는 앱이 있다.
3DR 쪽에서 제공하는 SDK 킷이라고 보면 된다. (RPG 메이커 게임을 돌리려면 RTP가 필요한것 처럼)
앞으로 사용할 Tower 앱이 필요로 하므로 설치해 두도록 하자.
안드로이드 앱으로 개발된 GCS중 하나다. 실제로 다른 안드로이드 앱들 또한 있고, 태스트 해보기도 하였으나 이 앱이 가장 이쁘고쓰기 편한것 같다.
일단 앱을 시작한다. 당연히 블루투스를 켜둔다.
하단의 버튼들 중 USB, TCP, UDP, BLUETOOTH를 설정하는 바가 있을 것이다. BLUETOOTH로 설정해주자.
오른쪽 하단 버튼(수직으로 점 3개 짜리)을 누르면 기억된 장치를 볼 수 있다.
전파신호 모양(와이파이 모양?) 버튼을 클릭하면 블루투스 모듈을 검색할 수 있을 것이다. 앞서 설정한 HC-06 모듈을 찾아 패어링 한다.
연결이 성공적으로 되었다면 다음과 같이 Pixhawk 보드의 자세추정값 등을 확인할 수 있을 것이다. 만약 초기 세팅을 하지 않았다면 초기설정을 해야 한다는 경고문 등이 뜰 수도 있다.
왼쪽 상단의 매뉴버든(막대기 3개)를 누르면 파라미터나 초기 설정을 할 수 있는 매뉴 등을 확인할 수 있다. 시험삼아 파라미터 매뉴를 들어가 보았다.
파라미터를 정상적으로 불러왔음을 확인할 수 있을 것이다.
여기까지 블루투스 모듈 HC-06 모듈을 이용해서 실제 GCS를 사용할 수 있는지 확인 해 보았다. 연결은 가능했지만 몇가지 아쉬운 점 또한 있을 것이다.
- HC-06 모듈은 2.0이며, 2.1 EDR 또는 4.0, 4.1 등의 상위버전 블루투스 모듈은 실험해보지 않았다.
- HC-06 모듈은 단거리 통신 모듈로 약 10m 정도가 넘어가면 연결이 끊기게 된다.
일단 버전 자체가 옛날 버전이고, 10m 면 비행중 이용하기엔 턱없이 부족한 거리다. UART 통신을 이용할 수 있는 다른 장거리 통신용 블루투스 모듈을 이용할 수도 있겠지만, 보유하고 있는 블루투스 모듈과 함께 다른 모듈 또한 길어야 30m(...) 정도밖에 안된다.
보유하고 있는 모듈 중 4.0 을 이용하는 모듈이 있으나 BLE 부터는 아예 기존에 쓰던 프로파일 같은 것들이 다르기 때문에, 제대로 동작할 지 모르겠다. 시간 날 때 한번 태스트 해보는 것이 좋겠다.