카테고리 없음

앱 인벤터 2로 무선조종 어플 만들기

abc0123 2017. 12. 4. 14:06
반응형

 

아두이노 센서 및 모듈을 이용해서 뭔가를 하나씩 만들다 보니 내용이 길어지는 건 이 글처럼 연재 방식으로 작성하게 되는 경향이 있는데.... 지난 글 (탱크만들기)까지 유선 조종 장난감 탱크의 선을 잘라버리고 그 위에 '아두이노 나노'와 '모터 드라이버' 그리고 '블루투스 모듈' 연결까지 해서 하드웨어적인 부분을 만들어봤었다.

 

그리고 오늘은 그 녀석을 제어할 안드로이드 어플을 만들어볼 생각인데 안드로이드 앱(APP)이라는 게 '자바(JAVA)' 언어로 복잡하게 코딩을 해서 섬세하게 만들 수도 있지만 여기서 사용할 앱 인벤터 2를 이용하면 복잡한 프로그램 언어를 몰라도 웬만한 앱은 만들 수 있을 거 같더라. 물론 앱 인벤터를 적당히 익혀야겠지만 나 같은 초보도 조금만 만져보니까 쉽게 익숙해지는 수준의 프로그램이다.

 

그리고 이 글을 제목으로 찾아서 보는 분이라면 아마도 앱 인베터 2의 기본 개념 정도는 알고 있거나 어플 만드는 거에 관심이 있을 테니 대충 개념은 잡고 있을 거라 생각하고 블루투스 모듈을 제어할 앱 만드는 과정을 대략적으로 정리해보려고 한다.

 

 

먼저 앱 인벤터 2의 홈페이지로 이동을 하자.

 

앱인벤터

 

앱 인벤터 2 홈페이지

 

그리고 누군가가 만들어놓으신 블루투스 예제 앱을 온라인에서 구한 후 약간만 수정해서 사용해보기로 했다. 일단 디자인 도구에서 몇 개의 버튼과 BluetoothClient, Notifler 추가한 후 connect를 눌렀을 때는 등록된 블루투스 장치 목록을 보이도록 해서 나타나는 목록을 선택하면 해당 장치에 연결을 하게 되고 Disconnect 버튼을 눌렀을 때는 연결을 끊게 될 것이다. 또 화살표가 그려진 버튼 네 개를 눌렀을 때는 특정한 값을 아두이노로 전달해서 아두이노에서 그 값을 받아 모터의 회전 방향을 제어하는데 사용하고... 탱크를 움직이게 될 것이다.

 

이제 앱 인벤터 2의 블록을 쌓아서 앱을 작동시켜보자.

 

블루투스 코딩


 

먼저 블루투스 연결 부분인데 왼쪽부터 아래쪽으로 하나씩 보자면... connect(lipConnect) 버튼을 눌렀을 때 등록된 블루투스 목록을 보이도록 하고 있으며 만약 사용 중인 핸드폰의 블루투스 기능이 꺼져 있다면 공지를 띄워서 그것을 켜도록 안내를 하고 있다.

 

그리고 두 번째 블록에서는 블루투스 목록의 주소와 이름을 출력한 후 그것을 선택하면 연결을 하고 세 번째 블록에서는 btnDisconnect 버튼을 눌렀을 때 오른쪽에 보이는 disconnect 함수를 호출해서 연결을 끊도록 하고 있다.

 

마지막 오른쪽 함수 send message는 버튼을 눌렀을 때 호출할 녀석인데...

 

버튼 터치 코딩

 

버튼에는 TouchDown과 TouchUp 이벤트를 적용해서 손가락으로 터치하고 있을 했을 때와 떼었을 때 각각 서로 다른 숫자와 엔터키에 해당하는 "\n"을 전달하게 했으며 아두이노에서는 이 숫자들을 받아서 그 값에 따라서 각각 다르게 모터의 회전 방향을 정해주게 될 것이다.

 

 

이제 스케치 프로그램에서 숫자를 받아서 모터를 회전하는 코딩을 해보자.

 

스케치 프로그램

 

①초기 설정 구간에서는 두 개의 DC 모터에 연결된 네 개의 디지털 핀(바로 앞 지난 글 참조)을 모두 OUTPUT으로 설정했으며 시리얼 통신을 위한 준비를 하고 있다. 그리고 ② 반복 함수에서는 블루투스 모듈을 통해서 들어오는 값을 받아서 int형 변수 a에 저장한 후 만약 엔터 값(\n)이 들오면 그 값을 살펴보도록 하고 있는데 모든 버튼을 누를 때와 뗄 때 숫자 하나와 '\n'을 무조건 보내도록 했으니 항상 이 값을 들어오게 될 것이다. ③ 그렇게 아두이노에 전달되는 값이 1일 때 (전진 버튼을 누를 때)와 5일 때 (전진 버튼에서 손을 뗐을 때) digitalWrite() 통해 모터의 회전 방향을 정해주고 멈추도록 하고 있다.

 

이와 같은 방법으로 나머지 세 개의 버튼을 눌렀을 때 모터의 회전 방향을 좌회전, 우회전, 후진할 수 있도록 설정해주면 스케치 프로그램은 완성될 것이다.

 

모터 회전 방향

 

이렇게 해서 앱 인벤터 2 프로그램을 이용해서 간단하게 무선 조정 어플을 만들어봤는데 이 글을 작성하는 현시점..... 지금까지 만들었던 RC 탱크의 부품들이 다른 걸로 변신을 하고 있는 중이라서...ㅎㅎ 블루투스를 연결하고 탱크를 제어하는 과정을 녹화할 수 없는 게 안타깝지만 아래 글과 바로 앞글들을 참고하면 그 과정을 볼 수 있을 테니 참고하시고...

 

블루투스

 

이제 다른 센서들을 여기에 추가해서 스스로 움직이는 녀석들을 만들 볼 계획을 구상하면서 블루투스 관련 예제는 여기서 마무리하기로 한다.

반응형