กลับไปหน้ารวมไฟล์
color-controlled-car-using-tcs3200-color-sensor-960ab6.md

นี่คือโปรเจคที่เราเขียนโค้ดให้เซ็นเซอร์ตรวจจับสี (Color Sensor) มันสามารถแยกสีได้ 3 สีหลัก คือ แดง เขียว และน้ำเงิน จากนั้นก็สั่งให้รถยนต์วิ่งตามเส้นทางที่แตกต่างกันไปตามสีที่เจอ

  • สีแดง: สั่งให้หุ่นยนต์ วิ่งตรงไปข้างหน้า
  • สีเขียว: สั่งให้หุ่นยนต์ หมุนตัวกลับหลัง 180 องศา
  • สีน้ำเงิน: สั่งให้หุ่นยนต์ วิ่งเป็นรูปสามเหลี่ยม

มาดูกันลึกๆ ว่าใช้อุปกรณ์อะไร และหลักการทำงานเป็นยังไง

ก่อนจะสร้างเจ้าหุ่นยนต์คันนี้ได้ เราต้องเข้าใจการทำงานร่วมกันของฮาร์ดแวร์และซอฟต์แวร์แบบนี้เลย

1. เซ็นเซอร์ตรวจจับสี (TCS3200)

หัวใจหลักคือเซ็นเซอร์ TCS3200 ตัวนี้ มันมีโฟโตไดโอด (Photodiodes) เยอะมากที่ติดฟิลเตอร์กรองแสงสีแดง เขียว น้ำเงินมาให้แล้ว หน้าที่มันคือแปลงความเข้มของแสงที่สะท้อนจากวัตถุเป็นสัญญาณความถี่ (Square Wave) ส่งกลับไปให้ Arduino

  • มุมมองวิศวะ: การตรวจจับสีไม่ได้ให้ชื่อสีมาโดยตรงนะ แต่ให้ค่าความถี่ของพัลส์มา ยิ่งสีเข้มมาก ค่าความถี่ที่ออกมาก็ยิ่งสูง ดังนั้นเราต้องใช้ฟังก์ชัน pulseIn() ใน Arduino วัดระยะเวลาของสัญญาณ แล้วค่อยแปลงกลับมาเป็นค่า RGB อีกที

2. ระบบขับเคลื่อนและโมดูลควบคุมมอเตอร์ (L298N Motor Driver)

หุ่นยนต์ขับเคลื่อนด้วยมอเตอร์ DC 2 ตัว โดยใช้ L298N ทำหน้าที่เป็น H-Bridge ควบคุมทิศทางการหมุน

  • การควบคุมทิศทาง: ใช้หลักการ Differential Steering คือปรับความเร็วของล้อซ้ายและขวาให้ต่างกันเพื่อให้เลี้ยวได้

วิเคราะห์ Logic ของโค้ด

เพื่อให้หุ่นยนต์ตอบสนองต่อสีได้แม่นยำ โปรแกรมถูกออกแบบด้วยการควบคุมแบบลำดับ (Sequential Control) ดังนี้

ขั้นตอนที่ 1: การปรับเทียบสี (Color Calibration)

ก่อนที่หุ่นยนต์จะเริ่มเคลื่อนที่ โปรแกรมจะอ่านค่าความถี่จากเซ็นเซอร์เมื่อเจอวัตถุสีต่างๆ และเก็บค่าเหล่านี้เป็นเกณฑ์ (Threshold) เพื่อป้องกันความผิดพลาดจากแสงรบกวนภายนอก

ขั้นตอนที่ 2: การตัดสินใจและการเคลื่อนที่

เมื่อหุ่นยนต์ตรวจจับสีใดสีหนึ่งได้ โปรแกรมจะเข้าสู่การทำงานแบบมีเงื่อนไข (Conditional Statements) ดังนี้

  1. Logic สีแดง (วิ่งตรง): เมื่อค่า R (แดง) ต่ำที่สุด (ในแง่ของความถี่ที่สะท้อน) หุ่นยนต์จะสั่งให้มอเตอร์ทั้งสองหมุนไปข้างหน้าด้วยความเร็วเท่ากัน

  2. Logic สีเขียว (หมุนกลับหลัง): เมื่อตรวจจับสีเขียว โปรแกรมจะสั่งให้ล้อหนึ่งหมุนไปข้างหน้าและอีกล้อหมุนถอยหลัง (Point Turn) เป็นระยะเวลาที่คำนวณไว้ ทำให้หุ่นยนต์หมุนครบ 180 องศาพอดี

  3. Logic สีน้ำเงิน (วิ่งเป็นสามเหลี่ยม): ส่วนนี้ซับซ้อนที่สุด โดยหุ่นยนต์จะใช้ Logic การเคลื่อนที่แบบวนลูป (Loop) 3 ครั้ง:

    • วิ่งตรงไปเป็นเวลาที่กำหนด
    • หยุดรอ
    • เลี้ยวขวาประมาณ 120 องศา
    • ทำซ้ำจนครบ 3 ด้าน ก็จะกลับมาที่จุดเริ่มต้นเป็นรูปสามเหลี่ยม

สรุปโปรเจค

โปรเจค Color Sensing Robot Car นี้ ไม่ได้แค่แสดงการประยุกต์ใช้เซ็นเซอร์พื้นฐานเท่านั้น แต่ยังรวมไปถึงการจัดการระบบพิกัดและการคำนวณเวลา (Timing) เพื่อสร้างเส้นทางการเคลื่อนที่ที่แม่นยำ นี่คือพื้นฐานสำคัญสำหรับการพัฒนาไปสู่ AGV (Automated Guided Vehicles) ที่นำทางด้วยสีในโรงงานอุตสาหกรรมต่อไปในอนาคต สู้งานนะน้อง!

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

apps:
  - "1x Arduino IDE"
author: "shreyas_arbatti"
category: ""
components:
  - "1x Arduino Nano R3"
  - "1x 5V Cell"
  - "1x Jumper wires (generic)"
  - "1x TCS3200 Color Sensor"
  - "2x DC Motor, 12 V"
  - "1x 9V battery (generic)"
  - "1x Breadboard mini"
  - "1x L298N Motor Driver"
description: "เซนเซอร์ตรวจจับสีจะจับค่าสีหลักสามสี (RGB) แบบตึงๆ แล้วสั่งให้มอเตอร์ขับรถวิ่งไปคนละทิศละทาง ตามสีที่เจอ งานนี้ทั้งฝึกโค้ดดิ้งและเล่นของ เทพๆ วัยรุ่นจัดไป!"
difficulty: "Easy"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX1+kLDXGACBLhC1wpCuj3RV+G+IRrO/9FFWPmjeffK4cOBjSeBh3ReOweVGsBTx6L2aUvN+P4YsxQw0QfyloxrKXLBHJtdFAiIo="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/color-controlled-car-using-tcs3200-color-sensor-960ab6_cover.jpg"
lang: "en"
likes: 0
passwordHash: "3acba60b1427f99a9e1ace8ddc549c591e87edff29358dbc7ec6aa0c4ac98f90"
price: 2450
seoDescription: "Build a Color Controlled Car with TCS3200 Color Sensor. Program Arduino to detect RGB colors and control car movement paths."
tags:
  - "car"
  - "tcs3200"
  - "color sensor"
  - "l298n motor drver"
title: "Color Controlled Car using TCS3200 Color Sensor"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/QVngXIELMoM"
views: 9334