경기 꿈의 대학 여섯째주: 블루투스 RC카 주행
RC 카 USB 케이블이 연결된 상태에서 다음의 테스트를 해보자.
무지능형 자율주행 코드를 조금 수정하도록 한다.
라이브러리와 최대속도 초기화까지는 동일하며
추가로 문자 즉 char 를 선언한다.
Setup() 에서 통신속도 초기화 설정 후 Stop() 을 실행한다.
loop() 문에서 Serial.avaliable() 명령에 의해 버퍼에 도착한 정보 유무를 확인하자.
(※ ASCII 문자 정보 확인 가능)
코드 작업 시작전에 모터 제어를 위한 라이브러리가 설치되어 있는지 확인 후 없으면 다운받아 설치하고 메뉴 스케치의 라이브러리 포함하기에서 Adafruit-Shield-ibrary-master 의 경로를 반드시 등록해두자.
USB 케이블 연결 상태에서 문자박스를 사용해 바퀴별로 바퀴 회전을 확인해 보자.
이 프로그램을 업로딩 후 USB 케이블을 연결한체로 시리얼 모니터에서 문자 F, B, L, R, S 를 입력전송 버튼을 눌러 RC카의 바퀴가 돌아감을 확인하자.
잘 돌지 않으면 mpsd= 180 으로 낮춰 수정 업로딩 후 다시 해 보자.
윙~ 소리만 날 경우 작동이 된자고 봐야 한다.
바퀴가 생각대로 잘 돌면 USB 케이블을 뽑고 아래의 블루투수 배선작업을 하자.
단 아래 첨부된 코드를 업로딩 하기 전에 반드시 RXD, TXD 핀은 뽑아두어야 하며
업로딩 완료 후 USB 케이블을 아두이노로부터 제거하고 두 핀 RXD, TXD 를 연결하자.
9V 전지를 연결하면 블루투스 보드의 LED 가 점멸한다.
스마트폰에서 Pairing 작업을 진행하자.
앱에서 윗부분을 누르면 검은색 화면에 블루투스 주소가 뜬다.
블루투스 Paring 작업에서는 한사람씩 진행하여 옆 사람과 혼선을 피하자.
//FOF4YFTIA0WX947_F_BT_01
#include <AFMotor.h>
AF_DCMotor motor1(3);
AF_DCMotor motor2(4);
int mspd = 160;
char command;
void setup() {
Serial.begin(9600);
Stop();
}
void loop(){
if(Serial.available() > 0){
command = Serial.read();
if( command == 'F') {
forward();
delay(1000);
}
if( command == 'B') {
back();
delay(1000);
}
if( command == 'L') {
left();
delay(1000);
}
if( command == 'R') {
right();
delay(1000);
}
if( command == 'S') {
Stop();
delay(1000);
}
}
}
void forward() {
motor1.setSpeed(mspd); //Define maximum velocity
motor1.run(FORWARD); //rotate the motor clockwise
motor2.setSpeed(mspd); //Define maximum velocity
motor2.run(FORWARD); //rotate the motor clockwise
}
void back() {
motor1.setSpeed(mspd);
motor1.run(BACKWARD); //rotate the motor counterclockwise
motor2.setSpeed(mspd);
motor2.run(BACKWARD); //rotate the motor counterclockwise
}
void left() {
motor1.setSpeed(mspd); //Define maximum velocity
motor1.run(FORWARD); //rotate the motor clockwise
motor2.setSpeed(0);
motor2.run(RELEASE); //turn motor2 off
}
void right() {
motor1.setSpeed(0);
motor1.run(RELEASE); //turn motor1 off
motor2.setSpeed(mspd); //Define maximum velocity
motor2.run(FORWARD); //rotate the motor clockwise
}
void Stop() {
motor1.setSpeed(0);
motor1.run(RELEASE); //turn motor1 off
motor2.setSpeed(0);
motor2.run(RELEASE); //turn motor2 off
}
//끝
앱인벤터 편집기를 사용하여 앱을 코딩하도록 한다. 우선 직접 코딩에 들어가기 전에 아래의 예제 코드를 다운로드하고 앱인벤터를 열어서 예제 코드 내용에 대해서 해설을 들어본 후 자신의 앱을 작성해 보도록 하자.
RC Car Bluetooth 조종을 위한 앱을 다운받자.
구글에 로그인하여 MIT APP INvewntor 를 검색하여 오픈하자.
Create Apps! 버튼을 클릭하자.
보다 구체적인 코드 작업은 아래 주소의 블로그를 열어 참조하자.
참조: RC Car 블루투스 조종기 앱인벤터 코딩
http://ejleep1.tistory.com/1422
RC Car 블루투스 조종기 앱 인벤터 코딩
1. 앱 인벤터 열기 클라우드 소프트웨어인 앱 인벤터 는 구글 로그인 후 Mit app inventor 로 검색하여 홈페이지를 열자. 과거와 달리 이제는 안드로이드 폰 뿐만 아니라 iphone 도 된다고 명시되어 있
ejleep1.tistory.com