상세 컨텐츠

본문 제목

드론에 들어가 보다_03(드론앱과보드연결)

안드로이드+드론 제작

by 김일국 2022. 10. 13. 17:24

본문

지난 포스트에서 준비한 보드에 스케치 프로그램과 드론 앱을 연결 시켜 보려고 했는데,

sock.connet() 에서 socket 연결 부분에서 문제가 발생되었다. java.io.IOException: Connection reset by peer(아래)

그래서, Bluetooth Termianl 앱으로 보드와 연결 시켜 보았다.(아래 안드로이드 앱 정보)

https://play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal&hl=ko&gl=US

- 아래는 App 실행해서 보드와 통신한 결과 정상(아래)

- 보드쪽 스케치 프로그램 결과(위 앱에서 test 문자 발송, 아래 스케치 터미널에서 kim 문자 발송 정상(아래)

- ESP보드에 입력하는 스케치프로그램 소스(아래)

blue_app_connect.ino
0.00MB

위 코드에 대한 자세한 사항은 다음 사이트에 있다. https://dronebotworkshop.com/esp32-intro/

(블루투스 터미널앱은 다른것으로 설치 했다.)

보드 스케치 프로그램 쪽은 정상이라는 것을 확인 했으니, 드론 앱에 문제가 있다고 생각 든다.

드론 앱의 수정이 필요해 보인다.(아래 수정 한 소스)

중략...
//안드로이드 스튜디오에서 Controller.java 파일 수정 부분(아래)
// 스레드로 신호 활성화 -> 이 부분을 주석 처리 한 후 블루투스 커넥션이 정상 작동 함.
/*
final Handler h = new Handler();
h.postDelayed(new Runnable() {
    private long time = 0;

    @Override
    public void run() {
        time += 1000;
        sendBluetoothSignal("X");
        h.postDelayed(this, 1000);
    }
}, 1000);
*/
중략...

문제점을 찾은 후 정상 작동하는 드론 앱을 확인 하였다.(아래 페어링된 기기 선택한 화면)

- 위 검색된 ESP32Test 장비를 클릭하면 다음화면으로 넘어간다(아래)

- 블루투스 보드(ESP32칩셋)으로 연결 성공 후 드론 앱의 메인 화면 입니다.(아래)

- 각종 버튼과 Speed 슬라이드를 움직여 보고 마직막으로 드론 끄기 버튼을 사용해 봅니다.(아래)

- 드론 앱과 연결된 ESP보드의 스케치 프로그램의 시리얼 모니터로 드론 앱에서 작동시키는 액션을 받아서 출력한 결과(앱에서 마지막으로 종료 버튼까지 클릭 하고, ESP보드로 받은 문자열을 아래에서 확인 가능하다.)

Ps. 지금까지 작업한 소스는 깃 허브에 올려 놓았다.(아래)

https://github.com/kimilguk/Arduino-Bluetooth-Drone

관련글 더보기

댓글 영역