You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 아두 이노 라인 트레이서 코드 on Google, you do not find the information you need! Here are the best content compiled and compiled by the toplist.Experience-Porthcawl.com team, along with other related topics such as: 아두 이노 라인 트레이서 코드 아두이노 라인트레이서 rc카 코드, 아두이노 라인 트레이서 알고리즘, 아두이노 적외선 센서 DC 모터, 라인 트레이서 서보모터, 아두이노 적외선 자동차
아두이노 – 적외선 센서를 이용한 라인트레이서(Linetracer) 만들기
- Article author: responding.tistory.com
- Reviews from users: 36291 Ratings
- Top rated: 4.7
- Lowest rated: 1
- Summary of article content: Articles about 아두이노 – 적외선 센서를 이용한 라인트레이서(Linetracer) 만들기 회로도는 자신이 구성하는 모양, 방향에 따라서 유동적으로 변경해야 합니다. -코드. 양쪽 센서가 모두 검은 선이 감지되면 앞으로 직진. 왼쪽 센서만 … …
- Most searched keywords: Whether you are looking for 아두이노 – 적외선 센서를 이용한 라인트레이서(Linetracer) 만들기 회로도는 자신이 구성하는 모양, 방향에 따라서 유동적으로 변경해야 합니다. -코드. 양쪽 센서가 모두 검은 선이 감지되면 앞으로 직진. 왼쪽 센서만 … 아두이노를 공부하다 보면 가장 많이 접하고 한 번쯤 만들어보게 되는 게 라인트레이서인 거 같습니다. 그래서 간단하게 제작한 라인트레이서를 기록하도록 하겠습니다. -작동원리 적외선 센서를 이용해서 검은색..
- Table of Contents:
카테고리
공지사항
최근 글
인기 글
방문자 통계
태그
댓글0
티스토리툴바
라즈이노 iOT :: 【 아두이노 Proj#2】 라인트레이서 자동차 만들기 ( L298N모듈)
- Article author: rasino.tistory.com
- Reviews from users: 536 Ratings
- Top rated: 4.3
- Lowest rated: 1
- Summary of article content: Articles about 라즈이노 iOT :: 【 아두이노 Proj#2】 라인트레이서 자동차 만들기 ( L298N모듈) 【 아두이노 Proj#2】 라인트레이서 자동차 만들기 ( L298N모듈). 적외선 센서를 이용하여 바닥에 그려진 라인을 따라 이동하는 RC카를 만들어 보자. …
- Most searched keywords: Whether you are looking for 라즈이노 iOT :: 【 아두이노 Proj#2】 라인트레이서 자동차 만들기 ( L298N모듈) 【 아두이노 Proj#2】 라인트레이서 자동차 만들기 ( L298N모듈). 적외선 센서를 이용하여 바닥에 그려진 라인을 따라 이동하는 RC카를 만들어 보자. 【 아두이노 Proj#2】 라인트레이서 자동차 만들기 ( L298N모듈) 적외선 센서를 이용하여 바닥에 그려진 라인을 따라 이동하는 RC카를 만들어 보자. ▶ 선수 학습 : 1. (기초) #24 DC 모터 제어 하기..
- Table of Contents:
【 아두이노 Proj#2】 라인트레이서 자동차 만들기 ( L298N모듈)
티스토리툴바
TISTORY
- Article author: hatsalmaroo.tistory.com
- Reviews from users: 34055 Ratings
- Top rated: 4.9
- Lowest rated: 1
- Summary of article content: Articles about TISTORY 아두이노 – 라인 트레이서(Line Tracer) … 라인 트레이서란 센서가 인식할 수 있는 라인을 따라서 이동하는 간단한 로봇이다. 크게 센서부, 제어부, … …
- Most searched keywords: Whether you are looking for TISTORY 아두이노 – 라인 트레이서(Line Tracer) … 라인 트레이서란 센서가 인식할 수 있는 라인을 따라서 이동하는 간단한 로봇이다. 크게 센서부, 제어부, …
- Table of Contents:
아두이노 라인 트레이서 만들기 – 한 개의 아날로그 센서를 이용한 실험 – annaino uno
- Article author: myoungjinkim.github.io
- Reviews from users: 8242 Ratings
- Top rated: 4.6
- Lowest rated: 1
- Summary of article content: Articles about 아두이노 라인 트레이서 만들기 – 한 개의 아날로그 센서를 이용한 실험 – annaino uno 이 실험에서는 하나의 아날로그 센서만을 이용하기 때문에 센서가 줄의 경계를 쫓아가도록 코드를 구성할 것입니다. 줄의 경계에서는 까만색 줄과 … …
- Most searched keywords: Whether you are looking for 아두이노 라인 트레이서 만들기 – 한 개의 아날로그 센서를 이용한 실험 – annaino uno 이 실험에서는 하나의 아날로그 센서만을 이용하기 때문에 센서가 줄의 경계를 쫓아가도록 코드를 구성할 것입니다. 줄의 경계에서는 까만색 줄과 … 안녕하세요! 아두이노 라인 트레이서 만들기 세 번째 시간입니다. 이번 포스트에서는 한 개의 센서의 아날로그 측정값을 이용하여 줄을 따라가는 실험을 진행해보고자 합니다. 디지털 센서를 쓰는 것 보다는 여러가지 고민 사항이 많아질 것 같습니다.
- Table of Contents:
전선 배선
트랙
실험
아두이노 라인 트레이서 만들기 – pid를 이용한 떨림 제어
아두이노 라인 트레이서 만들기 – 두 개의 디지털 센서를 이용한 실험
아두이노 라인 트레이서 만들기 – 로봇 조립하기
아두이노 라인 트레이서 TCRT5000 사용하기
아두이노 라인트레이서 완성!
- Article author: robodream.tistory.com
- Reviews from users: 47092 Ratings
- Top rated: 3.9
- Lowest rated: 1
- Summary of article content: Articles about 아두이노 라인트레이서 완성! 짧은 영상이지만 라인트레이서는 완벽하게 잘 돌아갑니다!!! 라인트레이서 완성! 코드가 필요하시거나 도움이 필요하신분은 댓글로 문의주세요~. …
- Most searched keywords: Whether you are looking for 아두이노 라인트레이서 완성! 짧은 영상이지만 라인트레이서는 완벽하게 잘 돌아갑니다!!! 라인트레이서 완성! 코드가 필요하시거나 도움이 필요하신분은 댓글로 문의주세요~. 짧은 영상이지만 라인트레이서는 완벽하게 잘 돌아갑니다!!! 라인트레이서 완성! 코드가 필요하시거나 도움이 필요하신분은 댓글로 문의주세요~ 코드 공개하였습니다. 도움이 되셨다면 댓글이나 남겨주세요! :)..
- Table of Contents:
Kim’s Programming
아두이노 라인트레이서 완성! 본문
티스토리툴바
See more articles in the same category here: toplist.Experience-Porthcawl.com/blog.
아두이노 – 적외선 센서를 이용한 라인트레이서(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상담을 이용해 주시기 바랍니다.)
※ 고객님의 마음이 바뀌어 교환, 반품을 하실 경우 상품반송 비용은 고객님께서 부담하셔야 합니다.
(색상 교환, 사이즈 교환 등 포함)
아두이노 라인 트레이서 만들기 – 한 개의 아날로그 센서를 이용한 실험
안녕하세요! 아두이노 라인 트레이서 만들기 세 번째 시간입니다. 이번 포스트에서는 한 개의 센서의 아날로그 측정값을 이용하여 줄을 따라가는 실험을 진행해보고자 합니다. 디지털 센서를 쓰는 것 보다는 여러가지 고민 사항이 많아질 것 같습니다.
전선 배선
차체 조립에 대한 정보는 아래 링크를 참고해주시기 바랍니다.
아두이노 줄 따라가는 로봇 조립하기
한전선 배선은 아래 표에 나와있는 내용대로 진행하였습니다. 오른쪽 TCRT5000을 떼어내고, 왼쪽 TCRT5000을 아날로그 핀 A0에 연결하였습니다.
아두이노 모터 L298N TCRT5000 (왼쪽) HC-06 VCC VCC VCC GND GND GND 4 IN2 5 ENA 6 ENB 7 IN4 8 IN3 9 IN1 12 RX 13 TX A0 A0 motor A OUT1 motor A OUT2 motor B OUT3 motor B OUT4
트랙
트랙은 지난 포스트에서 사용하였던 pdf 파일을 인쇄한 트랙과 함께 예전에 구매하였던 mindstorm 키트에 들어있던 완만한 트랙을 사용하였습니다.
아래 링크는 다양한 경로를 제작하기 위해 인쇄하였던 pdf 파일입니다.
아두이노 줄 따라가는 로봇 트랙
실험
원리
TCRT5000의 아날로그 측정값은 바닥의 빛의 반사량을 알려줍니다. 측정값의 범위는 40에서 600 사이이며 반사량이 많을 수록 작은 값이 출력됩니다. 즉, 바닥이 흰색에 가까울 수록 측정값은 작아지고 바닥이 까만색에 가까울 수록 측정값은 커지게 됩니다.
이 실험에서는 하나의 아날로그 센서만을 이용하기 때문에 센서가 줄의 경계를 쫓아가도록 코드를 구성할 것입니다. 줄의 경계에서는 까만색 줄과 하얀색 바탕이 모두 인식되기 때문에 센서가 40과 600 사이의 값을 출력하게 됩니다. 저는 가운데 값인 320을 따라가도록 코드를 만들었습니다.
코드
320 이라는 경계를 설정해준 후 그보다 큰 값이 출력되면 줄 쪽으로, 작은 값이 출력되면 바탕 쪽으로 기울어져 있다고 판단하였습니다. 현재 왼쪽 센서로 줄의 왼쪽 경계를 쫓아가고 있는 상황을 고려하여 줄 쪽으로 기울어졌다고 판단될 경우 오른쪽 바퀴를, 바탕쪽으로 기울여졌다고 판단될 경우 왼쪽 바퀴를 돌려 값을 조율하였습니다.
#include
// Motor pins #define ENA 5 #define ENB 6 #define IN1 4 #define IN2 9 #define IN3 7 #define IN4 8 // Drives two motors according to the given pwm values. void drive(int pwmA, int pwmB); // TCRT5000 sensors #define IR_L A0 // HC06 pins #define TX 12 #define RX 13 SoftwareSerial mySerial(RX, TX); void setup() { Serial.begin(115200); mySerial.begin(57600); // set motor pins to ouput pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); // set TCRT500 pins to input pinMode(IR_L, INPUT); } // speed of motors in pwm value int speed = 0; void loop() { // check command over BLE if (mySerial.available()) { char command = mySerial.read(); if (command == ‘g’) { speed = mySerial.parseInt(); } else if (command == ‘s’) { speed = 0; } } // drive line following robot if (speed > 0) { int value = analogRead(IR_L); if (value > 320) { drive(speed, 0); } else { drive(0, speed); } } else { drive(0, 0); } } /* * Drives two motors according to the given pwm values. * * To avoid write several functions for each motor direction, I simply * drive motor forward if the given value is positive and backward if * negative. To stop a motor, just give 0. * * Since every DC motors have differenct characteristics, I stop a * motor if the absolute value of the given pwm value is less than * MOTOR_MIN_PWM to drive the vehicle as strait as possible. * * @param pwmA PWM value of motor A. An integer value between * -255 and 255. * @param pwmB PWM value of motor B. An integer value between * -255 and 255. */ void drive(int pwmA, int pwmB) { // MOTOR A direction if (pwmA > 0) { digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); } else if (pwmA < 0) { digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); } else { digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); } // MOTOR B direction if (pwmB > 0) { digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); } else if (pwmB < 0) { digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); } else { digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); } // speed of motors analogWrite(ENA, abs(pwmA)); analogWrite(ENB, abs(pwmB)); } 실험 결과 실험 결과 완만한 길은 잘 쫓아가지만 급격한 경사가 등장하는 경우 줄을 따라가지 못하고 큰 원을 그리는 결과가 나타났습니다. 보완된 코드 위와 같은 상황을 해결하기 위해 아예 너무 하얀 쪽에 노출 될 경우 (이 코드의 경우 100보다 작을 때)는 두 바퀴를 서로 반대 방향으로 돌려 더욱 급하게 차체가 회전하도록 하였습니다. #include // Motor pins #define ENA 5 #define ENB 6 #define IN1 4 #define IN2 9 #define IN3 7 #define IN4 8 // Drives two motors according to the given pwm values. void drive(int pwmA, int pwmB); // TCRT5000 sensors #define IR_L A0 // HC06 pins #define TX 12 #define RX 13 SoftwareSerial mySerial(RX, TX); void setup() { Serial.begin(115200); mySerial.begin(57600); // set motor pins to ouput pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); // set TCRT500 pins to input pinMode(IR_L, INPUT); } // speed of motors in pwm value int speed = 0; void loop() { // check command over BLE if (mySerial.available()) { char command = mySerial.read(); if (command == ‘g’) { speed = mySerial.parseInt(); } else if (command == ‘s’) { speed = 0; } } // drive line following robot if (speed > 0) { int value = analogRead(IR_L); if (value > 320) { drive(speed, 0); } else if (value > 100) { drive(0, speed); } else { drive(-speed, speed); } } else { drive(0, 0); } } /* * Drives two motors according to the given pwm values. * * To avoid write several functions for each motor direction, I simply * drive motor forward if the given value is positive and backward if * negative. To stop a motor, just give 0. * * Since every DC motors have differenct characteristics, I stop a * motor if the absolute value of the given pwm value is less than * MOTOR_MIN_PWM to drive the vehicle as strait as possible. * * @param pwmA PWM value of motor A. An integer value between * -255 and 255. * @param pwmB PWM value of motor B. An integer value between * -255 and 255. */ void drive(int pwmA, int pwmB) { // MOTOR A direction if (pwmA > 0) { digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); } else if (pwmA < 0) { digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); } else { digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); } // MOTOR B direction if (pwmB > 0) { digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); } else if (pwmB < 0) { digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); } else { digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); } // speed of motors analogWrite(ENA, abs(pwmA)); analogWrite(ENB, abs(pwmB)); } 실험 결과 실험 결과에서 볼 수 있듯이 조금 급한 곡선도 잘 따라가는 것을 볼 수 있습니다. 그런데, 좌우로 일정한 속도로 움직이다보니 자체가 심하게 흔들렸습니다. 다음에는 이 부분을 보완해 보고자 합니다.
So you have finished reading the 아두 이노 라인 트레이서 코드 topic article, if you find this article useful, please share it. Thank you very much. See more: 아두이노 라인트레이서 rc카 코드, 아두이노 라인 트레이서 알고리즘, 아두이노 적외선 센서 DC 모터, 라인 트레이서 서보모터, 아두이노 적외선 자동차