아두이노, 브레드보드, 모터드라이버, 블루투스, 점퍼선,9V 홀더2개,우드락차체(두꺼운 상자),바퀴2개, DC모터2개,캐스터 바퀴1개,점퍼 케이블
몸체는 두꺼운 우드락을 이용해도 됩니다. 바퀴는 페드병 뚜껑을 이용해도 됩니다. 페트병 뚜껑에 고무풍선을 적당히 잘라 씌워 마찰을 크게하면 잘 됩니다. DC모터는 분리수거할 때 버려진 장난감에서 얻을 수 있을 겁니다. 그리고 각 부품이 프레임에 잘 부착되도록 글루건을 이용하여 붙입니다. 케스터 바퀴는 철물점에서 1500원 정도 들어 구입할 수 있습니다. 여기서 사용된 프레임과 바퀴4개는 해외직구로 저렴하게 구입하였습니다.(만원정도 들었으나 국내에서는 가격이 좀 비싼 편입니다.) 제가 사용하는 부품은 대부분 해외직구로 싸게 구입했습니다.
|
motor driver(L239N) |
|
blueTooth |
|
Jumper Cable |
|
Arduino UNO |
|
Bread Board |
|
wheel |
|
caster wheel |
Step 3 회로도
위 회로도에서 왼쪽 붉은 사각형은 모터 드라이버입니다.
각 부분의 연결표는 다음과 같습니다.
Step 4. code skech
아두이노 소프트웨어를 실행하여 다음 코드를 에라없이 입력하여 컴파일 실행하여 아래 내용을 업로드합니다.
이때 시리얼 통신 라이브러리를 포함시킵니다.
#include <SoftwareSerial.h> //시리얼 통신 라이브러리 호출
//모터 PIN 설정
#define LEFT_A1 4 //왼쪽 바퀴
#define LEFT_B1 5 //왼쪽 바퀴
#define RIGHT_A2 6 //오른쪽 바퀴
#define RIGHT_B2 7 //오른쪽 바퀴
//블루투스 PIN 설정
#define BLUE_TX 2 //블루투스 TX
#define BLUE_RX 3 //블루투스 RX
SoftwareSerial mySerial(BLUE_TX, BLUE_RX); //시리얼 통신을 위한 객체선언
char value; //블루투스에서 받는 값
void setup() {
Serial.begin(9600); //시리얼모니터
mySerial.begin(9600); //블루투스 시리얼 개방
pinMode(LEFT_A1, OUTPUT);
pinMode(RIGHT_A2, OUTPUT);
pinMode(LEFT_B1, OUTPUT);
pinMode(RIGHT_B2, OUTPUT);
Serial.println("Arduino Bluetooth Car is ready to start");
}
void loop() {
while(mySerial.available()) //mySerial에 전송된 값이 있으면
{
value = mySerial.read(); //전송값 읽음
Serial.print(value);
if(value == 'l'){ //좌회전(강)
Serial.println("left");
left();
}else if(value == 'r'){ //우회전(강)
Serial.println("right");
right();
}else if(value == 'f'){ //전진
Serial.println("forward");
forward();
}else if(value == 'b'){ //후진
Serial.println("backward");
backward();
}else if(value == 'w'){ //우회전(약)
Serial.println("slow right");
sRight();
}else if(value == 'q'){ //좌회전(약)
Serial.println("slow left");
sLeft();
}else if(value == 's'){ //정지
Serial.println("stop");
stop();
}
}
}
// 자동차 움직임 정의 Function 들
void forward(){ // 전진
digitalWrite(LEFT_A1, HIGH);
digitalWrite(LEFT_B1, LOW);
digitalWrite(RIGHT_A2, HIGH);
digitalWrite(RIGHT_B2, LOW);
}
void backward(){ // 후진
digitalWrite(LEFT_A1, LOW);
digitalWrite(LEFT_B1, HIGH);
digitalWrite(RIGHT_A2, LOW);
digitalWrite(RIGHT_B2, HIGH);
}
void left(){ // 좌회전 - 오른쪽 바퀴가 전전,왼쪽 바퀴는 후진하면서 빠르게 좌회전
digitalWrite(LEFT_A1, LOW);
digitalWrite(LEFT_B1, HIGH);
digitalWrite(RIGHT_A2, HIGH);
digitalWrite(RIGHT_B2, LOW);
}
void right(){ // 우회전 -왼쪽 바퀴가 전진,왼쪽 바퀴는 후진하면서 빠르게 우회전
digitalWrite(LEFT_A1, HIGH);
digitalWrite(LEFT_B1, LOW);
digitalWrite(RIGHT_A2, LOW);
digitalWrite(RIGHT_B2, HIGH);
}
void sLeft(){ //느리게 좌회전- 오른쪽 바퀴만 전진,왼쪽 바퀴는 정지하여 천천히 좌회전
digitalWrite(LEFT_A1, LOW);
digitalWrite(LEFT_B1, LOW);
digitalWrite(RIGHT_A2, HIGH);
digitalWrite(RIGHT_B2, LOW);
}
void sRight(){ // 느리게 우회전 -왼쪽바퀴는 전진,오른쪽 바퀴는 정지하여 천천히 우회전
digitalWrite(LEFT_A1, HIGH);
digitalWrite(LEFT_B1, LOW);
digitalWrite(RIGHT_A2, LOW);
digitalWrite(RIGHT_B2, LOW);
}
void stop(){ // 정지
digitalWrite(LEFT_A1, LOW);
digitalWrite(LEFT_B1, LOW);
digitalWrite(RIGHT_A2, LOW);
digitalWrite(RIGHT_B2, LOW);
}
발췌 사이트:
http://www.instructables.com/id/How-to-use-the-L298-Motor-Driver-Module-Arduino-Tu/
Step 5. 블루투스 어플리케이션
키 설정하면 다음 그림과 같은데 먼저 장치검색을 하여 블루투스모듈과 스마트폰과 송수신이 되도록 합니다.
깜박이던 불루투스모듈이 정지되면 스마트폰과 블루투스가 연동이 된 것입니다. 그러면 버튼을 터치하면 바퀴(DC모터)가 작동됩니다.