본문 바로가기

쿼드콥터(핵사콥터)

[버섯][쿼드콥터][App] SkyRover Nano 제어용 안드로이드 앱 살펴보기

HexMini APK.zip




SkyRover Nano
안드로이드 앱 살펴보기(FlexBot)


Created Date: 2014.10.06
Modified Date: 2014.10.06
revision 1

키워드: Android, Flexbot Controller
개발 환경: ADT

안녕하세요 버섯돌이 유재성입니다.
오늘은 SkyRover Nano를 제어하는 조종기 앱인 Flexbot에 대해 잠깐 살펴보겠습니다.

이번주나 차주에 PCB를 받아보시는 분들은 어렵지않게 바로 실행이 가능할 듯 싶으며,
급한 대로 PCB 수령전에 앱을 분석하기 위해 아래와같이 꾸몄습니다.



혹시라도 비슷한 환경으로 테스트를 하실분들은 아래 글들을 참고하셔서 환경을 구축하시기 바랍니다.
http://cafe.naver.com/openrt/6386

http://cafe.naver.com/openrt/6375

http://cafe.naver.com/openrt/4518

http://cafe.naver.com/openrt/4622


특히나 펌웨어와 부트로더는 PCB 버전에 맞게 계속 수정되다보니 PCB가 아니신 분들은

가급적 첫 번째 링크인 6386 게시글에 첨부된 파일들을 이용하시기 바랍니다.

FET없이 모터를 직접 연결하면 혹시라도 OpenCM이 고장날지 몰라서 안전하게 LED로 대체했습니다.*^^*V




멀티위를 실행해서 "MOTORS"탭에 들어가면 테스트할 모터를 선택하게 되는데
테스트할 모터들을 선택 후 상단의 "1000"으로 표기된 부분을
적당히 마우스로 움직이면 선택된 모터들이 돌아가도록 되어있습니다.

처음에는 모터에 할당된 Pin을 찾기위해 M0~M5까지 6개의 모터를 전부선택후 쓰로틀을 1400정도로 해 놓고
일일이 OpenCM의 모든 핀을 한번씩 연결하면서 LED에 불이 들어오는지 확인했었습니다.
위에 노란색으로 표시된 부분이 3, 5, 6, 7번에 LED를 연결하면 PWM으로 제어가되더군요.
제 경우 M4, M5에 해당하는 핀은 찾지 못 했고 어차피 중요하지 않기 때문에 LED 3개만 연결했습니다.
PCB가 아니신 분들은 적절히 환경을 구축하시기 바라며 저도 관련 내용들을 잘 모르다 보니
구 버전의 환경에 대해서는 불필요한 시간 손실을 방지하기 위해 가급적 질문을 받지 않겠습니다.
PCB 제품의 경우 모터들을 제대로 연결하면 되리라 봅니다.

현재 SkyRover Nano를 제어하기 위한 기본 조종기로 스마트폰을 이용하고 있으며,
http://www.flexbot.cc/#x-content-band-5 에서 최신 버전의 앱을 다운로드할 수 있습니다.
참고로, 조종기 앱은 Android 4.3 이상ios 7.0 이상의 운용체제 버전과 블루투스 4.0버전이 필요합니다.

제 경우 안드로이드 플레이 마켓에서 Flexbot을 설치했는데..
이상하게 멀티위에서는 LED 제어가 잘 되는데 Flexbot에서는 안되더군요.^^;;;
며칠 동안 이것저것 만지작거리다 포기하고 오늘 새벽에 원천 소스를 받아서 빌드 후 테스트하니 잘 되네요.
혹시나 싶어서 제가 빌드 한 파일은 첨부 파일로 첨부해놓습니다.
(첨부된 파일은 안드로이드 4.3.1 버전으로 빌드되어있으니 참고하세요.)

어떤 방법으로든 앱을 설치하시면 아래와 같은 아이콘이 나옵니다.



저희는 Flexbot을 이용하기위해 Flexbot에 통신 프로토콜을 맞췄기때문에 Flexbot을 이용할 수 있으며,
공개 프로젝트라 소스 파일은 https://github.com/exxamalte/HexNanoController_Android 나 
https://github.com/HexAirbot 에서 다운로드 가능합니다.

참고로, 카페에서는 exxamalte Github의 소스를 사용하는 것 같아서 해당 소스를 내려받았는데
프로젝트가 Gradle 기반으로 다양한 기능이 추가되었는데 새벽에 개발 환경을 구축하는 게 번거롭다 보니
좀 더 간단히 확인이 가능한 이클립스 프로젝트 기반의 HexAirbot Github에서 받은 소스를 빌드 했습니다.



앱을 실행하면 위와같이 기본 설정은 비기너 모드인데 환경 설정에서 비기너 모드를 해제할 수 있다는 안내 문구가 나오는데 Ok하세요~



우측 상단의 톱니바퀴 아이콘이 환경설정입니다.



