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

การเปิดเครื่องและทดสอบครั้งแรก

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

4.1 ลำดับการเปิดเครื่อง

เพื่อความปลอดภัยและป้องกันความเสียหายของอุปกรณ์ ควรเปิดเครื่องตามลำดับ:

  1. ตรวจสอบว่าได้เชื่อมต่อสายอุปกรณ์ทั้งหมดเรียบร้อย
  2. เสียบ Adapter ของ myCobot 280 JN (12V/5A) เข้ากับเต้ารับ Adapter ดำสีเทาที่มากับกล่อง
  3. เปิดสวิตช์ Power ที่ฐานของหุ่นยนต์ Jetson Nano ภายในจะเริ่มบูทพร้อมกัน
  4. เปิดสวิตช์ของปั๊มสุญญากาศ (ถ้าใช้งาน)
  5. รอประมาณ 30-60 วินาที จนระบบ Ubuntu บูทเสร็จและแสดงหน้า Login
⚠️
หมายเหตุ

Jetson Nano ฝังอยู่ภายใน base ของ myCobot 280 JN การเปิดสวิตช์ Power ที่ฐานจะเปิดทั้งสองส่วนพร้อมกัน ไม่จำเป็นต้องเปิดแยก

4.2 การเข้าสู่ระบบ Ubuntu

Jetson Nano ที่จัดส่งพร้อมชุด AIKit ได้ติดตั้งระบบปฏิบัติการ Ubuntu พร้อมโปรแกรมทั้งหมดที่จำเป็นมาแล้ว ใช้ข้อมูลต่อไปนี้ในการเข้าสู่ระบบ:

รายการค่า
Usernameer
PasswordElephant
ℹ️
ข้อมูลสำคัญ เปลี่ยน Password

Password ของระบบเป็นค่าเริ่มต้นที่กำหนดโดยผู้ผลิต แนะนำให้เปลี่ยน Password ใหม่หลังจากใช้งานครั้งแรก เพื่อความปลอดภัย โดยใช้คำสั่ง passwd

4.3 ทัวร์หน้า Desktop และเครื่องมือที่มี

เมื่อล็อกอินเข้า Ubuntu Mate ครั้งแรก จะเห็นหน้า Desktop ที่ Elephant Robotics จัดเตรียมไว้แล้ว มีไอคอนทางลัด (Shortcut) ไปยังเครื่องมือสำคัญที่ผู้ใช้ ไม่ต้องติดตั้งเพิ่ม ระบบมาพร้อม Python + ROS1/ROS2 + myStudio + myBlockly ครบในตัวแล้ว

4.3.1 ไอคอนบน Desktop

ไอคอนบน Desktop ของ Ubuntu Mate ใน Jetson Nano
ไอคอนบน Desktop 6 กลุ่มหลักที่ Elephant Robotics ติดตั้งมาให้
#ไอคอนหน้าที่
er's Home / Trash / Network Servers ทางลัดไป Home folder, ถังขยะ, และ Network folder ของ Ubuntu Mate มาตรฐาน
1 Home / Github - Elephant Robotics ลิงก์ Bookmark ไปเว็บไซต์หลักและ GitHub ของผู้ผลิต เปิดในเบราว์เซอร์
2 myCobot Test Tool เครื่องมือ GUI ทดสอบการทำงานของแขนกล ดูสถานะ joint, ขยับด้วย slider, ตรวจ servo
3 myStudio โปรแกรม Burn Firmware ของบอร์ด Atom / Basic ดู บทที่ 12.8
4 myBlockly เขียนโปรแกรมแบบลากบล็อก เหมาะกับมือใหม่ ดู บทที่ 9
5 ROS1 Shell / ROS2 Shell เปิด Terminal ที่ตั้งค่า ROS environment พร้อมใช้ ไม่ต้องรัน source setup.bash เอง ดู บทที่ 10
6 User Manual - CN / EN คู่มือต้นฉบับ PDF จาก Elephant Robotics ภาษาจีนและอังกฤษ (คู่มือฉบับภาษาไทย = เว็บที่คุณกำลังอ่านอยู่นี้)

4.3.2 Taskbar เครื่องมือด่วน

