78
โปรแกรมภาษาโลโก้เบื้องต้น การติดตั้งโปรแกรม MSWLogo 1. นาแผ่น CD โปรแกรมภาษา MSWLogo ใส่ในเครื่องเล่น CD-ROM 2. นาเมาส์มาคลิ๊ก 1 ครั้งที่ไอคอน My Computer 3. จากนั้นนาเมาส์มาดับเบิ้ลคลิ๊กที่ไอคอน CD-ROM 4. จะปรากฏดังรูป ในแผ่น CD นี้จะมี mswlogo ซึ่งจะเป็นเวอร์ชั่นเดียวกับ mswlogo ที่ใช้กันอยู่ในปัจจุบัน หาก ระบบปฏิบัติการของเครื่องคอมพิวเตอร์เป็น Windows ที่ต่ากว่า XP เช่น Windows 98 หรือ Windows ME ผูเรียนรู้สามารถดับเบิ้ลคลิ๊กทีmswlogo เพื่อติดตั้งได้เลย ดังรูป 5. หากระบบปฏิบัติการของคอมพิวเตอร์เป็น Windows XP หรือ Windows 2000 ผู้เรียนรู้ต้องติดตั้งโดยการดับเบิ้ล คลิ๊กที่ไอคอน SetupLogo ดังรูป การติดตั้งโดยดับเบิ้ลคลิ๊กที่ไอคอน SetupLogo ซึ่งเป็น BAT file จะดาเนินการติดตั้ง mswlogo และติดตั้ง UserPort ให้โดยอัตโนมัติ UserPort เป็นโปรแกรมเปิดพอร์ตให้คาสั่งติดต่อพอร์ตของโลโก้สามารถใช้งานเพื่อ ติดต่อกับพอร์ตของคอมพิวเตอร์ได้ บน Windows XP และ Windows 2000 6. จะปรากฏหน้าต่างดังรูป 7. จากนั้นก็จะขึ้นหน้าต่าง ให้คลิ๊กที่ปุ่ม Next ไปเรื่อย ๆ จนกว่าเครื่อง จะลงโปรแกรมเสร็จ 8. เมื่อเสร็จแล้วจะกลับมาสู่หน้าต่าง CD-ROM ให้คลิกปิดหน้าต่างนีจากนั้นให้สังเกตที่หน้า Desktop จะปรากฏไอคอน Microsoft Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน Windows XP หรือ Windows 2000 ซึ่งแสดงว่าได้ทาการติดตั้ง เสร็จเรียบร้อยแล้ว

โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

โปรแกรมภาษาโลโกเบองตน

การตดตงโปรแกรม MSWLogo 1. น าแผน CD โปรแกรมภาษา MSWLogo ใสในเครองเลน CD-ROM

2. น าเมาสมาคลก 1 ครงทไอคอน My Computer 3. จากนนน าเมาสมาดบเบลคลกทไอคอน CD-ROM

4. จะปรากฏดงรป ในแผน CD นจะม mswlogo ซงจะเปนเวอรชนเดยวกบ mswlogo ทใชกนอยในปจจบน หากระบบปฏบตการของเครองคอมพวเตอรเปน Windows ทต ากวา XP เชน Windows 98 หรอ Windows ME ผ

เรยนรสามารถดบเบลคลกท mswlogo เพอตดตงไดเลย ดงรป

5. หากระบบปฏบตการของคอมพวเตอรเปน Windows XP หรอ Windows 2000 ผเรยนรตองตดตงโดยการดบเบล

คลกทไอคอน SetupLogo ดงรป

การตดตงโดยดบเบลคลกทไอคอน SetupLogo ซงเปน BAT file จะด าเนนการตดตง mswlogo และตดตง UserPort ใหโดยอตโนมต UserPort เปนโปรแกรมเปดพอรตใหค าสงตดตอพอรตของโลโกสามารถใชงานเพอ

ตดตอกบพอรตของคอมพวเตอรได บน Windows XP และ Windows 2000

6. จะปรากฏหนาตางดงรป

7. จากนนกจะขนหนาตาง ใหคลกทปม Next ไปเรอย ๆ จนกวาเครอง

จะลงโปรแกรมเสรจ 8. เมอเสรจแลวจะกลบมาสหนาตาง CD-ROM ใหคลกปดหนาตางน

จากนนใหสงเกตทหนา Desktop จะปรากฏไอคอน Microsoft Windows Logo และไอคอน UserPort ดวยในกรณตดตงบน

Windows XP หรอ Windows 2000 ซงแสดงวาไดท าการตดตง

เสรจเรยบรอยแลว

Page 2: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

9. ในกรณมไอคอน UserPort ปรากฏอย กอนจะใชงานใหน าเมาสมาคลก 1 ครงทไอคอน UserPort ซงเมอ

หลงจากทคลกแลวกจะปรากฏหนาตางดงรป ใหยอหนาตางน แลวคอยเรยกโปรแกรม Microsoft Windows Logo ขนมาใชงาน

สวนประกอบของโปรแกรม MSWLogo 32

ภาพท 1.3 ภาพแสดงสวนประกอบของโปรแกรม

หนาจอหลก แสดงผลแบบกราฟฟกสของโปรแกรมภาษาโลโก

สวนทแสดงค าสงและผลของค าสง (Re-Call Box)

สวนทไวปอนค าสง (Input Box)

สวนหวโปรแกรม (Title Bar)

แถบค าสง ( Menu Bar)

เตา (Turtle)

ปมค าสง (Command Buttons)

Page 3: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

แนะน าสวนประกอบของโปรแกรม จากรปภาพสวนประกอบของโปรแกรมมอยหลายสวน เรมจากสวนบนสด

เรยกวา สวนหวของโปรแกรม (Title Bar) จะเปนสวนแสดงชอโปรแกรมซงผใชสามารถใชสวนนเพอท าการยอขยายหนาตาง และค าการเคลอนยายหนาตางไปตามต าแหนงทตองการ

ล าดบท 2 จะเปนสวนแถบค าสง (Menu Bar) จะเปนแถบรายการค าสงเพอความสะดวกในการท างานตาง ๆ

ภาพท 1.4 ภาพแสดงเมน File

เมน File จะมรายการ

New เพอท าการเปดแฟมขอมลเพอท างานใหม

Load ใชส าหรบเปดแฟมขอมลเกาเพอน ามาใชงานหรอแกไขตอ Save ใชเพอบนทกแฟมในหนวยความจ าลงสแฟมขอมลเกาทตงไว

SaveAs ใชเพอบนทกลงในแฟมขอมลทตงขนใหมหรอยานไปลงสแฟมขอมลใหม Edit ใชเพอท าการบนทกและแกไขชดค าสง ในการท างานโดยเปรยบเสมอนโปรแกรม หรอชดค าสงยอยซงในสวน

นเหมอนกบโปรแกรม Editor ทว ๆไป

Erase ใชเพอลบค าสงยอยทไมตองการออกจากแฟมขอมลหรอหนวยความจ า Exit ใชเพอออกจากโปรแกรมภาษาโลโก

ภาพท 1.5 ภาพแสดงเมน Bitmap

เมน Bitmap ใชส าหรบจดการรปภาพทอยในแฟม หรอทอยบนพนทท างานในหนาจอหลกของภาษาโลโก โดยอาจจะท า

การบนทกรปหนาจอลงภาพ หรอวา เรยกรปภาพจากแฟมขอมลขนมาใช

Page 4: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ภาพท 1.6 ภาพแสดงเมน Set

เมน Set ใชส าหรบการปรบแตงองคประกอบของโปรแกรมโดยใช

PenSize ใชส าหรบขนาดปากกาทท าการลากเสนบนจอภาพ

Label Font ใชปรบชอตวอกษรและขนาดตวอกษรเวลาพมพ ลงบนจอภาพ Commander Font ใชส าหรบปรบขนาดและประเภทตวอกษรทพมพ ลงในชองปอนชดค าสง

Pen Color ใชส าหรบปรบสของเสนทจะลากหรอวาดบนจอภาพ Flood Color ใชส าหรบปรบสพนหลงของจอภาพพนทท างาน แตจ าเปนตองใชค าสงเทสดวย และจะท าการเท

สลงในพนทปดคลายกบโปรแกรม Paint

Screen Color ใชปรบสพนหลงของหนาจอหลกของโปรแกรมภาษาโลโก

ภาพท 1.7 ภาพเมน Zoom

เมน Zoom ใชส าหรบยอและขยายขนาดภาพบนหนาจอหลกของโปรแกรมภาษาโลโก

In เปนการขยายเขาใหใหญขน Out เปนการยอขนาดภาพใหเลกลง

Normal เปนการสงใหปรบเปนขนาดมาตรฐาน

Page 5: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ภาพท 1.8 ภาพเมน Help

เมน Help ใชเพอสนบสนนการใชงานภาษาโลโก เชน Index เปนสารบญตวอยางค าสงเพอใหคนค าอธบาย ชดค าสงพรอมตวอยาง Demo เปนตวอยางโปรแกรมทเขยนไวให

ในภาษาโลโกน เราจะเหนรปสามเหลยมตรงกลางบนพนทของหนาจอหลกของโปรแกรมนน เดมทใน MSWLOGO เวอรชนแรก ๆจะเปนรปเตา แตในเวอรชนใหมกลายเปนรปสามเหลยม แตเรากยงเรยกสามเหลยมสวนนวา

"เตา" ในพนทบรเวณน โลโกจะใชเปนพนทแสดงผลทางกราฟฟกส ดงนนผลของการวาดรป ลากเสน และการโหลดภาพ

จากไฟลทเปนรปภาพตาง ๆ จะแสดงบรเวณพนทของหนาจอหลก

อกสวนหนงทอยดานลาง คอหนาตาง Commander แบงออกเปน 3 สวนคอ Input Box คอพนทบรรทดเดยวดานลางใชปอนค าสงเขาไปทละบรรทด

Re-Call Box คอพนทดานบนของ Input Box โดยพนทตรงนจะใชแสดงค าสงทโปรแกรมประมวลผลไปแลว พรอมกบ

แสดงผลของค าสงทเปนผลทางคณตศาสตร และผลของคารจสเตอรตาง ๆ ผเรยนสามารถใชเมาสไปคลก หรอ กด Tab ไปทค าสงเดมทประมวลผลไปแลวมาใชใหมได กจะปรากฏใน Input Box ท าใหไม

ตองพมพใหม

Command Buttons คอกลมของปมค าสงมรายละเอยดดงน

Halt ใชหยดการท างานของโปรแกรมขณะทก าลงท างานตามค าสงอยอยางไมมเงอนไข Trace ใชแสดงค าสงแตละบรรทดบนพนทของ Re-Call Box ขณะทท าการประมวลค าสงในสวนปลกยอยไป

จนครบทงหมด เมอคลกทหนงแลวกจะม Untrace ซงกจะตรงกนขาม Trace คอจะไมเหนการประมวลค าสงในแตละบรรทด

Pause ใชหยดการท างานของโปรแกรมเชนกนแตเปนแบบชวคราว

Status ใชดสถานะของโปรแกรม หลง จากคลกปมนไปแลว ปมจะแสดงเปน UnStatus แทนทซงเปนค าสงตรงกนขามกน

Step ใชสงท างานอยางเปนขนตอน ม UnStep เปนค าสงตรงกนขามกน Reset ใชเซตการท างานทงหมดใหมสภาพเรมการท างานใหม

Execute เปนค าสงใหโปรแกรมเรมท างาน ซงใหผลเชนเดยวกนกบการกดปม Enter

Edall หมายถง Edit All เปนปมส าหรบตองการเขาไปแกไขโปรแกรมในไฟลทเราสรางขนมา โดยจะแสดงทกโปรแกรมทมอยในไฟลนน ๆ ซงจะใหผลเชนเดยวกบการเขาเมน Edit แลว ตามดวย All

แบบฝกหดบทท 1 1. ใหผเรยนท าแบบฝกหดดงน

1.1 ใหผเรยนทดลองตดตงโปรแกรมภาษาโลโก

1.2 ใหผเรยนทดลองเรยกโปรแกรมภาษาโลโกแลวทดลองใชแถบค าสง (Menu Bar) 1.3 ใหผเรยนไปยงแถบค าสง Help แลวเรยกเมน Index ทอยในค าสง Help หลงจากนน ใหผเรยนทดลองเรยก

ค าสงตาง ๆ มาทดลองใชด

Page 6: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ค าสงพนฐานภาษาโลโก

กลมค าสงเกยวกบปากกาและการเคลอนทของเตา

ค าสงพนฐานทแสดงผลลพธบนหนาจอแสดงผลหลกทเปนกราฟฟกส เชน FD, RT, LT, BK, PU, PD ฯลฯ fd หรอ forward หมายถงการลากเสนเดนไปขางหนา มรปแบบค าสงดงตอไปน

fd ระยะในการเดน เชน fd 100 หมายถงเดนไปขางหนา 100 กาว ผลกคอ เราจะเหนรปสามเหลยมเลอนขนไป

ขางบนเปนเสนตรงตามระยะทเราก าหนดดงรป จรง ๆ แลว 100 กาวคอ 100 จดพกเซลของจอภาพนนเอง

ภาพท 2.1 ภาพแสดงผลการท างานของค าสงการเดนไปขางหนา

จากตวอยางดงกลาวสามารถทจะพมพค าสงอยางเตมหรอวาค าสงอยางยอกจะแสดงผลลพธเหมอนกน ใหท าการ

ทดสอบพมพ forward 100 หรอ fd 100 เพอเทยบผลทแสดงบนจอภาพ

bk หรอ back คอการเดนถอยหลง รปแบบค าสงเปนดงน

bk ระยะในการเดน เชน bk 50 คอการถอยหลง 50 กาว เตาจะเดนถอยหลงทบเสนทางเดมเปนระยะทาง 50 กาว rt หรอ right คอการเลยวขวา รปแบบค าสงเปนดงน

rt องศาในการเลยว เชน rt 90 หมายถงเลยวขวาเปนมม 90 องศา ใหสงเกตวาเตาจะเพยงแตหนหว ถาจะใหเดนตองเพมค าสงอน ๆ ลงไปหลงจากน

lt หรอ left คอการเลยวซาย รปแบบค าสงเปนดงน lt องศาในการเลยว เชน lt 90 หมายถงเลยวซายเปนมม 90 องศา จะใหผลคลาย ๆ กบ rt แตจะหมนวนไปทางซาย

จ าไวเสมอวาในภาษาโลโก ค าสงและคาทใส

ตอจากค าสงนนๆ จะตองมวรรคคนกลางเสมอ

Page 7: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ค าสง circle คอการวาดรปวงกลม มรปแบบค าสงดงน circle รศมของวงกลม เชน circle 50 หมายถงวาดรปวงกลมทมรศมเทากบ 50

ตวอยางค าสง

Circle 50

ภาพท 2.2 ภาพแสดงผลการท างานของค าสง circle 50

ค าสง ellipse คอค าสงวาดรปวงร มรปแบบค าสงดงน

ellipse เสนผาศนยกลางแนวตง เสนผาศนยกลางแนวนอน เชน ellipse 30 70 จะไดรปวงรทมเสนผาศนยกลางในแนวตงเทากบ 30 และม

ผาศนยกลางในแนวนอนเทากบ 70

ค าสง arc คอค าสงในการวาดเสนโคง มรปแบบค าสงดงน arc มมของเสนโคง รศมของเสนโคง เชน arc 180 100 ผลคอจะไดเสนโคงทมรศม 100 และถกลากออกไปเปน

มม 90 องศา ตวอยาง ค าสง

Arc 180 100

ภาพท 2.3 ภาพแสดงผลการท างานของค าสง arc 180 100

Ø แนวนอน

Ø แนวตง

Page 8: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ค าสง pu หรอ penup คอค าสงยกปากกา รปแบบค าสงเพยงพมพค าวา pu จากนนเมอมการใชค าสงอน ๆ ตอไปเรา

จะไมเหนเสนทเกดขนจากการลาก หรอวาดอกเลย

ค าสง pd หรอ pendown คอค าสงวางปากกาหรอ จรดปากกาลง เพอใหเหนเส นในการใชค าสงอน ๆ เพอลากหรอวาดเสนตอไป

ค าสง cs หรอ clearscreen คอค าสงลางหนาจอบรเวณหนาจอหลก ผลของค าสงคอ จะลบทกอยางบนหนาจอหลก แลวรปสามเหลยมหรอเตาจะกลบมาอยต าแหนงเรมตนเสมอ

ตวอยาง ค าสง pu pd cs

Cs

Fd 100 Rt 90

Pu Fd 50

Pd

Fd 50 Rt 90

Fd 100 Rt 90

Fd 50 Rt 90

Fd 100

Pu Home

ภาพท 2.4 ภาพแสดงผลการท างานของค าสง pu pd cs

ค าสง clean คอค าสงลางหนาจอบรเวณหนาจอหลก เชนเดยวกนกบ clearscreen เพยงแตหลงจากใชค าสง clean แลว

รปสามเหลยมหรอเตาจะอยกบท ณ ต าแหนงทมนอยในปจจบน ไมกลบไปเรมตนทจดเรมตนอก

ค าสง cleartext คอค าสงลางขอมลบรเวณหนาตางของ Commander รปแบบค าสงเพยงพมพค าวา cleartext แลว Enter กจะสามารถลางขอมลทหนาตาง Commander ไดแลว

Page 9: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ค าสง home คอค าสงทก าหนดใหสามเหลยมหรอเตากลบมาอยทต าแหนงเรมตนเสมอแตจะไมลบใด ๆ เหมอนกบ

clearscreen โดยการใชค าสง home อาจจะตองใชคกบค าสง penup เพอใหการกลบสต าแหนงเร มตนไมมเสนทท าใหเกดการรบกวนภายในหนาจอหลก ทดลองพมพค าสงเปรยบเทยบค าสงระหวางสองชดค าสงดงตอไปน

ชดค าสงท 1 ชดค าสงท 2

ค าสง pe หรอ penerase คอค าสงส าหรบการลบเสนทเขยนไปแลว โดยการใชค าสง pe แลวตามดวยค าสงอน ๆ ท

ลากเสนเพอทบต าแหนงเสนทตองการลบ เชน

แลวพมพค าสงเพมดงตอไปน

ผลคอท าการลบเสนตามค าสงเดมทงหมด หลงจากนถามค าสงใด ๆ เกยวกบการลากเสน จะไมสามารถมองเหนเสนอก

ถงแมเราจะใชค าสง pd เพอวางปากกากตาม เนองจากค าสงนไมใชค าสง pu

หากตองการใหเหนการลากเสนอกครงตองใชค าสงดงตอไปน

ค าสง ppt หรอ penpaint คอค าสงทตองการใหเหนเสนอกครงหลงจากใชค าสง penerase ไปแลว

ค าสง setpensize คอค าสงในการก าหนดความหนาของลายเสนปากกา มรปแบบค าสงดงน

ค าสง setpensize [ความกวางของเสน ความสงของเสน] แตใน MSWLOGO ความกวางของเสนไมมผลตอขนาดของเสนเลย ดงนนขนาดของเสนปากกาจะอยทการก าหนดขนาดความสงของเสนเปนหลกแต จ าเปนตองใสคาใด ๆไวท

ความกวางของเสนเพอใหเปนไปตามรปแบบของค าสงดวย มฉะนนจะเกดความผดพลาดขน เชน setpensize [1 5]

ตวอยาง ค าสง to bamboo

cs

setpensize [20 20] fd 20 setpensize [18 18] fd 20

setpensize [16 16] fd 20 setpensize [14 14] fd 20

setpensize [12 12] fd 20

setpensize [10 10] fd 20 setpensize [8 8] fd 20

setpensize [6 6] fd 20 setpensize [4 4] fd 20

setpensize [2 2] fd 20 setpensize [1 1] fd 20

End

ภาพท 2.5 ภาพแสดงผลการท างานของโปรแกรม ชอ bamboo

fd 100

rt 90

fd 100 pu

home

fd 100

rt 90

fd 100 home

fd 100 rt 90

fd 100

home

pe fd 100

rt 90

fd 100 home

Page 10: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ค าสง ht หรอ hideturtle คอค าสงซอนสามเหลยมหรอเตานนเอง บางครงในการวาดรปหรอการแสดงผลบนหนาจอ

หลก รปสามเหลยมดงกลาวอาจสรางความร าคาญ เรากสามารถใชค าสง ht เพอซอนไวไมใหเหน

