아두 이노 라인 트레이서 코드 | 라인트레이서 만들기 코딩 1편 (Line Tracer Coding)_[반지하공작실] 249 개의 자세한 답변

당신은 주제를 찾고 있습니까 “아두 이노 라인 트레이서 코드 – 라인트레이서 만들기 코딩 1편 (line tracer coding)_[반지하공작실]“? 다음 카테고리의 웹사이트 https://you.tfvp.org 에서 귀하의 모든 질문에 답변해 드립니다: you.tfvp.org/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 반지하 공작실 이(가) 작성한 기사에는 조회수 5,746회 및 좋아요 38개 개의 좋아요가 있습니다.

아두 이노 라인 트레이서 코드 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 라인트레이서 만들기 코딩 1편 (line tracer coding)_[반지하공작실] – 아두 이노 라인 트레이서 코드 주제에 대한 세부정보를 참조하세요

라인트레이서 만들기 마지막 시간입니다.
프로그램을 작성해서 넣어보고 작동 확인까지 해봤습니다.
영상이 너무 길어져서 2편으로 나누어 올립니다.
2편 주소 : https://youtu.be/yxpawVqvr_4

아두 이노 라인 트레이서 코드 주제에 대한 자세한 내용은 여기를 참조하세요.

아두이노 – 적외선 센서를 이용한 라인트레이서(Linetracer) 만들기

회로도는 자신이 구성하는 모양, 방향에 따라서 유동적으로 변경해야 합니다. -코드. 양쪽 센서가 모두 검은 선이 감지되면 앞으로 직진. 왼쪽 센서만 …

+ 여기에 보기

Source: responding.tistory.com

Date Published: 8/20/2022

View: 5745

아두이노 코딩 교육용 라인트레이서 키트

아두이노 전문 교육쇼핑몰 에듀이노, 아두이노보드, 쉴드, 모듈, 키트, 로봇, 전자부품 등 판매. … 자체상품코드 H-11 배송방법 택배 설명 [7차시 강의용] …

+ 더 읽기

Source: eduino.kr

Date Published: 1/16/2021

View: 8359

【 아두이노 Proj#2】 라인트레이서 자동차 만들기 ( L298N모듈)

【 아두이노 Proj#2】 라인트레이서 자동차 만들기 ( L298N모듈). 적외선 센서를 이용하여 바닥에 그려진 라인을 따라 이동하는 RC카를 만들어 보자.

+ 더 읽기

Source: rasino.tistory.com

Date Published: 9/20/2021

View: 414

아두이노 라인트레이서 완성! – Kim’s Programming

짧은 영상이지만 라인트레이서는 완벽하게 잘 돌아갑니다!!! 라인트레이서 완성! 코드가 필요하시거나 도움이 필요하신분은 댓글로 문의주세요~.

+ 여기에 자세히 보기

Source: robodream.tistory.com

Date Published: 5/7/2022

View: 4115

주제와 관련된 이미지 아두 이노 라인 트레이서 코드

주제와 관련된 더 많은 사진을 참조하십시오 라인트레이서 만들기 코딩 1편 (line tracer coding)_[반지하공작실]. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

라인트레이서 만들기 코딩 1편 (line tracer coding)_[반지하공작실]
라인트레이서 만들기 코딩 1편 (line tracer coding)_[반지하공작실]

주제에 대한 기사 평가 아두 이노 라인 트레이서 코드

  • Author: 반지하 공작실
  • Views: 조회수 5,746회
  • Likes: 좋아요 38개
  • Date Published: 2019. 3. 15.
  • Video Url link: https://www.youtube.com/watch?v=FATxFWzMGHs

아두이노 – 적외선 센서를 이용한 라인트레이서(Linetracer) 만들기

반응형

아두이노를 공부하다 보면 가장 많이 접하고 한 번쯤 만들어보게 되는 게 라인트레이서인 거 같습니다.

그래서 간단하게 제작한 라인트레이서를 기록하도록 하겠습니다.

-작동원리

적외선 센서를 이용해서 검은색 라인이나 흰색 라인을 감지해서 라인을 따라 이동하게 합니다.

(여기 기록되는 라인트레이서는 적외선 센서를 2개 사용했습니다. )

가장 중요한 적외선 센서는

보통 발광부와 수광부가 있습니다.

발광부에서 적외선을 쏘게 되면 물체에 반사되어서 수광부로 들어오게 됩니다.

하지만 검은색은 빛을 흡수하여 수광부에 적외선이 도달하지 못하게 됩니다.

이 원리를 이용하여 검은 선과 흰 선을 구분해 줍니다.

라인트레이서는 왼쪽 센서와 오른쪽 센서에서 각각 보내는 데이터를 이용해서 이동합니다.

