Skip to content

ตัวแก้ไข ​

ตัวแก้ไข เป็นพื้นที่สำหรับเขียนโค้ดเพื่อควบคุมหุ่นยนต์ด้วย บล็อก หรือ โค้ดสคริปต์
ด้านล่างนี้แนะนำวิธีเขียนโค้ดในสภาพแวดล้อม การเขียนโค้ดด้วยบล็อก / การเขียนโค้ดด้วยสคริปต์ (Python) และข้อควรระวังของแต่ละแบบ

ตัวแก้ไขการเขียนโค้ดด้วยบล็อก ​

หมวดหมู่บล็อก ​

block-category

พื้นที่ที่จัดบล็อกซึ่ง RobomationLAB มีให้ออกเป็น หมวดหมู่
เมื่อคลิกหมวดหมู่ จะเห็น ชุดคำสั่ง ของบล็อกในหมวดหมู่นั้น

ชนิดของหมวดหมู่บล็อกที่มีให้เป็นพื้นฐานมีดังนี้

  • ตรรกะ
  • ลูป
  • คณิตศาสตร์
  • ข้อความ
  • รายการ
  • สี
  • เสียง
  • ควบคุม
  • ตัวแปร
  • ฟังก์ชัน
  • อื่น ๆ

นอกจากนี้ เมื่อเพิ่ม หุ่นยนต์ หรือ โมดูลส่วนขยาย เข้าไปในโปรแกรม จะใช้ชุดคำสั่งเฉพาะของสิ่งนั้นในโปรแกรมได้


⚙️ หมายเหตุ

block-category-remove

หมวดหมู่ของบล็อกที่เพิ่มไว้ในโปรแกรมแล้วไม่ใช้อีกต่อไป สามารถนำออกจากหมวดหมู่บล็อกได้ด้วย คลิกขวา → นำออก


ชุดคำสั่ง ​

block-flyout

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

block-flyout-help

⚙️ หมายเหตุ
หากต้องการดูวิธีใช้บล็อก สามารถดูความช่วยเหลือที่อธิบายวิธีใช้ของแต่ละบล็อกได้ด้วย คลิกขวา → ช่วยเหลือ


พื้นที่เขียนโค้ด ​

workspace

พื้นที่สำหรับประกอบบล็อกที่นำมาจากชุดคำสั่ง

บล็อกที่ประกอบแล้วจะถูกแปลงเป็น โค้ด Python แบบเรียลไทม์
และเมื่อรันโค้ด โปรแกรมจะตีความโค้ดเหล่านี้เพื่อขยับและควบคุมหุ่นยนต์


โครงสร้างพื้นฐานของบล็อก ​

เมื่อเขียนโค้ดในตัวแก้ไขการเขียนโค้ดด้วยบล็อก ต้องปฏิบัติตามโครงสร้างพื้นฐานดังนี้

block-structure

ตัวแก้ไขการเขียนโค้ดด้วยบล็อกจะตีความและรันโค้ดที่อยู่ภายในบล็อกฟังก์ชัน ฟังก์ชัน setup และ ฟังก์ชัน loop
ดังนั้นต้องเขียนโค้ดโดยใส่บล็อกไว้ภายในบล็อกฟังก์ชัน ฟังก์ชัน setup และ ฟังก์ชัน loop

ฟังก์ชัน setup
ภายในบล็อกฟังก์ชัน setup ใช้กำหนดการทำงานที่จะทำในตอนเริ่มต้นเมื่อรันโค้ด
สามารถใช้บล็อก รอ เพื่อให้การทำงานเกิดขึ้นตามลำดับเวลาได้

ฟังก์ชัน loop
ภายในบล็อกฟังก์ชัน loop ใช้กำหนดการทำงานที่จะทำซ้ำตลอดเวลาที่โค้ดทำงาน
การทำงานที่กำหนดไว้จะถูกทำซ้ำทุก ๆ 10ms

⚙️ หมายเหตุ
(ยกเว้นฟังก์ชันที่ผู้ใช้สร้างเองผ่าน หมวดหมู่ฟังก์ชัน)
บล็อกที่อยู่นอกบล็อกฟังก์ชัน ฟังก์ชัน setup หรือ ฟังก์ชัน loop จะไม่มีผลใด ๆ เมื่อรันโค้ด


วิธีใช้บล็อก ​

การเพิ่มบล็อก

block-add-1block-add-2block-add-3

เพิ่มบล็อกที่ต้องการได้ด้วยการ ลากจากชุดคำสั่ง แล้ว วางลงในตัวแก้ไข

การคัดลอก/วางบล็อก

