การใช้เซ็นเซอร์สี VEX IQ (รุ่นที่ 1)

เซ็นเซอร์สีใช้แสงสะท้อนเพื่อตรวจจับสี ค่าเฉดสี ค่าระดับสีเทา ความสว่าง และความใกล้เคียงของวัตถุ

เซ็นเซอร์สี VEX IQ (รุ่นที่ 1)

เซ็นเซอร์สี VEX IQ รวมอยู่ในชุด VEX IQ Super Kit และสามารถซื้อได้ที่

ใช้หุ่นยนต์ VEX IQ รุ่นที่ 2 ใช่หรือไม่? ดูภาพรวมของเซ็นเซอร์รุ่นที่ 2 ได้ที่นี่และข้อมูลเกี่ยวกับเซ็นเซอร์ออปติคอลเป็นเซ็นเซอร์สีรุ่นที่ 2


คำอธิบายของเซ็นเซอร์สี

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


วงล้อสีที่แสดงให้เห็นว่าวงกลม 360 องศาสัมพันธ์กับค่าสีอย่างไร สีแดงอยู่ที่ระดับ 0 สีเขียวอยู่ที่ระดับ 120 และสีน้ำเงินอยู่ที่ระดับ 240


เซ็นเซอร์สีทำงานอย่างไร

เซ็นเซอร์สีสามารถตรวจจับได้ทั้งสีและระยะใกล้

การตรวจจับสี
VEXcode IQ ความสว่างของบล็อกที่อ่านค่าความสว่างของ Color3 เป็นเปอร์เซ็นต์
แผนภาพแสดงเซ็นเซอร์สีที่ตรวจจับพื้นผิวสว่างและรายงานค่า 80% จากนั้นตรวจจับพื้นผิวมืดและรายงานค่า 20%

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

บล็อกเซ็นเซอร์สี VEXcode IQ Set ที่อ่านค่าแสง Set Color3 เป็น 50%
แสดงภาพเซ็นเซอร์สีที่ติดตั้งอยู่กับหุ่นยนต์ในสภาพแวดล้อมที่มืด หลอดไฟของเซ็นเซอร์สีสว่างขึ้นเพื่อส่องสว่างบริเวณโดยรอบ

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

บล็อกเซ็นเซอร์สี VEXcode IQ จำนวน 3 ชิ้น อันแรกคือสีของบล็อกที่อ่านว่า Color3 ซึ่งเป็นชื่อสี อันที่สองคือค่าเฉดสีของบล็อก ซึ่งแสดงค่าเฉดสี Color3 ในหน่วยองศา ส่วนที่สามคือบล็อกตรวจจับสีที่อ่านว่า Color3 ตรวจจับไม่พบใช่หรือไม่?

เซนเซอร์สีสามารถรายงานสีที่เห็นเป็นค่าสีหรือค่าเฉดสีได้

VEXcode IQ Color ตรวจจับบล็อกที่อ่านว่า Color3 ตรวจจับไม่พบใช่หรือไม่? เมนูแบบเลื่อนลง "สี" ของบล็อกจะเปิดขึ้นเพื่อแสดงรายการสีที่บล็อกสามารถตรวจจับได้ รายชื่อสีประกอบด้วย สีส้ม สีม่วง สีม่วงแดง สีม่วง สีม่วงน้ำเงิน สีเขียวน้ำเงิน สีเขียวเหลือง สีส้มเหลือง และสีส้มแดง

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

แผนภาพแสดงค่าสีที่สัมพันธ์กับค่าสีในแต่ละมุม 360 องศา สีแดงอยู่ที่ระดับ 0 สีเขียวอยู่ที่ระดับ 120 และสีน้ำเงินอยู่ที่ระดับ 240

ค่าเฉดสีค่าเฉดสีคล้ายกับค่าสี แต่เป็นตัวเลข ค่าเฉดสีอยู่ระหว่าง 0 ถึง 360 เช่น องศา ค่าสีที่แสดงไว้ด้านบนมีช่วงค่าเฉดสีที่เทียบเท่ากัน 