왼쪽 센서에서 검은색선을 미감지하고 오른쪽 센서에서는 검은선을 감지합니다. 이상태에서 직진을 계속한다면 결국 라인트레이서는 검은선을 완전히 이탈하게 됩니다.

그래서 왼쪽 센서에서 검은선을 미감지했고 오른쪽 센서는 감지했기 때문에 라인트레이서를 우회전해서 검은선에 양쪽 센서가 모두 감지되도록 하게 해 줍니다.

반대의 경우도 마찬가지입니다.

-준비물

(참고로 꼭 이게 맞는 게 아닙니다. 재료는 항상 변경이 가능합니다.)

-Arduino Uno 1개

-브레드보드 1개(작은 거면 충분합니다 170핀으로도 만들었습니다. 그냥 단순 점프용입니다.)

-적외선 센서 2개(이 내용은 적외선 센서 2개로 만든 라인트레이서입니다. )

적외선 수광부 발광부 따로 사셔서 직접 연결하셔도 좋습니다만… 처음 하신다면 위 사진처럼 한쪽 방향으로 다 납땜한 제품을 사시는 게 편합니다.(‘TCRT5000’으로 검색하시면 많이 나옵니다.)

-2WD 자동차 프레임 키트 1개

이것도 위에 내용하고 비슷한 거지만 직접 만드는 게 당연히 좋습니다 하지만 이 내용에서는 보통 ‘2WD 자동차 프레임’을 검색하면 나오는 제품을 사용하였습니다. (보통 2개의 DC 모터가 포함되어있습니다.)

-듀얼 모터 드라이버 모듈 1개

‘L9110’로 검색하면 많이 나오는 제품을 사용했습니다.

모터에 외부 전원을 사용하기 위해 구매했습니다.

*건전지 (선택)

라인트레이서를 만들면서 보통 발생하는 문제가 대부분 1.5v 건전지를 직렬로 연결해서 4개를 사용하는 키트가 대부분입니다.

근데 이걸 이용해서 아두이노와 모터에 전원을 공급하다 보면 DC 모터가 전원 공급이 부족해서 잘 움직이지 않는 경우가 생겼습니다. 그래서 저는 9V 건전지를 사용하여 작동하였습니다.

-회로도 구성

라인트레이서 회로도

회로도는 자신이 구성하는 모양, 방향에 따라서 유동적으로 변경해야 합니다.

-코드

양쪽 센서가 모두 검은 선이 감지되면 앞으로 직진

왼쪽 센서만 검은 선이 감지되면 좌회전

오른쪽 센서만 검은 선이 감지되면 우회전

양쪽 센서가 모두 검은 선이 감지되지 않으면 정지

이게 기본 틀입니다.

#define LmotorCW 5 #define LmotorCCW 6 #define RmotorCW 9 #define RmotorCCW 10 #define IRL 7 #define IRR 8 int speed = 50; //모터 속도 void setup() { // put your setup code here, to run once: pinMode(LmotorCW,OUTPUT); pinMode(LmotorCCW,OUTPUT); pinMode(RmotorCW,OUTPUT); pinMode(RmotorCCW,OUTPUT); pinMode(IRL,INPUT); pinMode(IRR,INPUT); } void loop() { // put your main code here, to run repeatedly: //모터 장착 방향, 배선이 따라 코드를 수정 해서 사용 //양쪽 IR 센서가 모두 검은색 라인 감지시 양 바퀴 전부 전진 if(digitalRead(IRL)==HIGH && digitalRead(IRR)==HIGH){ analogWrite(LmotorCW,0); analogWrite(LmotorCCW,speed); analogWrite(RmotorCW,speed); analogWrite(RmotorCCW,0); } // 검은색 선을 왼쪽 IR센서는 감지 오른쪽 IR센서는 미감지 else if(digitalRead(IRL)==LOW && digitalRead(IRR)==HIGH){ analogWrite(LmotorCW,0); analogWrite(LmotorCCW,speed); analogWrite(RmotorCW,0); analogWrite(RmotorCCW,speed); } // 검은색 선을 왼쪽 IR센서는 미감지 오른쪽 IR센서는 감지 else if(digitalRead(IRL)==HIGH && digitalRead(IRR)==LOW){ analogWrite(LmotorCW,speed); analogWrite(LmotorCCW,0); analogWrite(RmotorCW,speed); analogWrite(RmotorCCW,0); } //모두 미감지시 정지 else if(digitalRead(IRL)==LOW && digitalRead(IRR)==LOW){ analogWrite(LmotorCW,0); analogWrite(LmotorCCW,0); analogWrite(RmotorCW,0); analogWrite(RmotorCCW,0); } }

속도는 직접 작동해보면서 유동적으로 변경해야 합니다.

적외선 센서가 검은색일 때 On이 되는 것도 있지만 검은색일 때 Off가 되는 센서도 될 수 있습니다.(직접 확인하고 코드를 수정해야 합니다.)

