myCobot 280 JN + AIKit 3D Vision
ตัวอย่างโปรเจกต์

10 ไอเดียโปรเจกต์ที่เริ่มทำได้วันนี้

ทำตามตัวอย่างใน Quick Start แล้วยังไงต่อ? รวบรวม 10 โปรเจกต์ เรียงจากง่าย (1 ชั่วโมง) ไปยาก (1 สัปดาห์) เพื่อให้คุณต่อยอดได้ทันที

หน้านี้เป็นไอเดียให้เลือกทำ ถ้าอยากได้โค้ดเต็มพร้อมรัน เริ่มที่ เดโม Pick & Place ก่อน แล้วค่อยต่อยอดเป็นโปรเจกต์ด้านล่าง

ภาพรวม 10 โปรเจกต์

เลือกตามอุปกรณ์ที่มี + เวลาที่พร้อมจะใช้ ทุกโปรเจกต์มี Python code skeleton ให้ต่อยอด

#โปรเจกต์ระดับเวลาต้องการ
1หุ่นโบกธง30 นาทีหุ่นเปล่า
2หุ่นเต้นตามเพลง1 ชั่วโมงหุ่นเปล่า + ลำโพง
3นาฬิกาแขนกล (Analog clock)⭐⭐2 ชั่วโมงหุ่นเปล่า
4หุ่น Greeting (ทักทาย)⭐⭐2 ชั่วโมงหุ่น + เซ็นเซอร์/sensor
5หยิบของแบนด้วย Vacuum⭐⭐2 ชั่วโมงหุ่น + Vacuum Pump
6Sort ลูกบาศก์สี (Vision)⭐⭐⭐1 วันหุ่น + Gripper + กล้อง
7Photo Booth (หมุนตามใบหน้า)⭐⭐⭐1 วันหุ่น + กล้อง + OpenCV face detect
8Tic-Tac-Toe Bot⭐⭐⭐⭐3 วันหุ่น + Gripper + กล้อง + algorithm
9Bin Picking (สุ่มหยิบ)⭐⭐⭐⭐5 วันAIKit ครบ + 3D camera
10หมากรุก / Chess Bot⭐⭐⭐⭐⭐1 สัปดาห์AIKit + Stockfish engine
ระดับเริ่มต้น

1. หุ่นโบกธง

เวลา: 30 นาที · อุปกรณ์: หุ่นเปล่า + ธงเล็กๆ ติดด้วย LEGO Plugin · ทักษะที่ได้: Loop + send_angles

หุ่นโบกธงต้อนรับผู้มาเยือนที่เคาน์เตอร์ ทำใน 20 บรรทัด

python wave_flag.py
from pymycobot import MyCobot280
import time

mc = MyCobot280('/dev/ttyTHS1', 1000000)
time.sleep(1)
mc.power_on()
mc.send_angles([0, 0, 0, 0, 0, 0], 30)
time.sleep(3)

# โบกซ้ายขวา 10 ครั้ง (J6 คือข้อมือ)
for i in range(10):
    mc.send_angle(6,  60, 60)
    time.sleep(0.6)
    mc.send_angle(6, -60, 60)
    time.sleep(0.6)

mc.send_angles([0, 0, 0, 0, 0, 0], 30)
mc.set_color(0, 255, 0)  # ไฟ LED เขียว = เสร็จ
print("Welcome!")
💡
ต่อยอด

เพิ่ม PIR sensor (motion detector) ที่ฐาน โบกอัตโนมัติเมื่อคนเดินผ่าน

2. หุ่นเต้นตามเพลง

เวลา: 1 ชั่วโมง · อุปกรณ์: หุ่นเปล่า + ลำโพง · ทักษะ: List + timing

เก็บ "ท่าเต้น" 8 ท่าใน list แล้ววนเล่นตามจังหวะ

python dance.py
from pymycobot import MyCobot280
import time
import subprocess

mc = MyCobot280('/dev/ttyTHS1', 1000000)
time.sleep(1)
mc.power_on()

# 8 ท่าเต้น — เปลี่ยนได้ตามชอบ
poses = [
    [0, 0, 0, 0, 0, 0],
    [30, -30, 30, 0, 0, 0],
    [-30, 30, -30, 0, 0, 0],
    [0, -60, 60, -30, 30, 0],
    [60, 0, 0, 60, 0, 60],
    [-60, 0, 0, -60, 0, -60],
    [0, -45, 45, 0, 0, 0],
    [0, 0, 0, 0, 0, 0],
]