Taskbar ด้านล่างของ Ubuntu Mate
Taskbar ที่ขอบล่างจอ มีปุ่มลัด 7 ตัวสำหรับเครื่องมือที่ใช้บ่อย
#ปุ่มหน้าที่
1Terminalเปิด command line ใช้บ่อยที่สุด รันคำสั่ง Linux + Python
2File Manager (Caja)เปิดดูไฟล์/โฟลเดอร์แบบกราฟิก คล้าย File Explorer
3Notepad / Text Editorเปิดแก้ไขไฟล์ .py, .txt, .yaml ฯลฯ
4VimText editor ใน Terminal สำหรับโปรแกรมเมอร์ระดับสูง
5Show Desktopย่อหน้าต่างทั้งหมดเพื่อเห็น Desktop
6CPU / Memory Monitorเห็นการใช้งาน CPU และ RAM แบบ real-time ใช้ดูตอนรัน YOLOv8
7Trashถังขยะของระบบ
💡
เคล็ดลับ เปิด Terminal ที่ใช้บ่อย

แทนที่จะคลิกไอคอน Terminal ที่ Taskbar ทุกครั้ง ใช้คีย์ลัด Ctrl+Alt+T ก็เปิดได้ทันทีจากทุกหน้าจอ

4.3.3 ซอฟต์แวร์ที่ติดตั้งมาแล้ว

Elephant ติดตั้งสิ่งต่อไปนี้มาให้ใน Image ของ Jetson Nano:

🐍

Python 3 + pymycobot

ควบคุมหุ่นยนต์ผ่าน Python ไม่ต้อง pip install เพิ่ม

🤖

ROS Noetic (ROS1)

พร้อมแพ็คเกจ mycobot_ros + rviz + MoveIt

🧱

myBlockly

เขียนโปรแกรมแบบลากบล็อก รันได้ทันที

🔧

myStudio

Burn firmware ของบอร์ด Atom/Basic

👁️

OpenCV + NumPy

ประมวลผลภาพและคำนวณ matrix

🧠

PyTorch + YOLOv8

Deep Learning รองรับ CUDA บน Jetson Nano

ℹ️
VNC พร้อมใช้งาน

Image ของ Elephant ตั้งค่า VNC Server ไว้แล้ว ทำให้ คอนโทรลหน้าจอจาก PC ภายนอกได้แบบ Remote Desktop (สำคัญตอนต้องการพัฒนาโดยไม่ต่อจอ HDMI โดยตรง)

ตรวจ IP ของ Jetson ด้วยคำสั่ง hostname -I ใน Terminal:

terminal
hostname -I
ผลของ hostname -I แสดง IP address หลายค่า IPv4 และ IPv6
ผลของ hostname -I ค่าแรก (IPv4 เช่น 172.16.7.108) คือ IP ที่ใช้กับ VNC Viewer ส่วนตัวเลขยาวๆ ที่มี : เป็น IPv6 (ไม่จำเป็นต้องใช้)

คัดลอกเฉพาะ IPv4 ค่าแรก (ตัวเลข 4 กลุ่มคั่นด้วย .) ไปใส่ใน VNC Viewer เช่น RealVNC Viewer หรือ TigerVNC บน PC port มาตรฐาน :5900 หรือ :5901

⚠️
ระวัง อย่าลบไอคอนบน Desktop

ไอคอนทั้งหมดเป็น Shortcut ไปยังโปรแกรมที่ติดตั้งใน /home/er/ การลบไอคอนไม่ลบโปรแกรม แต่ถ้าเผลอลบโฟลเดอร์เป้าหมายในระบบ อาจต้อง เบิร์น Image ใหม่

4.4 การตรวจสอบอุปกรณ์เบื้องต้น

หลังจากเข้าสู่ระบบ Ubuntu แล้ว ควรตรวจสอบว่าอุปกรณ์ทุกชิ้นเชื่อมต่ออย่างถูกต้องและพร้อมใช้งาน

💡
ก่อนเริ่ม สำหรับมือใหม่ที่ไม่เคยใช้ Linux มาก่อน

Terminal = หน้าต่างพิมพ์คำสั่ง (เหมือน Command Prompt ใน Windows) เปิดด้วยปุ่ม Ctrl+Alt+T หรือคลิกไอคอน Terminal ใน Taskbar
วิธีใช้: พิมพ์คำสั่ง กด Enter จะมีข้อความตอบกลับด้านล่าง
คัดลอกผลลัพธ์: ลากเลือกข้อความ กด Ctrl+Shift+C (Ctrl+C ปกติใน Terminal คือยกเลิกคำสั่ง)

4.4.1 ตรวจสอบการเชื่อมต่อ USB

