Lab-10: 안드로이드-아두이노
서보모터 제어
앱인벤터로 아두이노와
블루투스로 연결하여 서보모터
조정하기
(1) 아두이노 회로도 및
소스
- Servo Motor : 회전각을 조정할
수 있는 모터, -
HC-06 : 블루투스 모듈
소스코드 – 오픈소스
사용
#include <Servo.h> // 서보모터를
위한 Servo.h 라이브러리를
포함한다.
#include <SoftwareSerial.h> // SoftwareSerial을 통해 블루투스와
데이터 전송
SoftwareSerial BTserial(10, 11); //
Rx, Tx
Servo servomotor;
int a = 0; // 각도를 위한
변수 생성
void setup()
servomotor.attach(9); // 9번핀에 서보모터
연결
BTserial.begin(9600); // 9600 속도로 블루투스시리얼(소프트웨어시리얼) 통신을 시작한다
void loop()
if(BTserial.available()) // 블루투스를
통해 수신된 데이터가 있으면
a = BTserial.read(); // 변수 a에 데이터를 저장하고
if(a>=0
&& a<=180) // 변수 a의 값이 0보다
크고 180보다 작다면
servomotor.write(a); // 서보모터에
변수 a의 값을 입력
delay(15);
(2) 앱 인벤터를 통해 어플리케이션
만들기
1. 목록 선택 (ListPicker), 레이블
(TextLable), 슬라이더 (Slider) 컴포넌트
추가.
2. 이름 변경과
너비 및 텍스트 변경
3. 슬라이더에서
최소값은 0, 최대값은 180으로 설정
위의 블록과 같이 블록도
생성.
1. 첫 번째 블록
- 블루투스 목록을 선택하기
전에 블루투스 클라이언트에서
받는 서버의 주소와 이름들을
블루투스 목록으로 지정한다.
2.
두 번째 블록
- 블루투스 목록에서
블루투스를 선택하게 되면
선택된 항목의 주소로 안드로이드에서
블루투스 클라이언트로
연결한다.
3.
세 번째 블록
- 슬라이더의 섬네일
바가 움직일 때 마다 레이블의
텍스트값에서 숫자를 출력
하게 하고, 블루투스를
통해 숫자를 전송한다. (반올림을 해줘야 정수로
표현이 돼서 1바이트
숫자가 전송된다.)
(3)
결과
-어플리케이션
실행 화면
● 블루투스 연결은
지난 과정에서 한것과 같고
밑에 슬라이더를 통해 서보모터를
조정한다.
- 아두이노와
어플리케이션 실행 화면
추가
1. 텍스트 입력을
통한 서보모터 각도 조절.