코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2019-01-14 10:16:02
본 페이지에서는 페이퍼 RC카 제작에 필요한 외관 조립과 하드웨어 연결 정보를 확인할 수 있습니다.
조립에 필요한 과정은 크게 6가지로 나눌 수 있습니다.
본체 제작하기 ▶ 거치대 제작하기 ▶ 덮개 제작하기 ▶ 본체와 거치대 결합하기 ▶ 회로 연결하기 ▶ 덮개 결합하기
※ 페이퍼 RC카 회로도
페이퍼 RC카의 주기능은 총 3가지로 구현해볼 수 있습니다.
원격 주행 RC카 |
스마트폰을 통해 무선으로 RC카의 방향을 제어합니다 |
자율 주행 RC카 |
초음파 거리 감지 센서를 통해 장애물을 회피하며 주행합니다 |
라인 주행 RC카 |
라인트레이서 센서를 통해 검은색 라인을 따라 주행합니다. * 라인트레이서는 구성 품목이 아니며, 별매가 필요합니다 |
아래 링크를 통해 아두이노 소스코드를 다운로드 받아 오렌지보드 BLE에 업로드합니다.
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(4, 5);
int in1 = 9;
int in2 = 6;
int in3 = 10;
int in4 = 11;
int RSpeed = 255;
int LSpeed = 255;
char data;
void setup() {
BTSerial.begin(9600);
}
void loop() {
if (BTSerial.available()) {
data = BTSerial.read();
if (data == 'f') { //직진
analogWrite(in1, RSpeed);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, LSpeed);
}
if (data == 'r') { //우회전
analogWrite(in1, 0);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, LSpeed);
}
if (data == 'l') { //좌회전
analogWrite(in1, RSpeed);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, 0);
}
if (data == 'b') { //후진
analogWrite(in1, 0);
analogWrite(in2, RSpeed);
analogWrite(in3, LSpeed);
analogWrite(in4, 0);
}
if (data == 's') { //정지
analogWrite(in1, 0);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, 0);
}
}
}
|
cs |
링크를 이용해 어플리케이션을 스마트폰에 설치합니다.
어플리케이션 데이터 설정 테이블
전진 |
f |
우회전 |
r |
좌회전 |
l |
후진 |
b |
멈춤 |
s |
아래 링크를 통해 아두이노 소스코드를 다운로드 받아 오렌지보드 BLE에 업로드합니다.
int in1 = 9;
int in2 = 6;
int in3 = 10;
int in4 = 11;
int trig = 2;
int echo = 3;
int Lspeed = 255;
int Rspeed = 255;
void setup() {
Serial.begin(9600);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
}
void loop() {
digitalWrite(trig, LOW);
digitalWrite(echo, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
unsigned long duration =
pulseIn(echo, HIGH);
float distance = duration / 29.0 / 2.0;
Serial.println(distance);
if (distance < 8) {
//정지
analogWrite(in1, 0);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, 0);
delay(700);
//후진
analogWrite(in1, 0);
analogWrite(in2, Rspeed);
analogWrite(in3, Lspeed);
analogWrite(in4, 0);
delay(500);
//좌회전
analogWrite(in1, Rspeed);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, 0);
delay(800);
}
else {
// 직진
analogWrite(in1, Rspeed);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, Lspeed);
}
}
|
cs |
아래 링크를 통해 아두이노 소스코드를 다운로드 받아 오렌지보드 BLE에 업로드합니다.
int in1 = 9;
int in2 = 6;
int in3 = 10;
int in4 = 11;
int L = 5;
int R = 4;
int RSpeed = 255;
int LSpeed = 255;
void setup() {
pinMode(L, INPUT);
pinMode(R, INPUT);
}
void loop() {
if (digitalRead(R) == HIGH && digitalRead(L) == LOW) {
//우회전
analogWrite(in1, 0);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, LSpeed);
}
if (digitalRead(R) == LOW && digitalRead(L) == HIGH) {
//좌회전
analogWrite(in1, RSpeed);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, 0);
}
if (digitalRead(R) == HIGH && digitalRead(L) == HIGH) {
//직진
analogWrite(in1, RSpeed);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, LSpeed);
}
if (digitalRead(R) == LOW && digitalRead(L) == LOW) {
//직진
analogWrite(in1, RSpeed);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, LSpeed);
}
}
|
cs |
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!