ค าสง st หรอ showturtle คอค าสงแสดงรปสามเหลยมหรอเตานนเอง ค าสง setxy คอค าสงยายสามเหลยมหรอเตาไปยงต าแหนงแกน x และ y ตามทก าหนด มรปแบบค าสงดงน

setxy ต าแหนงแกนx ต าแหนงแกนy โดยใหมองหนาจอหลกถกแบงดวยแกน x และแกน y ดงรป

ภาพท 2.6 ภาพแสดงต าแหนง การใชค าสง setxy

โดยปกตรปสามเหลยมหรอเตาจะเรมตนทแกน x = 0 และแกน y = 0 (0,0) แกน x จะมระยะออกไปทงแกนทางบวกและทางลบขางละ 500 จด นนคอ -500 จนถง +500 ขณะเดยวกนแกน y กจะมระยะจากจดต าสดจนถงจดสงทสด -500

จนถง +500 เชนเดยวกน

ตวอยางค าสงเชน

Example (draw a sine wave):

repeat 360 [setxy repcount 100*sin repcount]

ภาพท 2.7 กอนการใชค าสง setxy

-x x

-y

y

Page 11: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ภาพท 2.8 ใชค าสง setxy จาก ตวอยาง (draw a sine wave):

repeat 360 [setxy repcount 100*sin repcount] ค าสง setx คอค าสงในการเคลอนทเตาไปในแนวแกน x โดยไมสนในแกน y มรปแบบดงน

setx ต าแหนงแกนx ซงคาแกน x จะมระยะจากจดเรมตนไปทางซายสงสด = -500 และสามารถไปทางขวา สงสด = 500 เชน setx -300 คอการเลอนเตาไปตามแกนx = -300 กาว

ค าสง sety คอค าสงในการเคลอนทเตาไปในแนวแกน y โดยไมสนในแกน x มรปแบบดงน sety ต าแหนงแกนy ซงคาแกนy จะมระยะจากจดเรมตนไปทางดานลางตามแนวแกนy สงสด = -500 และสามารถ

ไปทางดานบนตามแนวแกนy สงสด = 500 เชน sety 400 คอการเลอนเตาขนไปดานบนตามแนวแกน y = 400 กาว

กลมค าสงเกยวกบการก าหนดส

ค าสง setpencolor คอค าสงในการก าหนดสของเสนปากกา มรปแบบดงน setpencolor [ แมสแดง แมสเขยว แมสน าเงน] โดยสของเสนปากกาเปนสทเกดจากการผสมสของแมสแดง เขยว

และน าเงน แมสแตละสสามารถก าหนดใหมคาตงแต 0-255 เชน setpencolor [255 255 0] เสนของปากกาจะเปนสทเกดจากกาผสมกนระหวางสแดงกบสเขยวตามน าหนกสทให จากตวอยางจะไดสเหลอง

ตวอยาง ค าสง setpencolor

Home setpencolor [255 255 0]

fd 100

ภาพท 2.9 ใชค าสง setpencolor

setpencolor [255 255 0] fd 100

Page 12: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

อยางไรกตามเพอใหเ กดความสะดวกในการก าหนดสของเสนปากกา ใน MSWLOGO มการก าหนดคาสมาใหแลวพอให

ค าสงสนลง โดยเราอาจจะก าหนดคาสตามตางทก าหนดมาใหเลยแทนการใสค าสงแบบผสมส เชน setpencolor 6 กจะมคาสเชนเดยวกบค าสง setpencolor [255 255 0]

ค าสง setfloodcolor คอค าสงในการก าหนดสทจะเทลงในพนททมกรอบ โดยมรปแบบค าสงดงน

setfloodcolor [แมสแดง แมสเขยว แมสน าเงน] การก าหนดสเปนการก าหนดน าหนกในการผสมแมสเชนเดยวกนกบค าสง setpencolor เพยงแตเปนการก าหนดสทจะเทลงในกรอบทตองการ เชน setfloodcolor [255 0 0] คอ

ก าหนดสเปนสแดงเขม เมอตองการเทลงในกรอบพนทใด ๆ ตองใชค าสงดงตอไปนเพอการเทส

ค าสง fill คอค าสงทใชในการเทสลงในกรอบทตองการ กอนท าการเทส เราตองเลอนสามเหลยมหรอเตาไปอยในกรอบ

พนททเราจะเทสเสยกอนแลวจงพมพค าวา fill มฉะนนสอาจถกเทในพนทอนทเราไมตองการได ตวอยางเชน

ภาพท 2.10 การใชค าสง fill

คาส คาทสงไปจรง คาส คาทสงไปจรง

0 [ 0 0 0] 8 [155 96 59]

1 [ 0 0 255] 9 [197 136 18]

2 [ 0 255 0] 10 [100 162 64]

3 [ 0 255 255] 11 [120 187 187]

4 [255 0 0] 12 [255 149 119]

5 [255 0 255] 13 [144 113 208]

6 [255 255 0] 14 [255 163 0]

7 [255 255 255] 15 [183 183 183]

cs ;ลางหนาจอ

fd 100 rt 90 ; สรางรปสเหลยม fd 100 rt 90

fd 100 rt 90 fd 100 rt 125 ;ใหสามเหลยมหนหนาเขาภายในกรอบ

pu ;ยกปากกาเพอไมใหเกดสน fd 5 ;เดนเขาไปในกรอบสเหลยม

setfloodcolor [255 0 0] ;ก าหนดสทจะเทเปนสแดง

fill ;เทส

setxy [200 0]

Page 13: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ค าสง setscreencolor คอค าสงในการก าหนดสพนหลงของหนาจอหลก โดยมรปแบบค าสงดงน

setscreencolor [แมสแดง แมสเขยว แมสน าเงน] เชน setscreencolor [255 255 0] คอการผสมแสงสแดงกบแสงสเขยวทน าหนกส ๆ 255 จะไดพนหลงของหนาจอหลกเปนสเหลอง

ภาพท 2.11 การใชค าสง setscreencolor

ใหทดลองพมพค าสง ขางลางเพอดผล

to bee setfloodcolor [0 0 0]

repeat 45 [fd 1 lt 8] rt 90 repeat 20 [fd 1 rt 6] rt 25 repeat 25 [fd 1 rt 5]

pu fd 2 lt 90 fd 2 ppt repeat 18 [fd 1 rt 20] pu bk 7

ppt repeat 18 [fd 1 rt 20] pu rt 90 fd 1 fill lt 90 fd 9 fill

pu fd 2 rt 90 fd 6 lt 90 ppt repeat 12 [fd 1 rt 9] rt 40 repeat 25 [fd 1 rt 4] lt 110

repeat 20 [fd 1 rt 4] repeat 10 [fd 1 rt 10]

rt 30 repeat 12 [fd 1 rt 1] lt 100 repeat 22 [fd 1 rt 6]

pu rt 80 fd 3 lt 105 ppt repeat 18 [lt 6 bk 1] pu fd 5 ppt

end

to beel setfloodcolor [0 0 0]

repeat 45 [fd 1 rt 8] lt 90 repeat 20 [fd 1 lt 6] lt 25 repeat 25 [fd 1 lt 5]

pu fd 2 rt 90 fd 2 ppt repeat 18 [fd 1 lt 20] pu bk 7

ppt repeat 18 [fd 1 lt 20] pu lt 90 fd 1 fill rt 90 fd 9 fill

pu fd 2 lt 90 fd 6 rt 90 ppt repeat 12 [fd 1 lt 9] lt 40 repeat 25 [fd 1 lt 4] rt 110

repeat 20 [fd 1 lt 4] repeat 10 [fd 1 lt 10]

lt 30 repeat 12 [fd 1 lt 1] rt 100 repeat 22 [fd 1 lt 6]

pu lt 80 fd 3 rt 105 ppt repeat 18 [rt 6 bk 1] pu fd 5 ppt

end

Page 14: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

to flower cs repeat 5 [ppt ellipsearc 218 50 50 125 pu fd 60 rt 72]

bk 100 rt 90 ppt ellipsearc 90 155 65 125 lt 90 pu bk 90 rt 90 ppt repeat 2 [fd 105 rt 90 fd 5 rt 90]

lt 90 bk 10 lt 90 bk 10 rt 90 bk 45 rt 90 fd 85 lt 90 fd 45 rt 90 fd 10 lt 90 fd 10

end

to flower1

cs ht setfloodcolor [255 255 255] ppt repeat 5 [repeat 2 [repeat 50 [ fd 2 rt 2] rt 80] rt 10 fd 5 setfloodcolor [255 0 0] fill bk 5

rt 15 fd 15 fill bk 15 rt 47]

rt 150 repeat 40 [fd 5 rt 1] rt 80 fd 40

repeat 2 [lt 90 fd 5 lt 90 fd 80] lt 90 fd 5 lt 90 fd 10

rt 90 fd 40 lt 90 fd 60 lt 90 fd 40

setfloodcolor [0 0 0] pu lt 100 fd 25 fill

rt 100 fd 8 fill fd 45 lt 115 ppt

repeat 2 [repeat 50 [fd 2 rt 2] rt 80] rt 115 pu bk 10 rt 15 ppt

repeat 2 [repeat 50 [fd 2 rt 2] rt 80]

pu rt 10 fd 10 setfloodcolor [0 255 0] fill bk 10 lt 35 fd 10 lt 70 fd 20 fill

pu home fd 100 ppt bee fill pu home rt 90 fd 100 lt 90 fd 40 ppt bee fill

pu home lt 90 fd 100 rt 90 ppt beel fill

ht

end

ภาพท 2.12 ภาพแสดงผลการวาดรปดอกไมดวยภาษาโลโก

Page 15: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

การเขยนโปรแกรมโดยใช Editor

จากการทดลองค าสงตาง ๆ ทผานมาเราจะพบวาการพมพค าสงทละบรรทดเรมสรางปญหาใหเราในกรณทมค าสงหลาย ๆ ค าสงรวมกนเพอใหไดผลตามทเราตองการ มความผดพลาดง าย หาจดทตองแกไขยาก และไมสามารถน า

กลบมาใชใหมได ดงนนใน MSWLOGO จงมหนาตางทเราสามารถเขยนค าสงไดอยางงาย สะดวก และเรยกกลบมาใชไดตลอดเวลานนคอการเขยนโปรแกรมแบบเปนขนตอน (Procedure) โดยใช Editor

ดวยการคลกเมาสทเมน File แลวเลอนแถบแสงเลอกเมน Edit แลวคลก ดงรป

ภาพท 2.13 การคลกเมาสทเมน File แลวเลอนแถบแสงเลอกเมน Edit

เมอเขาไปท Edit จะมหนาจอใหพมพชอโปรแกรมทเราตองการสราง

ภาพท 2.14 ไปท Edit จะมหนาจอใหพมพชอโปรแกรมทเราตองการสราง

การตงชอโปรแกรมมขอก าหนดดงนคอ ชอโปรแกรมตองเปนภาษาองกฤษเทานน

ชอจะตองไมมวรรคในชอ

ชอจะตองมตวพยญชนะอยดวยเสมอ ไมสามารถตงชอทมแตตวเลขเพยงอยางเดยว ชอจะตองไมตรงกบฟงกชน หรอค าสงหลกของโลโก

เมอตงชอไดแลว กท าการคลกท OK จะมหนาตางของโปรแกรม Editor ขนมาใหเขยนโปรแกรมทตองการลงไป

Page 16: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ภาพท 2.15 แสดงหนาตาง Editor

จากรปขางบนน แสดงหนาตาง Editor ทมชอโปรแกรมทตงไว โดยช อโปรแกรมจะอยหลง to และปดทาย

โปรแกรมดวย end เสมอ การเขยนค าสงตาง ๆ จะตองเขยนใสไวระหวาง to และ end ดงตอไปน

ภาพท 2.16 แสดงการเขยนค าสงลงในโปรแกรม Editor

เมอเขยนโปรแกรมเสรจแลวตองท าการเกบไวใน Memory แบบชวคราวแลวออกจากหนาจอ Editor ดวยการเลอกเมน Save and Exit ดงรปตอไปน

ภาพท 2.17 แสดงการ save ค าสงลงในโปรแกรม Editor

Page 17: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

เมอท าการ Save and Exit แลว จะกลบออกมาสหนาจอหลกจากนนใหพมพชอโปรแกรมทเราเขยนไวทชองปอนค าสง ดงรป

ภาพท 2.18 แสดงพมพชอโปรแกรมทเราเขยนไวทชองปอนค าสง

จากนนท าการ Run โปรแกรมทเราเขยนไวดวยการกด Enter หรอใชเมาสคลกทปม Execute โปรแกรมกจะท างานตามขนตอนทเราเขยนไวตงแตตนจนจบ โปรแกรมตวอยางนเปนโปรแกรมวาดรปสเหลยมจตรสใหผลดงรป

ภาพท 2.19 แสดงโปรแกรมทเราเขยนไว

การบนทกดวยเมน Save and Exit เปนการบนทกเพอใชงานชวคราวเทานนเมอปดโปรแกรม MSWLOGO ลง

แลวเปดใหม เราจะพบวาโปรแกรมทเราสรางไวใน Editor หายไปทงหมด หากตองการเกบไวอยางถาวรจะตองท าการ

บนทกทตวโปรแกรมหลกอกครงดงภาพขางลาง

ภาพท 2.20 การใชค าสง SaveAs

Page 18: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

เมอเลอกคลกท Save As จะไดหนาตางเพอใหเลอกต าแหนงปลายทางทจะบนทกในชอง Save in และตงชอแฟมในช อง File name แลวคลกทปม Save เพอยนยนการบนทก

ภาพท 2.21 การใชค าสง SaveAs

ขอสงเกต ผเขยนตงชอไฟลเปน bamboo ขณะท ชอโปรแกรมทเราสรางไวท Editor ชอ bamboo1 นนหมายถงชอไฟลท

เราเกบไมจ า เปนตองมชอเหมอนกบชอโปรแกรมทเราเขยนไว ขณะเดยวกนไฟลหนงไฟลอาจจะมหลายโปรแกรมอย

ภายใน เชน ผเขยนอาจจะสรางโปรแกรมเพมเตมชอ bamboo2 , bamboo3 และอน ๆ เพอใ หท างานรวมกบโปรแกรม bamboo1 แลวเกบไวในไฟลเดมชอ bamboo ได คราวนโปรแกรมของเราจะถกเกบไวอยางถาวร ถงแมจะมการปดการใช

งาน MSWLOGO ไปแลว เมอตองการเรยกโปรแกรมมาใชงานกเพยงแตเขาโปรแกรม MSWLOGO อกครงหนง แลวเลอกเมน Load ดงรป

ภาพท 2.22 การใชค าสง Load

เมอคลกทเมน Load จะเปนการดงไฟลทเกบไวมาใช โดยแสดงไฟลทมนามสกล .lgo ดงรปขางลางน จากนนเลอก

ไฟลทตองการ ในทนคอ ไฟลชอ bamboo คลกเมาสทปม Open กจะไดไฟลดงกลาวไปใชงานตอไป

Page 19: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ภาพท 2.23 การใชค าสง Load

ใหผเรยนคยตวอยางโปรแกรม ขางลาง

ตวอยางท 1 : โปรแกรมสรางรป 5 เหลยม (ควรสรางไวทหนาตางของ Editor)

to 5Angle fd 100 rt 72

fd 100 rt 72 fd 100 rt 72

fd 100 rt 72

fd 100 end

ตวอยางท 2 : โปรแกรมสรางรป 5 เหลยมหลายรปตอกน

to 5Angles

fd 100 rt 72 fd 100 rt 72 fd 100 rt 72 fd 100 rt 72 fd 100 fd 100 rt 72 fd 100 rt 72 fd 100 rt 72 fd 100 rt 72 fd 100

fd 100 rt 72 fd 100 rt 72 fd 100 rt 72 fd 100 rt 72 fd 100

fd 100 rt 72 fd 100 rt 72 fd 100 rt 72 fd 100 rt 72 fd 100 fd 100 rt 72 fd 100 rt 72 fd 100 rt 72 fd 100 rt 72 fd 100

end

ผลทได

ผลทได

Page 20: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ตวอยางท 3 : โปรแกรมสรางรปวงรซอนกนหลายรป

to wow

ellipse 30 200 rt 15 ellipse 30 200 rt 15

ellipse 30 200 rt 15

ellipse 30 200 rt 15 ellipse 30 200 rt 15

ellipse 30 200 rt 15 ellipse 30 200 rt 15

ellipse 30 200 rt 15 ellipse 30 200 rt 15

ellipse 30 200 rt 15

ellipse 30 200 rt 15 ellipse 30 200 rt 15

ellipse 30 200 rt 15 ellipse 30 200 rt 15

ellipse 30 200 rt 15

ellipse 30 200 rt 15 ellipse 30 200 rt 15

ellipse 30 200 rt 15 ellipse 30 200 rt 15

ellipse 30 200 rt 15 ellipse 30 200 rt 15

ellipse 30 200 rt 15

ellipse 30 200 rt 15 ellipse 30 200 rt 15

end

กลมค าสงเกยวกบการท างานโดยทวไป ในภาษาโลโก ยงมค าสงอนๆ อกมากมายทจะชวยใหเขยนโปรแกรมเปนไปอยางมประสทธภาพ และใชงาน

โปรแกรมไดอยางหลากหลาย ดงตอไปน

repeat เปนค าสงทตองการท าสงใดๆ ซ าตามจ านวนรอบทก าหนดไว โดยมรปแบบค าสงด งน

repeat จ านวนรอบ [ สงทตองการท าซ า ] เชน repeat 4 [ fd 100 rt 90 ] ผลกคอจะไดรปสเหลยม โดยค าสง repeat สามารถชวยลดจ านวนบรรทดของการเขยนโปรแกรมได ชวยใหโปรแกรมมความสนกระชบ

ผลทได

fd 100 rt 90 fd 100 rt 90

fd 100 rt 90

fd 100 rt 90

repeat 4 [ fd 100 rt 90 ] ลดรป

Page 21: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

จากตวอยางท 3 เราสามารถลดรปของโปรแกรมใหสนลงดวยค าสง repeat ซงจะไดผลออกมาเชนเดยวกนดงน

to wow

repeat 24 [ ellipse 30 200 rt 15] end

wait คอค าสงเพอหนวงเวลาใหโปรแกรมแสดงผลตามระยะเวลาทเราก าหนด มรปแบบค าสงดงน wait ระยะเวลาในการหนวง โดยระยะเวลาในการหนวงถกก าหนดมาวา 60 = 1 วนาท เชน wait 120 ผลของ

โปรแกรมจะเกดการหนวงเวลา 2 วนาท

จากตวอยางท 1 เมอเราท าการ Run โปรแกรม เราจะไดรป 5 เหลยมทนท โดยไมทนเหนการวงลากเสนของรป

สามเหลยมหรอเตาเนองจากคอมพว เตอรท างานดวยความเรวสง ดงนนหากตองการเหนการลากเสนของเตา เราตองใชค าสง wait เขามาชวย ดงน

ตวอยางทใช wait รวมกบ repeat

ตวอยางทใช wait

เราจะเหนเตาวงทละ 100 กาวแลวหมน 72 องศา อยางชดเจน

make คอการก าหนดคาใหตวแปร เพอประโยชนในการกระท าทางคณตศาสตร การอางองคา และการเปรยบเทยบ

โดยมรปแบบดงน make “ตวแปร คาตวแปร เชน make “x 25 คอการก าหนดใหตวแปรชอ x มคาเทากบ 25

คาของตวแปรมอย 3 ชนด โดยมรปแบบการก าหนดท

แตกตางกนออกไปดงน

1. ตวแปรแบบตวเลขจ านวนเตม (Integer) การก าหนดคาหลงตวแปรเพยงใสคาของเลขจ านวนเตมลงไปโดยไมม

สญลกษณใด ๆ ตดอยดวย เชน make “bamboo 100 นนคอตวแปรชอ bamboo มคาเทากบ 100

2. ตวแปรแบบค าพด (word) คอตวแปรทมลกษณะ

เปนตวเลขหรอพยญชนะรวมกนเปนค า ๆ โดยไมมวรรค แบงระหวางพยญชนะ การก าหนดคาหลงตวแปรตองม

เครองหมายฟนหน ( “ ) ตดอยกบคาของมนเชนกน เชน make “project “groups นนคอตวแปรชอ

project มค าวา groups อยภายใน 3. ตวแปรแบบประโยคค าพด (list) คอตวแปรทน าประโยคค าพดมาเรยงตอกนโดยมวรรคแบงระหวาง word การ