Scan 버튼을 터치하면 블투 장비를 찾게됩니다.



블투이름이 Unknown으로 나오는데 파란색 부분을 터치하시면 연결됩니다.
참고로, 바람님의 영상에서는 제품명으로 나오는 걸 봐서는 이름은 다를 수 있습니다.
(처음 며칠은 연결이 되도 LED가 동작을 안 하기에 Unknown이 찝찝해서 물리적으로 연결이 안 된 건가 싶어서
블투 이름을 바꾸는 방법이나 바람님 영상 등을 찾아보다 포기했는데 Unknown으로 잘 되는군요.^^)



당연히 YES~ 해야겠지요*^^*



연결이 되었습니다.*^^*



참고로, 우측 상단에 보시면 점이 5개 있습니다.
이건 화면이 총 5개라는 의미이며, 화면을 좌측이나 우측으로 쓰윽~밀면 다른 화면으로 움직입니다.
아흑...정 중앙 양쪽 끝의 파란색 삼각형을 터치해도 이동하는데 제 폰이 이상한건지 거의 안되더군요.^^;;;
저처럼 헤메시는 분이 계실지 몰라서 적어봅니다.
메뉴를 보시면 직관적으로 이해가 되시리라 봅니다.
왼손이냐 오른손이냐는 쓰로틀을 어느 손으로 제어할 것인지를 정하게 됩니다.
헬기류는 PWM제어를 위한 속도와 방향 제어를 위한 방향키가 있습니다.
이때, 이 속도를 제어하는 게 쓰로틀인데 첫 화면을 보시면 왼쪽에 있는 방향키가 스로틀입니다.
헬기의 방향을 제어하는 건 원안에 보시면 방향 표시가 있습니다.
각 메뉴들은 옵션들을 만지작거리면 이해할 수 있으리라 보며 저도 거의 써보지 않았습니다.^^





이곳에서 Beginner Mode를 끄거나 실행할 수 있습니다.
Beginner Mode가 최대 PWM의 상한 값이 다르다고 알고있습니다.
헬기를 처음 조종하는 분들의 경우..
특히나 스마트폰은 쓰로틀을 살짝만 올려도 속도가 팍팍~ 올라가면 헬기가 요리조리 쿵~ 하겠지요^^
그래서 입문자들이 조종하기 쉽도록 제한을 가한 게 Beginner Mode라고 보시면 되는데
저도 세부적으로 테스트를 못 해봤으니 나중에 헬기를 받으면 테스트해 보시기 바랍니다.



마지막으로 About 화면이군요.^^
아직 헬기도 없는데 전체 기능을 살펴볼 필요는 없으니 나중에 각자 갖고 놀면 충분하리라 봅니다.^^
좌측 상단의 화살표를 클릭하셔서 메인 화면으로 이동합니다.



참고로, 스마트폰을 이용해서 제어를 하게 되면 조종이 쉽지 않습니다.
특히나, 스마트폰을 보고 헬기를 번갈아 가면서 보게 되면 더 어렵겠지요^^
그래서 그런지 화면의 정중앙을 기준으로 좌측 영역과 우측 영역에 터치가 되면
해당 영역의 터치 위치로 조그셔틀이 이동되는 기믹을 사용하고 있습니다.
즉, 빨간 세로 선을 기준으로 좌측은 스로틀 영역이고 우측은 방향 전환 영역입니다.
이 상태에서 빨간색으로 표시한 부분을 터치하면 스로틀 패드가 터치 위치를 기준으로 이동되어 있습니다.
따라서, 헬기를 보면서 대충 해당 영역을 터치한 뒤에 제어하면 되는 구조입니다.
처음에는 어색하지만 몇 번 실행해보시면 이해할 수 있으리라 봅니다.



역시나 빨간색으로 표시된 우측의 방향 전환 영역을 터치했을 경우 사진처럼 방향 패드가 이동되어있습니다.
보통은, 패드 위치는 고정되어있고 사람이 정확한 위치를 터치해줘야 하는데 콥터 조종에서는 그러면 힘들죠^^

이해를 돕기 위해 영상을 준비했습니다.*^^*


ㅎㅎㅎ.. 비몽사몽 중에 작성해서 이상해도 양해 바라며 참고만 하세요.^^

다음 내용은 "[App] SkyRover Nano 제어용 앱 개발 환경 구축하기" 를 참고 하세요.


[참고자료]
[1] [목차] Smartrover(PCB)전용 Skyrover Nano 헥사 콥터 전체 목차

[2] 최신 배포 파일 다운로드

[3] 조종기 앱 소스

[4] [App] SkyRover Nano 제어용 앱 개발 환경 구축하기


End.

written by 버섯돌이


이 저작물은 크리에이티브 커먼즈 저작자표시-비영리 4.0 Unported 라이선스에 따라 이용할 수 있습니다.