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

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

image001

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


รายละเอียดเกี่ยวกับ NXT Brick

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

image003

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

image005

ภาพแสดงการเชื่อมต่อ 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

image007

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

image009

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


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

image011

- 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 สำหรับใช้กับมอเตอร์และหลอดไฟ

image013

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

image015


แบตเตอรี่

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

image017

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

image019

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

image021

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

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

image023


การแสดงผลทางจอภาพ

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

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

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

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

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

image025

หรือ

image027

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

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

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

image029

หรือ

image031

ข้อเสนอแนะจากประสบการณ์
ข้าพเจ้ามีแนวคิดในการจัดการเรียนการสอนด้านคอมพิวเตอร์ในสถานศึกษา เราสามารถแบ่งออกเป็น 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.].

การใช้งานโปรแกรม Brixc Command Center

โปรแกรมที่ใช้สำหรับควบคุมหุ่นยนต์มีหลากหลายในภาษาที่ใช้ในการเขียนควบคุม ซึ่งผู้ใช้สามารถเลือกใช้ตามความถนัดในแต่ละโปรแกรมภาษา สำหรับในชั้นเรียนนี้จะใช้ภาษา NXC ซึ่งมีรูปแบบการใช้งานคล้ายกับภาษาซี โดยใช้โปรแกรม Editor ชื่อว่า Bricx Command Center

เริ่มต้นใช้งาน Bricx Command Center

bcc001

1. Tools Bar
2. Code Explorer
3. พื้นที่เขียนโปรแกรม

การเขียนโปรแกรม
1. เสียบสาย USB เพื่อเชื่อมต่อ NXT Brick กับเครื่องคอมพิวเตอร์ และเปิด NXT Brick

bcc002

2. เปิดโปรแกรม Bricx Command Center จะมีหน้าต่างค้นหา NXT Brick

bcc003

ให้เลือกพอร์ตเป็น USB และ Brick Type เป็น NXT จากนั้นกดปุ่ม OK

3. ลงมือเขียนโปรแกรม

bcc004

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

bcc005

5. โปรแกรมที่ Compile เสร็จสมบูรณ์แล้วจะดาวน์โหลดลงใน NXT Brick จะต้องมีสัญลักษณ์พร้อมดาวน์โหลดขึ้นมาแสดง bcc007 ถ้าไม่มีสัญลักษณ์ ดาวน์โหลดโปรแกรม จะต้องไปที่เมนู Tools > Find Brick

bcc008

แล้วจะมีหน้าต่างค้นหา NXT Brick

bcc003

ให้เลือกพอร์ตเป็น USB และ Brick Type เป็น NXT จากนั้นกดปุ่ม OK

6. เมื่อมีสัญลักษณ์ bcc007 ก็พร้อมที่จะดาวน์โหลดโปรแกรมลงเข้าไปในหุ่นยนต์ โดยกดที่สัญลักษณ์ bcc007 หรือกดที่แป้น F6

เอกสารอ้างอิง
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.