# เล่นเพลง (background)
subprocess.Popen(['ffplay', '-nodisp', '-autoexit', 'dance.mp3'])

# เต้น 2 รอบ
for _ in range(2):
    for pose in poses:
        mc.send_angles(pose, 80)
        mc.set_color(0xFF * (_ % 2), 0xFF, 0)
        time.sleep(0.5)

3. นาฬิกาแขนกล (Analog Clock)

เวลา: 2 ชั่วโมง · อุปกรณ์: หุ่นเปล่า (วางหน้าปัดกระดาษไว้ใต้แขนได้) · ทักษะ: Math + เวลาจริง

ใช้ตัวแขนชี้บอกเวลาแทนเข็มนาฬิกา หมุนฐาน (J1) ไปตามนาทีทุกๆ 1 นาที

python robot_clock.py
from pymycobot import MyCobot280
import time, datetime, math

mc = MyCobot280('/dev/ttyTHS1', 1000000)
time.sleep(1)
mc.power_on()

while True:
    now = datetime.datetime.now()
    # คำนวณมุมจากนาที (360° / 60 min)
    minute_angle = (now.minute * 6) - 90  # -90 เพื่อเริ่มที่ 12 นาฬิกา
    hour_angle = (now.hour % 12 * 30) - 90

    # ส่ง J1 (ฐาน) ไปยังมุมที่คำนวณได้
    mc.send_angle(1, minute_angle, 30)
    print(f"{now:%H:%M} → J1 = {minute_angle}°")

    time.sleep(60)  # รอ 1 นาทีถัดไป
⭐⭐ ระดับกลาง

4. หุ่น Greeting ทักทายอัตโนมัติ

เวลา: 2 ชั่วโมง · อุปกรณ์: หุ่น + กล้อง 2D · ทักษะ: OpenCV face detection

กล้องจับใบหน้าได้เมื่อไหร่ หุ่นโบกมือ + เปลี่ยน LED เป็นเหลือง

python greeter.py
from pymycobot import MyCobot280
import cv2, time

mc = MyCobot280('/dev/ttyTHS1', 1000000)
time.sleep(1)
mc.power_on()
mc.send_angles([0, 0, 0, 0, 0, 0], 30)

face_cascade = cv2.CascadeClassifier(
    cv2.data.haarcascades + 'haarcascade_frontalface_default.xml'
)
cap = cv2.VideoCapture(0)
greeted = False

while True:
    ret, frame = cap.read()
    if not ret: continue
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.1, 4)

    if len(faces) > 0 and not greeted:
        # ตรวจเจอใบหน้า — โบกมือ
        mc.set_color(255, 200, 0)  # เหลือง
        for _ in range(2):
            mc.send_angle(6,  60, 80); time.sleep(0.5)
            mc.send_angle(6, -60, 80); time.sleep(0.5)
        mc.send_angle(6, 0, 30)
        greeted = True
    elif len(faces) == 0:
        greeted = False
        mc.set_color(0, 100, 0)  # เขียวเข้ม = รอ
    time.sleep(0.1)

5. หยิบของแบนด้วย Vacuum Pump

เวลา: 2 ชั่วโมง · อุปกรณ์: หุ่น + Vacuum Pump (มีในชุด) · ทักษะ: GPIO control + Pick & Place

ใช้ปั๊มสุญญากาศดูดของพื้นผิวเรียบที่ Gripper จับยาก เช่น การ์ด แผ่นกระเบื้อง ฝากล่อง แล้วย้ายไปวางอีกจุด

ขั้นตอน:

  1. เคลื่อนแขนไปเหนือวัตถุ แล้วลงให้หัวดูดแตะผิว
  2. เปิดปั๊ม (GPIO logic invert: 0 = ON) ดูดวัตถุให้ติดหัวดูด
  3. ยกขึ้น ย้ายไปจุดวาง
  4. ปิดปั๊ม (1 = OFF) ปล่อยวัตถุลง
  5. วน loop กับวัตถุชิ้นถัดไป

ใช้โค้ดจาก: บท 13 Demo 2: Vacuum Pump (มีโค้ดควบคุม GPIO + วิธีต่อสายครบ)

⭐⭐⭐ ระดับขั้นกลาง-สูง

6. Sort ลูกบาศก์สี (Vision-based)

เวลา: 1 วัน · อุปกรณ์: AIKit (Gripper + กล้อง) · ทักษะ: HSV color + Pick & Place

