ค้นหาโค้ด

บทเรียน 30/31: การติดตามเส้นรถยนต์-8 โดยสมาร์ทคาร์จากชุด Arduino ของ SunFounder | Robojax

บทเรียนนี้เป็นส่วนหนึ่งของ: หลักสูตร Arduino ที่ใช้ชุดการเรียนรู้ 3-in-1 ของ SunFounder

บทเรียน 30/31: การติดตามเส้นรถยนต์-8 โดยสมาร์ทคาร์จากชุด Arduino ของ SunFounder | Robojax

คู่มือนี้จะแนะนำคุณในการสร้างรถอัจฉริยะที่วิ่งตามเส้นโดยใช้ชุด Arduino 3-in-1 ของ SunFounder

บทเรียน30-การติดตามเส้น-1

 โปรเจกต์ที่สาธิตในวิดีโอนี้ใช้โมดูลตรวจจับเส้นอินฟราเรดเพื่อตรวจจับเส้นสีดำบนพื้นผิวสีขาวและควบคุมมอเตอร์สองตัวเพื่อให้รถอยู่บนเส้นทาง นี่คือโปรเจกต์หุ่นยนต์พื้นฐานที่สอนคุณเกี่ยวกับการอ่านเซนเซอร์ ตรรกะแบบมีเงื่อนไข และการควบคุมมอเตอร์ คุณค่าทางโลกแห่งความเป็นจริงนั้นมหาศาล—มันเป็นพื้นฐานสำหรับยานพาหนะนำทางอัตโนมัติ (AGV) ในคลังสินค้า หุ่นยนต์ดูดฝุ่นที่เดินตามขอบห้อง และแพลตฟอร์มการศึกษาเพื่อเรียนรู้เกี่ยวกับการนำทางอัตโนมัติ นอกเหนือจากการสร้างพื้นฐานแล้ว คุณสามารถใช้แนวคิดนี้สำหรับ:

  • การสร้างหุ่นยนต์ง่ายๆ ที่สามารถนำทางไปตามเส้นทางที่กำหนดไว้ล่วงหน้าในเขาวงกตหรือบนราง
  • การสร้างรถเข็นจัดส่งอัตโนมัติสำหรับสำนักงานขนาดเล็กหรือห้องปฏิบัติการ
  • การพัฒนาหุ่นยนต์วิ่งตามเส้นสำหรับโปรเจกต์วิทยาศาสตร์ของโรงเรียนหรือการแข่งขัน
  • การสร้างต้นแบบระบบสำหรับสายพานลำเลียงในอุตสาหกรรมที่คัดแยกสิ่งของตามตำแหน่ง

ฮาร์ดแวร์และส่วนประกอบ

แกนหลักของโปรเจกต์นี้คือโมดูลตรวจจับเส้น ซึ่งใช้คู่ตัวส่งและตัวรับอินฟราเรด (IR) นี่คือรายละเอียดของส่วนประกอบสำคัญ:

  • โมดูลตรวจจับเส้น (TCRT5000): เซนเซอร์นี้ปล่อยแสงอินฟราเรดและวัดความเข้มของแสงที่สะท้อนกลับ โมดูลนี้รวมตัวเปรียบเทียบ LM393 เพื่อแปลงสัญญาณแอนะล็อกเป็นเอาต์พุตดิจิทัล HIGH หรือ LOW
  • โครงรถอัจฉริยะพร้อมมอเตอร์: ชุด SunFounder มาพร้อมโครงรถที่มีมอเตอร์เกียร์สองตัว ซึ่งควบคุมโดย Arduino เพื่อบังคับเลี้ยวรถ
  • บอร์ด Arduino: "สมอง" ของการทำงาน อ่านเซนเซอร์และส่งคำสั่งไปยังมอเตอร์
  • ไดรเวอร์มอเตอร์ (บนชิลด์ของรถ): วงจรนี้ช่วยให้พินพลังงานต่ำของ Arduino ควบคุมมอเตอร์ที่ใช้กระแสสูงกว่าได้
บทเรียน30-การเดินสายไฟสำหรับการติดตามเส้น

คู่มือการเดินสายไฟ

การเดินสายไฟสำหรับโมดูลตรวจจับเส้นนั้นตรงไปตรงมา วิดีโอสาธิตการเชื่อมต่อดังนี้ (ในวิดีโอที่ 04:04):

  • ขา VCC ของตัวตรวจจับเส้น (พินกลาง): เชื่อมต่อกับพิน 5V ของ Arduino
  • ขา GND ของตัวตรวจจับเส้น (พินซ้าย): เชื่อมต่อกับพิน GND ของ Arduino
  • ขา OUT ของตัวตรวจจับเส้น (พินขวา): เชื่อมต่อกับพินดิจิทัล 2 ของ Arduino

มอเตอร์เชื่อมต่อกับไดรเวอร์มอเตอร์บนชิลด์ของรถ ในโค้ด มอเตอร์ขวาถูกควบคุมด้วยพิน 5 และ 6 และมอเตอร์ซ้ายด้วยพิน 9 และ 10 ตามที่แสดงในการสาธิตวิดีโอ (ในวิดีโอที่ 12:28)

บทเรียน30-วิธีการทำงานของการติดตามเส้น

คำอธิบายโค้ด

โค้ดถูกออกแบบมาเพื่ออ่านสัญญาณดิจิทัลจากตัวตรวจจับเส้นและควบคุมมอเตอร์ตามนั้น นี่คือส่วนสำคัญที่ผู้ใช้สามารถปรับแต่งได้:

const int in1 = 5; // in1,2 สำหรับมอเตอร์ขวา
const int in2 = 6;