วิธีคัดลอก/วางบล็อกในตัวแก้ไขมีทั้งหมด 2 วิธี

  1. เลือกบล็อกแล้วกด Ctrl+C จะ คัดลอก บล็อกที่เลือกได้
    เมื่อกด Ctrl+V จะ วาง บล็อกที่คัดลอกล่าสุดลงในตัวแก้ไขได้

  2. เลือกบล็อกแล้วกดปุ่ม 'คัดลอก Ctrl+C' ในเมนู แก้ไข จะ คัดลอก บล็อกที่เลือกได้
    เมื่อกดปุ่ม 'วาง Ctrl+V' ในเมนู แก้ไข จะ วาง บล็อกที่คัดลอกล่าสุดลงในตัวแก้ไขได้


การลบบล็อก

วิธีลบบล็อกในตัวแก้ไขมีทั้งหมด 3 วิธี

  1. เลือกบล็อกแล้วกด Backspace จะลบบล็อกที่เลือกได้

  2. ลบบล็อกที่ต้องการได้ด้วยการ ลากจากตัวแก้ไข แล้ว วางลงในหมวดหมู่บล็อก

block-delete-1block-delete-2block-delete-3
  1. ลบบล็อกที่ต้องการได้ด้วยการ ลากจากตัวแก้ไข แล้ว วางลงในถังขยะ
    บล็อกที่ลบไปแล้วสามารถดูได้อีกครั้งใน ถังขยะ
block-trash

การเลือกหลายบล็อกพร้อมกัน

วิธีเลือกหลายบล็อกพร้อมกันในตัวแก้ไขมีทั้งหมด 2 วิธี

  1. กดปุ่ม Shift ค้างไว้แล้วลากในพื้นที่ทำงาน หรือคลิกบล็อกทีละบล็อก
    จะเลือกหลายบล็อกพร้อมกันได้

  2. คลิก ปุ่มเครื่องหมายถูก ที่มุมขวาล่างของพื้นที่ทำงานเพื่อเปิดหรือปิดโหมด 'เลือกหลายบล็อก'
    ถ้าปุ่มถูกเติมสี แสดงว่าโหมดเปิดอยู่
    ถ้าปุ่มไม่ถูกเติมสี แสดงว่าโหมดปิดอยู่

block-mode-onblock-mode-off

ขณะที่โหมด 'เลือกหลายบล็อก' เปิดอยู่ จะทำได้เพียงการเลือกบล็อกเท่านั้น
หากต้องการย้ายหรือแก้ไขหลายบล็อกที่เลือกไว้พร้อมกัน ต้องปิดโหมดหลังจากเลือกบล็อกเสร็จแล้ว


ตัวเลือกเพิ่มเติม

นอกจากนี้ เมื่อ คลิกขวา ที่บล็อก
จะเห็นตัวเลือกเพิ่มเติมหลากหลาย เช่น ย่อ/ขยายบล็อก, เปิด/ปิดใช้งาน และช่วยเหลือ


ตัวแก้ไข Python ​

ชุดคำสั่ง ​

python-codes

พื้นที่ที่จัด ฟังก์ชันพื้นฐาน ที่จำเป็นต่อการเขียนโค้ดหุ่นยนต์ และ โค้ด Python เฉพาะของหุ่นยนต์/โมดูลส่วนขยาย ออกเป็น หมวดหมู่

ชนิดของหมวดหมู่โค้ดที่มีให้ในฟังก์ชันพื้นฐาน (Codes) มีดังนี้

  • ตรรกะ (logic)
  • ลูป (loops)
  • คณิตศาสตร์ (math)
  • ข้อความ (text)
  • รายการ (lists)
  • สี (color)
  • เสียง (audio)
  • ควบคุม (control)

โค้ดที่มีให้ในฟังก์ชันพื้นฐานทำหน้าที่เหมือนกับบล็อกพื้นฐานของตัวแก้ไขการเขียนโค้ดด้วยบล็อกทุกประการ


⚙️ หมายเหตุ
วิธีใช้ชุดคำสั่งเพื่อเขียนโค้ดในตัวแก้ไข Python ดูได้ที่ วิธีใช้ชุดคำสั่ง


ตัวแก้ไขโค้ด ​

python-editor

พื้นที่สำหรับเขียนโค้ดเพื่อควบคุมหุ่นยนต์

เมื่อเลือกตัวแก้ไข Python ใน การตั้งค่าตัวแก้ไข จะเขียนโค้ด Python ได้


โครงสร้างพื้นฐานของโค้ด ​

เมื่อเขียนโค้ดในตัวแก้ไขโค้ด ต้องปฏิบัติตามโครงสร้างพื้นฐานดังนี้

python
from robomation import *

# (ถ้ามีหุ่นยนต์ที่จะใช้ ให้ประกาศเป็นอินสแตนซ์ ดังตัวอย่าง)
hamster_s = HamsterS(0)

# ใส่โค้ดตั้งค่าที่นี่ เพื่อให้ทำงานครั้งเดียว:
def setup():
    pass

# ใส่โค้ดควบคุมที่นี่ เพื่อให้ทำงานซ้ำ:
def loop():
    pass

