|
[ บทความ : Robot ] ตอนที่ 2 เรื่อง ... ศึกษา ET-ROBOT (เริ่มเล่น BASIC STAMP) |
จากบทความตอนที่แล้วนั้น เราได้ประกอบตัวหุ่นยนต์ ET-ROBOT กัน ขั้นตอนต่อไปของเราก็คือ ศึกษาวิธีการสั่งงานหุ่นยนต์ แล้วเราจะสั่งงานมันอย่างไรล่ะ ? . นั้นคือคำถามที่เจอบ่อยมาก ก่อนอื่นครับ เราต้องดูว่าหุ่นยนต์นั้น ใช้ไมโครคอนโทรลเลอร์อะไรเป็นตัวควบคุม คำตอบก็คือ BASIC Stamp ไงล่ะครับ นั่นหมายความว่า เราต้องเริ่มต้นที่การศึกษากันที่เรื่องของ BASIC Stamp กันก่อน หลังจากนั้น ค่อยเพิ่มเติมความรู้เกี่ยวกับการสั่งงานให้ได้ดั่งใจ . เอาล่ะ มาเริ่มศึกษา BASIC Stamp กันเถอะ
BASIC
Stamp คืออะไรล่ะ?
ถ้าเราเพิ่งเริ่มศึกษาล่ะก็ ผมว่าคำถามนี้เป็นคำถามที่ 2 ที่เราต้องมาหาคำตอบกันเลยล่ะ แล้วเจ้า BASIC Stamp มันคืออะไรล่ะ? คำตอบคือ BASIC Stamp นั้นเป็นไมโครคอนโทรลเลอร์ที่ได้ติดตั้ง ROM ที่ทำหน้าที่แปลชุดคำสั่งภาษา BASIC ซึ่งชุดคำสั่งภาษา BASIC ชุดนี้ ออกแบบโดยทีมงานของ Parallax Inc. ซึ่งสามารถเข้าไปหารายละเอียดได้ที่ http://www.parallax.com
ข้อดีของภาษาเบสิก คือ ง่ายต่อการทำความเข้าใจและง่ายต่อการเขียนโปรแกรม แต่ก็มีข้อเสียอันใหญ่หลวงคือ การทำงานของภาษาเบสิกนั้นช้ากว่าภาษาอื่นๆ เป็นอย่างมาก แต่อย่างไรก็ดีครับ การเริ่มต้นอะไรสักอย่างนั้น ควรจะเริ่มจากสิ่งที่ง่ายไปหายากจริงไหมครับ ด้วยเหตุนี้ล่ะ จึงมีคนศึกษาภาษาเบสิกกันมากมายเลย (รวมผมเข้าไปด้วยคนหนึ่งล่ะ)
จากที่บอกว่าภาษาเบสิกนั้นง่าย แต่ช้า ทางบริษัท Parallax เลยแก้ปัญหาด้วยการออก BASIC Stamp หลายรุ่น อันได้แก่
|
BASIC Stamp Rev.D มี I/O ให้ใช้งาน 8 บิต มีหน่วยความจำ 256 ไบต์ เขียนคำสั่ง PBASIC-1 ได้ 75 คำสั่ง ซึ่งทาง ETT ก็ได้นำชิพตัวนี้มาทำเป็นบอร์ดควบคุม ในรุ่น ET-BASIC Stamp |
| BASIC Stamp1-IC มีขา I/O ทั้งสิ้น 8 ขา มีหน่วยความจำ 256 ไบต์ สนับสนุนการเขียนคำสั่ง PBASIC-1 ได้ 75 คำสั่ง และทำงานที่ 2000 คำสั่งต่อวินาที | ||
![]() |
BASIC Stamp2-IC ในรุ่นนี้มีการผลิตออกมา 2 แบบ คือ แบบที่มีลักษณะคล้ายไอซีหน่วยความจำ ตัวถังแบบ 24 ขา กับแบบไอซีธรรมดา ความสามารถของ BS2 คือ มี I/O ให้ใช้งาน 16 บิต เพิ่มการติดต่อกับหน่วยความจำมาเป็น 2KB รองรับการเขียนคำสั่ง PBASIC-2 ได้ 500 คำสั่ง มีความเร็วในการทำงานที่ 4000 คำสั่งต่อวินาที ซึ่งเรียกได้ว่าเร็วกว่า BS1 |
![]() |
BASIC Stamp 2SX (BS2SX-IC) เป็นการใช้ไมโครคอนโทรลเลอร์ตระกูล SX ซึ่งมีความเร็วสูงมาก นั่นคือ ทำงานที่ 10000 คำสั่งต่อวินาที รองรับหน่วยความจำได้ 16KB สามารถบันทึกคำสั่งของ PBASIC-2 ได้ 2000 คำสั่ง ซึ่งชิพรุ่นนี้ทาง ETT ได้ออกผลิตภัณฑ์ ถึง 2 รุ่น คือ CP-JRBS2SX และCP-BS2SX | ||
|
|
|
||
![]() |
BASIC Stamp 2e (BS2E-IC) มีความเร็วเหมือนกับ BS2 แต่ว่ามีหน่วยความจำเหมือนกับรุ่น BS2SX | ||
![]() |
BASIC Stamp2pr (BS2PE-IC) เป็นรุ่นที่ออกแบบเพื่อใช้กับงาน Data logging แบบ Low power ที่มีหน่วยความจำมากกว่าปกติ และทำงานที่ 6000 คำสั่งต่อวินาที | ||
![]() |
BASIC Stamp2p (BS2p-IC) ทำงานที่ความเร็ว 12000 คำสั่งต่อวินาที | ||
![]() |
BASIC
Stamp2p40 (BS2p40) เหมือนกับ
BS2p แต่มีการออกแบบขาให้มีทั้งหมด
40 ขา เพิ่ม I/O เข้ามาอีก
16 บิต
เขียนโปรแกรมได้สูงสุดโปรแกรมละ
4000 คำสั่ง
สนับสนุนคำสั่งของ PBASIC 55 คำสั่ง และคำสั่งของ BASIC
Stamp IISX 39
คำสั่งได้ทั้งหมด ส่วนทาง ETT
ได้นำชิพตัวนี้มาทำเป็นบอร์ดรุ่น
CP-BS2P40 กับ CP-JRBS2P40
และที่สำคัญชิพรุ่นนี้นำมาใช้กับ
Et-ROBOT ที่เรากำลังศึกษากันอีกด้วย
เนื่องจาก ET-ROBOT ที่ผมใช้อยู่นี้เป็นบอร์ดควบคุมรุ่น BS2P40 ดังนั้น ผมขออ้างอิงเฉพาะชิพรุ่นนี้เลยล่ะกันครับ |
||
เตรียมตัวกันเถอะ
เนื่องจาก BASIC Stamp เป็นไมโครคอนโทรลเลอร์ที่ใช้ ภาษาเบสิก เป็นภาษาสั่งงาน ด้วยเหตุนี้ ในการพัฒนาโปรแกรมจึงมีความจำเป็นที่จะต้องมีซอฟต์แวร์ที่ทำหน้าที่เป็น Editor/Debugger และติดต่อกับบอร์ดควบคุม ซอฟต์แวร์ตัวนี้เรียกว่า BASIC Stamp windows Editor ซึ่งปัจจุบัน (๙ กันยายน ๒๕๔๖) จะเป็นรุ่น 2.0 Beta 2.1 แต่เนื่องจากเป็นรุ่น Beta ซึ่งอาจจะมีข้อบกพร่องอยู่บ้าง ผมจึงเลือกใช้รุ่นที่มีความเสถียรภาพที่ดีกว่า คือ ใช้รุ่น 1.33 (ขนาดประมาณ 6MB) ถ้าผู้อ่านซื้อผลิตภัณฑ์ของ ETT จะมี CD-ROM ที่ใส่โปรแกรมนี้เอาไว้ให้แล้ว หน้าที่ของเราก็คือ ทำการติดตั้งโปรแกรมนี้ลงในเครื่องที่เราใช้งาน
การที่จะใช้งานซอฟต์แวร์ตัวนี้ได้ เครื่องของเราจะต้องเป็น Microsoft Windows 98/ME/2000หรือ XP และมีพอร์ตอนุกรมเหลืออย่างน้อย 1 พอร์ต เพื่อใช้สำหรับติดต่อกับบอร์ดควบคุม BASIC Stamp ส่วนเรื่องของการติดตั้งโปรแกรมนั้น ผมขอไม่กล่าวถึงก็แล้วกันครับ เพื่อเป็นการประหยัดพื้นที่ และไม่ทำให้การโหลดเอกสารนี้ช้าเกินไป (เนื่องจากต้องมีรูปประกอบ) ดังนั้น เรามาเริ่มทดลองเขียนภาษาเบสิกกันดีกว่าครับ
ทดลองเขียนสักหน่อย!
เพื่อให้พอเป็นแนวทาง เรามาเริ่มเขียนโปรแกรมง่ายๆ กันก่อนนะครับ
| ก่อนอื่นให้เรียกโปรแกรม BASIC Stamp Editor จาก icon ดังรูปต่อไปนี้ (อยู่บน Desktop) หรือเข้าไปที่เมนู Start แล้วหาไอคอนที่ชื่อว่า BASIC Stamp Editor v1.33 | ![]() |
![]() |
เมื่อเรียกโปรแกรมหน้าจอเริ่มต้นนั้นจะแสดงหน้าต่างย่อยที่บอก Tip เราสามารถยกเลิกให้ไม่ต้องแสดงได้ เมื่อผ่านหน้าจอแสดง Tip ก็จะเป็นหน้าจอที่ใช้ในการเขียนโปรแกรม และติดต่อกับบอร์ด BASIC Stamp ดังรูปต่อไปนี้ |
เนื่องจาก BASIC Stamp นั้นมีหลายรุ่น
เราจึงต้องกำหนดด้วยว่า
โปรแกรมที่เราจะเขียนนั้น
ใช้กับ BS รุ่นใด
ถ้าเราใช้ BS2P40
เราต้องเขียนบรรทัดแรกเอาไว้ว่า
{$STAMP
BS2p}
แต่ถ้าใช้
BS2SX เราต้องเขียนว่า
{$STAMP
BS2sx}
เอาล่ะโปรแกรมแรกของเรามีโค้ดดังนี้
{$STAMP
BS2p}
DEBUG
Hello BASIC Stamp BS2p40.
END
เมื่อเขียนเสร็จเราควรบันทึกข้อความลงแฟ้ม การบันทึกนั้นเราทำได้หลายวิธี แต่ที่ง่ายก็คือ เลือกที่เมนู File / Save แล้วกำหนดชื่อเป็น 01Hello.bsp

