นี่คือโปรเจคที่เราเขียนโค้ดให้เซ็นเซอร์ตรวจจับสี (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) ดังนี้
Logic สีแดง (วิ่งตรง): เมื่อค่า R (แดง) ต่ำที่สุด (ในแง่ของความถี่ที่สะท้อน) หุ่นยนต์จะสั่งให้มอเตอร์ทั้งสองหมุนไปข้างหน้าด้วยความเร็วเท่ากัน
Logic สีเขียว (หมุนกลับหลัง): เมื่อตรวจจับสีเขียว โปรแกรมจะสั่งให้ล้อหนึ่งหมุนไปข้างหน้าและอีกล้อหมุนถอยหลัง (Point Turn) เป็นระยะเวลาที่คำนวณไว้ ทำให้หุ่นยนต์หมุนครบ 180 องศาพอดี
Logic สีน้ำเงิน (วิ่งเป็นสามเหลี่ยม): ส่วนนี้ซับซ้อนที่สุด โดยหุ่นยนต์จะใช้ Logic การเคลื่อนที่แบบวนลูป (Loop) 3 ครั้ง:
- วิ่งตรงไปเป็นเวลาที่กำหนด
- หยุดรอ
- เลี้ยวขวาประมาณ 120 องศา
- ทำซ้ำจนครบ 3 ด้าน ก็จะกลับมาที่จุดเริ่มต้นเป็นรูปสามเหลี่ยม
สรุปโปรเจค
โปรเจค Color Sensing Robot Car นี้ ไม่ได้แค่แสดงการประยุกต์ใช้เซ็นเซอร์พื้นฐานเท่านั้น แต่ยังรวมไปถึงการจัดการระบบพิกัดและการคำนวณเวลา (Timing) เพื่อสร้างเส้นทางการเคลื่อนที่ที่แม่นยำ นี่คือพื้นฐานสำคัญสำหรับการพัฒนาไปสู่ AGV (Automated Guided Vehicles) ที่นำทางด้วยสีในโรงงานอุตสาหกรรมต่อไปในอนาคต สู้งานนะน้อง!