ในการตรวจจับสีและเฉดสี เซ็นเซอร์สีจำเป็นต้องได้รับแสงในปริมาณที่เหมาะสม อย่าลืมทดสอบหรือปรับเทียบเซ็นเซอร์สีของคุณในระดับแสงที่แตกต่างกัน และปรับระดับแสงของหลอดไฟในระดับต่างๆ เพื่อหาสภาพการใช้งานที่เชื่อถือได้มากที่สุดสำหรับเซ็นเซอร์สีของหุ่นยนต์ของคุณ

การตรวจจับความใกล้ชิด

เซ็นเซอร์สีประกอบด้วยตัวส่งสัญญาณเซ็นเซอร์อินฟราเรด ตัวส่งสัญญาณอินฟราเรดจะปล่อยแสงที่มองไม่เห็นออกมา จากนั้นจะตรวจจับแสงสะท้อนนั้น หากแสงอินฟราเรดส่วนใหญ่สะท้อนกลับไปยังเซ็นเซอร์ มันจะบอกให้สมองหุ่นยนต์รู้ว่ามีวัตถุอยู่ใกล้

VEXcode IQ พบบล็อกวัตถุที่ระบุว่า Color3 อยู่ใกล้กับวัตถุหรือไม่?

การใช้งานทั่วไปของเซนเซอร์สี

เซ็นเซอร์สีถูกนำไปใช้ในแอปพลิเคชันทางเทคโนโลยีมากมาย ซึ่งการแสดงสีที่เฉพาะเจาะจงบนหน้าจอหรือผลิตภัณฑ์มีความสำคัญ

ตัวอย่างการใช้งานทั่วไปในชีวิตประจำวัน ได้แก่:

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


การใช้งานทั่วไปบางอย่างของหุ่นยนต์ VEX IQ ได้แก่:

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

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

  • เซ็นเซอร์นี้สามารถตรวจจับได้ว่ามีวัตถุอยู่ใกล้หรือไม่

เซ็นเซอร์สีบนหุ่นยนต์แข่งขัน

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

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

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

การเข้ารหัสเซ็นเซอร์สีในบล็อก

VEXcode IQ พบบล็อกวัตถุที่อ่านว่า Color3 อยู่ใกล้วัตถุหรือไม่

บล็อก <Found an object> คือบล็อกผู้รายงานบูลีนที่รายงานเงื่อนไขว่าเป็นจริงหรือเท็จ บล็อกบูลีน เช่น บล็อก <Found an object> จะพอดีกับบล็อกที่มีอินพุตหกเหลี่ยม (หกด้าน) สำหรับบล็อกอื่นๆ

บล็อกบูลีน <Found an object> จะรายงาน 'จริง' หาก 'จริง' หากเซ็นเซอร์สีตรวจพบวัตถุ และ 'เท็จ' หากเซ็นเซอร์ไม่ตรวจพบ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับบล็อกบูลีน โปรดไปที่บทความ Help หรือบทความ Block Shapes and Meaning

 

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

ในตัวอย่างนี้ บล็อก <Found an object> ถูกใช้เพื่อตรวจจับความใกล้ชิดพร้อมกับบล็อก [รอจนกระทั่ง] เพื่อให้หุ่นยนต์ขับเคลื่อนไปข้างหน้าจนกระทั่งวัตถุถูกตรวจพบ

VEXcode IQ Color ตรวจจับบล็อกที่อ่าน Color3 ตรวจจับสีเขียว?

บล็อก <Color detects> ยังเป็นบล็อกผู้รายงานบูลีนที่รายงานเงื่อนไขว่าเป็นจริงหรือเท็จ บล็อก <Color detects> จะรายงาน 'จริง' หากเป็น 'จริง' หากเซ็นเซอร์สีตรวจพบสีที่เลือก และ 'เท็จ' หากเซ็นเซอร์ตรวจพบสีอื่น หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับบล็อกบูลีน โปรดไปที่บทความ Help หรือบทความ Block Shapes and Meaning

 

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

