เซนเซอร์แสงเป็นอุปกรณ์ที่ทำหน้าที่เปลี่ยนค่าแสงให้กลายเป็นสัญญาณไฟฟ้า ทำหน้าที่เป็นเสมือนตาของหุ่นยนต์ เซนเซอร์ตรวจจับแสงจะช่วยให้หุ่นยนต์แยกแยะระหว่างแสงสว่างและความมืด สามารถอ่านความเข้มแสงในห้องและวัดความเข้มของแสงสีของพื้นผิว
![]() |
เซนเซอร์แสง |
การรับรู้ของตามนุษย์ต่อสีเมื่อเปรียบเทียบกับเซนเซอร์แสง
การแสดงค่าแสงของเซนเซอร์แสง สามารถทำได้โดยเปิด NXT Controller ไปที่เมนู View
แต่ถ้าเลือกวิธีการวัดค่าแสงแบบ Ambient Light จะไม่มีการฉายแสงสีแดงออกมาจากเซนเซอร์แสง โดยเซนเซอร์แสงจะวัดแสงที่เกิดจากการสะท้อนแสงจากวัตถุโดยรอบเท่านั้น
ค่าของแสงที่ได้จากการวัดของเซนเซอร์แสงจะเริ่มต้นตั้งแต่ 0% ซึ่งหมายถึงดำสนิทหรือมืด ถึง 100% ซึ่งหมายถึงสว่างมากหรือขาว โดยสามารถแสดงค่าของแสงได้ดังภาพ
![]() |
การเปรียบเทียบระหว่างค่าเซนเซอร์แสงและเซนเซอร์สี |
วิธีการนำค่าแสงที่วัดได้ไปใช้ในการเขียนโปรแกรมให้หุ่นยนต์ตรวจสอบเส้นสีดำ มีดังนี้
ขั้นที่ 1 นำเซนเซอร์แสงที่ติดตั้งกับหุ่นยนต์ไปวัดค่าแสงพื้นผิวที่เป็นสีขาว
ขั้นที่ 2 นำเซนเซอร์แสงตัวเดียวกันไปวัดค่าแสงพื้นผิวที่เป็นสีดำ
ขั้นที่ 3 นำค่าแสงที่เซนเซอร์วัดได้พื้นผิวที่เป็นสีขาวและสีดำมารวมกันแล้วหารด้วยสอง จะได้ค่าที่จะนำไปใช้เป็นเกณฑ์ในการใช้เปรียบเทียบสำหรับเขียนโปรแกรมต่อไป
![]() |
วิํํธีการหาค่าแสงเืพื่อนำไปใช้เปรียบเทียบ |
ตัวอย่างการให้หุ่นยนต์ตรวจสอบเส้นดำ
ขั้นตอนการทำงาน
สามารถเขียนโปรแกรมได้ดังนี้
![]() |
สำหรับโปรแกรม Bricx Command Center |
![]() |
สำหรับโปรแกรม Robolab |
ชื่อและการทำงานของไอคอน






ผังงานขั้นตอนการตรวจสอบเส้นดำมากกว่าหนึ่งเส้นและสามารถนับจำนวนเส้นได้มีขั้นตอนดังนี้
ตัวอย่างโปรแกรม
ชื่อและการทำงานของไอคอน








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

ข้อเสนอแนะจากประสบการณ์
การใช้เซนเซอร์แสงตรวจสอบเส้นดำ สิ่งที่ต้องคำนึงมากที่สุด คือ การวัดค่าแสง เพราะถ้าค่าแสงที่วัดมาได้คลาดเคลื่อน จะทำให้หุ่นยนต์ไม่สามารถตรวจสอบพบเส้นดำ ดังนั้นเมื่อต้องการนำหุ่นยนต์ไปปฏิบัติภารกิจในพื้นที่ใด จะต้องไปวัดค่าแสงที่พื้นที่นั้นและขณะกำลังวัดแสงต้องสังเกตว่ามีเงาของตนเองบังแสงหรือไม่
ความผิดพลาดอีกประการที่จะพบเสมอๆ คือ สถานการณ์ที่ให้หุ่นยนต์นับเส้นดำ ซึ่งเขียนโปรแกรมได้ดังภาพ
หรือ
แต่หน้าสถานการณ์เป็นดังภาพ คือ เส้นหมายเลข 1 มีความหนามากกว่าเส้นอื่นๆ (เส้นที่ 2, 3)
โปรแกรมจะต้องปรับเปลี่ยนไป คือ ค่า Wait(……..); ในบรรทัดที่ 17 ไม่เช่นนั้นหุ่นยนต์จะนับเส้นจำนวนผิด โดยนับมากกว่า 1 เส้น จนกว่าจะหลุดพ้นจากเส้นที่ 1 ดังรูปตัวอย่าง
หรือที่หมายเลข 1
เอกสารอ้างอิง
ทีมงานสมาร์ทเลิร์นนิ่ง. (2549). เรียนรู้การสร้างหุ่นยนต์ Step by Step. กรุงเทพฯ: บริษัท ด่านสุทธาการพิมพ์ จำกัด.
Martha N. Cyr. (2002). LEGO MindStorms for School Using ROBOLAB. Massachusetts: [n.p.].
The LEGO Group. (2006). NXT User Guide. [n.p.]: [n.p.].