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

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

ชิ้นส่วนเซนเซอร์สี VEX IQ (รุ่นที่ 1)

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

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


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

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


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


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

Color Sensor สามารถตรวจจับได้ทั้งสีและความใกล้เคียง

การตรวจจับสี

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

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

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

VEXcode IQ ตั้งค่าบล็อคแสงเซ็นเซอร์สีที่อ่านค่าแสง Color3 เป็น 50%

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

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

บล็อกเซ็นเซอร์สี VEXcode IQ จำนวน 3 อัน อันแรกคือสีของบล็อกที่อ่านชื่อสี Color3 ที่สองคือบล็อก Hue ที่อ่านค่า Color3 hue เป็นองศา ที่สามคือบล็อกตรวจจับสีที่อ่านว่า Color3 ไม่ตรวจจับอะไรเลยใช่ไหม

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

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

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

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

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

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

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

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

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

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

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

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

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


การใช้งานทั่วไปบางอย่างกับ VEX IQ Robot ได้แก่:

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

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

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

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

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

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

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

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

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) Brain VEX IQ (รุ่นที่ 1) Brain ไม่รองรับ Python

color_3.is_near_object()

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

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

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

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

drivetrain.drive(FORWARD)
ในขณะที่ไม่ใช่ color_3.GREEN():
wait(20, MSEC)
drivetrain.stop()
ในตัวอย่างนี้ จะใช้ลูWhile ที่มีเงื่อนไข ไม่ใช่ กับคำสั่ง color.color เพื่อให้หุ่นยนต์ขับไปข้างหน้าจนกระทั่งเซ็นเซอร์สีตรวจพบวัตถุสีเขียว หุ่นยนต์จะหยุดการขับขี่ นี่คือตัวอย่างในวิดีโอแรกด้านบน
color_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)
ขณะไม่ใช่ color_3.is_near_object():
wait(20, MSEC)
ถ้า color_3.hue() > 330 และ color_3.hue() < 30:
drivetrain.turn_for(RIGHT, 90, DEGREES)
อื่นๆ:
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: