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

การใช้งาน LEGO Mindstorms NXT Controller

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

ภาพแสดงคอนโทรลเลอร์ Lego Mindstorms NXT

รายละเอียดเกี่ยวกับ NXT Brick
NXT Brick เป็นสมองของ LEGO Mindstorms NXT ที่คอยควบคุมการทำงานของหุ่นยนต์

ภาพแสดงการเชื่อมต่อ NXT Brick กับเซนเซอร์

ภาพแสดงการเชื่อมต่อ NXT Brick กับมอเตอร์และหลอดไฟ


คอนโทรลเลอร์ NXT Brick มีคุณสมบัติดังนี้
1. 32-bit ARM7 microprocessor
2. 256 Kbytes FLASH, 64 Kbytes RAM
3. 8-bit microprocessor
4. 4 Kbytes FLASH, 512 Kbyte RAM
5. Bluetooth wireless communication, Bluetooth class II V.2.0 compliant
6. USB 2.0 port
7. Four input ports, six-wire digital platform
8. Three output ports, six-wire digital platform
9. Dot matrix display, 60 x 100 pixels
10. Loudspeaker, 8 KHz sound quality
11. Power source : Rechargeable lithium battery or six AA Battery
12. Plug for power adapter

ภาพแสดงรายละเอียดเครื่องมือและอุปกรณ์ใน NXT Brick

ภาพแสดงรายละเอียดเครื่องมือและอุปกรณ์ใน NXT Brick


รายการเครื่องมือใน NXT Brick



- Settings ใช้สำหรับตั้งค่าต่างๆ เกี่ยวกับหุ่นยนต์ เช่น การปรับความดังของลำโพง Loudspeaker, หรือตั้งเวลาปิด NXT เพื่อประหยัดแบตเตอรี่ และมีเมนูให้ลบโปรแกรมทั้งหมดที่เราเคยดาวน์โหลดใส่หุ่นยนต์ NXT
- Try Me โปรแกรมพื้นฐานต่างๆ ที่มีอยู่ในหุ่น NXT ไว้สำหรับให้เราทดลองเบื้องต้น
- My Files ใช้สำหรับเก็บโปรแกรมทั้งหมด
- NXT Program ใช้สำหรับเขียนโปรแกรมง่ายๆ บน NXT โดยไม่จำเป็นต้องใช้คอมพิวเตอร์
- View ใช้สำหรับตรวจสอบค่าและทดสอบเซ็นเซอร์ต่างๆ บน NXT
- Bluetooth ใช้สำหรับตั้งค่าของ Bluetooth และเชื่อมต่อกับอุปกรณ์อื่นๆ เช่นโทรศัพท์มือถือ คอมพิวเตอร์ หรือหุ่นยนต์ NXT ตัวอื่นๆ

การเชื่อมต่อกับอุปกรณ์อื่น
          NXT Brick สามารถเชื่อมต่อกับอุปกรณ์อื่นได้ โดยจะมีช่องการเชื่อมต่อหรือพอร์ต (port) ทั้งหมด 7 พอร์ต แบ่งเป็นพอร์ตสำหรับการส่งข้อมูลออก (Output Port) 3 พอร์ต มีชื่อเรียกว่า พอร์ต A, พอร์ต B และ พอร์ต C สำหรับใช้กับมอเตอร์และหลอดไฟ



และพอร์ตสำหรับการนำข้อมูลเข้า (Input Port) 4 พอร์ต มีชื่อเรียกว่า พอร์ต 1, พอร์ต 2 , พอร์ต 3 และ พอร์ต 4 สำหรับใช้กับเซนเซอร์




แบตเตอรี่
          แบตเตอรี่ที่ใช้กับ NXT Brick สามารถใช้ได้ 2 แบบ คือ แบตเตอรี่แบบชาร์ตได้ที่มาพร้อมกับหุ่นยนต์กับแบตเตอรี่ขนาด AA/LR6 ที่มีทั่วไป



วิธีการใส่แบตเตอรี่แบบชาร์ตได้ที่มากับหุ่นยนต์มีขั้นตอนดังนี้



ขั้นที่ 1 แกะฝาปิดพลาสติกออก
ขั้นที่ 2 นำเอาแบตเตอรี่แบบชาร์ตได้ที่มากับหุ่นยนต์ ใสเข้าไปแทนที่



สำหรับแบตเตอรี่ขนาด AA/LR6 ที่มีทั่วไป ต้องใช้ 6 ก้อน โดยการใส่แบตเตอรี่จะต้องดูขั้วไฟฟ้าให้ถูกต้อง จากนั้นจึงปิดฝาครอบแบตเตอรี่

การใส่แบตเตอรี่ขนาด AA/LR6 ควรใส่แบตเตอรี่ที่เป็นชนิดเดียวกัน เมื่อไม่ได้ใช้งานควรจะนำแบตเตอรี่ออก แบตเตอรี่เมื่อใช้ไปสักระยะจะมีข้อความเตือน ดังรูปแสดงว่าแบตเตอรี่จะหมด



การแสดงผลทางจอภาพ
          NXT Brick มีจอภาพแบบ Dot matrix ขนาด 60 x 100 pixels สามารถแสดงผลได้ 8 บรรทัด แต่ละบรรทัดแสดงผลได้ 16 ตัวอักษร



ฟังก์ชั่นที่ใช้ในการแสดงผลทางจอภาพ คือ

TextOut (int x,int y,string str,unsigned long=options DRAW_OPT_NORMAL )

พารามิเตอร์
x ตำแหน่งที่จะแสดงผลบนแกน X
y ตำแหน่งที่จะแสดงผลบนแกน Y
str ข้อความที่จะให้แสดงผล
options ตัวเลือกในการการวาดภาพ

นำมาเขียนโปรแกรมได้ดังนี้



หรือ



NumOut (int x,int y,variant value,unsigned long=options DRAW_OPT_NORMAL )

พารามิเตอร์
x ตำแหน่งที่จะแสดงผลบนแกน X
y ตำแหน่งที่จะแสดงผลบนแกน Y
value ตัวเลขที่จะให้แสดงผล
options ตัวเลือกในการการวาดภาพ

นำมาเขียนโปรแกรมได้ดังนี้



หรือ


