กลับไปหน้ารวมไฟล์
line-follower-robot-arduino-05150a.md

หุ่นยนต์ไลน์โฟลว์เวอร์ (Line Follower Robot)

จัดไปวัยรุ่น! มาดูคลิปสาธิตการทำงานเบื้องต้นกันก่อนเลย

YouTube

เซ็นเซอร์ตรวจจับระยะใกล้ (Proximity Sensor) คือเซ็นเซอร์ที่ตรวจจับวัตถุที่อยู่ใกล้ๆ ได้โดยไม่ต้องสัมผัส มันมักจะปล่อยสนามแม่เหล็กไฟฟ้าหรือลำแสง (เช่น อินฟราเรด) ออกมา แล้วคอยดูว่ามีการเปลี่ยนแปลงในสนามหรือสัญญาณที่สะท้อนกลับมาหรือเปล่า

หลักการทำงานของไลน์โฟลว์เวอร์

หลักการทำงานของหุ่นไลน์โฟลว์เวอร์มันเกี่ยวกับ "แสง" นะน้อง เราจะใช้พฤติกรรมของแสงเมื่อตกกระทบบนพื้นผิวสีขาวกับสีดำ พอแสงตกกระทบบนพื้นผิวสีขาว มันจะสะท้อนกลับเกือบทั้งหมด แต่ถ้าเป็นพื้นผิวสีดำ แสงจะถูกดูดซับหมดเลย พฤติกรรมของแสงนี่แหละที่เราเอามาใช้ในการสร้างหุ่นยนต์ไลน์โฟลว์เวอร์

ในหุ่นยนต์ไลน์โฟลว์เวอร์ที่ใช้ Arduino ตัวนี้ เราใช้ตัวส่งสัญญาณอินฟราเรด (IR Transmitter) และตัวรับ (IR Receiver) หรือที่เรียกอีกอย่างว่าโฟโตไดโอด (Photo Diodes) มันใช้สำหรับส่งและรับแสง IR จะปล่อยแสงอินฟราเรดออกมา พอแสงอินฟราเรดตกกระทบบนพื้นผิวสีขาว มันจะสะท้อนกลับมาและถูกโฟโตไดโอดจับได้ ซึ่งจะทำให้เกิดการเปลี่ยนแปลงแรงดันไฟฟ้า แต่ถ้าแสง IR ตกกระทบบนพื้นผิวสีดำ แสงจะถูกดูดซับหมด ไม่มีอะไรสะท้อนกลับมา โฟโตไดโอดก็จะไม่ได้รับแสงใดๆ

สรุปง่ายๆ ในโปรเจคนี้: เมื่อเซ็นเซอร์ตรวจจับพื้นผิวสีขาว Arduino จะได้อินพุตเป็น '1' แต่ถ้าตรวจจับเส้นสีดำได้ Arduino จะได้อินพุตเป็น '0' ห้ามช็อตนะตัวนี้ มันง่ายแบบนี้แหละ!

อธิบายวงจร

หุ่นยนต์ไลน์โฟลว์เวอร์ Arduino ทั้งหมดสามารถแบ่งออกเป็น 3 ส่วนหลัก: ส่วนเซ็นเซอร์, ส่วนควบคุม และส่วนขับมอเตอร์

ส่วนเซ็นเซอร์:

ส่วนนี้ประกอบด้วยไดโอดอินฟราเรด, โพเทนชิโอมิเตอร์ (Potentiometer), ตัวเปรียบเทียบสัญญาณ (Comparator หรือ Op-Amp) และ LED โพเทนชิโอมิเตอร์ใช้สำหรับตั้งค่าแรงดันอ้างอิง (Reference Voltage) ที่ขาหนึ่งของตัวเปรียบเทียบ ส่วนเซ็นเซอร์ IR ใช้ตรวจจับเส้นและให้การเปลี่ยนแปลงแรงดันที่ขาอีกข้างของตัวเปรียบเทียบ จากนั้นตัวเปรียบเทียบก็จะเปรียบเทียบแรงดันทั้งสองและสร้างสัญญาณดิจิทัลที่เอาต์พุต ในวงจรไลน์โฟลว์เวอร์นี้เราใช้ตัวเปรียบเทียบสองตัวสำหรับเซ็นเซอร์สองตัว เราใช้ LM358 เป็นตัวเปรียบเทียบ เพราะ LM358 มี Op-Amp แบบ Low Noise อยู่ภายในสองตัวเลย สะดวกดี

