ข้ามไปที่เนื้อหาหลัก

การเก็บค่าแสงของโปรแกรม Robolab ในหุ่นยนต์ Lego Mindstorms


          การใช้เซนเซอร์แสงตรวจสอบเส้นดำจะต้องมีค่าแสงที่ไว้ใช้ในการเปรียบเทียบ ซึ่งค่าแสงดังกล่าวมีวิธีได้มาดังนี้ (1) นำเซนเซอร์แสงที่ติดตั้งกับหุ่นยนต์ไปวัดค่าแสงพื้นผิวที่เป็นสีขาว (2) นำเซนเซอร์แสงตัวเดียวกันไปวัดค่าแสงพื้นผิวที่เป็นสีดำและ (3) นำค่าแสงที่เซนเซอร์วัดได้พื้นผิวที่เป็นสีขาวและสีดำมารวมกันแล้วหารด้วยสอง


ภาพแสดงการวัดแสงเพื่อหาค่าแสงนำไปใช้เปรียบเทียบ


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

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



และสามารถเขียนเป็นโปรแกรมได้ดังนี้

ภาพแสดงโปรแกรมให้หุ่นยนต์เคลื่อนที่ไปหยุดที่เส้นดำ โดยเก็บค่าของแสงอัตโนมัติ


ความหมายของโปรแกรมมีดังนี้


1) เริ่มต้นโปรแกรม
2) ให้ค่าแสงที่พอร์ตครั้งแรกเป็น 0
3) แสดงตัวหนังสือ “Check White”ตรงกลางหน้าจอ LCD บรรทัดที่ 0
4) คอยจนกว่าจะมีการกดเซนเซอร์สัมผัสที่พอร์ต 3
5) มีเสียงเตือน
6) กล่องบรรจุสีแดงรับค่าแสงจากเซนเซอร์แสงที่พอร์ต 1
7) ให้ค่าแสงจากกล่องบรรจุสีแดงเซนเซอร์แสงที่พอร์ต 1 มีชื่อว่า w1
8) แสดงค่าชอง w1 ตรงกลางหน้าจอ LCD บรรทัดที่ 3


9) แสดงตัวหนังสือ “Check Black”ตรงกลางหน้าจอ LCD บรรทัดที่ 0
10) คอยจนกว่าจะมีการกดเซนเซอร์สัมผัสที่พอร์ต 3
11) มีเสียงเตือน
12) กล่องบรรจุสีแดงรับค่าแสงจากเซนเซอร์แสงที่พอร์ต 1
13) ให้ค่าแสงจากกล่องบรรจุสีแดงเซนเซอร์แสงที่พอร์ต 1 มีชื่อว่า b1
14) แสดงค่าชอง b1 ตรงกลางหน้าจอ LCD บรรทัดที่ 4
15) แสดงตัวหนังสือ “Light Reference”ตรงกลางหน้าจอ LCD บรรทัดที่ 0
16) นำค่าของ w1 และ b1 มาคำนวณหาค่าแสงเพื่อจะนำไปใช้เปรียบเทียบ สมการ (w1+b1)/2 แล้วเก็บค่าไว้ในกล่องบรรจุสีแดง
17) แสดงการคำนวณที่ได้ตรงกลางหน้าจอ LCD บรรทัดที่ 6 เก็บค่าไว้ในกล่องบรรจุสีแดง







18) คอยจนกว่าจะมีการกดเซนเซอร์สัมผัสที่พอร์ต 3
19) หุ่นยนต์เคลื่อนที่ไปข้างหน้า
20) หุ่นยนต์เคลื่อนที่ไปข้างหน้า
21) คอยจนกว่าค่าแสงที่เซนเซอร์แสงที่พอร์ต 1 มีค่าน้อยกว่าค่าแสงที่เก็บในกล่องบรรจุสีแดง
22) หุ่นยนต์หยุดเคลื่อนที่
23) จบโปรแกรม

เครื่องมือไอคอนที่จะต้องใช้ในการเขียนโปรแกรมมีดังนี้

 
Begin                  เริ่มต้นโปรแกรม

Zero Light Sensor ให้ค่าแสงเป็น 0

Wait for Push         คอยจนกว่าจะมีการกด

Write Text          แสดงตัวหนังสือที่หน้าจอ LCD
 

Formatted Text          แสดงค่าของตัวแปรที่หน้าจอ LCD
 

Fill Container          กล่องบรรจุรับค่าที่ใส่เข้าไป
 
Light Container          กล่องบรรจุรับค่าแสง
 


Formula Container  กล่องบรรจุรับค่าที่คำนวณ
 


Motor B                  มอเตอร์ B เคลื่อนที่ไปข้างหน้า
 

Motor C                  มอเตอร์ C เคลื่อนที่ไปข้างหน้า
 

Wait for Dark    รอจนกระทั่งเซนเซอร์ที่พอร์ต 1 อ่านค่าแสงได้มืดกว่าค่าที่ตั้งไว้ ในที่นี้คือ ค่าจากกล่องบรรจุสีแดงที่รับค่ามาจากการคำนวณอัตโนมัติ
 



Stop All Output หยุดการทำงานของทุกอุปกรณ์ Output เช่น มอเตอร์ หลอดไฟ
 

End                         จบโปรแกรม



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


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

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



เอกสารอ้างอิง
Martha N. Cyr. (2002). LEGO MindStorms for School Using ROBOLAB. Massachusetts: [n.p.].

โพสต์ยอดนิยมจากบล็อกนี้

หุ่นยนต์เคลื่อนที่ไปตามเส้นดำ

หุ่นยนต์และมนุษย์มีหลักการทำงานที่เหมือนกัน คือ หน่วยรับข้อมูลเข้า (Input Unit) หน่วยประมวลผล (Process Unit) และหน่วยแสดงผล (Output Unit) ดังนั้นการที่หุ่นยนต์จะเคลื่อนที่ไปให้ตรงเป้าหมาย หุ่นยนต์จะต้องมีอุปกรณ์ที่จะตรวจสอบตำแหน่งและส่งข้อมูลที่ได้ไปยังหน่วยประมวลผล เพื่อให้มอเตอร์ทำการแสดงผลโดยการไปยังเป้าหมายต่อไป อุปกรณ์พื้นฐานที่ใช้ในการตรวจสอบตำแหน่งนั้น คือ เซนเซอร์แสง (Light Sensor)

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

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


วิธีการทำงานมีขั้นตอนดังนี้
1. เมื่อเซ็นเซอร์แสงวัดค่าแสงได้สีดำ หุ่นยนต์จะเลี้ยวออกออกจากเส้นดำ
2. เมื่อเซ็นเซอร์แสงวัดค่าแสงได้สีขาว (ไม่ใช่สีดำ) หุ่นยนต์เคลื่อนที่กลับไปหาเส้นดำ




ตัวอย่างโปรแกรม



เมื่อนำโปรแกรมไปใช้จริงจะต้อ…

การใช้เซนเซอร์แสงตรวจสอบเส้นดำ

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



          การรับรู้ของตามนุษย์ต่อสีเมื่อเปรียบเทียบกับเซนเซอร์แสง



          การแสดงค่าแสงของเซนเซอร์แสง สามารถทำได้โดยเปิด NXT Controller ไปที่เมนู View



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



          แต่ถ้าเลือกวิธีการวัดค่าแสงแบบ Ambient Light จะไม่มีการฉายแสงสีแดงออกมาจากเซนเซอร์แสง โดยเซนเซอร์แสงจะวัดแสงที่เกิดจากการสะท้อนแสงจากวัตถุโดยรอบเท่านั้น

          ค่าของแสงที่ได้จากการวัดของเซนเซอร์แสงจะเริ่มต้นตั้งแต่ 0% ซึ่งหมายถึงดำสนิทหรือมืด ถึง 100% ซึ่งหมายถึงสว่างมากหรือขาว โดยสามารถแสดงค่าของแสงได้ดังภาพ



วิธีการนำค่าแสงที่วัดได้ไปใช้ในการเขียนโปรแกรมให้หุ่นยนต์ตรวจสอบเส้นสีดำ มีดังนี้
ขั้นที่ 1 นำเซนเซอร์แสงที่ติดตั้งกับหุ่นยนต์…

ตราประจำโรงเรียนสิรินธร จังหวัดสุรินทร์ แบบโรงเรียนมาตรฐานสากล

ทำเสร็จนานแล้วครับ นำไปใช้ได้เลย @อนุญาต