많은 메이커 분들은 한 번쯤 아두이노로 RC카 프로젝트를 진행해 보았을 것입니다. 아이엠어메이커에서도 레고와 브릭보드로 RC카를 직접 제작하였고 전문 RC용 무선송수신기가 아닌 블루투스와 스마트폰으로 조종할 수 있도록 만들었습니다. 아두이노 RC카 앱 제작이번 프로젝트는 아두이노 RC카 제작이 아닌 RC카 제어용 앱을 앱 인벤터로 제작하는 과정입니다. 앱은 조이패드 형태의 인터페이스로 구현하였으며 블루투스로 RC카와 연결하여 제어할 수 있도록 하였습니다. 1. 목표1) 앱 인벤터의 기본적인 사용방법 익히기 2. 준비물
3. 구현 및 동작디자이너 에디터1) 블루투스 인터페이스 앱 가져오기 스마트폰의 블루투스 통신 기능을 이용해 아두이노 RC카를 제어합니다. 따라서 앱 인벤터에서 블루투스 연결을 위한 작업을 해야 하며 사전에 제작한 블루투스 연결용 앱 프로젝트를 기반으로 제어 기능을 추가하도록 합니다. 또는 직접 블루투스 연결을 위해 블록을 작성할 수 도 있습니다. 블루투스 연결 기능 구현은 다음 동영상을 참고합니다. 2) 화면을 가로로 볼 수 있도록 스크린 수정하기 스크린 컴포넌트 속성에서 ‘스크린 방향’ 속성을 ‘가로’로 변경합니다. 기타 아이콘, 버튼의 위치와 레이아웃을 수정합니다. 수정된 프로젝트 파일은 커뮤니티 공유 게시판에서 다운로드할 수 있습니다. 다운로드 3) 캔버스(Canvas) 추가 ‘그리기 & 애니메이션’ 팔레트에 캔버스와 이미지 스프라이트 컴포넌트가 있습니다. 이미지 스프라이트를 자유롭게 배치하기 위해 스크린에 캔버스 컴포넌트를 배치합니다. 이는 스마트폰 화면 위에 그림을 그리기 위해 도화지를 한 장 올려놓은 것과 같은 개념입니다. 캔버스의 높이나 너비는 부모에 맞출 경우 이미지 스프라이트의 배치를 결정하기가 어려워 화면에 나타낼 수 있는 크기로 설정하고 실제 화면에서 캔버스의 배치를 확인합니다. 이번 프로젝트에서는 캔버스의 크기를 높이 250, 너비 550 으로 설정합니다. 물론 사용하는 스마트폰마다 조금에 차이는 있습니다. 4) 이미지 스프라이트(ImageSprite) 추가 이미지 스프라이트를 앱 인벤터에서 추가하기 전에 캔버스의 크기를 기준의 이미지 스프라이트에 사용될 버튼 이미지를 미리 배치하여 각각의 좌표를 계산합니다. 여기서 방향키 이미지의 크기는 가로세로 70으로 하였으며 두 개의 기능 버튼은 가로세로 75로 설정하고 배치할 좌표를 계산합니다. 그런 후 앱 인벤터에서 각각의 이미지 스프라이트 속성을 설정하며 버튼 이미지의 배치를 완료합니다. 5) 소리 컴포넌트 추가 스마트폰은 물리 버튼이 아니기에 화면을 보고 터치를 해야 합니다. RC카를 제어하다 보면 스마트폰 화면을 볼 수 없는 경우가 많아 터치 여부를 확인할 수 없는 경우가 발생합니다. 이를 조금이나마 해결하기 위해 터치를 했을 경우 진동으로 터치 유무를 알 수 있게 합니다. 소리 컴포넌트에는 일정 시간 동안 진동을 할 수 있는 블록이 포함되어 있습니다. 또한 버튼의 진동 시간을 다르게 하여 버튼의 종류 파악할 수 있도록 합니다. 6) 브릭보드 익스텐션 추가 이번 프로젝트에 아두이노 RC카는 브릭보드로 제작한 브릭봇을 사용했습니다. 따라서 브릭보드의 모듈을 앱 인벤터에서 쉽게 제어할 수 있도록 브릭보드 익스텐션을 추가합니다. 브릭보드 익스텐션 사용방법은 ‘앱 인벤터 튜토리얼’에서 확인할 수 있습니다. 블록 에디터1) 앱 초기화시 블루투스에 연결되지 않으면 이미지 스프라이트(버튼 이미지)를 비활성화 시켜 불필요한 동작을 차단합니다. 2) 각 이미지 스프라이트(버튼 이미지)의 ‘터치 업, 다운’ 블록을 사용하여 아두이노 RC카의 제어 기능을 추가합니다. 이 프로젝트에서는 터치 즉시 기능이 동작되도록 터치 다운 블록에 브릭봇을 제어하는 기능을 추가합니다. 전체 블록은 다음과 같습니다(블루투스 인터페이스 관련 블록은 제외) 각 이미지 스프라이트의 이벤트 블록에 다양한 제어기능을 추가하여 RC카를 제어할 수 있습니다. 4. 동작영상IAMAMAKER의 저작물인 이 저작물은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다. [오늘의 타겟] 블루투스 통신 모듈 RXD : 데이터 수신을 하는 핀 TXD : 데이터 송신을 하는 핀 출처 : https://m.blog.naver.com/boilmint7/221900933326 [실습 1] 아두이노(시리얼 통신) 과 스마트폰(블루트스 터미널) 간 데이터 송수신 - 회로 구성 춯처 : https://m.blog.naver.com/sisosw/221518483163 - 스마트폰 준비 블루투스 모듈에서 빨간불이 깜빡이나요? -> 블루투스 연결을 기다리고 있다는 뜻이에요. * 스마트폰 설정에서 HC-06 이란 블루투스 모듈을 먼저 연결해 줍시다. * 블루투스 터미널 설치 -> 블루투스 신호를 송수신 할수 있는 [블루투스 터미널] 이란 어플리케이션을 설치해주어야 합니다. [ 안드로이드 ] 1. 플레이스토어에서 [블루투스 터미널] 라고 검색해 보시고 아무거나 다운 받아주세요. 거의다 비슷해요. 2. 어플을 설치 한뒤 열어보세요. 왼쪽 위에 3줄 짜리 설정 창이 보이나요? 클릭해 주세요. HC-06 블루투스 연결 -> 블루투스 모듈이 깜빡이다가 빨간불이 그냥 쭉 들어오면 연결완료 - 프로그래밍 코드 - 시리얼 모니터로 통신 확인 [실습 2] 아두이노(시리얼 통신) 과 스마트폰(블루트스 터미널) 간 데이터 송수신 - 아두이노 회로도 출처 : https://codingrun.com/114#content - 안드로이드 블루투스 어플리케이션 제작 -> 제작 방법은 아래 url 내용을 쭉 따라가면 된다. https://m.blog.naver.com/godlife1203/221359724037 [앱인벤터] 아두이노 LED 제어 앱 1. 아두이노 블루투스 설정 가. 블루투스 회로 구성 나. 아두이노와 블루투스간 통신 프로그램 업로드 다. ... blog.naver.com - 코드 : 초록색 led 블루투스 통신을 통해 껐다 켰다하는 코드
[추가 과제] - 안드로이드 어플과 아두이노 프로그래밍 코드를 수정하여 led 3가지 색을 껐다켰다 할수 있도록 변경하시오. - 아두이노 회로는 그대로 사용. [도전과제] 아래 자료를 참고하여. 블루투스 통신을 통해 dc 모터 전진 후진 좌회전, 우회전을 제어 하시오. - 회로 - 참고 코드
끝. |