RC카를 직접 제작할려다 RC카 키트를 구입했습니다.
기본 부품이 없는 상태에서 RC카를 만든다는게 부담이 되더군요. 부품을 부분적으로 1개씩 구입하는것보다는 키트를 구입하는게 저렴(?)할거 같아 키트를 구입하게 되었습니다.
대량 구입을 한다면 부품별로 구입하는게 더 싸겠지만 단품일경우 배송비가 추가로 들어서 부품값보다 배송비가 더 많아지는...

첨부된 부품목록입니다.

조립 메뉴얼이 포함되어 있습니다.

완성된 모습입니다.
업체에서 제공된 스케치 코드가 완벽하지 않아서 몇군데 수정을 하였습니다.
※ 블루투스 HC-06모듈을 사용했는데 제 스파트폰에서는 인식을 하지 못하여 구형 스마트폰으로 제어 앱을 설치하였습니다. 아두이노 공부를 할려면 구형 스마트폰도 필요하더군요..
#include <SoftwareSerial.h> //시리얼 통신 라이브러리 호출
#include <AFMotor.h>
#include <Wire.h>
//모터 PIN 설정
#define LEFT_A1 4 //왼쪽 바퀴
#define LEFT_B1 5 //왼쪽 바퀴
#define RIGHT_A2 6 //오른쪽 바퀴
#define RIGHT_B2 7 //오른쪽 바퀴
//블루투스 PIN 설정
#define BLUE_TX 0 //블루투스 TX
#define BLUE_RX 1 //블루투스 RX
SoftwareSerial mySerial(BLUE_TX, BLUE_RX); //시리얼 통신을 위한 객체선언
char value; //블루투스에서 받는 값
AF_DCMotor motor1(1, MOTOR12_64KHZ);// 1번모터 객체 생성,속도 64KHz pwm (L293D 에서 좌측 모터 2개 통제)
AF_DCMotor motor2(2, MOTOR12_64KHZ);// 2번모터 객체 생성,속도 64KHz pwm (L293D 에서 우측 모터 2개 통제)
int cpos=90;
//dc 모터
byte leftspeed = 120;
byte rightspeed =120;
void setup() {
Serial.begin(9600); //시리얼모니터
mySerial.begin(9600); //블루투스 시리얼 개방
motor1.setSpeed(230);// 초기 모터 속도,200~255중 임의 조정(두개의 모터속도가 같으면 된다.)
motor2.setSpeed(230);//
Serial.println("Arduino Bluetooth Car is ready to start");
}
void loop() {
while(mySerial.available()) //mySerial에 전송된 값이 있으면
{
value = mySerial.read(); //전송값 읽음
Serial.print(value);
if(value == '3'){ //좌회전(강)
Serial.println("left");
left();
}else if(value == '4'){ //우회전(강)
Serial.println("right");
right();
}else if(value == '1'){ //전진
Serial.println("forward");
forward();
}else if(value == '2'){ //후진
Serial.println("backward");
backward();
}else if(value == '9'){ //정지
Serial.println("stop");
stop();
}
}
}
// 자동차 움직임 정의 Function 들
void forward(){
motor1.run(FORWARD); // 1 forword
motor2.run(FORWARD); // 2 forword
}
void backward(){
motor1.run(BACKWARD);// 1 BACKWARD
motor2.run(BACKWARD);// 2 BACKWARD
}
void left(){
motor1.run(RELEASE);
motor2.run(FORWARD);// 2번 FORWARD
delay(50);
motor1.run(FORWARD); // 1번 다시
}
void right(){
motor1.run(FORWARD);// 1번 FORWARD
motor2.run(RELEASE);
delay(50);
motor2.run(FORWARD);
}
void stop(){
motor1.run(RELEASE);
motor2.run(RELEASE);
}