หุ่นแยกลูกบาศก์สี 4 สีลงในกล่อง 4 ใบโดยอัตโนมัติ เป็นเดโมคลาสสิกของ Vision robot

Logic:

  1. กล้องจับภาพพื้นที่ทำงาน
  2. OpenCV HSV mask ตรวจสีของลูกบาศก์
  3. คำนวณพิกัด (พิกัดกล้อง พิกัดหุ่น)
  4. หุ่นไปจับ ไปวางในกล่องตามสี
  5. วน loop จนพื้นที่ว่าง

ใช้โค้ดจาก: Cheatsheet Vision + บท 13 Pick & Place

7. Photo Booth กล้องหมุนตามใบหน้า

เวลา: 1 วัน · อุปกรณ์: หุ่น + กล้อง 2D ติดที่ปลายแขน · ทักษะ: Face tracking + PID

ติดกล้องที่ปลายแขน แล้วให้หุ่น หมุนตามใบหน้าคน กลายเป็นกล้องถ่ายภาพอัตโนมัติ

Concept:

  1. OpenCV จับตำแหน่งใบหน้าในเฟรม (ได้ x, y center)
  2. ถ้าใบหน้าอยู่ซ้าย หมุน J1 ไปซ้าย; อยู่ขวา หมุนขวา
  3. ใช้ PID controller ให้การหมุนนุ่มนวล
  4. เมื่อใบหน้าอยู่กลางเฟรม + ตามต่อเนื่อง 2 วินาที ถ่ายภาพ
⭐⭐⭐⭐ ระดับสูง

8. Tic-Tac-Toe Bot

เวลา: 3 วัน · อุปกรณ์: AIKit + กระดาน 3×3 · ทักษะ: AI algorithm + Vision + Manipulation

เล่น OX กับมนุษย์ ระบบครบทั้ง 3 ส่วน

3 ส่วนหลัก:

  1. Vision: ใช้ ArUco markers ที่มุมกระดาน แปลงเป็น 3×3 grid ตรวจว่ามี X หรือ O ในช่องไหน
  2. AI: Minimax algorithm หรือ rule-based คำนวณช่องที่ดีที่สุดที่จะลง
  3. Manipulation: หุ่นหยิบหมาก O จากกอง วางในช่องที่เลือก

9. Bin Picking สุ่มหยิบของจากกล่อง

เวลา: 5 วัน · อุปกรณ์: AIKit ครบ + กล้อง 3D (จำเป็น!) · ทักษะ: 3D Point Cloud + Grasp planning

โปรเจกต์ industrial-grade หุ่นยกของจากกองที่กระจัดกระจาย โดยไม่ต้องเรียงให้

ใช้เทคนิคที่ Amazon/Alibaba ใช้ในคลังสินค้าจริง:

  1. กล้อง 3D สร้าง Depth Map ของกล่อง
  2. คำนวณ Surface Normal ของแต่ละจุด
  3. หาจุดที่ "ดี" สำหรับการจับ (พื้นผิวเรียบ + เข้าถึงได้)
  4. วางแผน trajectory ที่ไม่ชนของอื่น (ใช้ MoveIt)
  5. จับและยก วางในกล่องเป้า
⭐⭐⭐⭐⭐ ระดับโปรเจกต์จบ

10. Chess Bot เล่นหมากรุกได้

เวลา: 1 สัปดาห์ · อุปกรณ์: AIKit + กระดานหมากรุก + ตัวหมาก · ทักษะ: ทุกอย่างรวมกัน

โปรเจกต์ "Demo รวมทุกอย่าง" เป็นเป้าหมายสุดท้ายสำหรับ โครงงานจบของนักศึกษา

Architecture:

Tools:

  • python-chess library จัดการกระดานหมากรุก
  • stockfish engine คำนวณการเดิน (free!)
  • YOLOv8 ที่ fine-tune ด้วยภาพตัวหมากของคุณ (~200 ภาพ)
  • Calibration กล้อง กระดาน หุ่น (ใช้ ArUco markers ที่มุม)

ทำเสร็จแล้วแชร์ที่ไหน?

  • Facebook Group: Thai Robot & AI Community
  • YouTube: อัปคลิป Demo + tag #myCobotThailand
  • GitHub: Push โค้ดเป็น public repo ทำ README ภาษาไทย
  • ติดต่อ Synergy: ถ้าทำได้ดี ทีมเรารับฟัง + Repost ให้