라즈베리파이 GPIO 활용강좌 : 안드로이드의 가속 센서를 이용한 RC카 제어(상)
라즈베리파이 GPIO 활용강좌 : 안드로이드의 가속센서를이용한 RC카제어(상)
Created Date: 2014.04.12
Modified Date: 2014.04.12
revision 1.0
0. 선행학습
- DC모터와 라즈베리파이가 장착된 RC카 준비
- 가속센서가 장착된 안드로이드기기 준비
- [네이버오로카카페] [버섯][Android] 안드로이드 개발 툴 킷(ADT) 설치
- [네이버오로카카페] 라즈베리파이 활용 강좌 : 10. 안드로이드로 제어하는 라즈베리파이 무선 자동차
참고강좌
- [네이버오로카카페] 안드로이드 기초강좌 05. TCP를 이용한 원격제어 (상)
- [네이버 오로카카페] 안드로이드 기초강좌 06. TCP를 이용한 원격제어 (하)
- [네이버오로카카페] [버섯][Android] 간단한 테스트 환경 구축(가상 안드로이드 환경 구축하기)
1. ADT의 예제 사용하기
새로운 프로젝트를 만들어 아무것도 없는 백지상태에서 오브젝트나 코드들을 손수작성, 작업하여 프로그램을 완성시킬 수도 있다.
하지만, 개인적으로는 몇 가지 이유에서 그렇게 하지않고, 예제 프로그램이나 다른사람의 소스를 수정하는 방법을 사용한다. 구차한 변명에 지나지 않지만 말이다.
첫번째로, 프로그램을 할 줄 모른다.
(c는 중급, 나머지는 초급. 그래도 할 건 다한다. 믿거나 말거나)
두번째로, 시간은 금이다.
처음부터 짜는게 구글링 보다 빠르다면 고려 해 볼만 하나, 그렇지 않다면 수정이 빠르다.
세번째로, 완성도 있는 프로그램을 위해서다. 가장 그럴싸한 변명이다.
구글링 하다보면 정말 어처구니 없는 구조와 명명과 에러로 낚시질을 하는 포스트가 있다.
이를 최대한 줄이고, 남들에게서 배울 수 있는 방법이다.
이런 이유에서 이번 시간에는 ADT의 기본 예제를 사용 해 보자.
- ADT를 실행하고 Menu → File → New → Project를 선택한다.
- Android Sample Project를 선택하고, Next를 클릭한다.
- Android 4.1.2를 선택하고, Next를 클릭한다.
- AccelerometerPlay를 선택하고, Finish를 클릭한다.
- 다음과 같이 AccelerometerPlayActivity라는 프로젝트가 생성되었다.
-
바로 실행해보도록 하자.
Package Explorer의 AccelerometerPlayActivity에서 우클릭하여 실행하자.
안드로이드 기기의 화면을 움직이면 15개의 공이 움직일 것이다.
2. 공의 갯수 수정하기
예제 파일에는 공의 갯수가 너무 많아 불필요 한것 같다. 1개의 공만을 사용하도록 하자.
- 다음과 같이 좌측의 Package Explorer에서 AccelerometerPlayActivity.java 파일을 사용하자.
- 소스코드를 보고 두려워 하지 말고, NUM_PARTICLES 이라는 텍스트를 찾아보자.
- ctrl+f 로 검색하던지, 226라인에 가보면 있다. 현재 커서의 라인 넘버는 창의 맨 아래 상태 바에 나타나 있다.
- 초기 값은 다음과 같이 15이다.
static final int NUM_PARTICLES = 15;
이를 1로 수정하자.
staticfinalintNUM_PARTICLES = 1;
- 저장 후, 실행해보면 1개의 공만 나오는 것을 볼 수 있다.
오른쪽의 붉은 점을 클릭하여 해당 라인으로 이동하자. 에러 표시된 부분에 마우스를 가져다 놓으면 에러의 내용을 볼 수 있다.
에러내용을 보니 getRotation이라는 놈은 API Level이 8 이상이어야 작동 되는데, 현재는 최소가 5로 잡혀 있다고 한다.
따라서, 최소를 8로 바꾸도록 하자. 화면에 보이는대로 AndroidManifest.xml 파일에서 android:minSdkVersion를 5에서 8로 수정하자.
저장 후, 실행해보면 1개의 공만 나오는 것을 볼 수 있다.