-완성

적외선 센서를 부착할 때 바닥과의 높이를 잘 조절해야 감지가 잘 됩니다.

완성된 라인트레이서는 검은선을 따라서 움직입니다.

반응형

에듀이노-코딩교육 전문 쇼핑몰

상품결제정보 고액결제의 경우 안전을 위해 카드사에서 확인전화를 드릴 수도 있습니다. 확인과정에서 도난 카드의 사용이나 타인 명의의 주문등 정상적인 주문이 아니라고 판단될 경우 임의로 주문을 보류 또는 취소할 수 있습니다.

무통장 입금은 상품 구매 대금은 PC뱅킹, 인터넷뱅킹, 텔레뱅킹 혹은 가까운 은행에서 직접 입금하시면 됩니다.

주문시 입력한 입금자명과 실제입금자의 성명이 반드시 일치하여야 하며, 7일 이내로 입금을 하셔야 하며 입금되지 않은 주문은 자동취소 됩니다.

배송정보 배송 방법 : 택배

배송 지역 : 전국지역

배송 비용 : 3,000원

배송 기간 : 1일 ~ 2일

배송 안내 : – 제주도, 산간벽지나 도서지방은 별도의 추가금액을 지불하셔야 하는 경우가 있습니다.

고객님께서 주문하신 상품은 입금 확인후 배송해 드립니다. 다만, 상품종류에 따라서 상품의 배송이 다소 지연될 수 있습니다.

교환 및 반품정보 교환 및 반품이 가능한 경우

– 상품을 공급 받으신 날로부터 7일이내 단, 가전제품의

경우 포장을 개봉하였거나 포장이 훼손되어 상품가치가 상실된 경우에는 교환/반품이 불가능합니다.

– 공급받으신 상품 및 용역의 내용이 표시.광고 내용과

다르거나 다르게 이행된 경우에는 공급받은 날로부터 3월이내, 그사실을 알게 된 날로부터 30일이내

교환 및 반품이 불가능한 경우

– 고객님의 책임 있는 사유로 상품등이 멸실 또는 훼손된 경우. 단, 상품의 내용을 확인하기 위하여

포장 등을 훼손한 경우는 제외

– 포장을 개봉하였거나 포장이 훼손되어 상품가치가 상실된 경우

(예 : 가전제품, 식품, 음반 등, 단 액정화면이 부착된 노트북, LCD모니터, 디지털 카메라 등의 불량화소에

따른 반품/교환은 제조사 기준에 따릅니다.)

– 고객님의 사용 또는 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 단, 화장품등의 경우 시용제품을

제공한 경우에 한 합니다.

– 시간의 경과에 의하여 재판매가 곤란할 정도로 상품등의 가치가 현저히 감소한 경우

– 복제가 가능한 상품등의 포장을 훼손한 경우

(자세한 내용은 고객만족센터 1:1 E-MAIL상담을 이용해 주시기 바랍니다.)

※ 고객님의 마음이 바뀌어 교환, 반품을 하실 경우 상품반송 비용은 고객님께서 부담하셔야 합니다.

(색상 교환, 사이즈 교환 등 포함)

아두이노 라인트레이서 완성!

반응형

짧은 영상이지만 라인트레이서는 완벽하게 잘 돌아갑니다!!! 라인트레이서 완성!

코드가 필요하시거나 도움이 필요하신분은 댓글로 문의주세요~

코드 공개하였습니다. 도움이 되셨다면 댓글이나 남겨주세요! 🙂

소스코드