เปิด Terminal (กด Ctrl+Alt+T) แล้วพิมพ์:

terminal
lsusb

ผลลัพธ์ที่ควรเห็น (ของคุณอาจมีบรรทัดมากกว่านี้ แต่ต้องมี 2 บรรทัดนี้):

Bus 001 Device 003: ID 0403:6001 Future Technology Devices, Inc.
Bus 001 Device 004: ID 8086:0b3a Intel Corp. RealSense
  • ✅ บรรทัดที่มี Future Technology Devices = myCobot 280 JN
  • ✅ บรรทัดที่มี Intel Corp. หรือชื่อกล้อง = 3D Vision Camera
  • ❌ ถ้าไม่เห็นบรรทัดใดบรรทัดหนึ่ง ตรวจสาย USB และดู A.2

4.4.2 ตรวจสอบพอร์ต Serial ของ myCobot

พอร์ต Serial เป็น "ช่องสื่อสาร" ที่ Python ใช้ส่งคำสั่งไปหุ่นยนต์

terminal
ls /dev/ttyTHS*

ผลลัพธ์ที่ควรเห็น:

/dev/ttyTHS1  /dev/ttyTHS2

ใช้ ttyTHS1 เป็นพอร์ตหลัก (ttyTHS2 เป็น spare/debug ไม่ใช้)

💡
ตรวจถูกแล้วต่อ ผ่านขั้นนี้ได้ถ้า

✅ เห็น /dev/ttyTHS1 (และ ttyTHS2) ตามที่คาด ไปขั้นต่อไปได้
⚠️ ถ้าเห็น /dev/ttyACM0 แทน ใช้ได้แต่ต้องแก้พอร์ตในโค้ดด้วย
❌ ถ้าได้ ls: cannot access '/dev/ttyTHS*': No such file ดู A.1

4.4.3 เปิดสิทธิ์ใช้พอร์ต Serial

ก่อนรันสคริปต์ Python ครั้งแรก ต้องเปิดสิทธิ์ให้ user ปกติเข้าถึง /dev/ttyTHS1 ได้ (ถ้าไม่ทำจะเจอ Permission denied):

terminal
sudo chmod 666 /dev/ttyTHS1

ระบบอาจถามรหัสผ่าน พิมพ์ Elephant แล้วกด Enter (หมายเหตุ: Linux จะไม่แสดงตัวอักษรขณะพิมพ์รหัส ไม่มี ●●● ขึ้น เป็นเรื่องปกติ )

ผลของ sudo chmod 666 /dev/ttyTHS1 ไม่มี output ใดๆ ขึ้น เพียง prompt กลับมา
ผลของ sudo chmod 666 ไม่มี output ขึ้น เพราะ Linux ใช้หลัก "silence = success" ถ้าคำสั่งสำเร็จจะไม่แสดงอะไร แค่กลับมา prompt er@nano:~$ รอคำสั่งใหม่
ℹ️
"ไม่มี output" คือสัญญาณว่าสำเร็จ!

กฎพื้นฐานของ Linux คำสั่งที่ทำงานสำเร็จส่วนใหญ่จะไม่แสดงอะไรเลย แค่กลับมาที่ prompt รอคำสั่งใหม่ ถ้าเห็นข้อความสีแดงหรือคำว่า Error/Permission denied ค่อยกังวล

ทดสอบว่าได้ผลจริงด้วย ls -l /dev/ttyTHS1 ต้องเห็น crw-rw-rw- ที่หน้าบรรทัด

🔒
ทำให้ถาวร ไม่ต้อง chmod ทุกครั้ง

คำสั่ง chmod 666 ด้านบนจะใช้ได้แค่จน Reboot ครั้งถัดไป ถ้าอยากให้ถาวร เพิ่ม user เข้า group dialout:

terminal
sudo usermod -a -G dialout $USER

แล้ว logout/reboot ครั้งเดียวเพื่อให้สิทธิ์มีผล หลังจากนี้ไม่ต้อง chmod อีก

4.5 การทดสอบการเชื่อมต่อกับ myCobot

🛑
🚦 Pre-flight Checklist ก่อนสั่งหุ่นยนต์ขยับครั้งแรก