การทำงานของหุ่นยนต์ไลน์โฟลว์เวอร์ด้วย Arduino

การทำงานของไลน์โฟลว์เวอร์น่าสนใจมาก หุ่นยนต์จะตรวจจับเส้นสีดำโดยใช้เซ็นเซอร์ แล้วส่งสัญญาณไปให้ Arduino จากนั้น Arduino ก็จะขับเคลื่อนมอเตอร์ตามผลลัพธ์จากเซ็นเซอร์

ในโปรเจคนี้เราใช้โมดูลเซ็นเซอร์ IR สองตัว คือ เซ็นเซอร์ซ้ายและเซ็นเซอร์ขวา เมื่อทั้งเซ็นเซอร์ซ้ายและขวาตรวจจับพื้นผิวสีขาวได้ หุ่นยนต์จะเคลื่อนที่ไปข้างหน้า

ถ้าเซ็นเซอร์ซ้ายตรวจจับเส้นสีดำได้ หุ่นยนต์จะเลี้ยวซ้าย

ถ้าเซ็นเซอร์ฝั่งขวาจับเส้นดำได้ หุ่นยนต์จะเลี้ยวขวาจนกว่าเซ็นเซอร์ทั้งสองข้างจะเจอพื้นสีขาว พอเจอพื้นขาวเมื่อไหร่ หุ่นยนต์ก็จะกลับมาเดินหน้าต่อเหมือนเดิม

ถ้าเซ็นเซอร์ทั้งสองข้างเจอเส้นดำพร้อมกัน หุ่นยนต์จะหยุด

รายละเอียดเทคนิคแบบจัดเต็ม

หุ่นยนต์ไลน์โฟลว์เวอร์ นี่แหละคือรากฐานของยานยนต์อัตโนมัติในโรงงานเลย! เหมือนที่ใช้ในโกดัง Amazon ขนาดยักษ์เพื่อเคลื่อนย้ายชั้นวางสินค้าตามรางที่ทาสีไว้ โปรเจคนี้บังคับให้โปรแกรมเมอร์ต้องเชื่อมเซ็นเซอร์อินฟราเรดสะท้อน (IR Reflection Sensor) สองตัว เข้ากับบอร์ดขับมอเตอร์ L298N เพื่อให้ Arduino Uno ของเรา "ไล่ล่า" เส้นสีดำบนพื้นได้แบบเรียลไทม์ เป็นพันครั้งต่อวินาที!

ชุดเซ็นเซอร์อินฟราเรดคู่ (TCRT5000)