| คราวนี้กำหนดว่าบอร์ดของเรานั้นต่อสายกับพอร์ต COM ใด โดยกำหนดจากเมนู Directive / Port แล้วเลือก COM1 /COM2 /COM3 หรือ COM4 ตามที่เครื่องของเราติดตั้งเอาไว้ อย่างในรูปด้านขวาี้จะเป็น COM1 | ![]() |
![]() |
เอาล่ะ ตอนนี้เราสามารถสั่ง Run ได้แล้วครับ การ Run นั้นจะเป็นกระบวนการที่ BASIC Stamp Editor จะลบโปรแกรมในบอร์ดควบคุม แล้วทำการดาวน์โหลดโปรแกรมที่เราเขียนนี้ลงไปที่บอร์ด |
ดังนั้น ถ้าเราไม่ได้ต่อบอร์ดเข้ากับคอมพิวเตอร์ เราจะไม่สามารถสั่งให้ทำงานได้ ดังรูปต่อไปนี้

แต่ถ้าสำเร็จเรียบร้อยดี ที่โปรแกรม BASIC Stamp Editor ก็จะมีการรายงานผลดังนี้

ขั้นตอนแรก เราต้องต่อขั้ว RS232 แบบ DB9 เข้าที่พอร์ต COM1 (ถ้าผู้อ่านต่อกับ COM2 ก็ได้เหมือนกัน แต่ว่าต้องกำหนดชนิดของพอร์ตให้ถูกต้อง)
![]() |
![]() |
ขั้นตอนที่สอง
เป็นการต่อขั้วแจ็คที่บอร์ดควบคุม
เพียงเท่านี้เราก็พร้อมใช้งานกันแล้ว

