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

การกู้คืนระบบ (TF Card & Image Burning)

ขั้นตอนการเขียน Image (เบิร์น) ลง TF Card ใหม่ สำหรับกรณีระบบ Ubuntu เสียจนใช้ไม่ได้ หรือต้องการเปลี่ยน OS เป็นเวอร์ชันใหม่

12.1 เมื่อใดต้องเบิร์น Image ใหม่?

  • ระบบ Ubuntu บูทไม่ขึ้น (Kernel Panic, หยุดที่หน้าจอดำ)
  • ดิสก์เต็ม / Filesystem corrupt
  • ดาวน์โหลด/ลบไฟล์ระบบสำคัญผิดพลาด ไม่สามารถกู้ได้
  • ต้องการเปลี่ยนหรือติดตั้ง OS เวอร์ชันใหม่
  • TF Card เดิมเสียทางกายภาพ (มีคำเตือน read/write error)
⚠️
คำเตือนสำคัญ

การเบิร์น Image ใหม่จะ ลบข้อมูลทั้งหมด ใน TF Card ก่อนทำ ให้สำรองโฟลเดอร์ config/ และโค้ดของคุณไว้ที่ USB Drive ก่อนเสมอ

12.2 เครื่องมือที่ต้องเตรียม

ฮาร์ดแวร์

  • ไขควงปากแฉก ขนาด 1.5 มม. (สำหรับแกะฐาน)
  • Card Reader (USB microSD/TF)
  • TF Card ใหม่ (ถ้าจะเปลี่ยน) แนะนำ 32 GB ขึ้นไป Class 10/UHS-1
  • คอมพิวเตอร์ Windows / Mac / Linux (สำหรับเบิร์น)
  • ผ้า/สายข้อมือกันไฟฟ้าสถิต (Anti-static)

ซอฟต์แวร์

  • Win32DiskImager (Windows) เครื่องมือเบิร์น Image ของ Elephant แนะนำ
  • หรือ balenaEtcher (Windows/Mac/Linux) ใช้งานง่ายกว่า

12.3 ลิงก์ดาวน์โหลด Image

Elephant Robotics จัดเตรียม Image สำเร็จรูปไว้ให้ มีหลายเวอร์ชัน เลือกตามรุ่นเครื่องและรุ่น Ubuntu:

เวอร์ชัน OSเหมาะกับเครื่องที่ซื้อลิงก์ดาวน์โหลด
Ubuntu 18.04 เครื่องรุ่นเก่า (ก่อน 2024) myCobot_280_Jetsonnano_V221101-shrink.zip
Ubuntu 20.04 (Mar 2025) เครื่องก่อน 09 ตุลาคม 2024 V20250326_20.04JN_aarch64.zip
Ubuntu 20.04 (Nov 2024) เครื่องหลัง 09 ตุลาคม 2024 V20241108_20.04JN_aarch64.tar.gz
ℹ️
ข้อมูลสำคัญ

เครื่องที่ซื้อหลัง 9 ตุลาคม 2024 ต้องใช้ Image V20241108 เท่านั้น เพราะมีการเปลี่ยน Bootloader ใช้ Image เก่าจะบูทไม่ขึ้น

12.4 ขั้นตอนถอด TF Card (Hardware)

TF Card อยู่ภายในฐานหุ่นยนต์ ต้องแกะฐานก่อน:

⚠️
ก่อนเริ่ม

ปิดเครื่องและถอดอะแดปเตอร์ออกทั้งหมด สวมสายข้อมือกันไฟฟ้าสถิต ถ้าไม่มี ให้แตะวัตถุโลหะที่ต่อสายดิน (เช่น ตัวถังคอมพ์) ก่อนเริ่มจับบอร์ด

  1. หาตำแหน่งสล็อต TF Card ในฐานหุ่นยนต์
  2. ขัน สกรูหน้า 2 ตัว ออก (ใช้ไขควง 1.5 Phillips)
  3. ขัน สกรูใต้ฐาน 6 ตัว ขนาด 2×8 ออก
  4. ปลด สายเซอร์โว 3-pin (สีดำ-แดง-ขาว) ออกอย่างนุ่มนวล
  5. ปลดสายพัดลม, สายไฟ LED แสดงสถานะ และสายไฟหลักออก
  6. ถอดบอร์ด PCBA สีเขียวออก พร้อมกับสกรูยึด 3 ตัว
  7. ถอด คอลัมน์หกเหลี่ยม 3 อัน ออก
  8. นำบอร์ด Main Controller ออกอย่างระมัดระวัง (ระวังไฟฟ้าสถิต)
  9. ดึง TF Card ออก หรือใส่อันใหม่
  10. ประกอบกลับตามลำดับย้อนกลับ: Main board คอลัมน์หกเหลี่ยม PCBA สาย ฝา
💡
เคล็ดลับ

ถ่ายภาพแต่ละขั้นตอนก่อนถอด จะช่วยให้ประกอบกลับถูกตำแหน่งสายแต่ละเส้น

12.5 ขั้นตอนการเบิร์น Image

วิธีที่ 1 Win32DiskImager (Windows)

  1. ดาวน์โหลด Image (.zip / .tar.gz) จากตารางในหัวข้อ 12.3
  2. แตกไฟล์ให้ได้ไฟล์ .img
  3. ติดตั้ง Win32DiskImager และเปิดโปรแกรม
  4. เสียบ TF Card เข้า Card Reader แล้วเสียบเข้าคอมพิวเตอร์
  5. เลือก Drive ของ TF Card (ระวังเลือกผิด!)
  6. กดปุ่ม ... เลือกไฟล์ .img
  7. กด Write ยืนยัน Yes
  8. รอจนเสร็จ (15-25 นาที) แล้วกด Exit
  9. ถอด TF Card ออกอย่างปลอดภัย (Eject)

วิธีที่ 2 balenaEtcher (ทุก OS)

  1. ดาวน์โหลดและติดตั้ง balenaEtcher
  2. เปิดโปรแกรม Flash from file เลือกไฟล์ Image
  3. Select target เลือก TF Card
  4. กด Flash! ใส่ admin password ถ้าระบบขอ
  5. รอจนแสดงคำว่า Flash Complete!
⚠️
คำเตือน เลือก Drive ผิด

เลือก Drive ผิดอาจทำให้ ฮาร์ดดิสก์หลักของคอมพิวเตอร์เสียได้ ตรวจสอบขนาด Drive (เช่น TF Card 32 GB) ก่อนกด Write/Flash เสมอ

12.6 บูทเครื่องครั้งแรกหลังเบิร์น

  1. ใส่ TF Card กลับเข้า Jetson Nano และประกอบฐานให้เรียบร้อย
  2. ต่อจอ HDMI, คีย์บอร์ด, เมาส์ ตามปกติ
  3. เสียบ Adapter 12V/5A
  4. กดปุ่ม Power ที่ฐาน บูทครั้งแรกอาจใช้เวลา 2-5 นาที เพราะระบบต้องขยายพาร์ทิชัน
  5. เข้าระบบด้วย er / Elephant
  6. ตรวจสอบเวอร์ชัน: cat /etc/os-release
  7. ตรวจสอบ pymycobot: pip3 list | grep pymycobot
  8. เริ่มทดสอบตาม บทที่ 4: การเปิดและทดสอบครั้งแรก

12.7 ปัญหาที่พบบ่อย

  • เบิร์นเสร็จแต่ไม่บูท เช็คว่าใช้ Image ตรงรุ่นเครื่อง (ดูตาราง 12.3) และ TF Card ใส่แน่นพอ
  • Win32DiskImager ค้างที่ 0% ลองเปลี่ยน USB port หรือใช้ balenaEtcher แทน
  • ไฟล์ .tar.gz แตกไม่ออก ใช้ 7-Zip แตก 2 รอบ (จะได้ .tar แตกอีกครั้งจะได้ .img)
  • หลังเบิร์นใช้พื้นที่แค่ 4 GB ปกติ ระบบจะขยายพาร์ทิชันเองในการบูทครั้งแรก
  • หาตำแหน่ง TF Card ในฐานไม่เจอ ดูภาพประกอบในเอกสารต้นฉบับที่ docs.elephantrobotics.com

12.8 myStudio เครื่องมือ Burn Firmware ของ Elephant

นอกจากการเบิร์น Image ระดับ OS แล้ว ยังมีกรณีที่ต้อง อัปเดตเฉพาะ Firmware ของบอร์ด Atom (ที่ปลายแขน) หรือ Basic (ที่ฐาน) ของ myCobot เครื่องมือที่ใช้คือ myStudio Desktop App ของ Elephant Robotics

เมื่อใดต้องใช้ myStudio?

  • Atom Firmware เก่า ฟีเจอร์ joint limit check ต้องการ firmware ≥ 7.3
  • หลังเบิร์น Image ใหม่ แล้วบอร์ดต่าง ๆ ไม่ตอบสนอง
  • เปลี่ยน set_color(), set_pin_mode() ไม่ทำงาน
  • ต้องการ Calibrate joint zero แบบ factory reset
  • อัปเกรดเป็นโปรโตคอลใหม่ที่ pymycobot รุ่นล่าสุดต้องการ

ดาวน์โหลด & ติดตั้ง

  1. เข้า elephantrobotics.com/en/downloads
  2. ดาวน์โหลด myStudio (เวอร์ชันล่าสุด V3.5.8 รองรับ Windows / macOS / Linux)
  3. ติดตั้งตามขั้นตอนของ OS

รุ่นที่รองรับ

myStudio ใช้ได้กับ myCobot ทุกรุ่นในซีรีส์ 280 รวมถึงรุ่นอื่นๆ เลือก machine ให้ตรงกับเครื่องของคุณ:

myStudio หน้าแรก เลือกรุ่นหุ่นยนต์ที่ต้องการ flash firmware
myStudio หน้าแรก เลือกรุ่นจาก row การ์ดด้านบน: myArm M&C, myCobot 280, myCobot 320, myCobot Pro 600, myPalletizer 260, mechArm 270, myBuddy 280, ultraArm P340 ฯลฯ จากนั้นตั้งค่า Type, USB Port, Language, Location แล้วกด LOGIN
  • myCobot 280รุ่นของเรา (เลือกการ์ดที่สอง)
  • myCobot 280 M5 ใช้ ESP32-based controller
  • myCobot 280 PI Raspberry Pi 4 ฝังในฐาน
  • myCobot 280 Jetson Nano เลือก myCobot 280 แล้วเปลี่ยน Type 280-JN
  • myCobot 280 Arduino
💡
บน Jetson Nano (Image ของ Elephant)

myStudio ติดตั้งมาแล้ว เปิดจาก Desktop ได้ทันที (ไม่ต้องดาวน์โหลด) version ที่ติดตั้งมาคือ v3.6.0 หรือใหม่กว่า

ℹ️
myStudio ไม่ได้แค่ flash firmware

myStudio เป็น "one-stop platform" มีทั้ง: (1) Firmware burn, (2) คู่มือ + video tutorials ในแอป, (3) ข้อมูล maintenance & repair, (4) Link ไปยังเอกสารต้นฉบับและ source code

ขั้นตอน Burn Firmware

⚠️
ก่อนเริ่ม

ต้องเชื่อม myCobot กับ PC โดยตรง ผ่านสาย USB-C (ไม่ใช่ผ่าน Jetson) และปิด pymycobot/myBlockly ก่อน เพราะใช้พอร์ตเดียวกันไม่ได้พร้อมกัน

  1. เปิด myStudio เลือก machine: myCobot 280 เลือกพอร์ต Serial ที่เชื่อม
  2. คลิกแท็บ Flash
  3. เลือก firmware ที่จะ burn:
    • Atom firmware ของบอร์ดปลายแขน (LED, IO, gripper)
    • Basic / Transponder firmware ของบอร์ดที่ฐาน (servo communication)
    • minirobot / Roboflow โหมดทดสอบที่หน้าจอเล็กของ myCobot รุ่นมีจอ
  4. เลือกเวอร์ชันล่าสุด กด Flash
  5. รอจน progress 100% และข้อความ Success
  6. ปิดเครื่องและเปิดใหม่
⚠️
คำเตือน Brick risk

หาก burn firmware ผิดประเภท (เช่น burn Atom ไปที่บอร์ด Basic) บอร์ดอาจไม่บูทกลับมาได้ ตรวจสอบ firmware ที่เลือกให้ตรงกับบอร์ดที่ต้องการเสมอ และห้ามถอด USB ระหว่าง flash

ตรวจสอบเวอร์ชัน firmware

หลัง burn เสร็จ ตรวจจาก Python ได้:

python
from pymycobot import MyCobot280
mc = MyCobot280('/dev/ttyTHS1', 1000000)

print("System version :", mc.get_system_version())
print("Basic version  :", mc.get_basic_version())
# ควรได้เวอร์ชันใหม่ตามที่ flash
💡
คำแนะนำ

myStudio มีฟีเจอร์อื่นที่มีประโยชน์: Calibration (set joint zero), Drag Teaching (สอนตำแหน่ง), Log Viewer (ดู error log) สำรวจดูได้

12.9 การสำรองข้อมูลก่อนเบิร์น

ก่อนเบิร์น Image ใหม่ ควรสำรองข้อมูลที่สำคัญต่อไปนี้:

terminal บน Jetson
# คัดลอกไฟล์ AIKit ทั้งหมด (โค้ดที่แก้ + calibration)
cp -r ~/AIKit_280_JN /media/er/USB_BACKUP/

# สำรอง config + datasets ของ YOLOv8
cp ~/AIKit_280_JN/config/calibration.npz /media/er/USB_BACKUP/
cp ~/AIKit_280_JN/models/*.pt /media/er/USB_BACKUP/

# สำรอง crontab ถ้าตั้ง schedule ไว้
crontab -l > /media/er/USB_BACKUP/crontab_backup.txt

# Export รายการ pip packages
pip3 freeze > /media/er/USB_BACKUP/pip_packages.txt
💡
เคล็ดลับ

นอกจากสำรองไฟล์ที่สำคัญ ลองพิจารณาทำ Full Image Backup ของ TF Card เดิมไว้ก่อน (ใช้ Win32DiskImager โหมด Read แทน Write) จะได้ย้อนกลับได้ถ้า image ใหม่มีปัญหา