หุ่นยนต์ของเรามี "ตา" สองข้างจ้องลงไปที่พื้น ใช้หลักการสะท้อนของแสงอินฟราเรด (พื้นสีขาวสะท้อนแสง IR ได้ดี ส่วนเทปสีดำดูดซับแสง IR หมด)

  1. เซ็นเซอร์ IR ซ้าย ต่อกับ Pin 2 ส่วน เซ็นเซอร์ IR ขวา ต่อกับ Pin 3
  2. "ตา" ทั้งสองข้างจะอยู่คนละฝั่งของเส้นเทปดำ! ทั้งคู่จะอ่านค่าเป็นพื้นขาว (LOW)!
  3. ลูปการทำงานหลัก (Digital Array):
    int leftEye = digitalRead(2);
    int rightEye = digitalRead(3);
    
    

    if (leftEye == LOW && rightEye == LOW) { // อยู่บนพื้นขาว! driveForward(200); // PWM 200! ให้มอเตอร์ทั้งสองหมุนเต็มที่! }

เบรกไม่สมมาตร (ไล่ล่าโค้ง)

ถ้าหุ่นยนต์เจอโค้งหักศอก 90 องศาไปทางซ้าย ตาซ้ายจะวิ่งไปทับเส้นดำทันที และค่าจะเปลี่ยนเป็น HIGH! เหมือนในอนิเมชั่นที่เซ็นเซอร์ซ้ายอยู่บนเส้นดำ

  • หุ่นยนต์จะรู้ตัวว่ากำลังจะหลุดออกจากรางทางฝั่งขวา!
  • เทคนิคการแก้ไข: อย่าแค่ "เลี้ยวซ้าย" ธรรมดา! ต้องหยุดล้อซ้ายสนิท!
    if (leftEye == HIGH && rightEye == LOW) { // กำลังหลุดขวา!
      motorRight(200); // ฉีดล้อขวาให้หมุนเต็มที่!
      motorLeft(0);    // หยุดล้อซ้ายสนิท เพื่อให้ตัวหุ่นยนต์หมุนตัว!
    }
  • เมื่อรันลอจิกนี้ทุกมิลลิวินาที หุ่นยนต์จะสั่นและเลื้อยไปตามรางที่ซับซ้อนได้อย่างรวดเร็ว ตรึงตัวอยู่ใน "ทางเดินแสง" ได้อย่างแม่นยำ ตามที่เห็นในอนิเมชั่น

ฮาร์ดแวร์สำหรับสร้างหุ่นยนต์อัตโนมัติ

  • Arduino Uno/Nano (พื้นฐานต้องมี)
  • โมดูลเซ็นเซอร์ตรวจจับเส้นอินฟราเรด TCRT5000 (แบบหยดน้ำ) (ห้ามใช้โมดูล IR "หลบหลีกสิ่งกีดขวาง" ทั่วไปเด็ดขาด! มันมีมุมรับแสงกว้างเกินไป จะทำให้หุ่นหลงทางแบบไม่เป็นท่า!)
  • บอร์ดขับมอเตอร์ L298N
  • ฐานหุ่นยนต์ 2 ล้อหรือ 4 ล้อ (ฐาน 2 ล้อพร้อมล้อเลื่อนหน้าจะเลี้ยวได้ลื่นกว่าฐาน 4 ล้อเป็นร้อยเท่า!)
  • เทปพันสายไฟสีดำ ไว้สร้างรางแข่งบนโต๊ะไม้สีอ่อนหรือพื้นกระเบื้อง!

*******ของที่ต้องหามา*******

Arduino UNO - หาซื้อได้ตามร้านขายอุปกรณ์อิเล็กทรอนิกส์หรือช่องทางออนไลน์ทั่วไป

ชุดคิทโปรเจค Arduino แบบเต็ม - หาซื้อได้ตามร้านขายอุปกรณ์อิเล็กทรอนิกส์หรือช่องทางออนไลน์ทั่วไป

เพลงประกอบ - หาดาวน์โหลดเพลงฟรีสำหรับใช้ในโปรเจคได้จากเว็บไซต์提供เพลงฟรีสำหรับครีเอเตอร์ทั่วไป

เว็บไซต์ - https://robocircuits.com/

Facebook - https://facebook.com/Robocircuits

Instagram - https://Instagram.com/Robocircuits

Twitter - https://Twitter.com/Robocircuits

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "robocircuits"
category: ""
components:
  - "1x Proximity Sensor"
  - "1x Dual H-Bridge motor drivers L298"
  - "1x Arduino UNO"
description: "โรบ็อตตัวนี้จะใช้เซนเซอร์ตรวจจับเส้นดำ แล้วขับมอเตอร์ให้วิ่งตามเส้นได้อย่างแม่นยำ วัยรุ่นสายช่างต้องลองจัดไป เทพๆ!"
difficulty: "Easy"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX1+DTD18n9dZoOgyqXvbuiwFPiA08ohtnBf4SjnyZeLvzFVwh96vhq4NRVpsyWCQ5aLqjXwWpSq0+6HV1EthUah809As4/FViA4="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/line-follower-robot-arduino-05150a_cover.jpg"
lang: "en"
likes: 33
passwordHash: "2cbac11765ca50e2d2e61f2bcd9380a088a8e649875a342067d4b84a061ec95a"
price: 1499
seoDescription: "Learn how to build a Line Follower Robot using Arduino to follow a black line. A perfect DIY robotics project for beginners."
tags:
  - "infrared"
  - "robotics"
title: "โรบ็อตไลน์โฟลโลเวอร์ Arduino งานง่ายแต่หล่อ วิ่งตามเส้นตึงๆ!"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/wy7iwHv5Ll0"
views: 223905