2016-07-22 14:15:46
페이퍼 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					 
				
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!
 RC카 키트
 RC카 키트