ก าหนดคาหลงตวแปร จะตองมเครองหมายกามป [ ] ครอมคาตวแปรทงหมด เชน make “y [Hi how are you ?]

ผลทไดคอตวแปรชอ y มประโยคค าวา Hi how are you ? อยภายใน สงเกตวาประโยคดงกลาวจะม word อย 5 ชด ดวยกนโดยมวรรคคน

ผลทได

to 5Angless

fd 100 wait 40 rt 72 wait 40 fd 100 wait 40 rt 72 wait 40

fd 100 wait 40 rt 72 wait 40 fd 100 wait 40 rt 72 wait 40

fd 100 end

to 5Anglesss

repeat 4 [fd 100 wait 40 rt 72 wait 40] fd 100

end

จงจ าไวเสมอวาการ make ตวแปรชอตว

แปร จะตองม

เครองหมา ยฟนหน ( “ ) ตดอยกบตว

แปรเสมอ

Page 22: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

show เปนค าสงเพอแสดงผลออกทางหนาตางของ Commander บรเวณ Re-Call Box โดยสวนมากจะแสดงผลคาของ

ตวแปร ผลทางคณตศาสตร ผลทางตรรกศาสตร โดยมรปแบบค าสงดงน show คาทตองการแสดงออก โดยคาทจะแสดงออกทางหนาตาง Commander นมลกษณะเชนเดยวกบการก าหนด

ตวแปร คอคาทเปน ค าพด (word) คาทเปน ประโยคค าพด (list) และคาในตวแปร เชน show “Thailand ผลทหนาตาง Commander จะแสดงค าวา Thailand

show [Good Morning Thailand] ผลทหนาตาง Commander จะแสดงค าวา [Good Morning Thailand]

make “x “bamboo show :x ผลทหนาตาง Commander จะแสดงค าวา bamboo

print เปนค าสงทใหผลเชนเดยวกบ show แตการแสดงผลคาแบบ ประโยคค าพดจะน าเอาเฉพาะคาภายในวงเลบกามปออกมาแสดงเทานน ตางจาก show ทแสดงเครองหมายวงเลบ

กามปตดมาดวย เชน

print [Are you OK ?] ผลทแสดงออกมาคอ Are you OK ?

show [Are you OK ?] ผลทแสดงออกมาคอ [Are you OK ?]

Label เปนค าสงเพอแสดงผลออกทางหนาจอหลก จะมลกษณะค าสงคลายกบ show และ print เพยงแตแสดงผลบรเวณ

หนาจอหลก (กราฟฟกส) ทศทางของการแสดงผลจะขนอยกบทศทางของเตา เชน

rt 90

label [Hello… Are you happy?]

จะไดผลดงรปตอไปน

ภาพท 2.24 การใชค าสง Label

การกระท าใดๆกบตวแปร จะตองมเครองหมายโคลอน ( : ) ตดกบตวแปรเสมอ ยกเวนการ make ตวแปรเทานนทใชฟนหน ( “ )

Page 23: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

เราสามารถก าหนดขนาดของตวอกษรทจะแสดงรวมสของตวอกษรได โดยการก าหนดทเมนดงรปตอไปน

เลอกเมน Set แลวเลอนแถบแสงไปท

Label Font… แลวคลก จะปรากฏเมนใหมใหก าหนดชนดของตวอกษร และ

ขนาดของตวอกษร

เมอปรากฏเมนใหมดงรป เรากจะสามารถเลอกชนด และขนาดของตวอกษร แลว

คลกทปม OK

สวนสของตวอกษรสามารถก าหนดทสของปากกา ดงรป

เมอเลอกสของปากกากคอการเลอกสของตวอกษรทจะ label นนเอง แลวคลก

random คอค าสงสมคาจากขอบเขตทก าหนด มรปแบบค าสงดงน

random ขอบเขตของคาทตองการสม โดยค าสง random จะตองใชรวมกบค าสงอนเพอแสดงผล เชน

show random 10 คอการสมคาออกมาแสดงจากตวเลขจ านวนเตมจาก 0 – 10

repeat 20 [show random 100 ] คอการสมแสดงคาตวเลขภายในขอบเขต 0 – 100 จ านวน 20 คา

Page 24: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

กลมค าสงเกยวกบการสรางเสยง

soundon คอค าสงในการแสดงเสยงออกทางล าโพงของคอมพวเตอร มรปแบบดงน soundon ความถเสยง โดยความถเสยงมหนวยเปนเฮรซ (Hz) มคาตงแต 20 Hz – 2000 Hz แตล าโพงของ

คอมพวเตอร สามารถตอบสนองความถไดดเพยงตงแต 200 Hz – 4000 Hz เทานน หากใชคาต าหรอมากกวาน จะไดยนเสยงเบามากจนถงไมไดยนเลย เชน soundon 1500 จะใหผลเปนเสยงออกทางล าโพงของคอมพวเตอรทความถ 1500

Hz

soundoff คอค าสงในการหยดเสยงหลงจากสง soundon ออกไปแลว รปแบบค าสงเพยงพมพค าวา soundoff แลว Enter เสยงกจะหยดดงทนท

sound คอค าสงในการแสดงเสยงทคลายกบ soundon เพยงแตมการก าหนดความยาวนานลงไปดวยเพอใหหยดแสดงเสยงหลงจากถงเวลาทก าหนดโดยไมตองใชค าสง soundoff หลงจากน โดยมรปแบบดงน

sound [ความถเสยง ความยาวนาน] โดยความถเสยงมหนวยเปนเฮรซ (Hz) มคาตงแต 20 Hz – 2000 Hz แตล าโพงของคอมพวเตอร สามารถตอบสนองความถไดดเพยงตงแต 200 Hz – 4000 Hz เทานน หากใชคาต าหรอมากกวา

น จะไดยนเสยงเบามากจนถงไมไดยนเลย สวนคาความยาวนานมไมแนนอนขนอยกบความเรวของคอมพวเตอรเครอง

นน ๆ ตวอยางเชน sound [2000 1000] ไดมการก าหนดความถมาตรฐานเพอสรางเสยงตามโนตดนตรไวแลวดงตารางตอไปน

ตวโนต ความถ ตวโนต ความถ ตวโนต ความถ

C (โด) 262 C (โด) 523 C (โด) 1047

C# 277 C# 554 C# 1109

D (เร) 294 D (เร) 587 D (เร) 1175

D# 311 D# 622 D# 1245

E (ม) 330 E (ม) 659 E (ม) 1319

F (ฟา) 349 F (ฟา) 698 F (ฟา) 1397

F# 370 F# 740 F# 1480

G (ซอล) 392 G (ซอล) 748 G (ซอล) 1568

G# 415 G# 831 G# 1661

A (ลา) 440 A (ลา) 880 A (ลา) 1760

A# 466 A# 932 A# 1865

B (ท) 494 B (ท) 988 B (ท) 1975

ดงนนหากผเรยนมความรทางดานดนตร กจะสามารถสรางเพลงดวยค าสง sound นไดอยางไมยากเยน playwave คอค าสงเกยวกบเสยงอกชนดหนง แตเปนการแสดงเสยงออกทางการดเสยงของคอมพวเตอร (Sound Card)

ดงนนเครองคอมพวเตอรทม sound card และมล าโพงทต อกบ sound card เทานนทแสดงผลของค าสงนได โดยม

รปแบบค าสงดงน playwave “ต าแหนงทมไฟลเสยงทมนามสกล .wavอย flag เชน playwave “c:\\windows\\bird.wav 1

ไฟลเสยงชนดนเราสามารถหาไดหรอสรางขนมาไดงาย ๆ เชนจากการใช Voice Recorder ทมใน Windows ทก ๆ เวอรชน

flag เปนคาตวเลขทตองใสเพอควบคมลกษณะการเลนของเสยง โดยมคาดงน

0 : การเลนไฟลเสยงจะไมหยด และคอมพวเตอรจะไมตอบสนอง คยบอรด และ เมาส หรอค าสงอนใด

เลย จนกวา จะเลนไฟลเสยงเสรจสน 1 : คอมพวเตอรสามารถตอบสนอง คยบอรด เมาส และค าสงอน ๆ ไดขณะทเลนไฟลเสยงน

2 : ไมมใช

4 : ไมมใช 8 : เปนการเลนเสยงซ าอยางตอเนอง โดยจะตองมการใชงานรวมกบ flag 1 โดยการใสเครองหมาย +

รวม เขาไป เชน playwave “c:\\windows\\bird.wav 8+1 ท าใหการเลนไฟล bird.wav จะเลนวนซ าแลวซ าเลา จนกวาจะเลนไฟลเสยงใหมเขามา โดยขณะทเลนไฟลเสยงอยน เรา กยงคงสามารถ

ใชคยบอรด เมาส และค าสงอนใดตอไปได เพราะม flag 1 ก ากบอย 16 : จะคลายกบการใช flag 0 คอเลนไฟลเสยงจนเสรจ สนจงจะรบค าสงใหมได แตหากเราก าหนด flag

1 รวมลงไปในค าสง จะท าให คอมพวเตอรสามารถตอบสนองคยบอรด เมาส และค าสงอน ๆได เชน

“c:\\windows\\bird.wav 1 6+1 ขอแตกตางระหวาง flag 1 กบ flag 16+1 คอ ขณะทเราก ากบดวย flag 1 ถาเราเลนไฟล เสยงตวใหมเขาไประหวางทเลนไฟลเกาอยนน โปรแกรมจะหยดไฟลเกา

ทนทแลวเลนไฟลใหมแทน หากเราก ากบการเลนดวย flag 16+1 โปรแกรมจะเลนไฟลเสยงเกาจนเสรจสนกอนเทานนจงจะเลนไฟลเสยงตวใหมได

Page 25: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

กลมค าสงเกยวกบการรบคาจากคยบอรด

readchar คอค าสงในการรบคาจากคยบอรด เปนตวอกษรเพยงตวเดยว การใชงาน readchar ไมสามารถใชงานเพยงค าสงเดยวโดด ๆ ได จ าเปนตองมการใชงานรวมกบค าสงอน ๆ เชน

show readchar หรอ make “x readchar เปนตน

ตวอยางการใชค าสง show readchar

หลงจากกด Enter จะเกดหนาตางเลกๆ เพอใหเราปอน

ตวอกษรจากคยบอรดลงไปเพยง 1 ตวอกษร แลวคลก ปม OK โปรแกรมจะแสดงคาทปอนลงในคยบอรดทหนาตางของ

Commander ดงรป ในทนผเขยนปอนอกษร A ลงไปจงแสดงออกมาเปน A

ขอสงเกต หากเราใชค าสง show readchar ซ าเปนครงท 2 เมอกด Enter จะไมเหนหนาตางเลกๆ เกดขนมาเพอใหเรา

ปอนคาอก เนองจากค าสงนจะคาสะทอน (Echo) อยหนงตวอกษร เราจ าเปนตองเรยกค าสง show readchar เปนครงท 3 จงจะเหนหนาตางเพ อปอนขอตวอกษรอกครง ในการเขยนโปรแกรมใชงานบางโปรแกรม หากไมระมดระวงสงเหลาน

จะท าใหโปรแกรมท างานไดไมดพอ

readword คอค าสงในการรบคาจากคยบอรดคลายกบ readchar แตจะเปนการรบคาเปนค าพด (word) เขามา คอสามารถปอนไดมากกวา 1 ตวอกษร การใชงานค าสงนเชนเดยวกบ readchar คอตองใชรวมกบค าสงอน ๆ เชน

print readword show readword

make “x readword

ทก ๆ ค าสงขางบนนจะท าใหเกดหนาตางเลก ๆ ส าหรบการปอนคาทางคยบอรดทงสน ขอสงเกต ค าสง readword ไมมคาสะทอน (Echo) ดงนนหากเราใชค าสง readword ซ าเปนครงท 2 กจะยงคงม

หนาตางเลก ๆ ใหเราปอนคาคยบอรดใหมลงไป readlist คอค าสงในการรบคาจากคยบอรดคลายกบ readchar และ readword แตจะเปนการรบคาแบบประโยคค าพด

การใชค าสงตองใชงานรวมกบค าสงอน ๆ เชนกน และ readlist กไมมผลของคาสะทอน (Echo)

กลมค าสงเกยวกบการท างานตามเงอนไข if คอค าสงทท างานแบบมเงอนไข มรปแบบค าสงดงน

if เงอนไข [สงทตองท าเมอเงอนไขเปนจรง] มความหมายวาเมอโปรแกรมท างานจนถงค าสงน จะท าการตรวจสอบเงอนไขทก าหนดวาเปนจรงหรอไม ถาเปนจรงตามเงอนไข โปรแกรมจะเรมเขาไปท าตามค าสงในวงเลบกามปจนเสรจ

แตหากเงอนไขเปนเทจ โปรแกรมจะไมสนใจและไมท าสงทอยภายในวงเลบกามปเลย เชน if 1=1 [print [Yes it is true]] คอ มเงนไขวาถา 1 มคาเทากบ 1 ใหแสดงประโยควา Yes it is true ท

หนาตาง Commander ในทนจะมการแสดงประโยค Yes it is true เสมอ เพราะ 1 มคาเทากบ 1 เสมอ

if readword = “yes [print [Hello.. I am Thai]] คอ มเงอนไขวาถาคาทรบจากคยบอรดมคาเทากบ yes ใหแสดง

ประโยควา Hello.. I am Thai เมอท าการ Run โปรแกรม จะ

ปรากฏหนาตางเลก ๆ ใหปอนคาลงไป หลงจากกดปม OK แลว โปรแกรมจะน าคาจากคยบอรดมาเปรยบเทยบกบคา

ทก าหนดไวคอ yes ถาตรงกน กจะท างานตามค าสงในวงเลบกามปตอไป ดงรป

Page 26: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ขอสงเกต ในการก าหนดเงอนไข readword = “yes ค าพดวา yes ตองใสเครองหมายฟนหนตดไปดวย เพราะคาทรบ

จากคยบอรดเปนคาแบบ word ดงนนเราตองก าหนดให yes เปนคาแบบ word โดยการใสเครองหมายฟนหนใหนนเอง หากชนดของคาทน ามาเปรยบเทยบไมเหมอนกน ผลทไดจะไมมทางเปนจรงไดเลย

ifelse คอค าสงทท างานแบบมเงอนไข มรปแบบค าสงดงน

ifelse เงอนไข [สงทตองท าเมอเงอนไขเปนจรง ][สงทตองท าเมอเงอนไขเปนเทจ ] มความหมายคลายกบค าสง

if เพยงแต มทางเลอกทโป รแกรมตองท าตามอย 2 ทางคอ ในวงเลบกามปแรกจะท ากตอเมอเงอนไขเปนจรง และในวงเลบกามปท 2 จะท ากตอเมอเงอนไขเปนเทจเทานน ซงเปนการบงคบโปรแกรมใหท าอยางใดอยางหนง เชน

ifelse readword = “Man [print “Pass] [print “Fail] คอ มเงอนไขใหรบคาจากคยบอรดเพอเปรยบเทยบกบค าวา Man หากมการปอนคาตรงกบค าวา Man โปรแกรมจะแสดงค าวา Pass ทหนาตาง Commander หากพมพ

นอกเหนอไปจากค าวา Man จะแสดงค าวา Fail แทนท

for คอค าสงทท างานวนรอบแบบมเงอนไข มรปแบบค าสงดงน for [var start end inc] [สงทตองท าเมอเงอนไขเปนจรง ] โดยเงอนไขเพอควบคมการวนรอบของค าสง for จะ

อยในวงเลบกามปชดแรก มรปแบบทถกก าหนดมาดงน

var = ชอตวแปร (ไมตองมสญลกษณใดๆ ตดกบตวแปรในวงเลบกามปชดน)

start = คาเรมตนของตวแปร end = คาสดทายของตวแปร

inc = คาของตวแปรทเพมขนแตละรอบ เชน for [i 2 7 1.5] [print :i] คอการท างานแบบวนรอบโดยเรมจากตวแปร i มคาเทากบ 2 ในรอบแรก

และมการแสดงคา i ออกมาเทากบ 2 ตามค าสงในวงเลบกามปท 2 จากนนคา I จะเพมขนทละ 1.5 ไปเรอยๆ จนกระทง i มคามากกวา 7 กจะมเงอนไขเปนเทจ และไมท าค าสงในวงเลบกามปท 2 อก แลวหลดออกจากชดค าสงนไปท าค าสงอน

ๆ ตอไป ดงนน ผลของค าสงชดนจะแสดงผลออกมาเปน

2

3.5 5

6.5

while คอค าสงทท างานวนรอบแบบมเงอนไข มรปแบบค าสงดงน

while [เงอนไข][สงทตองท าเมอเงอนไขเปนจรง ] จะมรปแบบคลายกบค าสง for แตเงอนไขของ while ไมมรปแบบตายตว

ตวอยาง for ตวอยางเชน

make “x 0 ; ประกาศตวแปร x = 0

while [:x < 3 ] [ make “x :x+1 print :x] ; เงอนไขถา คาตวแปร x < 3 ใหเพมคา x ขนไปอก 1 แลวแสดงคา x ออกมาทหนาตาง Commander

จากนนโปรแกรมจะวนรอบกลบไปตรวจสอบเงอนไขอกวา x < 3 หรอเปลา ถายงนอยกวา 3 กยงคงเพมคา

x และแสดงคาออกทางหนาตาง Commander ไป

เรอย ๆ จนกระทง x มคาไมนอยกวา 3 จงจะหยดการท างาน

do.while คอค าสงทท างานวนรอบแบบมเงอนไข มรปแบบค าสงดงน

do.while [สงทตองท าเมอเงอนไขเปนจรง ][เงอนไข] จะท างานคลายกบค าสง while เพยงแตตางกนตรงท

do.while จะเรม ท างานในวงเล บกามปแรกกอน แลวจงจะตรวจสอบเงอนไขทหลง ดงนนการพจารณาใชงานวาจะใช while หรอ do.while จะขนอยกบเงอนไขทตองการผลออกมานนเอง ตวอยางเชน

make “x 0

do.while [make “x :x+1 print :x] [:x < 3]

ผลทไดคอ

1 2

3

ผลทไดคอ

1 2

3

Page 27: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

do.until คอค าสงทท างานวนรอบแบบมเงอนไข มรปแบบค าสงดงน

do.until [สงทตองท าเมอเงอนไขเปนเทจ ][เงอนไข] จะคลายกบค าสง do.while เพยงแตในการท างานจะท าในวงเลบกามปแรกกตอเมอมเงอนไขเปนเทจเทานน ตวอยางเชน

make “xyz 10 ; ประกาศตวแปร xyz = 10

do.until [ print :xyz ; แสดงผลคา xyz

make “xyz :xyz-2 ; ลดคา xyz ลงครงละ 2 ][:xyz<0] ; ตรวจสอบวา xyz < 0 หรอไม ถาไมใชกจะวนรอบไป

ท าใหม ; สงเกตวา รปแบบการพมพในวงเลบค าสงแรก ค าสง

ตาง ๆ ไมจ าเปนตองอยภ ายในบรรทดเดยวกนกได แตเมอมการปดวงเลบกามปแรกแลวนนตองมวงเลบ

เงอนไขตอกนภายในบรรทดเดยวกนเลย มเชนนน

โปรแกรมจะฟองมความผดพลาดเกดขน

กลมค าสงเกยวกบเวลา

time คอค าสงหรอฟงกชนตวหนงทดงคาออกมาจากฐานเวลาของเคร องคอมพวเตอรเครองนน ๆ ค าสง time ไมสามารถท างานเพยงล าพงได ตองใชงานรวมกบค าสงแสดงผล หรอค าสงเกบคาอน ๆ เชน show time , print time

หรอ make “t time เปนตน

ตวอยางเชน เมอเราใชค าสง show time แลว Enter จะปรากฏผลทหนาตาง Commander ดงรป

Item 1 item 2 item 3 item 4 item 5

จะปรากฏ แสดงวน เดอน วนท เวลาขณะนน ป ค .ศ. ตามล าดบ time มคาแบบประโยคค าพด (list) มทงหมดดวยกน 5 word เราเรยกเสยใหมวาม 5 item แตละ item จะถกคนดวยวร รค ดงนน หากเราตองการแสดงคา

item ใด item หนงเทานน เราสามารถระบ item ในการแสดงผลได เชน

show item 4 time คอ ตองการแสดงผล item 4 ของ time กจะไดเฉพาะคาเวลาออกมา 14:56:11