ข้อเสนอแนะจากประสบการณ์
          ข้าพเจ้ามีแนวคิดในการจัดการเรียนการสอนด้านคอมพิวเตอร์ในสถานศึกษา เราสามารถแบ่งออกเป็น 3 กลุ่มด้วยกัน คือ
          กลุ่มที่ 1 คอมพิวเตอร์เพื่อชีวิตประจำวัน โดยเน้นให้ผู้เรียนมีความรู้และทักษะการใช้คอมพิวเตอร์และสามารถนำความรู้ด้านคอมพิวเตอร์ไปใช้ประโยชน์ในชีวิตประจำวันและเป็นพื้นฐานในการศึกษาขั้นสูงต่อไป เช่น ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์ การทำงานของคอมพิวเตอร์ การเปิด/ปิดเครื่องคอมพิวเตอร์ การดูแลรักษาเครื่องคอมพิวเตอร์ ส่วนทางด้านซอฟต์แวร์ เน้นให้ผู้เรียนสามารถใช้โปรแกรมในการชีวิตประจำวันได้ เช่น โปรแกรมฝึกพิมพ์ตัวอักษร โปรแกรมวาดภาพ โปรแกรมพิมพ์เอกสาร โปรแกรมนำเสนอและโปรแกรมตารางการทำงาน เป็นต้น
          กลุ่มที่ 2 คอมพิวเตอร์เพื่อสนับสนุนการประกอบอาชีพ เน้นให้ผู้เรียนมีความรู้และทักษะเกี่ยวกับโปรแกรมสำเร็จรูปที่สามารถนำไปใช้ในการประกอบอาชีพได้ เช่น การซ่อมบำรุงเครื่องคอมพิวเตอร์ โปรแกรมสำเร็จรูปต่าง ๆ ได้แก่ โปรแกรมสร้างเว็บเพจ โปรแกรมตกแต่งรูปภาพ โปรแกรมตัดต่อวิดีทัศน์และโปรแกรมออกแบบผลิตภัณฑ์ เป็นต้น
          กลุ่มที่ 3 คอมพิวเตอร์เพื่อการเป็นโปรแกรมเมอร์ เน้นให้ผู้เรียนมีความรู้ มีการคิดวิเคราะห์ การสร้างสรรค์ชิ้นงานและทักษะเกี่ยวกับการเขียนโปรแกรมเบื้องต้นจนถึงระดับสูง ซึ่งมีโปรแกรมให้นักเรียนได้ศึกษาและเรียนรู้ที่หลากหลาย เช่น ระดับประถมศึกษามีโปรแกรม MicroWorlds, โปรแกรม Scratch สำหรับสร้างภาพเคลื่อนไหวหรือหุ่นยนต์ เป็นต้น นักเรียนสามารถเรียนรู้พื้นฐานและความคิดรวบยอดในการเขียนโปรแกรม ซึ่งโรงเรียนระดับมัธยมศึกษาก็เช่นเดียวกัน
          เพื่อเป็นแรงจูงใจให้นักเรียนอยากเรียนอยากรู้เกี่ยวกับการเขียนโปรแกรมมากขึ้น ข้าพเจ้าจึงได้นำหุ่นยนต์มาใช้ในการจัดการเรียนการสอน ทำให้นักเรียนมีความสนใจ มีความสนุกสนานและได้เรียนรู้ทักษะการทำงานร่วมกับผู้อื่น เกิดการบูรณาการของการเรียนการสอนวิชาวิทยาศาสตร์และคณิตศาสตร์ เพื่อนำไปสู่การคิดแก้ปัญหาและการสร้างสรรค์นวัตกรรมใหม่ในชีวิตประจำวันและการทำงาน ตามการจัดการเรียนการสอนแบบ STEM (The Science Technology Engineering and Mathematics Education)
         ปัญหาที่ข้าพเจ้าได้พบหลังจากที่จัดการเรียนการสอนหุ่นยนต์ คือ ข้อมูลและเอกสารความรู้ต่างๆ ในด้านหุ่นยนต์สำหรับนักเรียนที่เป็นภาษาไทยค่อนข้างมีน้อย ซึ่งข้าพเจ้าได้แก้ปัญหาดังกล่าวด้วยการค้นคว้าข้อมูลต่างๆ จากเครือข่ายอินเทอร์เน็ตซึ่งเป็นภาษาอังกฤษ ถามผู้รู้ที่ได้ศึกษาทางด้านหุ่นยนต์มาก่อนและประสบการณ์ที่ได้ลงมือปฏิบัติเองจากการสอนนักเรียนและพานักเรียนเข้ากิจกรรมการแข่งขันหุ่นยนต์ตามหน่วยงานต่างได้จัดขึ้น
          นอกจากนั้นสิ่งได้ค้นพบกับตัวนักเรียน คือ นักเรียนมีความคิดรวบยอดในการเขียนโปรแกรมสามารถสร้างสรรค์การเขียนโปรแกรม เกิดการเรียนรู้ การแก้ปัญหาเฉพาะหน้าได้ดี สามารถแบ่งหน้าที่กันทำงาน รู้แพ้ รู้ชนะ รู้อภัยและที่สำคัญที่สุด คือ การได้ค้นพบตัวเอง แล้วเข้าสู่มหาวิทยาลัยตามที่ตนเองได้ฝันไว้

เอกสารอ้างอิง
Daniele Benedettelli. (2007). Programming LEGO NXT Robots using NXC. [n.p.]: [n.p.].
John C. Hansen. (2009). LEGO NXT power programming : robotics in C. 2nd ed. United States: Variant Press.
The LEGO Group. (2006). NXT User Guide. [n.p.]: [n.p.].

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

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

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

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

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


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




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



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

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

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



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



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



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



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

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



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

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

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