อ้อ แล้วอย่าลืมเปิด Switch ของบอร์ดทดลองด้วยล่ะครับ เดี๋ยวมันจะทำงานไม่ได้ :)
การกำหนดหน้าต่าง
Debug
| ปกติแล้วถ้าเราเรียกคำสั่ง
DEBUG แล้วโปรแกรม
BASIC Stamp Editor ก็จะเรียกหน้าต่างนี้โดยอัตโนมัติ
แต่บางครั้งเราเผลอปิดหน้าต่างนี้ไป
เราสามารถสั่งให้หน้าต่างนี้แสดงขึ้นมาได้โดย
ไปที่เมนู Run / Debug / New ดังรูปด้านล่าง
|
|
| แล้วจะมีหน้าต่างย่อย
|
ให้กำหนดค่าดังนี้
|
ที่เหลือก็คือ รอผลลัพธ์จากบอร์ดควบคุมเท่านั้น
ก่อนจบวันนี้ เรามาดูคำสั่งที่เกี่ยวข้องกันก่อนครับ
END เป็นคำสั่งจบโปรแกรม
DEBUG
เป็นคำสั่งรายงานผลข้อความหรือตัวเลขกลับมาที่
BASIC Stamp Editor เพื่อใช้สำหรับตรวจสอบการทำงานของโปรแกรม
ซึ่งรูปแบบของคำสั่งเป็นดังนี้
DEBUG outputData1,{outputData2,
,outputDataN}
โดยที่ outputData นั้นจะเป็นข้อความหรือตัวเลขก็ได้ แต่จะมีค่าอยู่ในช่วง 0-65535 เท่านั้น
ตอนนี้เราก็รู้กันแล้วว่า BASIC Stamp คืออะไร และทำอย่างไรจึงจะเขียนโปรแกรมได้ ในคราวหน้าเราก็จะค่อยๆ ศึกษาคำสั่งของ BASIC Stamp กันต่อ ส่วนใครที่ใจร้อน ก็สามารถเรียกใช้โปรแกรมตัวอย่างของ ETT มาลองเล่นก็ได้ครับ เพราะในเอกสารของ ETT นั้นก็มีรายละเอียดที่ผมในมาเขียนบทความอยู่ในนั้นทั้งหมดครับ
.....พบกันครั้งหน้ากับการเขียนโปรแกรมด้วย BASIC Stamp เรื่องตัวแปร และค่าคงที่