ฟงกชน time จะมบทบาทมากเมอเราเรมมการเขยนโปรแกรมทใชฐ านเวลาเขามาเกยวของ ซงจะกลาวถงงานประยกตใน บทตอ ๆ ไป

timemilli คอค าสงหรอฟงกชนในการตรวจสอบคาบเวลาจากจดเรมตนจนสนสดโปรแกรม มความละเอยดสงอยในหลก มลลวนาท (1/1000 วนาท) เราสามารถน ามาใชในการตรวจสอบระยะเวลาในการประมวลผลของโป รแกรมทเราเขยนไป

วาใชระยะเวลาในการท างานเทาไร ตวอยางเชน

make "start timemilli ; ก าหนดคาเรมตนใหตวแปรเปนเวลา ณ.ตอนเรมตน

repeat 36 [ellipse 100 200 rt 5] ; ท ารปวงรซอนกน 36 รป show timemilli - :start ; แสดงระยะเวลาในการท างาน โดยน าคาเวลาปจจบน –

คาเวลาทเรมตน หนวยเปน มลลวนาท ผลคอ 8189 แตบางครงจะไดไมเทากนเนองจากคอมพวเตอร

ท างานดวยความเรวสง และการประมวลผลค าสง Logo

จะท างานไดชากวาโปรแกรมอนๆ ท าใหเวลาทเราจบในหลก มลวนาทจะมความผดพลาดบาง

ผลทไดคอ

10 8

6 4

2

0

Page 28: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ใหผเรยนทดลองคยตามตวอยางขางลาง

ตวอยาง โปรแกรมแสดงเวลาบนหนาจอหลก

to timeshow ; ชอโปรแกรม timeshow

cs pu ht ; ลางหนาจอ ยกปากกา ซอนเตา

make "x 0 ; ก าหนดใหตวแปร x = 0 do.until [

make "y item 4 time ; ก าหนดใหตวแปร y = คาเวลาในคอมพวเตอรขณะนน cs setxy -100 0 ; ลางหนาจอ เคลอนทเตาไปยงต าแหนงทจะเรมตนเขยน

rt 90 ; หนหนเตาเพอ label อกษรในแนวนอน label :y ; label คาของเวลาออกทางหนาจอหลก

][:x=1] ; ถาตวแปร x = 1 ใหออกจากการวนรอบ

end ; จบการท างาน

ภาพท 2.25 การใชค าสง แสดงเวลาบนหนาจอหลก

ตวอยาง โปรแกรมแสดงเวลาบนหนาจอหลกพรอมทงการตงเวลา

to timeshow2 ; ชอโปรแกรม timeshow2

cs pu ht ; ลางหนาจอ ยกปากกา ซอนเตา make "x 0 ; ก าหนดใหตวแปร x = 0

do.until [ make "y item 4 time ; ก าหนดใหตวแปร y = คาเวลาในคอมพวเตอรขณะนน

cs setxy -100 0 ; ลางหนาจอ เคลอนทเตาไปยงต าแหนงทจะเรมตนเขยน

rt 90 ; หนหนเตาเพอ label อกษรในแนวนอน label :y ; label คาของเวลาออกทางหนาจอหลก

if :y = “10:30:00 [ clean ; ถาคาเวลา = 10:30:00 ใหลางหนาจอ label [Bye Bye] ; แสดงค าวา Bye Bye

make “x 1 ; ก าหนดคาตวแปร x = 1 เพอใหเงอนไขการวนรอบเปนจรง ; หลงจากเวลาตรงกบคาเวลาทตงไว

]

][:x=1] ; ถาตวแปร x = 1 ใหออกจากการวนรอบ end ; จบการท างาน

ภาพท 2.26 การใชค าสง แสดงเวลาบนหนาจอหลก โปรแกรม timeshow2 แสดงค าวา Bye Bye

Page 29: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ตวอยาง โปรแกรมสรางรปดอกไมเรขาคณต

to flower ; โปรแกรมชอ flower

cs ht ; ลางหนาจอ ซอนเตาเพอไมใหรกสายตา pu ; ยกปากกาเพอไมใหเกดเสนขณะยายเตา

setxy -200 200 ; ยายเตาไปท x = -200 , y = 200

setpencolor [255 0 0] pd ; ก าหนดสปากกาเปนสแดง แลววางปากกา repeat 36 [ ellipse 30 100 rt 10] ; สรางรปดอกไมวงร

pu

setxy -200 -200 setpencolor [0 255 0] pd

repeat 36 [ repeat 4 [fd 100 rt 90] rt 10] ; สรางดอกไมกลบสเหลยม

pu setxy 200 200

setpencolor [0 0 255] pd make "x 10