ตัวแก้ไขโค้ดจะตีความและรันโค้ดที่อยู่ภายในฟังก์ชัน setup และฟังก์ชัน loop
ดังนั้นต้องเขียนโค้ดไว้ภายในฟังก์ชัน setup และฟังก์ชัน loop
นอกจากนี้ หากต้องการควบคุมหุ่นยนต์ ต้องวาง from robomation import * ไว้บนสุดของโค้ด แล้วประกาศหุ่นยนต์ที่จะใช้เป็นอินสแตนซ์

setup

ภายในฟังก์ชัน setup ใช้กำหนดการทำงานที่จะทำในตอนเริ่มต้นเมื่อรันโค้ด
สามารถใช้ฟังก์ชัน Utils.wait เพื่อให้การทำงานเกิดขึ้นตามลำดับเวลาได้

loop
ภายในฟังก์ชัน loop ใช้กำหนดการทำงานที่จะทำซ้ำตลอดเวลาที่โค้ดทำงาน
การทำงานที่กำหนดไว้จะถูกทำซ้ำทุก ๆ 10ms


วิธีใช้ชุดคำสั่ง ​

ด้านล่างนี้อธิบาย วิธีนำชุดคำสั่งมาใช้ในการเขียนโค้ด พร้อมตัวอย่างง่าย ๆ

การค้นหาโค้ดที่ต้องการ ​

ชุดคำสั่งมีฟังก์ชันและโค้ดหลากหลายที่จำเป็นต่อการเขียนโค้ดหุ่นยนต์

codes-find-1

เมื่อดูเมนูภายในหมวดหมู่ โค้ด จะเห็นเมนูที่มีไอคอน arrow-right

เมื่อคลิกเมนู ตรรกะ หนึ่งครั้ง ไอคอนจะเปลี่ยนเป็น arrow-down พร้อมกางเมนูย่อยที่อยู่ภายในออกมาให้ดู
เมนูที่มีเมนูย่อยแบบนี้เรียกว่า 'หมวดหมู่'

ถ้าเมนูไม่มีไอคอน arrow-right เช่น ไตรภาค ในหมวดหมู่ ตรรกะ หมายความว่า ไม่มีเมนูย่อย อยู่ภายในเมนูนั้นอีกแล้ว
เมนูที่ไม่มีเมนูย่อยแบบนี้เรียกว่า 'โค้ด'

codes-find-2

เมื่อคลิกหมวดหมู่ที่กางเมนูย่อยอยู่อีกครั้ง ไอคอนจะกลับเป็น arrow-right และเมนูย่อยจะถูกซ่อน

ด้วยวิธีข้างต้น สามารถไล่ตามหมวดหมู่เพื่อค้นหาโค้ดที่ต้องการในชุดคำสั่งได้


การแทรกโค้ดลงในตัวแก้ไข ​

วิธีแทรกโค้ดลงในตัวแก้ไขมีดังนี้

codes-insert-1

เมนูที่มีไอคอน circle-empty อยู่ทางซ้ายของชื่อเมนู หมายถึงเมนูที่ไม่มี ตัวเลือกโค้ด ให้เลือก
เมนู หมวดหมู่ ที่มีเมนูย่อยส่วนใหญ่จะเป็นแบบนี้

เมนูที่มีไอคอน circle-fill อยู่ทางซ้ายของชื่อเมนู หมายถึงเมนูที่เลือก ตัวเลือกโค้ด ได้
เมนู โค้ด ที่ไม่มีเมนูย่อยส่วนใหญ่จะเป็นแบบนี้

เมื่อ คลิกขวา ที่โค้ดที่ต้องการแทรกลงในตัวแก้ไข จะเห็นตัวเลือกที่เลือกได้

codes-insert-menu

เมื่อคลิกขวาที่เมนู โค้ด จะเห็นตัวเลือกเหมือนกันดังนี้ ไม่ว่าจะเป็นฟังก์ชันพื้นฐานหรือโค้ดเฉพาะของหุ่นยนต์/โมดูลส่วนขยาย

  • แทรกโค้ด: แทรกโค้ดที่เลือกลงในตำแหน่งเคอร์เซอร์ของตัวแก้ไข
  • ความช่วยเหลือ: ดูความช่วยเหลือที่อธิบายวิธีใช้โค้ดนั้น
  • ยกเลิก: ปิดเมนูตัวเลือก

กรณีโค้ดเฉพาะของหุ่นยนต์/โมดูลส่วนขยาย เมื่อเลือก แทรกโค้ด จะถูกแทรกในรูปแบบการเรียกเมธอดของอินสแตนซ์หุ่นยนต์นั้น
( เช่น set_wheel_speed ของ HamsterS → hamster_s.set_wheel_speed('both', 50) )


⚙️ หมายเหตุ

codes-remove-robot

หมวดหมู่โค้ดเฉพาะของหุ่นยนต์ / โมดูลส่วนขยายที่เพิ่มไว้ในโปรแกรมแล้วไม่ใช้อีกต่อไป
สามารถนำออกจากชุดคำสั่งได้ด้วย คลิกขวา → นำออก