ในตัวอย่างนี้ บล็อก <Color detects> ถูกใช้พร้อมกับบล็อก [รอจนกระทั่ง] เพื่อทำให้หุ่นยนต์ขับเคลื่อนไปข้างหน้าจนกระทั่งเซ็นเซอร์สีตรวจพบวัตถุสีเขียว หุ่นยนต์จะหยุดการขับขี่ นี่คือตัวอย่างในวิดีโอแรกด้านบน

VEXcode IQ ความสว่างของบล็อกที่อ่านความสว่างของ Color3 เป็น %

บล็อก (ความสว่าง) รายงานปริมาณแสงที่เซนเซอร์สีตรวจพบ เป็นบล็อกนักข่าวที่ใช้ภายในบล็อกอื่นที่มีช่องว่างเป็นวงกลม

บล็อก (ความสว่าง) รายงานช่วง 0% ถึง 100%

 

VEXcode IQ บล็อกโครงการที่ใช้เซ็นเซอร์สีที่หันลงด้านล่างเพื่อติดตามเส้นที่ทำเครื่องหมายไว้ โครงการอ่านว่า เมื่อเริ่มต้น ให้ตั้งค่าแสง Color3 เป็น 25% ต่อไปนี้ตลอดไป หากความสว่างของ Color3 เป็น % มากกว่า 25 ให้หมุนมอเตอร์ด้านซ้ายไปข้างหน้า 35 องศา มิฉะนั้น ให้หมุนมอเตอร์ด้านขวาไปข้างหน้า 35 องศา

ในตัวอย่างนี้ บล็อก (ความสว่างของ) ถูกใช้เพื่อให้หุ่นยนต์ตรวจจับและตามเส้น ดังที่แสดงในวิดีโอที่สองด้านบน

VEXcode IQ Hue ของบล็อกที่อ่านค่า Color3 hue เป็นองศา

บล็อก (เฉดสี) รายงานเฉดสีที่เซนเซอร์สีตรวจพบ เป็นบล็อกนักข่าวที่ใช้ภายในบล็อกอื่นที่มีช่องว่างเป็นวงกลม

บล็อก (ความสว่าง) รายงานช่วง 0 ถึง 360

 

VEXcode IQ บล็อกโครงการที่ใช้เซ็นเซอร์ออปติคอลในการขับเคลื่อนไปข้างหน้าจนกว่าจะถึงวัตถุ และเลี้ยวขวาหากเป็นสีแดง หรือเลี้ยวซ้ายหากไม่ใช่ โครงการมีข้อความว่า เมื่อเริ่มต้น ให้พิมพ์เฉดสี Color3 เป็นองศาบน Brain ขับเคลื่อนไปข้างหน้า แล้วรอจนกว่า Color3 จะพบวัตถุ หากเฉดสี Color3 ในองศามากกว่า 330 และเฉดสี Color3 ในองศาน้อยกว่า 30 ให้เลี้ยวขวา 90 องศา มิฉะนั้น ให้เลี้ยวซ้าย 90 องศา

ในตัวอย่างนี้ บล็อก (Hue of) ถูกใช้เพื่อให้หุ่นยนต์ตรวจสอบช่วงของค่าเฉดสีที่สอดคล้องกับสีแดง และเลี้ยวขวา 90 องศาหากเซ็นเซอร์ตรวจพบค่าเหล่านั้น หากตรวจพบค่าเฉดสีอื่นๆ หุ่นยนต์จะเลี้ยวซ้าย 90 องศา

บล็อก (เฉดสี) จะมีประโยชน์เมื่อจำเป็นสำหรับหุ่นยนต์ในการตรวจจับสีบางสีเมื่อสภาพแสงโดยรอบอาจไม่สอดคล้องกัน

การเข้ารหัสเซ็นเซอร์สีใน Python

:ในการเขียนโค้ดสวิตช์กันกระแทก VEX IQ (รุ่นที่ 1) ด้วย Python จะต้องเชื่อมต่อกับสมอง VEX IQ (รุ่นที่ 2) ชิปประมวลผล VEX IQ (รุ่นที่ 1) ไม่รองรับภาษา Python

color_3.is_near_object()