repeat 36 [ circle :x make "x :x+2] ; สรางดอกไมรปวงกลม

pu setxy 200 -200

setpencolor [255 0 255] pd make "y 10

repeat 200 [fd :y rt 90 make "y :y+1] ; สรางดอกไมรปสเหลยมเขาวงกต pu

setxy 0 0

setpencolor [0 255 255] pd repeat 36 [ ellipse 30 100 rt 10]

setpencolor [255 255 0] make "x 10

repeat 36 [ circle :x make "x :x+2] ; สรางดอกไมวงร ซอนดอกไมวงกลม

end

ภาพท 2.27 โปรแกรมสรางรปดอกไมเรขาคณต

Page 30: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ตวอยาง โปรแกรมสรางรปดอกไมเรขาคณต แบบแสดงการหนวงเวลา

to flower3 ; โปรแกรมชอ flower3

cs ht ; ลางหนาจอ ซอนเตาเพอไมใหรกสายตา pu ; ยกปากกาเพอไมใหเกดเสนขณะยายเตา

setxy -200 200 ; ยายเตาไปท x = -200 , y = 200

setpencolor [255 0 0] pd ; ก าหนดสปากกาเปนสแดง แลววางปากกา repeat 36 [ ellipse 30 100 rt 10 wait 2] ; สรางรปดอกไมวงร โดยม wait

pu setxy -200 -200

setpencolor [0 255 0] pd repeat 36 [ repeat 4 [fd 100 rt 90] rt 10 wait 2] ; สรางดอกไมกลบสเหลยม

pu

setxy 200 200 setpencolor [0 0 255] pd

make "x 10 repeat 36 [ circle :x make "x :x+2 wait 2] ; สรางดอกไมรปวงกลม

pu setxy 200 -200

setpencolor [255 0 255] pd make "y 10

repeat 200 [fd :y rt 90 make "y :y+1 wait 1] ; สรางดอกไมรปสเหลยมเขาวงกต pu

setxy 0 0

setpencolor [0 255 255] pd repeat 36 [ ellipse 30 100 rt 10 wait 2]

setpencolor [255 255 0] make "x 10

repeat 36 [ circle :x make "x :x+2 wait 2] ; สรางดอกไมวงร ซอนดอกไมวงกลม

end

ภาพท 2.28 โปรแกรมสรางรปดอกไมเรขาคณต แบบแสดงการหนวงเวลา

Page 31: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ตวอยาง โปรแกรมสรางรปวงรหมน พรอมเปลยนสแบบ Random

to science ; ชอโปรแกรม science

cs ; ลางหนาจอ setpensize [2 2] ; ก าหนดขนาดเสนปากกา

make "x 0 ; ก าหนด x = 0

do.until [ repeat 36 [ ; ท าซ าสรางวงร 36 รป

make "a random 255 ; สมน าหนกสแดงกบไวใน a make "b random 255 ; สมน าหนกสเขยวเกบไวใน b

make "c random 255 ; สมน าหนกสน าเงนเกบไวใน c setpencolor (list :a :b :c) ; ก าหนดสปากกาแบบสมตามน าหนกส

ellipse 40 150 rt 10 wait 5 ; สรางรปวงร แลวหมนไปเรอยๆ ดวยมม 10 องศา

] ][:x=1]

End

ภาพท 2.29 สรางรปวงรหมน พรอมเปลยนสแบบ Random

ค าสงเกยวกบการสรางปม และการท างานของปม

buttoncreate คอค าสงในการสรางปม เพอน าไปใชงานในการควบคมดวยเงอนไขการกดปม มรปแบบค าสงดงน buttoncreate “parent “name “label xpos ypos width height [callback] อธบายไดดงน

“parent เปนชอของหนาตางทจะใสปมค าสงลงไป

“name เปนชอของปมค าสงทสรางขนมา

“label เปนตวอกษรหรอปายฉลากทจะพมพใสทปมค าสง xpos ต าแหนงของปมทจะสรางในแกน x

ypos ต าแหนงของปมทจะสรางในแกน y width ความกวางของปมค าสง

height ความยาวของปมค าสง [callback] สงทตองการท าเมอมการใชเมาสคลกทปมค าสง

ตวอยางเชน buttoncreate “main “bamboo “Click -20 0 50 30 [sound [1500 100]] ผลทไดแสดงดงรป

ปมค าสงจะมปายฉลากวา Click เมอใชเมาส

คลก ทปมค าส งจะเกดเสยงดงดวยค าสง sound นนเอง เมอตองการลบปมค าสงออก

จากหนาจอหลก เราไมสามารถลบหรอลาง ปมค าสงดวยค าสง cs หรอ clean แตตอง

ลบดวยค าสงดงตอไปน

Page 32: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

buttondelete เปนค าสงลบปมค าสงทปรากฏอยหลงจากใชค าสง buttoncreate ไปแลว โดยมรปแบบค าสงดงน

buttondelete “name คอตองเรยกชอของปมค าสงใหตรงกบชอทตงไวในค าสง buttoncreate เชน จากค าสง buttocreate ทกลาวมามชอปมค าสงวา bamboo เมอตองการลบเราจะใชค าสงคอ buttondelete “bamboo แลว Enter

รปปมค าสงกจะหายไป

ตวอยาง โปรแกรมสรางปมค าสง คลกเพอสรางรปวงกลมขนาดตาง ๆ และทต าแหนงตาง ๆ

to clickbutton buttoncreate "window "bamboo "Circle -10 0 70 40 [ ; สรางปมค าสงโดยมปายฉลากวา Circle

pu ; สงทตองท าหลงจากการคลกเมาสทปมค าสงคอ

make "x random 1000 ; การสรางวงกลมขนาดตางๆ ทต าแหนงตางๆ

บนจอ make "y random 1000

setxy :x :y make "z random 200

pd

circle :z ] buttoncreate "window "project "Clear -400 -200 70 40 [ ; สรางปมค าสงส าหรบลางหนาจอ

cs buttondelete "bamboo

buttondelete "project ]

end

ภาพท 2.30 ปมค าสง คลกเพอสรางรปวงกลมขนาดตาง ๆ และทต าแหนงตาง ๆ

Page 33: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

แบบฝกหดบทท 2

1. ใหผเรยนทดลองเขยนค าสงพนฐานภาษาโลโกทไดศกษามาจากใบความร FD 100 มลกษณะอยางไร โดยใหท าลงบนเครองคอมพวเตอร

2. ใหผเรยนทดลองใชค าสง CS หรอ ClearScreen แลวใหทดลองใชค าสงบนเครองคอมพวเตอรแลวสงเกตการณท างานหนาจอ

3. ใหผเรยนทดลองใชค าสง LT แลวทดลองท าบนเครองคอมพวเตอรแลวดผลการท างานของค าสง

4. ใหผเรยนท าการปอนโปรแกรมโดยใช Menu Edit ดงน 1. ใชเมาสคลกไปท Edit

2. จะเหนภาพหนาจอ

3. ใหผเรยนเขยนโปรแกรมจากภาพ

Page 34: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

4. ใหผเรยนคลกไปท File แลวไปท Save and Exit

5. ใหผเรยนทดลองการบนทกขอมลลงในฮารดดสหรอแผนเกบขอมลหรออปกรณการเกบขอมล (บนทกขอมลอยาง

ถาวร) 1. ใหผเรยนเลอนเคอรเซอรไปท Save

2. ใหคลกท Save เพอเลอกปลายทางทจะบนทกลงใน Save in

3. ใหผเรยนตงชอแฟมลงในชอง File Name และคลกทปม Save เพอยนยนการบนทก

6. ใหผเรยนทดลองใชค าสง PD และ PU แลวใหสงเกตทโปรแกรมภาษาโลโกและใหผเรยนทดลองเขยนค าสงดงน FD 50 PU FD 50 PU FD 50

Page 35: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

7. ใหผเรยนทดลองใชค าสง PE และค าสง PPT โดยใหพมพตวอยางขางลางนโดยใชชอวา Exam2_7

To exam2_7 FD 150

RT 90 FD 100

RT 90

FD 150 RT 90

FD 150 PE

BK 50 End

แลวใหผเรยนดในการแสดงผลในภาษาโลโก แลวใหผเรยนเขยนค าสงตอจากภาพทปรากฏบนจอดวยค าสง PPT

แลวใหสงเกตพรอมทงท าความเขาใจ 8. ใหผเรยนทดลองเขยนค าสง PX โดยใชตวอยางค าสง PX FD 100 BK 50 เมอทดลองแลวใหผลทหนาจอ

คอมพวเตอรในภาษาโลโก 9. ใหผเรยนใชค าสงทเหนแลวเตมค าลงในชองวาพรอมทงอธบาย

Right………………………….

อธบายรปทเปน.................................................................................... ........................................................................................................

........................................................................................................ Left…………………………….

อธบายรปทเปน............................................ ........................................ ........................................................................................................

........................................................................................................

10. ใหผเรยนสรางขนบนไดจ านวน 3 ขนแลวใหทดลองใชค าสง FX, PE, PPT เพอหาขอแตกตาง

11. ผเรยนศกษา ค าสง Setpencolor[0 0 0] โดยใหผเรยนทดลองเขยนค าสงลงบนโปรแกรมภาษาโลโกดงน To Exam2_8

FD 100 RT 90

FD 100 RT 90 FD 100 RT 90

FD 100 RT 90 RT 45

PU FD 20

Setfloodcolor[ 0 255 0] Fill

End 12. ใหผเรยนศกษาเรองค าสง Print และ Show พรอมทงใหผเรยนทดลองใชทงสองค าสง โดยใหเขยนค าสงโดยให

เขยนค าสงดงขางลางนแลวใหผเรยนท าความเขาใจ Print [Hello how are you

Make “a 0 print :a

Show [Hello how are you] 13. ใหผเรยนทดลองคยค าสงขางลางดงตอไปน ลงในภาษาโลโก

To Joke Repeat 4 [Fd 100 Rt 90]

End

To Joker

Jokey Wait 10 Clean Rt 10 Joker

End

To Jokey

Repeat 6[Joke Rt 60] End

แลวใหผเรยนพมพค าสง Jokey แลวใหดการท างานของโปรแกรม

Page 36: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

14. ใหผเรยนทดลองคยค าสงขางลางตอไปนลงในโปรแกรมภาษาโลโกแลวใหเรยกโปรแกรมทละโปรแกรม

To A Fd 100

Bk 100 Bk 100

Fd 100

Rt 90 Fd 100

Bk 200 Fd 100

End

To B Ht

Cs Repeat 360[Circle 100 RT 5 A Wait 10 C]

Fd 100

Bk 100 Bk 100

Fd 100 Rt 90

Fd 100 Bk 200

Fd 100

End

To C Pe

Fd 100

Bk 100 Bk 100

Fd 100 Rt 90

Fd 100

Bk 200 Fd 100

Ppt End

แลวใหผเรยนสงเกตดการท างานของโปรแกรม

15. ใหผเรยนคยตามค าสงตวซอรสโปรแกรมทใหแลวใหสงเกตการณท างานของโปรแกรม

To Flow : Round

Repeat : Round [Clean Ht Plot Rt 15 Wait 15] End

To Plot

Repeat 6[Square Rt 60] End

To Square Repeat 4[Fd 100 Rt 90]

End

Page 37: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

16. ใหผเรยนไดทดลองคยโปรแกรมขางลางตอไปน พรอมทงดผลงาน

to home1 setpensize [3 3]

;go home and clear screen

home cs ;create roof

pu setpos [100 280] ppt setpos [-16 130] setpos [-300 245] setpos [-180 370] setpos [100 280] setpos [190 230] setpos [150 240] setpos [92 270] pu

;create patition wall setpos [0 150] ppt home

setpos [-270 115] setpos [-270 235] pu home

;create door ppt setpos [20 13] setpos [20 133] setpos [70 160] setpos [70 43] setpos [150 90]

setpos [150 240] setpos [0 150] pu setpensize [1 1] setpos [20 13] ppt setpos [70 43] pu setpensize [3 3]

;create left window

setpos [-154 86] ppt setpos [-154 167] setpos [-248 206] setpos [-248 125] setpos [-154 86] pu home

;create right window setpos [-21 29] ppt setpos [-21 110] setpos [-137 161] setpos [-137 80] setpos [-21 29]

pu home ;create fence

setpos [0 -35] ppt setpos [0 -85] setpos [-365 70] setpos [-365 120] setpos [0 -35] pu

setpos [-365 120] ppt setpos [-270 180] pu setpos [-270 130] ppt setpos [-317 100] pu

setpos [0 -35] ppt setpos [60 2] setpos [60 -48] setpos [0 -85] pu setpos [235 110] ppt setpos [108 31] setpos [108 -21] setpos [235 60] setpos [235 110]

setpos [150 145] pu setpos [150 95] ppt setpos [185 81] pu

;create LED setpos [69 10] ppt repeat 72 [fd 1 lt 5] pu

setpos [117 41] ppt repeat 72 [fd 1 lt 5] pu end

to mainpro

outport 888 0 setfloodcolor 7

ht make "ex 0

make "aa 0 make "bb 0

make "cc 0

make "dd 0 home1

;checkmouse buttoncreate "main "quitmenu "EXIT -465 340 50 25 [

home cs buttondelete "quitmenu buttondelete "ledlefton buttondelete "ledleftoff

buttondelete "righton buttondelete "rightoff buttondelete "dooron buttondelete "dooroff

buttondelete "ledon buttondelete "ledoff make "ex 1 st

] buttoncreate "main "ledlefton "OPEN_BATHROOM -465 310 150 25 [

setfloodcolor [120 204 255] pu setpos [-230 150] fill buttonenable "ledleftoff "true

buttonenable "ledlefton "false make "aa 8

outport 888 :aa+:bb+:cc+:dd]

Page 38: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

buttoncreate "main "ledleftoff "CLOSE_BATHROOM -465 280 150 25 [

setfloodcolor [255 255 255] pu setpos [-230 150] fill buttonenable "ledleftoff "false buttonenable "ledlefton "true

make "aa 0 outport 888 :aa+:bb+:cc+:dd]

buttoncreate "main "righton "OPEN_LIVINGROOM -465 230 150 25 [

setfloodcolor [255 0 0] pu setpos [-110 90] fill buttonenable "rightoff "true buttonenable "righton "false

make "bb 4 outport 888 :aa+:bb+:cc+:dd]

buttoncreate "main "rightoff "CLOSE_LIVINGROOM -465 200 150 25 [ setfloodcolor [255 255 255] pu setpos [-110 90] fill buttonenable "rightoff "false

buttonenable "righton "true

make "bb 0 outport 888 :aa+:bb+:cc+:dd]

buttonenable "ledleftoff "false buttonenable "rightoff "false

buttoncreate "main "dooron "OPEN_DOOR 230 310 150 25 [

setfloodcolor [0 255 0] pu setpos [40 90] fill buttonenable "dooroff "true buttonenable "dooron "false

make "cc 1 outport 888 :aa+:bb+:cc+:dd]

buttoncreate "main "dooroff "CLOSE_DOOR 230 280 150 25 [ setfloodcolor [255 255 255] pu setpos [40 90] fill buttonenable "dooroff "false

buttonenable "dooron "true

make "cc 0 outport 888 :aa+:bb+:cc+:dd]

buttoncreate "main "ledon "OPEN_FLASHLIGHT 230 230 150 25 [ setfloodcolor [255 255 0] pu setpos [60 10] fill setpos [108 41] fill buttonenable "ledoff "true

buttonenable "ledon "false

make "dd 2 outport 888 :aa+:bb+:cc+:dd]

buttoncreate "main "ledoff "CLOSE_FLASHLIGHT 230 200 150 25 [ setfloodcolor [255 255 255] pu setpos [60 10] fill setpos [108 41] fill buttonenable "ledoff "false

buttonenable "ledon "true

make "dd 0 outport 888 :aa+:bb+:cc+:dd]

buttonenable "dooroff "false buttonenable "ledoff "false

do.until [ wait 5

] [:ex = 1]

outport 888 0 end

Page 39: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

การตดตอกบพอรตขนานดวยค าสงภาษาโลโก

ระบบเลขฐานและการแปลงเลขฐาน

เนองจากภาษาทคอมพวเตอรเขาใจคอภาษาทตดตอกนดวยเลขฐานสอง คอ เปน .”1” หรอ “0” เทานน แตเลขฐานสองเปนเลขฐานทมนษยไมคนเคยและมความไมสะดวกในการแปรความหมาย ดงนนเราจงจ า เปนตองแปลงเลข

ฐานจากฐานสองไปสฐานตาง ๆ ทงายตอความเขาใจของมนษยมากกวา ในภาษาโลโกนนเลขฐานทใชคอเลขฐานสบเปน

เลขฐานหลกในการตดตอสอสาร มาทบทวนเรองเลขฐานกนเถอะ

เลขฐานสบ

เลขฐานสบคอเลขทมคาหลกแตละหลกมาจากเลขฐานสบยกก าลงใด ๆ ดง น

ลาน แสน หมน พน รอย สบ หนวย

6

10

5

10

4

10

3

10

2

10

1

10

0

10

หากเราใสตวเลขลงไปในแตละหลก เชน

ลาน แสน หมน พน รอย สบ หนวย

6

10

5

10

4

10

3

10

2

10

1

10

0

10

1

2

5

0

9

0

0

1000000 + 200000 + 50000 + 0 + 900 + 0 + 0 = 1250900

จากคาประจ าหลกของเลขฐานสบทไดและคาตวเลขทก าหนดลงไปในแตละหลกดงตวอยางขางตนน เราจงอานคาไดวา “ หนงลานสองแสนหาหมนเการอย”

0x1 = 0

0x10 = 0

9x100 = 900

0x1000 = 0

5x10000 = 50000 2x100000 = 200000

1x1000000 = 1000000

หลก

หลก

Page 40: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

เลขฐานสอง

เลขฐานสองกมลกษณะเชนเดยวกนกบเลขฐานสบ

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

หากเราใสตวเลขลงไปในแตละหลก เชน

128 64 32 16 8 4 2 1

7 2

6 2

5 2

4 2

3 2

2 2

1 2

0 2

1 0

1

1

0

0

1

0

128 + 0 + 32 + 16 + 0 + 0 + 2 + 0 = 178

จากคาประจ าหลกของเลขฐานสองทไดและคาตวเลขทก าหนดลงไปในแตละหลกดงตวอยางขางตนน จะเปนวธการแปลง

คาจากเลขฐานสองเพอไปเปนคาในเลขฐานสบ ซงการแปลงคาดงกลาวจะมประโยชน อยางยงในการตดตอสอสารกบพอรตขนานของคอมพวเตอรดวยค าสงภาษาโลโก ซงจะกลาวถงในหวขอตอ ๆ ไป

เรยนรพอรตขนานของคอมพวเตอร (Parallel Port)

จดประสงคในการตดตอสอสารกบพอรตขนานของคอมพวเตอรนน เพอใหเราสามารถสงคาใด ๆ ในคอมพวเตอรออกไปควบคมหรอแสดงผลกบอปกรณฮารดแวรภายนอกคอมพวเตอรได หรอการรบคาใด ๆ จากอปกรณฮารดแวร

ภายนอกเพอประมวลผลและแสดงบนจอแสดงผลของคอมพวเตอรได การตดตอสอสารดงกลาวเราเรยกวาการ “อนเตอรเฟส” (Interface) เพอใหเราสามารถใชงานคอมพวเตอรเพ องานควบคมระบบอตโนมตไดอยางกวางขวาง ซง

เราจะพบการใชงานคอมพวเตอรเพอควบคมระบบอตโนมตมากในงานอตสาหกรรม และงานดานวศวกรรม

โครงสรางพอรตขนาน

พอรตขนานมโครงสรางดงรป เราเรยกพอรตขนาน

ชนดนวาพอรตแบบ DB-25 เนองจากมจ านวนขา (PIN) เทา กบ 25 ขา โดยถกออกแบบมาใหใชกบเครองพมพ

(Printer) ในยคแรก ๆ เราจงเรยกอกอยางหนงวาพอรตพรน

เตอร

หลก

หลก

0x1 = 0

1x2 = 2

0x4 = 0

0x8 = 0

1x16 = 16

1x32 = 32

0x64 = 0

1x128 = 128

Page 41: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

Pin Description Pin Description

1 Strobe Output 14 Auto LF Output

2 D0 Output 15 Error Input

3 D1 Output 16 Initialize Printer Output

4 D2 Output 17 Select Input Output

5 D3 Output 18 Ground

6 D4 Output 19 Ground

7 D5 Output 20 Ground

8 D6 Output 21 Ground

9 D7 Output 22 Ground

10 ACK Input 23 Ground

11 Busy Input 24 Ground

12 Paper Empty Input 25 Ground

13 Select Input

โครงสรางการตอขาภายในพอรตขนาน

คอมพวเตอรทกรนทกยหอทมพอรตขนานดงกลาวจะมการก าหนดบานเลขทของพอรต (Address) ทเปนมาตราฐ าน

เดยวกนจากผผลตในแตละโรงงาน โดยโครงสรางภายในพอรตขนานจะแบงออกเปน 3 พอรตยอย ดงน

Address # 888 (เลขฐาน 10) 889 (เลขฐาน 10) 890 (เลขฐาน 10)

จะสงเกตไดวาในแตละพอรตจะมขอมลขนาด 8 บท มการตอใชงานทแตกตางกนดงน

พอรตเลขท 888 เปนพอรตส าหรบการสงขอมลออก สงเกตไดจากหวลกษร วงออกจากคอมพวเตอร และม

การตอใชงานครบทง 8 บท ผรเรมออกแบบพอรตใชพอรตเลขท 888 เพอการสงขอมลไปแสดงผลทเครองพมพ จงเรยกพอรตนวา Data Port

พอรตเลขท 889 เปนพอรตส าหรบการรบขอมลจากอปกรณภายนอกเขาสพอรตของคอมพวเตอร เราจงถอวาพอรตนเปนพอรตแบบอนพท มการตอใชงานเพยง 5 บท เทานน จดประสงคในการ

ออกแบบพอรตนเพอแสดงสถานะภาพของเครองพมพวาท างานอยางไร เชน การแจงกล บ

เรองการตดของกระดาษ ความไมพรอม กระดาษหมด และอน ๆ เปนตน เราจงเรยกพอรตนวา Status Port

พอรตเลขท 890 เปนพอรตส าหรบการสงคาเพอการควบคมการท างานของเครองพมพ เชน การรองขอการพมพ การเลอกเครองพมพในกรณทตอในระบบ LAN และม Print Server อยหลายเครอง

การเลอนกระดาษอตโนมต เปนตน มการตอใชงานเพยง 4 บทเทานน

Data Port Status Port Control Port

Page 42: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ค าสงในการสงขอมลออกทางพอรตขนาน

เมอเราเขาใจโครงสรางของพอรตขนานแลว จากนไปเราจะเรมเรยนรการสงคาออกไปทางพอรตขนานดวยค าสงของภาษาโลโกทมอย

outportb เปนค าสงส าหรบการสงขอมลขนาด 8 บทออกทางพอรต มรปแบบดงน outportb เลขทพอรต ขอมล

เลขทพอรต ในทนเราใชค าสง outport กบพอรตเลขท 888 กบ 890 เทานน สวนพอรตเลขท 889 เปนพอรต

ส าหรบรบขอมลเขา เราจะสงออกไปไมได ขอมล เปนขอมลทเปนเลขฐานสบ ทแปลงจากเลขฐานสองขนาด 8 บท

ตวอยางเชน

outportb 888 15

จากค าสงออกพอรตขางบนน เราจะไดขอมลเปนเลขฐานสอง ขนาด 8 บทออกไปทพอรตเลขท 888 ดงตารางขางบนน

จะเหนไดวา คา 15 กคอ มคา “1” ออกไปทบท D0-D3 นนเอง

outportb 888 129

outportb 888 60

outportb 888 255

outport เปนค าสงส าหรบการสงขอมลขนาด 16 ออกทางพอรต มรปแบบดงน outport เลขทพอรต ขอมล จะมรปแบบและผลเหมอนกบ outportb ถงแมขอมลจะมขนาด 16 บท แตในทาง

ฮารดแวรมการตอใชงานเพยง 8 บทเทานน ดงนนคาของขอมลทจะสงออกไปทพอรตเราค าน งเพยง 8 บทเชนเดยวกนกบค าสง outportb รวมถงผลทไดกจะเหมอนกน

128 64 32 16 8 4 2 1

7 2

6 2

5 2

4 2

3 2

2 2

1 2

0 2

0

0

0

0

1

1

1

1

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

1 0

0

0

0

0

0

1

128 64 32 16 8 4 2 1

7 2

6 2

5 2

4 2

3 2

2 2

1 2

0 2

0 0

1

1

1

1

0

0

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

1

1

1

1

1

1

1

1

Page 43: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ตวอยางเชน

outport 888 129

การประยกตใชงานขอมลทสงออกทางพอรต

ขอมลทสงออทางพอรตจากตวอยางทผานมาคอ ออกทพอรตเลขท 888 จะแสดงออกไปเปนเลขฐานสอง ถงแมเราสงดวยค าสงเลขฐานสบกตาม ในความเปนจรงเลขฐานสองทปรากฏทพอรตนนจะมคาแรงดนไฟฟาคอ

“0” จะมคาแรงดนไฟฟาเทากบ 0 Volt

“1” จะมคาแรงดนไฟฟาเทากบ 5 Volt

โดยเราสามารถใชประโยชนจากแรงดนไฟฟาดงกลาวไดดวยการประยกตเขากบวงจรไฟฟาและอเลกทรอนกส

ใหเปนโครงงานประยกตตาง ๆ ทสามารถควบคมการท างานไดดวยคอมพวเตอร

ธรรมชาตของไฟฟาจะคลายกบธรรมชาตของน า คอมคาแรงดน มกระแสไหล และม

คาความตานทานกระแส เพยงแตคาทางไฟฟาเราไมสามารถมองเหนไดดวยตาเปลา จงตองมเครองมอวด และ อปกรณแปลงคาพลงงานทางไฟฟาใหไปอยในรปแบบตาง

ๆ ทสามารถจบตองได

กระแสไฟฟาจะสามารถเก ดและไหลไดก

ตอเมอ แรงดนไฟฟาดานหนง สงกวา

แรงดนไฟฟาอกด านหนง จงจะเกดการเทกระแสไหลจากทสงกวา ไปสระดบ

แรงดนไฟฟาทต ากวา ดงรป การไหลของกระแสไฟฟาจะสรางพลงงานเกดขน

จากรปดานซายมอ หากแรงดนไฟฟาทงสองดานมระดบแรงดนเทากน จะไมเกดกระแสไฟฟาไหลจากดานหนงไปอกดานหนง เชนเดยวกบธรรมชาตของ

น าหากระดบน าทงสองดานมความสงเทากน กจะไมเกดการไหลของ กระแสน า

และไมเกดพลงงานทเกดจากการไหลของกระแส

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

1 0

0

0

0

0

0

1

มารจกธรรมชาตของไฟฟากนเถอะครบ

Page 44: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

บอรด Led&7 Segment

บอรด LED & 7 Segment

บอรด LED & 7 Segment เปนบอรดทผลตโดย บรษท แบมบ โปรเจค กรปส จ ากด เพอเปนสอส าหรบการเรยน

การสอนการเขยนโปรแกรมเชงควบคม มรปแบบและโครงสรางดงตอไปน

สายพอรตขนาน บอรด LED & 7 Segment

วงจรและหลกการตดตอบอรด LED & 7 Segment ผานพอรตขนาน

ถาเราขอมลทออกทางพอรตขณะนเปน “0” ทกบท นนคอมแรงดนเทากบ 0 volt ซงจะมระดบแรงดนเทากบแรงดนท Ground ไมท าใหเกดกระแสไฟฟาไหลได หลอดไฟ LED จงไมมพลงงานทท าใหตดสวาง ได ค าสง LOGO

คอ

outportb 888 0

หรอ outport 888 0

หากตองการใหหลอดไฟ LED ดวงใดตดเราตองก าหนด “1” ออกไปทบทนน ๆ จงจะไดระดบแรงดนไฟฟาเทากบ 5 Volt ซงจะท าใหเกดกระแสไฟฟาไหลผานหลอดไฟ LED เมอมกระแสไฟฟาไหลผานหลอดไฟ LED จะไดรบพลงงาน

และตดสวางได

เชน ตองการใหหลอดไฟ LED ดวงท d0 และ d2 ตดสวาง เราเพยงสงดวยคาประจ าบท do (1) และ d2 (4) คอ

1+4 = 5

Ground มแรงดนไฟฟา = 0 volt

0

0

0

0

0

0

0

0

Page 45: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

outportb 888 5

หรอ outport 888 5

ผลทไดแสดงดงรป

จากการเรยนรการตดตอพอรตขนานดวยค าสงภาษาโลโก และการประยกตวงจรไฟฟาและ อเลกทรอนกสรวมกบ

การเขยนโปรแกรม ท าใหการเขยนโปรแกรมของเราเปนการเ ขยนโปรแกรมเชงควบคมอยางแทจรง จากบอรดแสดงผล

LED & 7 Segment ของบรษท แบมบ โปรเจค กรปส จ ากด และความรเรองการใชค าสงตาง ๆ ของโลโกทผานมา เราสามารเขยนโปรแกรมตาง ๆ ไดอยางหลากหลาย และสนกสนานได

ตวอยาง โปรแกรมสงงานหลอดไฟ LED วงจาก D0 D7

to runLED1 outport 888 1 wait 40 ; สงหลอด LED ท D0 ใหตดสวาง นาน 40 ตค

outport 888 2 wait 40 ; สงหลอด LED ท D1 ใหตดสวาง นาน 40 ตค outport 888 4 wait 40 ; สงหลอด LED ท D2 ใหตดสวาง นาน 40 ตค

outport 888 8 wait 40 ; สงหลอด LED ท D3 ใหตดสวาง นาน 40 ตค

outport 888 16 wait 40 ; สงหลอด LED ท D4 ใหตดสวาง นาน 40 ตค outport 888 32 wait 40 ; สงหลอด LED ท D5 ใหตดสวาง นาน 40 ตค

outport 888 64 wait 40 ; สงหลอด LED ท D6 ใหตดสวาง นาน 40 ตค outport 888 128 wait 40 ; สงหลอด LED ท D7 ใหตดสวาง นาน 40 ตค

outport 888 0 ; สงหลอด LED ทกดวงดบ

end

ตวอยาง โปรแกรมสงงานหลอดไฟ LED วงจาก D0 D7 ทเขยนโดยใชต วแปรและค าสง repeat ซงจะใหผล

เหมอนกบตวอยางทผานมา to runLED2

make “x 1 repeat 8 [ outport 888 :x wait 40

make “x :x*2

] outport 888 0

end

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

0

0

0

0

0

1

0

1

Ground มแรงดนไฟฟา = 0 volt

0

0

0

0

0

1 = 5 V

0

1 = 5 V

Page 46: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

นอกจากหลอดไฟ LED บนบอรดจะมอปกรณแสดงผลอกชนดหนงเรยกวา 7 Segment ( หมายถงมสวนทแสดงผลทแยก

เปนสวน ๆ จ านวน 7 สวน นนคอ LED ทมรปรางแบบสเหลยมเลก ๆ จ านวน 7 ดวงเรยงตอกนเปนตวเลข )

การเรยงหลอด D0 D7 ใหเปนตวเลขดงรป ดงนน หากตองการใหไฟตดเปนตวเลข

ตาง ๆ เราจงตองมการก าหนดการตดของหลอดไฟ LED ตามต าแหนงดงน

ค าสงคอ outport 888 63 คอ ( 32+16+8+4+2+1) จะไดตวเลขศนย

ค าสงคอ outport 888 5 คอ ( 4+1 ) จะไดตวเลขหนง

ค าสงคอ outport 888 91 คอ ( 64+16+8+2+1 ) จะไดตวเลขสอง

ค าสงคอ outport 888 79 คอ ( 64+8+4+2+1 ) จะไดตวเลขสาม

128 64 32 16 8 4 2 1

7 2

6 2

5 2

4 2

3 2

2 2

1 2

0 2

0 0

1

1

1

1

1

1

128 64 32 16 8 4 2 1

7 2

6 2

5 2

4 2

3 2

2 2

1 2

0 2

0

0

0

0

0

1

0

1

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

0 1

0

1

1

0

1

1

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

0

1

0

0

1

1

1

1

Page 47: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ค าสงคอ outport 888 101 คอ ( 64+32+4+1 ) จะไดตวเลขส

ค าสงคอ outport 888 110 คอ ( 64+32+8+4+2 ) จะไดตวเลขหา

ค าสงคอ outport 888 124 คอ ( 64+32+16+8+4 ) จะไดตวเลขหก

ค าสงคอ outport 888 7 คอ ( 4+2+1 ) จะไดตวเลขเจด

ค าสงคอ outport 888 127 คอ ( 64+32+16+8+4+2+1 ) จะไดตวเลขแปด

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

0

1

1

0

0

1

0

1

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

0 1

1

0

1

1

1

0

128 64 32 16 8 4 2 1

7 2

6 2

5 2

4 2

3 2

2 2

1 2

0 2

0

1

1

1

1

1

0

0

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

0

0

0

0

0

1

1

1

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

0

1

1

1

1

1

1

1

Page 48: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ค าสงคอ outport 888 103 คอ ( 64+32+4+2+1 ) จะไดตวเลขเกา

ตวอยาง โปรแกรมแสดงตวเลขนบถอยหลง จาก 9 0 พรอมแสดงเสยง beep ในการนบเลข

to countdown ; ชอโปรแกรมหลก

outport 888 103 beep ; แสดงเลข 9 แลวเรยกโปรแกรมยอย beep outport 888 127 beep ; แสดงเลข 8 แลวเรยกโปรแกรมยอย beep

outport 888 7 beep ; แสดงเลข 7 แลวเรยกโปรแกรมยอย beep

outport 888 124 beep ; แสดงเลข 6 แลวเรยกโปรแกรมยอย beep outport 888 110 beep ; แสดงเลข 5 แลวเรยกโปรแกรมยอย beep

outport 888 101 beep ; แสดงเลข 4 แลวเรยกโปรแกรมยอย beep outport 888 79 beep ; แสดงเลข 3 แลวเรยกโปรแกรมยอย beep

outport 888 91 beep ; แสดงเลข 2 แลวเรยกโปรแกรมยอย beep

outport 888 5 beep ; แสดงเลข 1 แลวเรยกโปรแกรมยอย beep outport 888 63 beep ; แสดงเลข 0 แลวเรยกโปรแกรมยอย beep

outport 888 0 ; ดบดวงไฟ end

to beep ; ชอโปรแกรมยอย

sound [1500 200] ; แสดงเสยงทความถ 1500 Hz นาน 200 wait 40 ; ระยะเวลาในการเปลยนตวเลข

end

ในภาษาโลโกสามารถเขยนโปรแกรมใหโปรแกรมหลกเรยกใชโปรแกรมยอยได เพยงการก าหนดชอโปรแกรมยอยในโปรแ กรมหลกในต าแหนงทตองการใชงานโปรแกรมยอย จากโปรแกรมขางตนน โปรแกรมหลกชอ countdown

และโปรแกรมยอยชอ beep โดยระหวางการแสดงตวเลขแตละคานนจะเรยกโปรแกรมยอย beep เพอแสดงเสยง และ

หนวงเวลา โดยการเขยนโปรแกรมยอยและการเรยกใชงานดงกลาว จะท าใหโปรแกรมสนกระชบ ไมตองม การเขยนค าสงแบบซ าซอน การ Run โปรแกรม เพยงแตเรยกชอโปรแกรมหลก คอ countdown โปรแกรมจะท างานพรอมทงเรยก

โปรแกรมยอยโดยอตโนมต

ตวอยาง โปรแกรมแสดงตวเลขนบถอยหลง จาก 9 0 พรอมแสดงเสยง beep ในการนบเลข และมตวเลขแสดงออก

จอคอมพวเตอร

to countdown ; ชอโปรแกรมหลก

setlabelfont [[Times New Roman] 80 0 0 400 0 0 0 0 3 2 1 18] cs ht pu ; ลางหนาจอ ซอนเตา ยกปากกา

outport 888 103 ; แสดงเลข 9 make “number 9 ; ก าหนดตวแปรทจะแสดงออกจอเปนเลข 9

beep ; เรยกโปรแกรมยอย beep

outport 888 127 ; แสดงเลข 8 make “number 8 ; ก าหนดตวแปรทจะแสดงออกจอเปนเลข 8

beep ; เรยกโปรแกรมยอย beep outport 888 7 ; แสดงเลข 7

make “number 7 ; ก าหนดตวแปรทจะแสดงออกจอเปนเลข 7

beep ; เรยกโปรแกรมยอย beep

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

0

1

1

0

0

1

1

1

Page 49: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

outport 888 124 ; แสดงเลข 6

make “number 6 ; ก าหนดตวแปรทจะแสดงออกจอเปนเลข 6 beep ; เรยกโปรแกรมยอย beep

outport 888 110 ; แสดงเลข 5 make “number 5 ; ก าหนดตวแปรทจะแสดงออกจอเปนเลข 5

beep ; เรยกโปรแกรมยอย beep

outport 888 101 ; แสดงเลข 4 make “number 4 ; ก าหนดตวแปรทจะแสดงออกจอเปนเลข 4

beep ; เรยกโปรแกรมยอย beep outport 888 79 ; แสดงเลข 3

make “number 3 ; ก าหนดตวแปรทจะแสดงออกจอเปนเลข 3 beep ; เรยกโปรแกรมยอย beep

outport 888 91 ; แสดงเลข 2

make “number 2 ; ก าหนดตวแปรทจะแสดงออกจอเปนเลข 2 beep ; เรยกโปรแกรมยอย beep

outport 888 5 ; แสดงเลข 1 make “number 1 ; ก าหนดตวแปรทจะแสดงออกจอเปนเลข 1

beep ; เรยกโปรแกรมยอย beep

outport 888 63 ; แสดงเลข 0 make “number 0 ; ก าหนดตวแปรทจะแสดงออกจอเปนเลข 1

beep ; เรยกโปรแกรมยอย beep outport 888 0 ; ดบดวงไฟ

end

to beep ; ชอโปรแกรมยอย

cs setxy -50 0 rt 90 ; ลางหนาจอ ก าหนดต าแหนงเตา หมนขวา 90 vองศา wait 30 ; หนวงเวลา 30 ตค

label :number ; แสดงคาตวเลขทางจอคอมพวเตอร sound [1500 200] ; แสดงเสยงทความถ 1500 Hz นาน 200

wait 40 ; ระยะเวลาในการเปลยนตวเลข

end

กจกรรม

การใช Led&7-Segments

1. จดประสงค ผเรยนสามารถ 1.1 รจก Led&7-segments

1.2 ใช Led&7-segments แสดงผลตามความตองการ 1.3 อธบายผลของค าสงในทใชกบ Led&7-segments ได

1.4 ค านวณเลขฐาน 16 เพอก าหนดการแสดงผลใหกบ Led&7-segments ได 1.5 เขยนค าสงภาษาโลโก เพอให Led&7-segments แสดงผลตามต าแหนงทตองการได

1.6 ใชค าสงชะลอ (wait) การท างานได

1.7 ใชค าสงภาษาโลโกทเรยนรผานมาได 2. สออปกรณ

2.1 ความรเรอง Led&7-segments 2.2 ตวอยางค าสง การแสดงผลโดย Led&7-segments&led

2.3 ชดทดลอง

2.4 เครองคอมพวเตอร 3. วธการด าเนนการ(กรณทอปกรณมไมพอ)

3.1 แบงผเรยนเปนกลม ๆ ละ 2-4 คน 3.2 เตรยมใบความรและใบงาน

3.3 เตรยมชดทดลอง 3.4 ขนด าเนนการ

3.4.1 ใหผเรยนแตละกลมนงประจ าโตะ พรอมอปกรณการทดลอง

3.4.2 ใหอานจดประสงคการเรยนร 3.4.3 ใหผเรยนศกษาใบความรเรอง Led&7-segments

Page 50: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

3.4.4 ใหผเรยนท าการตดตงอปกรณการเรยนร(Led&7-segments) ตามรปทแสดงไว

3.4.5 ใหผเรยนคยค าสงในตวอยางตามใบงานทใหท า

1. สอ - อปกรณ 1.1

ท เรอง เวลา

1 2

รปการตอเชอมระหวาง Led&7-segments กบพอรตพรนเตอร การตดตงอปกรณพอรตพรนเตอรกบเครองคอมพวเตอร

ภาพท 1 อปกรณ Led&7-Segments ภาพท 2 สายพอรตพรนเตอร

ภาพท 3 AC-DC ADAPTOR ส าหรบจายกระแสไฟ

ขนตอนการตดตงอปกรณ

1. น าสายพรนเตอร(ภาพท 2 ) มาเสยบยงพอรตของอปกรณ Led&7-Segments ดงรป

ภาพการตอสายพอรตพรนเตอรกบอปกรณ Led&7-Segments 2. น าเอาสายพรนเตอรไปเสยบกบชองพอรตพรนเตอรดานหลงชดคอมพวเตอร ดงรปขางลาง

ภาพการน าสายพอรตพรนเตอรตอเขากบชองพอรตพรนเตอรดานหลงชดคอมพวเตอร

Page 51: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

3. น าชดอปกรณ Led&7-Segments ตอเขากบชด AC-DC ADAPTOR (ภาพท 3) ดงรปขางลาง

ภาพการน าชดอปกรณตอเขากบ AC-DC ADAPTOR

ภาพเสรจสมบรณในการตออปกรณ

Page 52: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ใบงาน

ความร Led&7-segments

1.ใหผเรยนพมพค าสงดงตอไปนแลวดผลการท างาน ตวอยาง โปรแกรมสงงานหลอดไฟ LED วงจาก D0 D7

to runLED1

outport 888 1 wait 40 outport 888 2 wait 40

outport 888 4 wait 40

outport 888 8 wait 40 outport 888 16 wait 40

outport 888 32 wait 40 outport 888 64 wait 40

outport 888 128 wait 40

outport 888 0 end

2.ใหผเรยนพมพค าสงดงตอไปนแลวดผลการท างาน ตวอยาง โปรแกรมสงงานหลอดไฟ LED วงจาก D0 D7 แตใชค าสง repeat

to runLED2

make “x 1

repeat 8 [ outport 888 :x wait 40

make “x :x*2

]

outport 888 0

end

3.ใหผเรยนพมพตามค าสงขางลางน แลวใหดผลการท างาน

ตวอยาง โปรแกรมแสดงตวเลขนบถอยหลง จาก 9 - 0 พรอมแสดงเสยง beep ในการนบเลข

to countdown

outport 888 103 beep

outport 888 127 beep

outport 888 7 beep

outport 888 124 beep

outport 888 110 beep

outport 888 101 beep

outport 888 79 beep

Page 53: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

outport 888 91 beep

outport 888 5 beep

outport 888 63 beep

outport 888 0

end

to beep

sound [1500 200]

wait 40

end

4 .ใหผเรยนพมพตามค าสงขางลางน แลวใหดผลการท างาน

ตวอยาง โปรแกรมแสดงตวเลขนบถอยหลง จาก 9 - 0 พรอมแสดงเสยง beep ในการนบเลข และมตวเลขแสดงออกจอคอมพวเตอร

to countdown2

setlabelfont [[Times New Roman] 80 0 0 400 0 0 0 0 3 2 1 18]

cs ht pu

outport 888 103

make “number 9

beep

outport 888 127

make “number 8

beep

outport 888 7

make “number 7

beep

outport 888 124

make “number 6

beep

outport 888 110

make “number 5

Page 54: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

beep

outport 888 101

make “number 4

beep

outport 888 79

make “number 3

beep

outport 888 91

make “number 2

beep

outport 888 5

make “number 1

beep

outport 888 63

make “number 0

beep

outport 888 0

end

to beep

cs setxy -50 0 rt 90

wait 30

label :number

sound [1500 200]

wait 40

end

Page 55: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

5. ใหผเรยนทดลองคยค าสงขางลางน แลวใชอปกรณ 7segmet&led ของบรษทแบมบโปรเจค กรปส จ ากด เชอมตอแลว

ดการท างานของอปกรณพรอมทงดหนาจอคอมพวเตอรวามการท างานอยางไร to hello

outport 888 117 fd 50 bk 100 fd 50 rt 90 fd 50 lt 90 fd 50 bk 100

wait 100

pu home

pd outport 888 0

clean wait 50

outport 888 122

fd 50 rt 90 fd 50 bk 50 rt 90 fd 50 lt 90 fd 50 bk 50 rt 90 fd 50 lt 90 fd 50 wait 100

pu home

pd

outport 888 0 clean

wait 50 outport 888 56

fd 100 bk 100 rt 90 fd 100 wait 100

pu

home pd

outport 888 0 clean

wait 50

outport 888 56 fd 100 bk 100 rt 90 fd 100

wait 100 pu

home

pd outport 888 0

clean wait 50

outport 888 63 lt 90 fd 50 rt 90 fd 100 rt 90 fd 100 rt 90 fd 100 rt 90 fd 50

wait 100

pu home

pd outport 888 0

clean

wait 50 end

Page 56: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

6. ใหผเรยนทดลองคยค าสงขางลางน แลวใชอปกรณ 7segmet&led ของบรษทแบมบโปรเจค กรปส จ ากด

เชอมตอแลวดการท างานของอปกรณพรอมทงดหนาจอคอมพวเตอรวามการท างานอยางไร

to hello2 outportb 888 117

cs fd 100 bk 50 rt 90 fd 50 lt 90 fd 50 bk 100 rt 90

wait 60 outportb 888 0

wait 15 outportb 888 122

pu fd 50 pd fd 50 bk 50 lt 90 fd 50 rt 90 fd 50 bk 50 lt 90 fd 50 rt 90 fd 50 wait 60

outportb 888 0

wait 15 outportb 888 56

pu fd 50 pd rt 90 fd 100 lt 90 fd 50 wait 60

outportb 888 0

wait 15 outportb 888 56

pu fd 50 pd fd 50 bk 50 lt 90 fd 100 rt 90 wait 60

outportb 888 0 wait 15

outportb 888 63

pu fd 100 pd fd 50 rt 90 fd 100 rt 90 fd 50 rt 90 fd 100 wait 60

end

7. ใหผเรยนคยค าสงภาษาโลโก ขางลางนแลวใหใชอปกรณ 7segmen&led ของบรษทแบมบโปรเจค กรปส จ ากด เปน

เครองมอในการทดลอง เมอท าการ run โปรแกรมแลว ใหสงเกตการท างานของโปรแกรมและอปกรณ to a

outport 888 5 cs

n1

wait 60

outport 888 91 cs

n2 wait 60

outport 888 79

cs n3

wait 60

outport 888 101

cs n4

wait 60

outport 888 110 cs

n5

wait 60

outport 888 126

Page 57: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

cs

n6

wait 60 outport 888 7

cs

n7

wait 60 outport 888 127

cs n8

wait 60 outport 888 111

cs n9

wait 60 outport 888 63

cs n0

wait 60

end

to d Outportb 888 1

wait 120

Outportb 888 2 wait 120

Outportb 888 4 wait 120

Outportb 888 8

wait 120 Outportb 888 16

wait 120 Outportb 888 32

wait 120 Outportb 888 64

wait 120

Outportb 888 128 wait 120

end

to n0

setpensize[8 8] fd 100 rt 90 fd 50 rt 90 fd 100

rt 90 fd 50 end

Page 58: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

to n1 setpensize [8 8]

fd 100 seth 250 fd 50 pu home pd

rt 90 fd 50 bk 100

pu home pd

end

to n2 rt 90 fd 50 bk 50 seth 0 fd 50

rt 90 fd 50 seth 0 fd 50 lt 90

fd 50 pu home pd

end

to n3 lt 90 fd 50 bk 50 seth 0 fd 100 bk 50 lt 90

fd 50 bk 50 seth 0 fd 50 lt 90 fd 50 pu home pd

end

to n4

fd 100 bk 50 lt 90 bk 10 fd 60 seth 0 fd 50

end

to n5

rt 90 fd 50 seth 0 fd 50 lt 90 fd 50 rt 90 fd 50 rt 90 fd 50 end

to n6

repeat 4 [fd 50 rt 90]

fd 100 rt 90 fd 50 end

to n7

fd 100 lt 90 fd 50 lt 90 fd 30 end

to n8 repeat 4[fd 50 rt 90]

fd 50 repeat 4[fd 50 rt 90]

end

to n9

repeat 4 [fd 50 rt 90] pe fd 50 ppt

repeat 4 [fd 50 rt 90]

end

Page 59: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

to pl outportb 888 63

wait 60 outportb 888 5

wait 60

outportb 888 91 wait 60

outportb 888 79 wait 60

outportb 888 101 wait 60

outportb 888 110

wait 60 outportb 888 126

wait 60 outportb 888 39

wait 60

outportb 888 127 wait 60

outportb 888 111 wait 60

end

แบบฝกหด

1. จงเขยนโปรแกรมใหไฟสวาง และดบสลบกน วธท า ใหไฟสวางดวงเวนดวงท าไดโดยสงคาออกไปทางพอรต จากนนหนวงเวลาและสงคา ออกไป

ทางพอรต และหนวงเวลาจากนนท าโปรแกรมซ า ๆ ดงรปขางลางน

2. จงเขยนใหแสดงค าวา Microcomputer

3. จงเขยนชอตวเองใหออกไฟวง

4. จงเขยนโปรแกรมนบเลขลงโดยเรมตนจาก 9 จนถง 0 ซงจะแสดงผลบนวงจรหลอดแสดงผล 7 สวนและบนจอภาพ

Page 60: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

Relay ( รเลย )

เปนอปกรณอเลกทรอนกส ทน ามาประยกตใชเพอใหเราสามารถใชสญญาณแรงดนต า

ควบคมอปกรณไฟฟาทใชขนาดแรงดนสง และกนก าลงงานสงๆ ได โดยท แรงดนไฟฟาทแตกตางกนระหวางทงสองดานไมตองสมผสกนเลย

บอรด Relay

บอรด Relay

จากบอรด LED & 7 Segment ทผานมาเปนการเรยนรการสงคาออกมาจากคอมพวเตอร ดวยเลขฐานสบทมการแปลงคาออกมาจากเลขฐาน สอง วธการเขยนโปรแกรมแสดงผลออกมาทบอรดแบบตาง ๆ นอกจากการแสดงผลดวย

หลอดไฟ LED เรายงสามารถประยกตสญญาณจากคอมพวเตอรเพอเปด -ปดอปกรณไฟฟาไดดวย บอรด Relay ท บรษท

แบมบ โปรเจค กรปส จ ากด ไดออกแบบและผลตขนมา

โครงสรางของ Relay จะมอยหลาก หลายชนด ขนอยกบผผลตและ

โมเดล ทจะใชงาน แตโครงสรางพนฐานจะ

ประกอบไปดวยขดลวดดานแรงดน

ต า และมสะพานไฟดานแรงดนสง

กระแสสง แสดงดงรป ตามรป เมอจายแร งดนไฟฟาเขาทขดลวด จะเกดสนามแมเหลกไฟฟาเหนยวน า เปนผลให

สะพานไฟขา Com (Common) ถกดดลงมาแตะหรอตอเขากบสะพานขา NO (Normal Open) เมอหยดจายกระแสไฟฟาทขดลวด สะพานไฟขา Com จะถกดงดวยแรงสปรงกลบไปแตะหรอ

ตอเขากบสะพานขา NC (Normal Close)

จากหลกการท างานดงกลาว เราจงสามารถควบคมอปกรณไฟฟาทใชปรมาณกระแสสง ไดดวยสญญาณ ไฟฟาขนาดเลก ทมแรงดนไฟต า ๆ และกระแสต า ๆ ไดอยางไมยากเยน

สะพานไฟ ดานเอาทพทส าหรบ

ไฟแรงดนสง กระแสสง

ดานอนพทส าหรบไฟแรงดน

ต า 5-24 Vdc NO

NC

Com

i NO

NC

Com

+Vcc

สะพานไฟ ดานเอาทพทส าหรบ

ไฟแรงดนสง กระแสสง

Page 61: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

วงจรการท างานของบอรด Relay

Data Port # 888

ในบอรด Relay ทออกแบบมาน มการใชงานเพยง 4 บท คอ D0 D3 ดงนน

การสงงานเพอให Relay ท างานนนจะคลายกบการสงงานควบคมบอรด LED & 7 Segment

เพยงแตเราจะพจารณาเพยงคา 4 บทนเทานน

ตวอยาง โปรแกรมการทดสอบสงงานให Relay ท างานทละชด เปนเวลาชดละ 5 วนาท

to testrelay outport 888 1 wait 300 ; สงให Relay ท D0 ท างานเปนเวลา 5 วนาท

outport 888 2 wait 300 ; สงให Relay ท D1 ท างานเปนเวลา 5 วนาท outport 888 4 wait 300 ; สงให Relay ท D2 ท างานเปนเวลา 5 วนาท

outport 888 8 wait 300 ; สงให Relay ท D3 ท างานเปนเวลา 5 วนาท

outport 888 0 ; สงให Relay หยดท างาน end

128 64 32 16 8 4 2 1

7 2

6 2

5 2

4 2

3 2

2 2

1 2

0 2

x x

x

x

D3

D2

D1

D0

ชดขบ

สญญาณ

D0

D1

D2

D3

Page 62: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ตวอยาง โปรแกรมตงเวลาควบคมการท างานของ Relay ( คอการสงอปกรณไฟฟาท างานตามเวลาทเราตองการนนเอง )

to timer1

cs ht pu ; ลางหนาจอ ซอนเตา ยกปากกา setlabelfont [[Times New Roman] -80 0 0 400 0 0 0 0 3 2 1 18] ; ก าหนดลกษณะตวอกษร

setpencolor [0 0 255] ; ก าหนดสปากกา

make "relay1 "16:32:00 ; ก าหนดตงเวลาให Relay ชดแรกท างาน make "relay2 "16:32:10 ; ก าหนดตงเวลาให Relay ชดท 2 ท างาน

make "relay3 "16:32:20 ; ก าหนดตงเวลาให Relay ชดท 3 ท างาน make "relay4 "16:32:30 ; ก าหนดตงเวลาให Relay ชดท 4 ท างาน

make "off "16:32:40 ; ก าหนดตงเวลาให Relay ทกตวหยดท างาน make "x 0 ; ก าหนดเงอนไขการวนรอบท างาน

do.until [

make "t item 4 time ; อานคาเวลาจากคอมพวเตอรมาเกบไวท ตวแปร t cs setxy -150 0 rt 90 ; เตรยมต าแหนงการแสดงคาเวลาบนจอคอมพวเตอร

label :t ; แสดงเวลาบนจอคอมพวเตอร if :t=:relay1 [outport 888 1] ; ถาเวลาตรงกบคา Relay1 ทตงไวให Relay1 ท างาน

if :t=:relay2 [outport 888 1+2] ; ถาเวลาตรงกบคา Relay/ ทตงไวให Relay2 ท างาน

โดย Relay 1 ยงท างานคางอย if :t=:relay3 [outport 888 1+2+4] ; ถาเวลาตรงกบคา Relay3 ทตงไวให Relay3 ท างาน

โดย Relay 1 และ Relay 2 ยงท างานคางอย if :t=:relay4 [outport 888 1+2+4+8] ; ถาเวลาตรงกบคา Relay4 ทตงไวให Relay4 ท างาน

โดย Relay 1, Relay 2 และ Relay 3 ยงท างานคางอย if :t=:off [make "x 1] ; ถาเวลาตรงกบคาทตองการหยดการท างานของ Relay

ทตงไวให ก าหนดตวแปรใหตรงกบเงอนไขเพอออกจาก

การวนรอบ ][:x=1] ; ก าหนดเงอนไขเพอออกจากการวนรอบ

cs setxy -150 0 rt 90 ; เตรยมพนท และต าแหนงการแสดงหนาจอใหม label [Bye Bye] ; แสดงค าวา Bye Bye กอนจบโปรแกรม

outport 888 0 ; สงให Relay ทกตวหยดการท างาน

end

จะเหนไดวาการเขยนโปรแกรมดงกลาวจะสามารถควบคม Relay ใหท างานตามความตองการของเราไดแลว คราว

นเมอตอสะพานไฟหรอหนาคอนแทค ของ Relay เพอน าไปใชงานผเขยนจะอธบายใหคราว ๆ ดงรปตอไปน

Relay

220Vac

จากรปขางบนน ขณะ Relay ไมท างานต าแหนงสะพานไฟ NO และ Com จะแยกเปดออก ท าใหกระแสไฟฟาจากปลกไฟไมสามารถผานไปได เมอไมมกระแสไฟฟาไหลไปทโคมไฟ โคมไฟจงไมตดสวาง

Page 63: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

Relay

220Vac

จากรปขางบนน เมอมการสงงาน Relay ใหท างานดวยโปรแกรมค าสงตาง ๆ ดงทกลาวมาแลวนน จะมกระแสไฟฟา

ดานขดลวดไหลผานขดลวด เกดสนามแมเหลกไฟฟาตามมาและสงผลใหหนาคอแทค หรอสะพานไฟถกแรงแมเหลกไไฟาดดโยกขา Com จากขว NC มาตอเขาทขว NO ท าใหกระแสไฟฟาสามารถไหลผานไปได และไหลเขาสโคมไฟ

แลวกลบไปครบวงจรทปลกไฟอกขวหนงตามหลกของวงจรไฟฟา ดงนนเมอโคมไฟไดรบกระแสไฟฟากจะไดรบพลงงาน

และเปลงแสงออกมาได

จากหลกการท างานดงกลาว เราน า ไปเปด-ปดอปกรณไฟฟาอน ๆ ไดอกมากมาย เชน พดลม ปมน า กรงโรงเรยน แสงสวางตามจดตาง ๆ โดยการเขยนโปรแกรมควบคมท างานตามความตองการ แตทงนตองค านงถงความสามารถในการ

ทนกระแสของ Relay ดวยวา อปกรณไฟฟาดงกลาวจะตองไมกนกระแสไฟฟาเกนควา มสามารถของ Relay ทเราใชอย มเชนนน Relay อาจเสยหาย และอาจเกดไฟไหมได วธทดทสดคอ ใหปรกษากบชางไฟฟาทเราตดตอได หรอชางใกล

บานเพอใหแนใจวามความปลอดภยเพยงพอ

1.ใหผเรยนพมพค าสงดงตอไปนแลวดผลการท างาน

ตวอยาง โปรแกรมการทดสอบสงงานให Relay ท างานทละชด เปนเวลาชดละ 5 วนาท

to testrelay outport 888 1 wait 300

outport 888 2 wait 300 outport 888 4 wait 300

outport 888 8 wait 300

outport 888 0 end

2.ใหผเรยนพมพค าสงดงตอไปนแลวดผลการท างาน ตวอยาง โปรแกรมตงเวลาควบคมการท างานของ Relay ( คอการสงอปกรณไฟฟาท างานตามเวลาทเราตองการนนเอง )

to timer1

cs ht pu

setlabelfont [[Times New Roman] -80 0 0 400 0 0 0 0 3 2 1 18] setpencolor [0 0 255]

make "relay1 "16:32:00 make "relay2 "16:32:10

make "relay3 "16:32:20

make "relay4 "16:32:30 make "off "16:32:40

make "x 0 do.until [

make "t item 4 time cs setxy -150 0 rt 90

label :t

if :t=:relay1 [outport 888 1]

Page 64: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

if :t=:relay2 [outport 888 1+2]

if :t=:relay3 [outport 888 1+2+4] if :t=:relay4 [outport 888 1+2+4+8]

if :t=:off [make "x 1 ][:x=1]

cs setxy -150 0 rt 90

label [Bye Bye] outport 888 0

end

3. ใหผเรยนทดลองคยค าสงขางลางน แลวใชอปกรณ Relay ของบรษทแบมบโปรเจค กรปส จ ากด เชอมตอแลวดการท างานของอปกรณพรอมทงดหนาจอคอมพวเตอรวามการท างานอยางไร

To relay Repeat 4 [

Outport 888 1 Wait 50

Outport 888 2

Wait 50 Outport 888 4

Wait 50 Outport 888 8

Wait 50 Outport 888 0

]

end

4. ค าสง ใหผเรยนลองพมพแลวดผลลพธ จากอปกรณทแจกให

ใหผเรยนเขยนชดค าสงดวยภาษาโลโก จากตวอยางขางลางโดยใชค าสงทเรยนรมากอนหนาน แลวเรยกใชงาน

ใหแสดงผล โดยการคลกเลอกตวเลข 1 ถง 4 เพอใหอปกรณท างานตามตองการ คลกเลอก q เพอออกจากโปรแกรมและ

ใหสงเกตดการท างานของอปกรณ Relay (โปรแกรมจากใบงานนม 2 สวนคอ โปรแกรมยอย relay1 และโปรแกรมหลก w )

to relay1

make "c (array 4 0)

make "a (array 4 0) setitem 0 :a 1

setitem 1 :a 2 setitem 2 :a 4

setitem 3 :a 8 make "ch first comboboxgettext "mycombo

if :ch = "q [ windowdelete "mywindow ]

if not :ch = "q [ make "e :b

make "i 0 for [0 4 1] [

make "f modulo :e 2

setitem :i :c :f make "t item :i :c

make "t :e-:t make "e :t / 2

make "i :i+1 ]

if :ch > 0 [

if :ch < 5 [ make "d item :ch-1 :c

make "e item :ch-1 :a

Page 65: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

if :d = 0 [make "b :b+:e]

if :d = 1 [make "b :b-:e] print :b

outport 888 :b wait 50

]

] ]

end

to w make "b 0

outport 888 :b

windowcreate "main "mywindow "mytitle 0 0 100 200 [] comboboxcreate "mywindow "mycombo 25 0 50 150

comboboxaddstring "mycombo [1] comboboxaddstring "mycombo [2]

comboboxaddstring "mycombo [3]

comboboxaddstring "mycombo [4] comboboxaddstring "mycombo [q]

buttoncreate "mywindow "mydraw "Action 25 160 50 25 [relay1] end

5. ใหผเรยนเขยนค าอธบายการท างานของชดค าสงทเหนวาท างานอยางไร

------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

6. จากตวอยางโปรแกรมนใหผเรยนเขยนอธบายวาจะสามารถน าไปประยกตใชกบงานอะไรไดบางอยางไร

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------- อธบายการท างานของโปรแกรม

to relay1

make "c (array 4 0) ก าหนด c ใหเปนอารเรย ขนาด 4 โดยเรมตนท 0 make "a (array 4 0) ก าหนด a ใหเปนอารเรย ขนาด 4 โดยเรมตนท 0

setitem 0 :a 1 ก าหนดให อารเรย 0 มคาเปน 1 setitem 1 :a 2 ก าหนดให อารเรย 1 มคาเปน 2

setitem 2 :a 4 ก าหนดให อารเรย 2 มคาเปน 4

setitem 3 :a 8 ก าหนดให อารเรย 3 มคาเปน 8 make "ch first comboboxgettext "mycombo

if :ch = "q [ windowdelete "mywindow ] ถากด q ใหปดหนาตาง windows ทสรางขนมา if not :ch = "q [ ถาไมใช q

make "e :b ให e = b make "i 0 ให i = 0

for [0 4 1] [

make "f modulo :e 2 เอา e หารดวย 2 เกบทคา f setitem :i :c :f แลวน า f มาเกบทอารเรย 0 ของ c

make "t item :i :c น าอารเรยทเกบไวมาไวท item 0 ของ c มาไวท t

Page 66: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

make "t :e-:t ลบเศษทง

make "e :t / 2 เอา t หารดวย 2 make "i :i+1

] if :ch > 0 [

if :ch < 5 [

make "d item :ch-1 :c make "e item :ch-1 :a

if :d = 0 [make "b :b+:e] if :d = 1 [make "b :b-:e]

print :b outport 888 :b wait 50

]

] ]

end

อธบายการท างานของโปรแกรม

to w make "b 0 (ก าหนดคา b เทากบ 0 )

outport 888 :b (แสดงคา b ออกทาง relay) windowcreate "main "mywindow "mytitle 0 0 100 200 [] (สรางหนาตาง windows ขนมาตงชอวา mywindows)

comboboxcreate "mywindow "mycombo 25 0 50 150 (สรางcombobox ทหนาตาง windows ทเราสรางทจดx1,y1,x2,y2)

comboboxaddstring "mycombo [1] (ใส 1 ท mycombo)

comboboxaddstring "mycombo [2] (ใส 2 ท mycombo) comboboxaddstring "mycombo [3] (ใส 3 ท mycombo)

comboboxaddstring "mycombo [4] (ใส 4 ท mycombo) comboboxaddstring "mycombo [q] (ใส q ท mycombo)

buttoncreate "mywindow "mydraw "Action 25 160 50 25 [relay1] (สรางปม ชอ Action เพอเรยกใชจาก relay1)

end

อธบายค าสง

windowcreate "main "mywindow "mytitle 0 0 100 200 []

คอค าสงสรางหนาตางห ลก ชอ mywindows โดยใหมหวขอบอกขยายความ mytitle และระบต าแหนงมมบนซาย

(x1,y1) กบต าแหนงลางขวา (x2,y2) ทจะแสดง comboboxcreate "mywindow "mycombo 25 0 50 150

คอค าสงสราง combo ไวในหนาตาง mywindows โดยตงชอวา mycombo และระบต าแหนงวาดในหนาตางทสรางขน คอ มมบนซาย (x1,y1) กบต าแหนงลางขวา (x2,y2)

comboboxaddstring "mycombo [1] คอค าสงในการเพมคาเขาไปไวใน combo ทสรางขน

buttoncreate "mywindow "mydraw "Action 25 160 50 25 [relay1]

คอค าสงสรางปมเพอคลก เมอตองการสงคา โดยตงชอวา mydraw และมขอความแสดงบนปมทสรางวา Action และระบต าแหนงวาดในหนาตางทสรางขน คอ มมบนซาย (x1,y1) กบระบความกวางและความยาวของปม ตอจากนนท าการ

เรยกโปรแกรมยอยทสรางขนไวใหท างาน make "ch first comboboxgettext "mycombo

ท าการสรางตวแปลขนมารบคาจาก combo ทชอ mycombo

Page 67: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

บอรด Input Switch

ค าสงในการรบขอมลเขาทางพอรตขนาน

จากบทเรยนเกยวกบการตดตอพอรตขนานทกลาวมาขางตน จะเหนไดวาลวนเปนการสงงานออกจากคอมพวเตอร

เพอแสดงผลท อปกรณปลายทางภายนอกคอมพวเตอรทงสน แตหากการเขยนโปรแกรมเพอการควบคมระบบอตโนมตโดยแทจรงนนตองมการรบคาจากอปกรณภายนอกกลบเขามาทคอมพวเตอรเพอประมวลผลและแสดงผลดวยจงจะเปน

ระบบทสมบรณ ดงนนหวขอดงตอไปน จงมความส าคญอยาง ยงทจะเรยนรและเขาใจหลกการเขยนโปรแกรมรบคาจาก

อปกรณภายนอก

ในเรองการรบขอมลเขาทางพอรตขนาน เราจะใช

Status Port เปนพอรตรบขอมลเขา เนองจากเปนพอรตเดยวทเปนพอรตอนพต

Data Port #888 Status Port #889 Control Port

#890

inportb เปนค าสงในการรบคาจากพอรตทมคา 8 บท มรปแบบค าสงดงน inportb เลขทพอรต เชน inportb 889 แตการรบคาอนพตมาจากอปกรณภายนอกนน เราจ าเปนตองสรางตวแปรรบ

เพอเกบคาดงกลาวไวกอนจะท ากระบวนการอน ๆ ต อไป ดงนนค าสงรบคา inportb 889 ตองท างานรวมกบกบค าสงอน ๆ

ดวย ดงตวอยางตอไปน

make “x inportb 889 ; คอการรบคาจากพอรตเลขท 889 เพอเกบไวในแปรชอ x show :x ; แสดงคาทเกบไวในตวแปร x ออกมา

บอรด Input Switch

บอรด Input Switch ของบรษท แบมบ โปรเจค กรปส จ ากด ถกออกแบบมาเพอเปนสอฮารดแวรในการเรยนรการเขยนโปรแกรมรบคาจากอปกรณภายนอก และการแสดงผล มโครงสรางดงตอไปน

ลมเรองโครงสรางและ

เลขทพอรตหรอยงครบ

Page 68: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

วงจร input switch มโครงสรางดงรปดาน

ซายมอน การตอวงจร switch ตอเพยง 5 บทของพอรตเทานน คอ D7 D3 เนองจาก

โครงสรางพอรตไดถกออกแบบมาจากผผลตเพอ

ใชงานเพยง 5 บท

จากวงจร กระแสไฟฟาจะไหลจากแหลงจายไฟไหลผานตวตานทานไฟฟา แลวผาน LED เพอ

จะไปสแรงดนทต ากวาคอกราวด (Ground) แต

กระแสไฟฟาไมสามารถไหลผานไปไดหากไมไดกดสวทซซงท าหนาทเปนสะพานไฟ ดงนน

กระแสไฟ ฟาจงมลกษณะคลายกระแสน าทไหลเขาบทตาง ๆ ของพอรตขนานแทน จนกระทง

ความสงของแรงดนเทากบแหลงจายไฟฟา

( +5Vdc) จงหยดไหลปรากฏการณดงกลาวเกดขนเรวมากเนองจากเปนการท างานของ

กระแสไฟฟา

มาถงตอนนแตละบทของพอรตขนาน ทบานเลขท 889 จะมแรงดนไฟฟาเทากบ 5 Vdc แทน

ความหมายทางดจตอลคอ “1”s

หากมการกดสวทซใด ๆ กระแสไฟฟาจะ

สามารถไหลผานสวทซไปสทต ากวาไดคอกราวดนนเอง ดงนน แรงดนไฟฟาทบททมการกด

สวทซจะตกลงเปน “0” ลองจนตนาการเหมอนน าทถกไขกอกทงระดบน าจะลดลงจนหมด

ตามรปดานซายมอ มการกดสวทซ 2 และ สวทซ

4 ซงตอกบพอรตท D6 และ D4 ตามล าดบ จะกลายเปน “0” ขณะทบทอน ๆ ยงคงเปน “1”

คราวนเราตองเขยนค าสงรบคาจากพอรตขนาน

ตรวจสอบสถานการณกดสวทซ และแสดงผลให ถกตอง โดยใชค าสงทกลาวไปแลวขางตนคอ

make “x inportb 889 ; คอการรบคาจากพอรตเลขท 889 เพอเกบไวในแปรชอ x show :x ; แสดงคาทเกบไวในตวแปร x ออกมา

ผลทไดจะเปนตวเลขขนาดหลกสบทมคาหลกหมนซงจรง ๆ แลวคอมพวเตอรรบคาจากพอรตขนานเปนเลขฐานสองในบทตาง ๆ รวมถงบททเราไมไดตอใชงานดวยมาแปลงเปนเลขฐานสบแลวแสดงใหเราเหนบนจอคอมพวเตอรนนเอง แต

จ านวนตวเลขทแสดงจะตรงกนบางหรอไมตรงกนบางกบเครองอน ๆ เพราะเครองแตละเครองเชนตางยหอ อาจจะมการก าหนดคาบททไมไดตอใชงานตางกน จงท าใหคาทแสดงออกมาไมเทากน อยางไรกตามตวเลขขนาดหลกหมนเราจะมา

นงแปรความหมายคอนขางยากและไมสะดวก ดงนนในทางตรรกศาสตร (คณตศาสตรทวาดวยการกระท ากบตวเลข “0” กบ “1” จงมกระบวนการตาง ๆ ทสามารถน ามาใชงานแลวใหไดผลลพธตามทเราตองการได เราจะพกเรองการรบคา

พอรตไวชวคราว เพอจะเรยนรเรองการกระท าทางตรรกศาสตรกนกอนดงน

#889

Page 69: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

เรยนรการการท าทางตรรกศาสตร

การกระท า “และ” (AND) การกระท า “และ” (AND) เปรยบเสมอนวงจรไฟฟาแบบ “อนกรม” แสดงใหเหนดงตอไปน

เราจะสงเกตเหนวาวงจรไฟฟาแบบ “อนกรม” จะใหผลลพธ เปนจรง (ไฟตดสวาง) กตอเมอเงอนไขทง 2 ในทนคอ กดสวทชไฟฟาเปนจรง (สะพานตอ)

ดงนนเราสามารถสรปการกระท าทางตรรกศาสตร “และ” (AND) ไดดงน

AND ผลลพธ

A B Y

0 0 0

0 1 0

1 0 0

1 1 1

ตวอยางท 1

หากเรามตวแปรทมคา 8 บท 2 ตว เชน ตวแปร X = 1010 0101 และตวแปร Y = 0101 1010 เราจะน าคาตวแปรทงสองตวมา AND กน จะไดผลลพธดงน

X = 1 0 1 0 0 1 0 1

Y = 0 1 0 1 1 0 1 0

ผลลพธ = 0 0 0 0 0 0 0 0

กดสวทช A กดสวทช B

แบตเตอรร ผลลพธ

แบตเตอรร

แบตเตอรร แบตเตอรร ผลลพธ

ผลลพธ

ผลลพธ

กดสวทช A ปลอยสวทช B

ปลอยสวทช A กดสวทช B ปลอยสวทช A ปลอยสวทช B

กระแสไฟฟา

Page 70: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ตวอยางท 2

หากตวแปร T = 15 ( 0000 1111 ) และตวแปร U = 17 (0001 0001) จงหาผลลพธของ T “AND” U

T = 0 0 0 0 1 1 1 1 U = 0 0 0 1 0 0 0 1

ผลลพธ = 0 0 0 0 0 0 0 1

ผลลพธ = 1 ในเลขฐานสบ

ค าสง AND ในภาษาโลโก bitand คาตวตง คาตวกระท า เปนการ AND ในต าแหนงบททตรงกนระหวางตวตง และตวกระท า โดยตวตงและตว

กระท าอาจจะอยในเลขจ านวนเตม หรอ ตวแปรกได ค าสง bitand ไมสามารถท างานเพยงล าพงได เราจ าเปนตองมทเกบคาผลลพธ ดงนน bitand มกจะท างานรวมกบ make เพอประกาศคาตวแปรเกบคาผลลพธ

เชน make “Hello bitand 128 129 ; ก าหนดตวแปรชอ Hello เกบผลการ AND ของ 128 กบ 129

show :Hello ; แสดงผลลพธ

ผลลพธจะแสดงคา = 128 ซงมาจาก

128 = 1 0 0 0 0 0 0 0

129 = 1 0 0 0 0 0 0 1 Hello = 1 0 0 0 0 0 0 0

การกระท า “หรอ” (OR) การกระท า “หรอ” (OR) เปรยบเสมอนวงจรไฟฟาแบบ “ขนาน” แสดงใหเหนดงตอไปน

เราจะสงเกตเหนวาวงจรไฟฟาแบบ “ขนาน” จะใหผลลพธ ทเหมอนกบผลลพธทางตรรกศาสตรแบบการกระท าดวย “หรอ” และ วงจรดจตอลแบบ “OR” คอจะใหผลเปนจรง (ไฟตดสวาง) กตอเมอเพยงเงอนไขใดเงอนไขหนง ในทนคอ สะพาน

ไฟฟาเปนจรง (สะพานตอ) ดงนนเราสามารถสรปการกระท าทางตรรกศาสตร “หรอ” (OR) ไดดงน

กดสวทช A

กดสวทช B

ปลอยสวทช A

กดสวทช B

กดสวทช A

ปลอยสวทช B

ปลอยสวทช A

ปลอยสวทช B

กระแสไฟฟา แบตเตอรร แบตเตอรร

แบตเตอรร แบตเตอรร

ผลลพธ ผลลพธ

ผลลพธ ผลลพธ

Page 71: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

OR ผลลพธ

A B Y

0 0 0

0 1 1

1 0 1

1 1 1

ตวอยางท 1

หากเรามตวแปรทมคา 8 บท 2 ตว เชน ตวแปร X = 1010 0101 และตวแปร Y = 0101 1010 เราจะน าคาตวแปรทงสองตวมา OR กน จะไดผลลพธดงน

X = 1 0 1 0 0 1 0 1

Y = 0 1 0 1 1 0 1 0

ผลลพธ = 1 1 1 1 1 1 1 1

ตวอยางท 2 หากตวแปร T = 15 ( 0000 1111 ) และตวแปร U = 17 (0001 0001) จงหาผลลพธของ T “OR” U

T = 0 0 0 0 1 1 1 1 U = 0 0 0 1 0 0 0 1

ผลลพธ = 0 0 0 1 1 1 1 1 ผลลพธ = 31 ในเลขฐานสบ

ค าสง OR ในภาษาโลโก

bitor คาตวตง คาตวกระท า เปนการ OR ในต าแหนงบททตรงกนระหวางตวตง และตวกระท า โดยตวตงและตว

กระท าอาจจะอยในเลขจ านวนเตม หรอ ตวแปรกได ค าสง bitor ไมสามารถท างานเพยงล าพงได เราจ าเปนตองมทเกบคาผลลพธ ดงนน bitor มกจะท างานรวมกบ make เพอประกาศคาตวแปรเกบคาผลลพธ

เชน make “Yes bitand 128 129 ; ก าหนดตวแปรชอ Yes เกบผลการ OR ของ

128 กบ 129

show :Yes ; แสดงผลลพธ

ผลลพธจะแสดงคา = 129 ซงมาจาก

128 = 1 0 0 0 0 0 0 0 129 = 1 0 0 0 0 0 0 1

Hello = 1 0 0 0 0 0 0 1

คราวนกลบมาสวงจร Input Switch

จากทเกรนคางไวกอนจะเรยนรเรอง

การกระท าทางตรรกศาสตร เมอเรา

make “x inportb 889

show :x

เราจะไดคาเปนเลขฐานสบทมคาเปนหลกหมนหรอหลกแสนเลยทเดยว นนคอคา ทแปลงมาจากเลขฐานสองจ านวน 16

บท แตพอรตขนานทเราตอรบคาอยนมเพยง 5 บท ดงนนเราจะสนใจเพยง 5 บทนเทานน ดงตารางขางลางน

Page 72: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

x = ไมสนใจ คออาจเปน 0 หรอ 1 กได

ถาเราไมกดสวทชใด ๆ จะม “1”

มารอทพอรตขนาน ในทนเราไมกดสวทซ ใด ๆ เลย เราจะได “1” มารอทพอรตขนาน

บานเลขท 889 ทง 5 บทเลย ดงรปดาน

ขวามอนมาถงขนตอนน เราตองใชค าสง inportb ดงทกลาวมาแลวเพอดงคาจาก

พอรตเขาไปยงหนวยความจ าในคอมพวเตอรเพอน าคาไปใชงานตอไป

ใหสงเกตคาท D7 จะมเครองหมาย (-) อยดานบน เครองหมายนคอนเสธ หรอเราเรยกวาบาร (bar) หรอ

อนเวอรเตอร จะท าใหคาทอยภายใตเครองหมายนกลบคา เชน

เมอปอนคา “1” ผานสญลกษณบารน จะใหผลกลบคาออกมาคอ “0”

ในทางกลบกนหากเราปอนคา “0” ผานสญลกษณบารน จะไดผลออกมาเปน “1”

เมอเราใชค าสง make “x inportb 889 โปรแกรมจะน าคาจากพอรตขนานทสวทชตออยมาเกบไวใตวแปรชอ x ภายในคอมพวเตอรแลว จากตวอยางขางตน ถาหากเราไมกดสวทซใด เราจะไดคาดงน

จะสงเกตวา D7 จะใหผลเปน “0” เพราะอยภายใตเครองหมายบาร และมอนพตเปน “1” สวนอก 4 บท (D6,D5,D4

และ D3) จะใหคาตรงกบอนพตทเขามา แต ในความเปนจรงเมอเราตองการแสดงผลโดยการใชค าสง show :x เราจะไมเหนการเรยงบทอยางตารางทแสดงขางตน แตจะใหผลออกมาเปนเลขฐานสบทแปลงมาจากบทตาง ๆ แลว ท าใหเรา

น าไปใชงานยาก และไมรวาบทใดใหผลเปนอะไรบาง เราจงตองใชกระบวนการทางตรรกศาสตรมาชวยเราจะตองมาพจารณาทละบทดงน หากเราสนใจบท D7 วามการกดหรอไม เราเพยงน าคา ประจ าหลกของ D7 มา AND กบคาทรบเขา

มา จะท าใหบทอน ๆ ทเราไมสนใจกลายเปน “0” ทงหมด ดงน

make “x inportb 88 9 x = D7 D6 D5 D4 D3 D2 D1 D0

make “y7 bitand :x 128 128 = 1 0 0 0 0 0 0 0

y7 = D7 0 0 0 0 0 0 0

show :y7

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

D7

D6

D5

D4

D3 x

x

x

128 64 32 16 8 4 2 1

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

0

1

1

1

1

x

x

x

1

1

1

1

1

Page 73: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ก y7 = 0 แสดงวา D7 = “0” ซงเปนผลมาจากการอานคาพอรตผานสญลกษณ บาร นนคอ อนพตตองเปน “1”

แสดงวาสวทซไมไดมการกด หาก y7 = 128 แสดงวา D7 = “1” แสดงวาคาทรบจากพอรตมอนพตเปน “0” แสดงวามการกดสวทซ

เชนเดยวกนกบบท D7 เราสามารถท ากระบวนการทางตรรกศาสตรกบบทอน ๆ ทเราตองการทราบสถานะของการกดสวทซทบทนน ๆ โดยการ AND คาประจ าหลกของบทนน ๆ และ แสดงคาด เชน เราจะดบทท D5 วามการกดสวทซ

หรอไม

make “x inportb 889 x = D7 D6 D5 D4 D3 D2 D1 D0

make “y5 bitand :x 32 128 = 0 0 1 0 0 0 0 0

y5 = 0 0 D5 0 0 0 0 0

show :y5

หาก y5 = 0 แสดงวา D5 = “0” จะมความแตกตางจาก D7 คอ D5 ไมไดอยภายใตสญลกษณบาร ดงนนคาทอานไดอยางไร คาอนพตทเขามากเปนอยางนน แสดงวาสวทซมการกด

หาก y5 = 32 แสดงวา D5 = “1” แสดงวาคาทรบจากพอรตมอนพตเปน “1” แสดงวาไมมการกดสวทซ

หมายเหต พอรตขนานบานเลขท 889 จะม D7 เพยงบทเดยวเทานนทอยภายใตสญลกษณ บาร (-)

ตวอยาง โปรแกรมรบคา Input Switch จากบอรด Input Switch ของ บรษท แบมบ โปรเจค กรปส จ ากด

to inputSW ; โปรแกรมชอ InpuSW

make “t 0 ; ก าหนดเงอนไขออกจากการวนรอบ

do.until [ make “x inportb 889 ; รบคาจากพอรตเลขท 889 เกบไวทตวแปรชอ x

make “D7 bitand :x 128 ; น าคาทรบเขามา AND กบคาประจ าหลก D7 make “D6 bitand :x 64 ; น าคาทรบเขามา AND กบคาประจ าหลก D6

make “D5 bitand :x 32 ; น าคาทรบเขามา AND กบคาประจ าหลก D5

make “D4 bitand :x 16 ; น าคาทรบเขามา AND กบคาประจ าหลก D4 make “D3 bitand :x 8 ; น าคาทรบเขามา AND กบคาประจ าหลก D3

ifelse :D7=128 [make “D7 “Pressed] [make “D7 “Unpressed] ; หาก D7=128 ก าหนดคาใหมให D7 = Pressed ถา ไมใชให D7 = Unpressed

ifelse :D6=64 [make “D6 “Unpressed] [make “D6 “Pressed] ; หาก D6=64 ก าหนดคาใหมให D6 = Unpressed ถาไมใชให D6 = Pressed

ifelse :D5=32 [make “D5 “Unpressed] [make “D5 “Pressed] ; หาก D5=32

ก าหนดคาใหมให D5 = Unpressed ถาไมใชให D5 = Pressed ifelse :D4=16 [make “D4 “Unpressed] [make “D4 “Pressed] ; หาก D4=16

ก าหนดคาใหมให D4 = Unpressed ถาไมใชให D4 = Pressed ifelse :D3=8 [make “D3 “Unpressed] [make “D3 “Pressed] ; หาก D3=8

ก าหนดคาใหมให D3 = Unpressed ถาไมใชให D3 = Pressed

show “Sw1 ; แสดงค าวา Sw1 show :D7 ; แสดงคา D7

show “Sw2 ; แสดงค าวา Sw2 show :D6 ; แสดงคา D6

show “Sw3 ; แสดงค าวา Sw3

show :D5 ; แสดงคา D5 show “Sw4 ; แสดงค าวา Sw4

show :D4 ; แสดงคา D4 show “Sw5 ; แสดงค าวา Sw3

show :D3 ; แสดงคา D3 ][:t=1] ; ตรวจสอบวา t=1 ? เพอออกจากการวนรอบ

end

ผลของโปรแกรมนเมอ Run โปรแกรมจะแสดงคา Input Switch โดยแสดงสถานการณกดสวทชแตละตว แลววนกลบมา

แสดงแบบไมมวนสนสด เมอเรากดสวทซใด ๆ โปรแกรมจะแสดงการเปลยนแปลงตวนน ๆ การออกจากโปรแกรมน ใหใชเมาสคลกทปม Halt เพอหยดโปรแกรมแบบไมมเงอนไข

จากการเขยนโปรแกรมขางตนน การแสดงผลอาจจะดไมคอยเปนระเบยบและคอนขางดยาก เราจงตองเรยนรค าสง

โลโกทส าคญอกค าสงหนงคอค าสงสรางตวแปร แบบ Array

Page 74: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

ตวแปรแบบ Array

ตวแปรแบบ Array สามารถเปรยบไดกบการก าหนดขนาดของลนชก และการใสของลงไปในลนชก ดงนนผเขยนจะเรยกเปนลนชกตลอด เพอใหสามารถจนตนาการไดงาย มรปแบบดงน

make “ชอตวแปร (array ขนาด ชองเรมตน) คอการก าหนดขนาดของลนชกทเราตองการสรางนนเอง และเรมลนชกชองทเทาไร ตวอยางเชน make “bamboo (array 5 0) หมายถงลนชกชอ bamboo มขนาด 5 ชอง และชอง

แรกเรยกวา ชอง 0 ดงนนลนชกนจะม ชองท 0, 1, 2, 3 และ 4 เปนจ านวน 5 ชองพอด ตอไปคอการเอาของใสลนชก

แตละชอง มรปแบบดงน setitem 0 :bamboo 10 ; คอก าหนด Item (ชอง) ท 0 ของลนชกชอ bamboo ใสคา 10 ลงไป

setitem 1 :bamboo 5 ; คอก าหนด Item (ชอง) ท 1 ของลนชกชอ bamboo ใสคา 5 ลงไป setitem 2 :bamboo 3 ; คอก าหนด Item (ชอง) ท 2 ของลนชกชอ bamboo ใสคา 3 ลงไป

setitem 3 :bamboo 20 ; คอก าหนด Item (ชอง) ท 3 ของลนชกชอ bamboo ใสคา 20 ลงไป setitem 4 :bamboo 1 ; คอก าหนด Item (ชอง) ท 4 ของลนชกชอ bamboo ใสคา 1 ลงไป

show :bamboo ; เมอใสคาลงไปครบทกลนชกกท าการแสดง จะไดผลดงน

[ 10 5 3 20 1 ]

ขอสงเกต *** ในภาษาโลโกเราสามารถก าหนดลนชกไดหลายชองแบบไมจ ากด แตก าหนดไดเพยงลนชกแบบชน

เดยว ซงตางจากโปรแกรม อน ๆ เชน C หรอ Pascal ทสามารถก าหนด Array ไดหลายชน

จากโปรแกรมการรบคา Input Switch ขางตน เราสามารถเขยนโปรแกรมรวมกบการก าหนดตวแปรแบบ Array เพอแสดงคาแบบใหมไดดงตวอยางตอไปน

ตวอยาง โปรแกรมรบคา Input Switch จากบอรด Input Switch ของ บรษท แบมบ โปรเจค กรปส จ ากด

to inputSW ; โปรแกรมชอ InpuSW make “t 0 ; ก าหนดเงอนไขออกจากการวนรอบ

do.until [

make “x inportb 889 ; รบคาจากพอรตเลขท 889 เกบไวทตวแปรชอ x make “D7 bitand :x 128 ; น าคาทรบเขามา AND กบคาประจ าหลก D7

make “D6 bitand :x 64 ; น าคาทรบเขามา AND กบคาประจ าหลก D6 make “D5 bitand :x 32 ; น าคาทรบเขามา AND กบคาประจ าหลก D5

make “D4 bitand :x 16 ; น าคาทรบเขามา AND กบคาประจ าหลก D4

make “D3 bitand :x 8 ; น าคาทรบเขามา AND กบคาประจ าหลก D3

ifelse :D7=128 [make “D7 “Pressed] [make “D7 “Unpressed] ; หาก D7=128 ก าหนดคาใหมให D7 = Pressed ถาไมใชให D7 = Unpressed

ifelse :D6=64 [make “D6 “Unpressed] [make “D6 “Pressed]

; หาก D6=64 ก าหนดคาใหมให D6 = Unpressed ถาไมใชให D6 = Pressed ifelse :D5=32 [make “D5 “Unpressed] [make “D5 “Pressed]

; หาก D5=32 ก าหนดคาใหมให D5 = Unpressed ถาไมใชให D5 = Pressed ifelse :D4=16 [make “D4 “Unpressed] [make “D4 “Pressed]

; หาก D4=16 ก าหนดคาใหมให D4 = Unpressed ถาไมใชให D4 = Pressed ifelse :D3=8 [make “D3 “Unpressed] [make “D3 “Pressed]

; หาก D3=8 ก าหนดคาใหมให D3 = Unpressed ถาไมใชให D3 = Pressed

make “bamboo (array 5 0) setitem 0 :bamboo :D7

setitem 1 :bamboo :D6 setitem 2 :bamboo :D5

setitem 3 :bamboo :D4

setitem 4 :bamboo :D3 show :bamboo

][:t=1] end ; ตรวจสอบวา t=1 ? เพอออกจากการวนรอบ

ถงตอนนเราสามารถเขยนโปรแกรมแสดงการ กด หรอ ไมกด สวทซไดแลว ซงเปนประโยชนมากในการไป

ประยกตระบบอตโนมตตาง ๆ ทมทงการรบคา และการแสดงผลรวมถงการควบคมอปกรณในระบบ

Page 75: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

1.ใหผเรยนพมพค าสงดงตอไปนแลวดผลการท างาน

ตวอยาง โปรแกรมรบคา Input Switch จากบอรด Input Switch ของ บรษท แบมบ โปรเจค กรปส จ ากด

to inputSW make “t 0

do.until [

make “x inportb 889 make “D7 bitand :x 128

make “D6 bitand :x 64 make “D5 bitand :x 32

make “D4 bitand :x 16 make “D3 bitand :x 8

ifelse :D7=128 [make “D7 “Pressed] [make “D7 “Unpressed]

ifelse :D6=64 [make “D6 “Unpressed] [make “D6 “Pressed] ifelse :D5=32 [make “D5 “Unpressed] [make “D5 “Pressed]

ifelse :D4=16 [make “D4 “Unpressed] [make “D4 “Pressed] show “Sw1

show :D7

show “Sw2 show :D6

show “Sw3 show :D5

show “Sw4 show :D4

show “Sw5

show :D3 ][:t=1]

end

2.ใหผเรยนพมพค าสงดงตอไปนแลวดผลการท างาน

ตวอยาง โปรแกรมรบคา Input Switch จากบอรด Input Switch ของ บรษท แบมบ โปรเจค กรปส จ ากด

to inputSW2 make “t 0

do.until [

make “x inportb 889 make “D7 bitand :x 128

make “D6 bitand :x 64 make “D5 bitand :x 32

make “D4 bitand :x 16 make “D3 bitand :x 8

ifelse :D7=128 [make “D7 “Pressed] [make “D7 “Unpressed]

ifelse :D6=64 [make “D6 “Unpressed] [make “D6 “Pressed] ifelse :D5=32 [make “D5 “Unpressed] [make “D5 “Pressed]

ifelse :D4=16 [make “D4 “Unpressed] [make “D4 “Pressed] ifelse :D3=8 [make “D3 “Unpressed] [make “D3 “Pressed]

make “bamboo (array 5 0)

setitem 0 :bamboo :D7 setitem 1 :bamboo :D6

setitem 2 :bamboo :D5 setitem 3 :bamboo :D4

setitem 4 :bamboo :D3 show :bamboo

][:t=1] end

Page 76: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

3. ใหผเรยนทดลองคยค าสงขางลางน แลวใชอปกรณ InputSwitch ของบรษทแบมบโปรเจค กรปส จ ากด เชอมตอแลวดการท างานของอปกรณพรอมทงดหนาจอคอมพวเตอรวามการท างานอยางไร

to inputsw3

make "z 0

do.until [ make "x inportb 889

make "x item 1 :x make "a bitand :x 8 ; ตรวจสอบ bit B3 ดวยการ and กบ 1 ( x x x x x x x x )

; ( 0 0 0 0 1 0 0 0 ) make "b bitand :x 16 ; ตรวจสอบ bit B4 ดวยการ and กบ 1 ( x x x x x x x x )

; ( 0 0 0 1 0 0 0 0 )

make "c bitand :x 32 ; ตรวจสอบ bit B5 make "d bitand :x 64 ; ตรวจสอบ bit B6

make "e bitand :x 128 ; ตรวจสอบ bit B7 ifelse :a = 8 [make "a 0][make "a 1] ; ถามการกด sw 5 (B3 = 0 ) ให a = 1

ifelse :b = 16 [make "b 0][make "b 1] ; ถามการกด sw 4 (B4 = 0 ) ให b = 1

ifelse :c = 32 [make "c 0][make "c 1] ; ถามการกด sw 3 (B5 =0 ) ให c = 1 ifelse :d = 64 [make "d 0][make "d 1] ; ถามการกด sw 2 (B6 = 0) ให d = 1

ifelse :e = 128 [make "e 1][make "e 0] ; ถามการกด sw 1 (B7 = 1) ให e = 1 make "y (array 5 0)

setitem 0 :y :e setitem 1 :y :d

setitem 2 :y :c

setitem 3 :y :b setitem 4 :y :a

show :y make "t :a+:b+:c+:d+:e ; ถากด sw ทกปมจะออกจากโปรแกรม

if :t = 5 [make "z 1]

][:z=1] end

4. ใหผเรยน คย ตวอยางโปรแกรม แสดงคาการกดสวตซ sw0 ถง sw4

to we make "i 0

make "j 0 print [press q to EXIT]

do.until [make "j readchar make "invalue inportb 889

print :invalue

print [press q to EXIT] ] [:j="q]

end

รปท 1 เรยกโปรแกรม we รปท 2 จะมชอง Input ใหใสเลขเขาไป รปท 3 ใสเลข 1

Page 77: โปรแกรมภาษาโลโก้เบื้องต้นprasit.sirin.ac.th/elearning/logo/mswlogo.pdf · Windows Logo และไอคอน UserPort ด้วยในกรณีติดตั้งบน

รปท 4 หลงจากนนกใหกดปมสวทซ รปท 5 เปนการท างานของ โปรแกรมทไดผลลพธ เชน ใสเลข 1 แลวกด ปมสวทซ แลวจงกด Enter

ใหสงเกตการท างานของโปรแกรม เมอตองการ ออกจากโปรแกรมใหผเรยนใส อกษร q

5.ใหผเรยนคยตวอยางโปรแกรม โดยตวโปรแกรมจะแสดงต าแหนงของการรบคา InputSwitchs ทไดต าแหนงตาง ๆ ถาตองการออกจากโปรแกรมใหใสอกษา q

to xx

make "sw (array 5 0)

make "i 0 make "j 0

print [press q to EXIT] do.until [make "j readchar

make "invalue inportb 889

print :invalue make "temp 255 - :invalue

setitem 0 :sw 0 setitem 1 :sw 0

setitem 2 :sw 0 setitem 3 :sw 0

setitem 4 :sw 1

if :temp > 127 [ make "temp :temp - 128 setitem 4 :sw 0 ] if :temp > 63 [ make "temp :temp - 64 setitem 3 :sw 1 ]

if :temp > 31 [ make "temp :temp - 32 setitem 2 :sw 1 ] if :temp > 15 [ make "temp :temp - 16 setitem 1 :sw 1 ]

if :temp > 7 [ make "temp :temp - 8 setitem 0 :sw 1 ]

show :sw print [press q to EXIT]

] [:j="q] End

รปท 1 เรยกโปรแกรม xx รปท 2 กดปมสวทซ รปท 3 จะเหนต าแหนงการแสดงการรบ InputSwitchs