myBlockly Visual Programming
เครื่องมือเขียนโปรแกรมแบบลากบล็อก (Drag-and-Drop) สำหรับผู้เริ่มต้น เหมาะกับการเรียนการสอนและการทดลองท่าทางหุ่นยนต์โดยไม่ต้องเขียนโค้ด
9.1 myBlockly คืออะไร?
myBlockly เป็นเครื่องมือเขียนโปรแกรมแบบ Visual Block ที่ใช้แนวคิดเดียวกับ Scratch หรือ Microsoft MakeCode ผู้ใช้เพียง ลากบล็อกคำสั่ง มาประกอบกัน ก็สามารถสั่งหุ่นยนต์ทำงานได้ โดยไม่ต้องเขียนโค้ด Python เอง
- กลุ่มเป้าหมาย: นักเรียน, ครู, ผู้เริ่มต้นที่ยังไม่ถนัด Python
- ข้อดี: เห็นภาพชัด ลดข้อผิดพลาดจาก syntax ทดลองท่าทางได้รวดเร็ว
- ข้อจำกัด: ไม่เหมาะกับงานที่ต้องลูปซับซ้อน, การประมวลผลภาพ, หรือ multithreading
myBlockly ถูกติดตั้งมาในระบบ Ubuntu ของ Jetson Nano พร้อมใช้งานทันที
9.2 การเปิดใช้งาน myBlockly
- เข้าสู่ระบบ Ubuntu ของ Jetson Nano (user
er/ passwordElephant) - เปิด myBlockly จากเมนู Application หรือไอคอนบนหน้า Desktop
- เลือกรุ่นหุ่นยนต์เป็น myCobot 280
- ตั้งค่า Serial Port:
/dev/ttyTHS1 - ตั้งค่า Baudrate:
1000000 - กดปุ่ม Connect
Init MyCobot 280 ที่ตั้งค่า Port + Baud ปุ่ม Run สีเขียวด้านขวา + ปุ่มสลับมุมมอง Python ที่แท็บบน
1. เปลี่ยน Port: default ตอนเปิดมาคือ /dev/ttyS0 (ใช้ไม่ได้!) ต้องเปลี่ยนเป็น /dev/ttyTHS1 ที่บล็อก Init
2. เปลี่ยน Baud: default คือ 115200 ต้องเปลี่ยนเป็น 1000000
ถ้าไม่เปลี่ยนแล้วกด Run จะได้ Timeout error เพราะคุยกับหุ่นไม่รู้เรื่อง
9.3 ขั้นตอนการเขียนโปรแกรมแบบ Block
- ลากบล็อก Initialize มาวางที่พื้นที่เขียนโปรแกรม
- ตั้งค่ารุ่น + serial port + baudrate ในบล็อก initialize
- ลากบล็อกคำสั่งต่าง ๆ (เช่น send_angles, send_coords, set_gripper_state) มาประกอบ
- เพิ่มบล็อก sleep ระหว่างคำสั่งเคลื่อนที่ อย่างน้อย 0.5 วินาที
- กดปุ่ม Run เพื่อรันโปรแกรม
- สามารถ Export โปรแกรมเป็นไฟล์
.xmlเก็บไว้ หรือ Export เป็น Python script
โปรแกรม Block จะรันบล็อกถัดไปทันทีโดยไม่รอให้หุ่นยนต์เคลื่อนที่จบ ต้องใส่ sleep อย่างน้อย 0.5 วินาที ระหว่างทุกการเคลื่อนที่ ไม่งั้นคำสั่งจะถูกเขียนทับและหุ่นยนต์จะไม่ทำตามที่คาดหวัง
9.4 บทเรียนพื้นฐานที่แนะนำ
Elephant Robotics จัดทำชุดบทเรียน myBlockly ไว้ครบทุกระดับ ลำดับที่แนะนำให้เริ่มเรียน:
เริ่มต้นใช้งาน myBlockly
การเปิดโปรแกรม ตั้งค่าเชื่อมต่อ และโปรแกรมแรก
ควบคุม RGB Light
เปลี่ยนสี LED ที่ปลายแขน ทดลองคำสั่งแรก ๆ
กลับตำแหน่ง Home
คำสั่งสั่งให้แขนกลับสู่ตำแหน่งเริ่มต้น (0, 0, 0, 0, 0, 0)
ขยับข้อต่อเดียว
สั่งเฉพาะ Joint ที่ระบุ ตามมุมและความเร็วที่กำหนด
ขยับหลายข้อพร้อมกัน
กำหนดท่าทาง 6 ข้อต่อทั้งหมดในครั้งเดียว
โบกซ้าย-ขวา
เขียนลูปทำให้แขนโยกซ้ายขวา ทักทาย
เต้น (Dance)
โปรแกรมท่าเต้นด้วยลำดับมุมและจังหวะ sleep
ใช้งาน Gripper
เปิด/ปิด Gripper เพื่อหยิบจับวัตถุ
ใช้งานปั๊มสุญญากาศ
เปิด/ปิดปั๊มเพื่อดูดวัตถุ พร้อมการเคลื่อนที่
หมายเหตุ: ลิงก์จะเปิดไปยังเอกสารทางการของ Elephant Robotics (ภาษาอังกฤษ) ในแท็บใหม่
9.5 แปลง Block เป็น Python
myBlockly สามารถแปลงโปรแกรม Block ที่เขียนไว้ให้เป็น Python script ได้ เพื่อให้ผู้ใช้ที่เริ่มเรียน Python ใช้เป็นตัวอย่าง:
- เขียนโปรแกรมในรูปแบบ Block ตามปกติ
- คลิกแท็บ Code หรือ Export Python ที่ด้านบน
- คัดลอกโค้ดที่ได้มาบันทึกเป็นไฟล์
.py - รันด้วย
python3 myprogram.py
วิธีที่ดีในการเรียน Python คือ เขียน Block ก่อน กด Export อ่านโค้ด Python ที่ได้ ช่วยให้เข้าใจว่าแต่ละบล็อกแปลงเป็นคำสั่ง Python อะไร
9.6 myBlockly vs Python ใช้แบบไหนดี?
| ปัจจัย | myBlockly | Python |
|---|---|---|
| เส้นโค้งการเรียนรู้ | ง่ายมาก ใช้เวลา 30 นาที | ปานกลาง ต้องเข้าใจ syntax |
| ความเร็วทดลองท่าทาง | เร็วมาก เห็นผลทันที | ปกติ ต้องเขียนโค้ด |
| โครงสร้างซับซ้อน (lib, class) | ทำได้จำกัด | ทำได้ครบ |
| เชื่อมต่อ OpenCV / AI | ทำไม่ได้ | ทำได้ |
| เหมาะกับ | เรียนการสอน, สอนท่าทาง | โปรเจกต์จริง, AIKit |
สรุป: ใช้ myBlockly สำหรับ เรียนรู้พื้นฐาน + ทดลองท่า + สอนตำแหน่ง แล้วเปลี่ยนเป็น Python เมื่อต้องการเชื่อมกับ AIKit / Computer Vision / ROS