[ บทความ : 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 คำสั่งต่อวินาที ซึ่งเรียกได้ว่าเร็วกว่า BS
BASIC Stamp 2SX (BS2SX-IC) เป็นการใช้ไมโครคอนโทรลเลอร์ตระกูล SX ซึ่งมีความเร็วสูงมาก นั่นคือ ทำงานที่ 10000 คำสั่งต่อวินาที รองรับหน่วยความจำได้ 16KB สามารถบันทึกคำสั่งของ PBASIC-2 ได้ 2000 คำสั่ง ซึ่งชิพรุ่นนี้ทาง ETT ได้ออกผลิตภัณฑ์ ถึง 2 รุ่น คือ  CP-JRBS2SX  และCP-BS2SX

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 … เรื่องตัวแปร และค่าคงที่

 

 


เขียนโดย : ศุภชัย บุศราทิจ
Author : Supachai Budsaratij
e-mail : raek@se-ed.net
วันที่ทำการปรับปรุง : ๑๓ ก.ย. ๒๕๔๖