ตรวจ ทุกข้อ ก่อนกด Enter ที่คำสั่ง send_angles()

  • หุ่นยนต์ตั้งบนโต๊ะที่มั่นคง ไม่โยก
  • มีพื้นที่ว่างรอบแขน ≥ 50 cm ในทุกทิศทาง
  • ไม่มีคน/มือ/หน้า อยู่ในรัศมีการเคลื่อนที่
  • ไม่มีของวางบนปลายแขนเกิน 250 g
  • เก็บสายไฟ/สาย USB ให้พ้นทางเคลื่อนแขน (ไม่พันกัน)
  • รู้วิธี หยุดฉุกเฉิน: ปิดสวิตช์ Power ที่ฐานหุ่นยนต์ทันที
  • คน 1 คนพร้อมที่จะปิดสวิตช์ ถ้าหุ่นยนต์เคลื่อนผิดทาง

เมื่อเช็คครบแล้ว ก่อนรันโค้ดควรตรวจว่า pymycobot ติดตั้งสำเร็จ:

terminal
python3 -c "import pymycobot; print(pymycobot.__version__)"

ควรเห็นเลข version เช่น 4.0.4 หรือใหม่กว่า:

ผลของคำสั่งตรวจ version pymycobot แสดง 4.0.4
เลข version ของ pymycobot บน Jetson Nano (ภาพนี้ = 4.0.4) ถ้าได้ ModuleNotFoundError ให้รัน pip3 install pymycobot --upgrade ก่อน

เมื่อ pymycobot พร้อมแล้ว ทดสอบเชื่อมต่อด้วยโค้ดสั้นๆ ผ่าน heredoc (ใช้แทน REPL ง่ายกว่าสำหรับ paste):

terminal
python3 << 'EOF'
from pymycobot import MyCobot280
import time

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

# อ่านค่าปัจจุบันของแขน — ไม่สั่งเคลื่อน
print("Angles:", mc.get_angles())
print("Coords:", mc.get_coords())
EOF

ผลลัพธ์ที่ควรเห็น list 6 ตัวเลข (ค่าจริงขึ้นกับท่าของแขนตอนนี้ ไม่จำเป็นต้องเป็น 0.0 ถ้ายังไม่ได้กลับ Home):

Angles: [-0.79, -0.08, -0.52, -0.61, 0.43, 0.79]
Coords: [47.5, -63.7, 419.8, -91.23, 0.8, -90.36]
ผลของ get_angles() และ get_coords() แสดง 6 ค่าจริงของข้อต่อและพิกัด
การเชื่อมต่อสำเร็จ Python อ่าน angles (6 ค่ามุม J1 J6) และ coords (พิกัด X/Y/Z + RX/RY/RZ) จาก servo ได้

ถ้าได้ผลแบบในรูป (มี 6 ค่าตัวเลขจริง) = เชื่อมต่อสำเร็จ! ต่อไปลองสั่งเคลื่อนกลับ Home:

terminal
python3 -c "from pymycobot import MyCobot280; import time; mc = MyCobot280('/dev/ttyTHS1', 1000000); time.sleep(1); mc.send_angles([0,0,0,0,0,0], 30); time.sleep(3); print('Home:', mc.get_angles())"

