myCobot 280 JN + AIKit 3D Vision
บทที่ 9

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

  1. เข้าสู่ระบบ Ubuntu ของ Jetson Nano (user er / password Elephant)
  2. เปิด myBlockly จากเมนู Application หรือไอคอนบนหน้า Desktop
  3. เลือกรุ่นหุ่นยนต์เป็น myCobot 280
  4. ตั้งค่า Serial Port: /dev/ttyTHS1
  5. ตั้งค่า Baudrate: 1000000
  6. กดปุ่ม Connect
หน้าต่าง myBlockly ที่เพิ่งเปิด มี panel block library ซ้าย, workspace กลาง, ปุ่ม Run ขวาบน
myBlockly ที่เพิ่งเปิด Panel ซ้ายคือคลังบล็อก (Logic, Loops, Math, MDI Control, JOG Control, Servo, Gripper, ...) ด้านบนเป็นบล็อก Init MyCobot 280 ที่ตั้งค่า Port + Baud ปุ่ม Run สีเขียวด้านขวา + ปุ่มสลับมุมมอง Python ที่แท็บบน
⚠️
คำเตือน 2 ข้อ ก่อนกด Run

1. เปลี่ยน Port: default ตอนเปิดมาคือ /dev/ttyS0 (ใช้ไม่ได้!) ต้องเปลี่ยนเป็น /dev/ttyTHS1 ที่บล็อก Init
2. เปลี่ยน Baud: default คือ 115200 ต้องเปลี่ยนเป็น 1000000
ถ้าไม่เปลี่ยนแล้วกด Run จะได้ Timeout error เพราะคุยกับหุ่นไม่รู้เรื่อง

9.3 ขั้นตอนการเขียนโปรแกรมแบบ Block

  1. ลากบล็อก Initialize มาวางที่พื้นที่เขียนโปรแกรม
  2. ตั้งค่ารุ่น + serial port + baudrate ในบล็อก initialize
  3. ลากบล็อกคำสั่งต่าง ๆ (เช่น send_angles, send_coords, set_gripper_state) มาประกอบ
  4. เพิ่มบล็อก sleep ระหว่างคำสั่งเคลื่อนที่ อย่างน้อย 0.5 วินาที
  5. กดปุ่ม Run เพื่อรันโปรแกรม
  6. สามารถ Export โปรแกรมเป็นไฟล์ .xml เก็บไว้ หรือ Export เป็น Python script
💡
เทคนิคสำคัญ Sleep ระหว่างคำสั่ง

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

9.4 บทเรียนพื้นฐานที่แนะนำ

Elephant Robotics จัดทำชุดบทเรียน myBlockly ไว้ครบทุกระดับ ลำดับที่แนะนำให้เริ่มเรียน:

หมายเหตุ: ลิงก์จะเปิดไปยังเอกสารทางการของ Elephant Robotics (ภาษาอังกฤษ) ในแท็บใหม่

9.5 แปลง Block เป็น Python

myBlockly สามารถแปลงโปรแกรม Block ที่เขียนไว้ให้เป็น Python script ได้ เพื่อให้ผู้ใช้ที่เริ่มเรียน Python ใช้เป็นตัวอย่าง:

  1. เขียนโปรแกรมในรูปแบบ Block ตามปกติ
  2. คลิกแท็บ Code หรือ Export Python ที่ด้านบน
  3. คัดลอกโค้ดที่ได้มาบันทึกเป็นไฟล์ .py
  4. รันด้วย python3 myprogram.py
💡
คำแนะนำ เรียนรู้ Python ผ่าน Blockly

วิธีที่ดีในการเรียน Python คือ เขียน Block ก่อน กด Export อ่านโค้ด Python ที่ได้ ช่วยให้เข้าใจว่าแต่ละบล็อกแปลงเป็นคำสั่ง Python อะไร

9.6 myBlockly vs Python ใช้แบบไหนดี?

ปัจจัยmyBlocklyPython
เส้นโค้งการเรียนรู้ง่ายมาก ใช้เวลา 30 นาทีปานกลาง ต้องเข้าใจ syntax
ความเร็วทดลองท่าทางเร็วมาก เห็นผลทันทีปกติ ต้องเขียนโค้ด
โครงสร้างซับซ้อน (lib, class)ทำได้จำกัดทำได้ครบ
เชื่อมต่อ OpenCV / AIทำไม่ได้ทำได้
เหมาะกับเรียนการสอน, สอนท่าทางโปรเจกต์จริง, AIKit

สรุป: ใช้ myBlockly สำหรับ เรียนรู้พื้นฐาน + ทดลองท่า + สอนตำแหน่ง แล้วเปลี่ยนเป็น Python เมื่อต้องการเชื่อมกับ AIKit / Computer Vision / ROS