const int in3 = 9; // in3,4 สำหรับมอเตอร์ซ้าย
const int in4 = 10;

const int lineTrack = 2;
  • พินมอเตอร์ (in1, in2, in3, in4): ค่าคงที่เหล่านี้กำหนดว่าพินใดของ Arduino เชื่อมต่อกับไดรเวอร์มอเตอร์ หากการเดินสายไฟของคุณแตกต่างออกไป คุณจะต้องเปลี่ยนค่าเหล่านี้ให้ตรงกับการตั้งค่าของคุณ
  • พินตัวตรวจจับเส้น (lineTrack): ค่านี้กำหนดพินดิจิทัลที่เชื่อมต่อกับเอาต์พุตสัญญาณของเซนเซอร์ โค้ดอ่านพินนี้เพื่อตรวจสอบว่าเซนเซอร์อยู่เหนือพื้นผิวสีดำหรือสีขาว

ในลูปหลัก คุณสามารถปรับตัวแปร speed เพื่อควบคุมความเร็วในการเลี้ยวของรถ ค่าอยู่ระหว่าง 0 ถึง 255 โดยค่าที่สูงกว่าจะทำให้รถเลี้ยวเร็วขึ้น

int speed = 150;//0 ถึง 255

ตรรกะนั้นง่าย: หากเซนเซอร์อ่านค่า HIGH (เส้นสีดำ) รถจะเลี้ยวซ้าย มิฉะนั้นจะเลี้ยวขวา ฟังก์ชันที่กำหนดเอง moveLeft() และ moveRight() ควบคุมมอเตอร์เพื่อให้บรรลุสิ่งนี้ ตัวอย่างเช่น การเลี้ยวซ้าย มอเตอร์ขวาจะหมุนในขณะที่มอเตอร์ซ้ายหยุด ทำให้รถหมุนตัว พฤติกรรมนี้อธิบายโดยละเอียดในวิดีโอ (ในวิดีโอที่ 10:39)

บทเรียน30-เซนเซอร์ตรวจจับเส้นบนเส้น
การวางตำแหน่งตัวตรวจจับเส้นบนเส้นสีดำ รวมถึงการปรับความไว

การสาธิตโปรเจกต์สด

วิดีโอจบลงด้วยการสาธิตสดของรถวิ่งตามเส้น (ในวิดีโอที่ 13:13) รถถูกวางบนรางสีดำ และเซนเซอร์ถูกวางตำแหน่งตรงเหนือเส้น เมื่อรถเคลื่อนที่ เซนเซอร์จะตรวจจับเส้นสีดำและพื้นหลังสีขาว ส่งสัญญาณไปยังมอเตอร์เพื่อปรับทิศทาง การสาธิตแสดงให้เห็นว่ารถวิ่งครบวงกลมได้สำเร็จ พิสูจน์ประสิทธิภาพของตรรกะการแก้ไขซ้าย/ขวาที่เรียบง่าย

บทต่างๆ

  • [00:00] แนะนำการติดตามเส้น
  • [01:09] วิธีการทำงานของโมดูลติดตามเส้น
  • [04:04] การเชื่อมต่อสายไฟโมดูลติดตามเส้น
  • [04:23] การทดสอบเซนเซอร์กับ Serial Monitor
  • [07:27] ทำความเข้าใจตรรกะการตามเส้น
  • [09:08] โค้ดสำหรับรถตามเส้น
  • [11:37] การสาธิตการทำงานของรถตามเส้น
  • [13:13] การทดสอบจริงบนรางสีดำ

ภาพ

Lesson 30 line tracking wiring
Lesson 30 line tracking wiring
Lesson 30 line tracking line 1
Lesson 30 line tracking line 1
Lesson 30 line tracking how line
Lesson 30 line tracking how line
Lesson 30 line tracking sensor on line
Lesson 30 line tracking sensor on line
889-Lesson 30/31: Car-8 Line Tracking by Smart Car from SunFounder Arduino Kit
ภาษา: C++

/*
this is code for the tutorial: Lesson 30/31: Car-8 Line Tracking by Smart Car from SunFounder Arduino Kit
YouTube video: https://www.youtube.com/watch?v=Cp2rD5RkYug
Get the code from: 📚⬇️ Download and resource page https://robojax.com/RJT613
www.robojax.com

*/
const int in1 = 5; // in1,2 for right motor
const int in2 = 6;

const int in3 = 9; // in3,4 for left motor
const int in4 = 10;

const int lineTrack = 2;

void setup() {
  Serial.begin(9600);

  //motor
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  
  //line track
  pinMode(lineTrack, INPUT);
}

void loop() {

  int speed = 150;//0 to 255

  int lineColor = digitalRead(lineTrack); // 0:white  1:black
  // Serial.println(lineColor); //print on the serial monitor
  if (lineColor) {
    Serial.print("Black ");
    moveLeft(speed);
  } else {
    Serial.print("White ");
    moveRight(speed);
  }
}
void moveLeft(int speed) {
  Serial.println("LEFT");
  analogWrite(in1, 0);
  analogWrite(in2, speed);
  
  analogWrite(in3, 0);
  analogWrite(in4, 0);
}

void moveRight(int speed) {
  Serial.println("RIGHT");
  analogWrite(in1, 0);
  analogWrite(in2, 0);
  
  analogWrite(in3, speed);
  analogWrite(in4, 0);
}

แหล่งข้อมูลและเอกสารอ้างอิง

ยังไม่มีทรัพยากรเลย

ไฟล์📁

ไม่มีไฟล์ที่พร้อมใช้งาน