หลังคำสั่งนี้ แขนจะเคลื่อนกลับท่าตั้งตรง และ get_angles() ควรคืนค่าใกล้ [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

ตรวจสอบว่าผ่าน

หุ่นยนต์เคลื่อนที่ ได้ยินเสียง servo + เห็นแขนกลับท่าตรง
print แสดงค่ามุม list 6 ตัวเลขใกล้ ๆ 0
error Permission denied ดู A.6.1
print ออกมาเป็น None หรือ [] port ไม่เชื่อมจริง ตรวจ 4.4 ใหม่
error ModuleNotFoundError pip3 install pymycobot --upgrade --user

ℹ️
หมายเหตุ Class ใหม่ vs Class เก่า

คู่มือนี้ใช้คลาส MyCobot280 (จาก from pymycobot import MyCobot280) ซึ่งเป็น API รุ่นใหม่ของ pymycobot หากใช้ pymycobot เวอร์ชันเก่ามาก ๆ และต้องการ class เดิม สามารถใช้ from pymycobot.mycobot import MyCobot แทนได้ API methods เหมือนกัน รายละเอียดเพิ่มเติมดูใน บทที่ 8.1

หากระบบทำงานถูกต้อง หุ่นยนต์จะเคลื่อนที่กลับสู่ตำแหน่งเริ่มต้น และคำสั่ง print จะแสดงค่ามุมของข้อต่อทั้ง 6 ออกมา

⚠️
คำเตือน

ก่อนสั่งให้หุ่นยนต์เคลื่อนที่ ตรวจสอบให้แน่ใจว่าไม่มีสิ่งของหรือมนุษย์อยู่ในรัศมีการทำงาน เพราะหุ่นยนต์จะเคลื่อนที่ทันทีที่รับคำสั่ง

4.5.1 ทางเลือก myCobot Test Tool (GUI)

ถ้าไม่อยากเขียน Python Elephant มี GUI Test Tool ติดตั้งมาให้แล้ว เปิดจาก Desktop หรือดับเบิลคลิกที่ ~/mycobottestool/

myCobot Test Tool GUI เครื่องมือทดสอบหุ่นยนต์ของ Elephant Robotics (UI ภาษาจีน)
myCobot Test Tool UI ภาษาจีน แต่ใช้งานได้ตามขั้นตอน 1-10 ทางซ้าย
🈚
คำแปลปุ่มจีนใน Test Tool

UI เป็นภาษาจีน นี่คือคำแปลส่วนสำคัญ:

ส่วนจีนไทย
เลือกพอร์ต选择串口Select Serial Port เลือก /dev/ttyTHS1
เลือกรุ่น选择设备Select Device เลือก myCobot 280 for M5 (ไม่ใช่ JN! เพราะ Test Tool ออกแบบสำหรับ M5 เดิม แต่ใช้กับ JN ได้)
เลือก Baud选择波特率Baudrate 1000000 (ไม่ใช่ 115200 default!)
1. เชื่อมต่อ连接 / 断开Connect / Disconnect
2. Burn Firmwarebasic烧录 / atom烧录Burn firmware ลง Basic Board หรือ Atom Board
3. ตรวจการเชื่อมต่อ开始检测Start Detection
5. Calibrate校准零位 / 校准舵机参数Calibrate Home Position / Calibrate Servo
6. เปิด-ปิด servo所有关节上电 / 下电Power On / Off All Joints
7. ปล่อย servo放松所有关节Release All Joints (จับขยับเองได้)
9. ทดสอบ LED Atom颜色测试 / 按钮测试Color Test / Button Test
10. Aging test空载运行 / 负载运行Run with no-load / with load (สำหรับ stress test)
หยุด / กลับ Home停止 / 回到零位Stop / Return to Home
⚠️
ตอนตั้งค่าครั้งแรก สำคัญ 3 ข้อ

ก่อนกดปุ่ม 连接 (Connect):
1. เปลี่ยน 选择串口 (Port) /dev/ttyTHS1 (default คือ NO Port)
2. เปลี่ยน 选择波特率 (Baud) 1000000 (default คือ 115200 ใช้ไม่ได้!)
3. 选择设备 (Device) ปล่อยไว้ที่ myCobot 280 for M5

4.6 การทดสอบกล้อง 3D Vision

4.6.1 ตรวจว่าระบบเห็นกล้อง

ก่อนจะรันโค้ด OpenCV ตรวจก่อนว่ามี /dev/video* ปรากฏ:

terminal
ls /dev/video*

ผลลัพธ์ที่ควรเห็น อย่างน้อย 1 device (กล้อง 3D Vision มัก register 2 video devices สำหรับ RGB + Depth):

/dev/video0  /dev/video1
ผลของ ls /dev/video* แสดง /dev/video0 และ /dev/video1
กล้อง 3D Vision register ใน Linux เป็น 2 video devices /dev/video0 (RGB stream) และ /dev/video1 (Depth/IR stream)
ℹ️
ทำไมเห็น 2 video devices?

กล้อง 3D Vision (Intel RealSense หรือคล้าย) มี 2 sensors ภายในตัวเดียว: ตัวแรก = RGB camera ปกติ, ตัวที่สอง = Depth/IR sensor

OpenCV ใช้ VideoCapture(0) ปกติจะได้ stream RGB ถ้าอยากใช้ Depth ใช้ VideoCapture(1)

❌ ถ้า ls: cannot access '/dev/video*' = ไม่มีกล้องเสียบ ตรวจสายและรีบูตอีกที

4.6.2 ทดสอบด้วย OpenCV

ทดสอบกล้อง 3D Vision ด้วยโค้ดสั้น ๆ ดังนี้:

python camera_test.py
import cv2

cap = cv2.VideoCapture(0)
while True:
    ret, frame = cap.read()
    if not ret:
        break
    cv2.imshow('Camera Test', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

บันทึกเป็นไฟล์ camera_test.py แล้วรันด้วยคำสั่ง:

python3 camera_test.py

หากกล้องทำงานปกติ จะปรากฏหน้าต่างแสดงภาพจากกล้องแบบ Real-time กด q เพื่อปิดโปรแกรม

ℹ️
ข้อมูลสำคัญ

หากไม่เห็นภาพ ลองเปลี่ยนค่า VideoCapture(0) เป็น VideoCapture(1) หรือ VideoCapture(2) เพราะหมายเลขกล้องอาจเปลี่ยนตามลำดับการต่อ USB

4.7 การทดสอบปั๊มสุญญากาศ

ทดสอบการเปิด-ปิดปั๊มสุญญากาศผ่าน GPIO:

python
import Jetson.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(20, GPIO.OUT)  # Pin 38 = BCM 20 (ดูดอากาศ)
GPIO.setup(21, GPIO.OUT)  # Pin 40 = BCM 21 (ปล่อยอากาศ)

# เปิดปั๊ม (ดูด) — 0 = ON (logic invert)
GPIO.output(20, 0)
GPIO.output(21, 1)
time.sleep(3)

# ปิดปั๊ม + ปล่อยอากาศ — 1 = OFF
GPIO.output(20, 1)
GPIO.output(21, 0)
time.sleep(1)

GPIO.output(21, 1)
GPIO.cleanup()

เมื่อรันโปรแกรมนี้ ปั๊มจะดูดอากาศ 3 วินาที แล้วปล่อยอากาศ 1 วินาที

ℹ️
ข้อมูลสำคัญ Logic Invert

Jetson.GPIO ของ AIKit ใช้ Logic Invert: เอาต์พุต 0 = ON (เปิดสุญญากาศ), 1 = OFF (ปิด) ซึ่งต่างจากบอร์ดทั่วไป โปรดอย่าสลับลำดับใน GPIO.output()

💡
คำแนะนำ

วางวัตถุพื้นผิวเรียบ เช่น แผ่นพลาสติก ใต้หัวดูดสุญญากาศก่อนทดสอบ เพื่อสังเกตว่าปั๊มสามารถดูดติดได้หรือไม่

4.8 การ Calibrate ครั้งแรก

หลังจากทดสอบอุปกรณ์ทั้งหมดในหัวข้อ 4.4-4.7 ผ่านแล้ว ขั้นตอนสุดท้ายก่อนเริ่มใช้งานจริงคือการปรับเทียบระบบ (Calibration) เพื่อให้กล้องและหุ่นยนต์ทำงานร่วมกันได้อย่างแม่นยำ

ℹ️
ข้อมูลสำคัญ

การ Calibrate เป็นขั้นตอนบังคับก่อนใช้งานครั้งแรกเสมอ หากข้ามขั้นตอนนี้ หุ่นยนต์จะหยิบวัตถุไม่ตรงตำแหน่ง รายละเอียดขั้นตอนการ Calibrate ดูได้ใน หัวข้อ 5.5

4.9 การรัน Demo Pick & Place ครั้งแรก

เมื่อ Calibrate เสร็จแล้ว ผู้ใช้งานสามารถทดลองรันโปรแกรม Pick & Place ตัวอย่างเพื่อยืนยันว่าระบบทั้งหมดทำงานได้สมบูรณ์:

  1. เปิด Terminal แล้วเข้าโฟลเดอร์โปรแกรม: cd Doc
  2. รันโปรแกรมหลัก: python3 camera_detect.py
  3. หน้าต่าง GUI จะปรากฏขึ้น เลือกอัลกอริทึม Color Detection (เริ่มจากแบบง่ายที่สุดก่อน)
  4. วางลูกบาศก์สีแดง 1 ก้อนในพื้นที่ทำงาน (ภายในกรอบที่เห็นในภาพกล้อง)
  5. กดปุ่ม Start ระบบจะตรวจจับ เคลื่อนแขนไปเหนือวัตถุ ดูด ยก วางในตำแหน่งปลายทาง
⚠️
คำเตือน

ระหว่าง Demo ห้ามนำมือเข้าไปในพื้นที่ทำงาน หากต้องการหยุดฉุกเฉิน ให้ปิดสวิตช์ที่ฐานหุ่นยนต์ทันที

หากระบบทำงานครบ 1 รอบ (Cycle) สำเร็จ ถือว่าระบบพร้อมใช้งานจริง สามารถเริ่มศึกษา บทที่ 5 เพื่อพัฒนาโปรแกรมของตนเองได้