접기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 //motor driver inputs #define Left_Wheel_1 9 //left motor #define Left_Wheel_2 8 #define Right_Wheel_1 2 //right motor #define Right_Wheel_2 3 //sensors #define sensor_left A0 //leftmost #define sensor_middle_left A1 //left of middle #define sensor_middle_right A2 //right of middle #define sensor_right A3 //rightmost //#define traffic_lamp A5 //traffic lamp int a, b, c, d, e; void setup() { //Define motor pins as output to manage them. pinMode(Left_Wheel_1, OUTPUT); pinMode(Left_Wheel_2, OUTPUT); pinMode(Right_Wheel_1, OUTPUT); pinMode(Right_Wheel_2, OUTPUT); //Define sensor pins as input to get data from them. pinMode(sensor_left, INPUT); pinMode(sensor_middle_left, INPUT); pinMode(sensor_middle_right, INPUT); pinMode(sensor_right, INPUT); //pinMode(traffic_lamp, INPUT); Serial. begin ( 9600 ); } ////////////////////////앞/////////////////////////// ///////////////////////////////////////////////////// //////// D ////// C ////// B ////// A /////// ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// //좌/// < 600 == WHITE // > 600 == BLACK ///우// ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// /////////////////////////뒤////////////////////////// void loop() { //Read data coming from sensors as analog. a = analogRead(sensor_left); b = analogRead(sensor_middle_left); c = analogRead(sensor_middle_right); d = analogRead(sensor_right); //Go straight if ((b > 600 & & c > 600 ) & & a < 600 & & d < 600 ) { Serial.println( "Should go straight." ); //Drive both motors digitalWrite(Left_Wheel_1, HIGH); digitalWrite(Left_Wheel_2, LOW); digitalWrite(Right_Wheel_1, HIGH); digitalWrite(Right_Wheel_2, LOW); delay( 6 ); digitalWrite(Left_Wheel_1, 0 ); digitalWrite(Left_Wheel_2, 0 ); digitalWrite(Right_Wheel_1, 0 ); digitalWrite(Right_Wheel_2, 0 ); delay( 6 ); } //Turn right completely if (a > 600 & & b < 600 & & c < 600 & & d < 600 ) { Serial.println( "Should turn right completely." ); //Drive left motor, stop right motor. digitalWrite(Left_Wheel_1, HIGH); digitalWrite(Left_Wheel_2, LOW); digitalWrite(Right_Wheel_1, HIGH); digitalWrite(Right_Wheel_2, HIGH); delay( 8 ); digitalWrite(Left_Wheel_1, 0 ); digitalWrite(Left_Wheel_2, 0 ); digitalWrite(Right_Wheel_1, 0 ); digitalWrite(Right_Wheel_2, 0 ); delay( 8 ); } //Turn left completely if (d > 600 & & b < 600 & & c < 600 & & a < 600 ) { Serial.println( "Should turn left completely." ); //Drive right motor, stop left motor. digitalWrite(Left_Wheel_1, HIGH); digitalWrite(Left_Wheel_2, HIGH); digitalWrite(Right_Wheel_1, HIGH); digitalWrite(Right_Wheel_2, LOW); delay( 8 ); digitalWrite(Left_Wheel_1, 0 ); digitalWrite(Left_Wheel_2, 0 ); digitalWrite(Right_Wheel_1, 0 ); digitalWrite(Right_Wheel_2, 0 ); delay( 8 ); } //Turn right slightly if (b > 600 & & a < 600 & & c < 600 & & d < 600 ) { Serial.println( "Should turn right slightly." ); //Drive left motor, stop right motor. digitalWrite(Left_Wheel_1, HIGH); digitalWrite(Left_Wheel_2, LOW); digitalWrite(Right_Wheel_1, HIGH); digitalWrite(Right_Wheel_2, HIGH); delay( 8 ); digitalWrite(Left_Wheel_1, 0 ); digitalWrite(Left_Wheel_2, 0 ); digitalWrite(Right_Wheel_1, 0 ); digitalWrite(Right_Wheel_2, 0 ); delay( 8 ); } //Turn left slightly if (c > 600 & & a < 600 & & b < 600 & & d < 600 ) { Serial.println( "Should turn left slightly." ); //Drive right motor, stop left motor. digitalWrite(Left_Wheel_1, HIGH); digitalWrite(Left_Wheel_2, HIGH); digitalWrite(Right_Wheel_1, HIGH); digitalWrite(Right_Wheel_2, LOW); delay( 8 ); digitalWrite(Left_Wheel_1, 0 ); digitalWrite(Left_Wheel_2, 0 ); digitalWrite(Right_Wheel_1, 0 ); digitalWrite(Right_Wheel_2, 0 ); delay( 8 ); } //Stop, line ended. if (a < 600 & & b < 600 & & c < 600 & & d < 600 ) { Serial.println( "Should stop." ); //Stop both motors. digitalWrite(Left_Wheel_1, HIGH); digitalWrite(Left_Wheel_2, HIGH); digitalWrite(Right_Wheel_1, HIGH); digitalWrite(Right_Wheel_2, HIGH); delay( 8 ); digitalWrite(Left_Wheel_1, 0 ); digitalWrite(Left_Wheel_2, 0 ); digitalWrite(Right_Wheel_1, 0 ); digitalWrite(Right_Wheel_2, 0 ); delay( 8 ); } } Colored by Color Scripter cs 접기 반응형

키워드에 대한 정보 아두 이노 라인 트레이서 코드

다음은 Bing에서 아두 이노 라인 트레이서 코드 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 라인트레이서 만들기 코딩 1편 (line tracer coding)_[반지하공작실]

  • 라인트레이서
  • 코딩
  • coding
  • linetracer
  • 아두이노
  • 작품
  • 장난감
  • 로봇

라인트레이서 #만들기 #코딩 #1편 #(line #tracer #coding)_[반지하공작실]


YouTube에서 아두 이노 라인 트레이서 코드 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 라인트레이서 만들기 코딩 1편 (line tracer coding)_[반지하공작실] | 아두 이노 라인 트레이서 코드, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment