머신러닝

경기 꿈의 대학 여섯째주: 블루투스 RC카 주행

coding art 2019. 5. 29. 16:28
728x90

 

 

 

 

 

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  조종을 위한 앱을 다운받자.

BTRCCAR.aia
0.04MB

구글에 로그인하여 MIT APP INvewntor 를 검색하여 오픈하자.

 

Create Apps! 버튼을 클릭하자.

 

보다 구체적인 코드 작업은 아래 주소의 블로그를 열어 참조하자.

 

참조: RC Car 블루투스 조종기 앱인벤터 코딩

http://ejleep1.tistory.com/1422

 

RC Car 블루투스 조종기 앱 인벤터 코딩

1. 앱 인벤터 열기 클라우드 소프트웨어인 앱 인벤터 는 구글 로그인 후 Mit app inventor 로 검색하여 홈페이지를 열자. 과거와 달리 이제는 안드로이드 폰 뿐만 아니라 iphone 도 된다고 명시되어 있

ejleep1.tistory.com