คำสั่ง color.is_near_object รายงาน True เมื่อเซ็นเซอร์สีตรวจจับวัตถุหรือพื้นผิวใกล้กับด้านหน้าของเซ็นเซอร์ และ False เมื่อเซ็นเซอร์สี ไม่ใช่ ตรวจจับวัตถุหรือพื้นผิวใกล้กับด้านหน้าของเซ็นเซอร์ เซ็นเซอร์

หมายเหตุ:ชื่อของเซนเซอร์สีที่ปรากฏในคำสั่งสอดคล้องกับชื่อที่กำหนดในการกำหนดค่า 

drivetrain.drive(FORWARD)
ในขณะที่ color_3 ไม่อยู่ใกล้ object():
รอ 20 มิลลิวินาที
drivetrain.stop()
ในตัวอย่างนี้ ลู Whileมีเงื่อนไข not จะถูกใช้ร่วมกับคำสั่ง color.is_near_object เพื่อให้หุ่นยนต์ขับเคลื่อนไปข้างหน้าจนกว่าเซ็นเซอร์สีจะตรวจพบวัตถุ ใกล้ด้านหน้าของเซ็นเซอร์
สี_3.สี()

คำสั่ง color.color จะรายงานสีที่เซ็นเซอร์สีตรวจจับได้ในปัจจุบัน

drivetrain.drive(FORWARD)
ในขณะที่สี 3 ไม่เป็นสีเขียว:
    รอ 20 มิลลิวินาที
drivetrain.stop()
ในตัวอย่างนี้ ลู Whileมีเงื่อนไข not จะถูกใช้ ให้หุ่นยนต์ขับเคลื่อนไปข้างหน้าจนกว่าเซ็นเซอร์สีจะตรวจพบวัตถุสีเขียว จากนั้นหุ่นยนต์จะหยุดขับเคลื่อน ตัวอย่างนี้แสดงให้เห็นได้ในวิดีโอแรกด้านบน
ความสว่างสี_3()

คำสั่ง color.brightness จะรายงานปริมาณแสงที่ตรวจจับได้โดยเซ็นเซอร์สี รายงานนี้แสดงค่าเป็นช่วงตั้งแต่ 0% ถึง 100%

color_3.set_light(25, PERCENT)
    while True:
        if color_3.brightness() > 25:
            # ถ้าเซ็นเซอร์สีตรวจจับแสง หุ่นยนต์จะเลื่อนไปทางซ้าย
            LeftMotor.spin_for(FORWARD, 35, DEGREES)
        else:
            # ถ้าเซ็นเซอร์สีตรวจจับความมืด หุ่นยนต์จะเลื่อนไปทางขวา
            RightMotor.spin_for(FORWARD, 35, DEGREES)
        wait(20, MSEC)
ในตัวอย่างนี้ คำสั่ง color.brightness ถูกใช้เพื่อให้หุ่นยนต์ตรวจจับและเดินตามเส้น ดังที่แสดงในวิดีโอที่สองด้านบน
สี_3.เฉดสี()

คำสั่ง color.hue รายงานเฉดสีที่เซนเซอร์สีตรวจพบ โดยจะรายงานช่วงของค่าเฉดสีตั้งแต่ 0 ถึง 360

brain.screen.print(color_3.hue())
drivetrain.drive(FORWARD)
while not color_3.is_near_object():
    wait(20, MSEC)
if color_3.hue() > 330 and color_3.hue() < 30:
    drivetrain.turn_for(RIGHT, 90, DEGREES)
else:
    drivetrain.turn_for(LEFT, 90, DEGREES)

ในตัวอย่างนี้ คำสั่ง color.hue ถูกใช้เพื่อให้หุ่นยนต์ตรวจสอบช่วงของค่าเฉดสีที่สอดคล้องกับสีแดง และเลี้ยวขวา 90 องศา หากเซ็นเซอร์ตรวจพบค่าเหล่านั้น หากตรวจพบค่าเฉดสีอื่นๆ หุ่นยนต์จะเลี้ยวซ้าย 90 องศา

คำสั่ง color.hue จะมีประโยชน์เมื่อจำเป็นสำหรับหุ่นยนต์ในการตรวจจับสีบางสีเมื่อสภาพแสงโดยรอบอาจไม่สอดคล้องกัน

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: