การกู้คืนระบบ (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 อยู่ภายในฐานหุ่นยนต์ ต้องแกะฐานก่อน:
ปิดเครื่องและถอดอะแดปเตอร์ออกทั้งหมด สวมสายข้อมือกันไฟฟ้าสถิต ถ้าไม่มี ให้แตะวัตถุโลหะที่ต่อสายดิน (เช่น ตัวถังคอมพ์) ก่อนเริ่มจับบอร์ด
- หาตำแหน่งสล็อต TF Card ในฐานหุ่นยนต์
- ขัน สกรูหน้า 2 ตัว ออก (ใช้ไขควง 1.5 Phillips)
- ขัน สกรูใต้ฐาน 6 ตัว ขนาด 2×8 ออก
- ปลด สายเซอร์โว 3-pin (สีดำ-แดง-ขาว) ออกอย่างนุ่มนวล
- ปลดสายพัดลม, สายไฟ LED แสดงสถานะ และสายไฟหลักออก
- ถอดบอร์ด PCBA สีเขียวออก พร้อมกับสกรูยึด 3 ตัว
- ถอด คอลัมน์หกเหลี่ยม 3 อัน ออก
- นำบอร์ด Main Controller ออกอย่างระมัดระวัง (ระวังไฟฟ้าสถิต)
- ดึง TF Card ออก หรือใส่อันใหม่
- ประกอบกลับตามลำดับย้อนกลับ: Main board คอลัมน์หกเหลี่ยม PCBA สาย ฝา
ถ่ายภาพแต่ละขั้นตอนก่อนถอด จะช่วยให้ประกอบกลับถูกตำแหน่งสายแต่ละเส้น
12.5 ขั้นตอนการเบิร์น Image
วิธีที่ 1 Win32DiskImager (Windows)
- ดาวน์โหลด Image (.zip / .tar.gz) จากตารางในหัวข้อ 12.3
- แตกไฟล์ให้ได้ไฟล์
.img - ติดตั้ง Win32DiskImager และเปิดโปรแกรม
- เสียบ TF Card เข้า Card Reader แล้วเสียบเข้าคอมพิวเตอร์
- เลือก Drive ของ TF Card (ระวังเลือกผิด!)
- กดปุ่ม ... เลือกไฟล์
.img - กด Write ยืนยัน Yes
- รอจนเสร็จ (15-25 นาที) แล้วกด Exit
- ถอด TF Card ออกอย่างปลอดภัย (Eject)
วิธีที่ 2 balenaEtcher (ทุก OS)
- ดาวน์โหลดและติดตั้ง balenaEtcher
- เปิดโปรแกรม Flash from file เลือกไฟล์ Image
- Select target เลือก TF Card
- กด Flash! ใส่ admin password ถ้าระบบขอ
- รอจนแสดงคำว่า Flash Complete!
เลือก Drive ผิดอาจทำให้ ฮาร์ดดิสก์หลักของคอมพิวเตอร์เสียได้ ตรวจสอบขนาด Drive (เช่น TF Card 32 GB) ก่อนกด Write/Flash เสมอ
12.6 บูทเครื่องครั้งแรกหลังเบิร์น
- ใส่ TF Card กลับเข้า Jetson Nano และประกอบฐานให้เรียบร้อย
- ต่อจอ HDMI, คีย์บอร์ด, เมาส์ ตามปกติ
- เสียบ Adapter 12V/5A
- กดปุ่ม Power ที่ฐาน บูทครั้งแรกอาจใช้เวลา 2-5 นาที เพราะระบบต้องขยายพาร์ทิชัน
- เข้าระบบด้วย
er/Elephant - ตรวจสอบเวอร์ชัน:
cat /etc/os-release - ตรวจสอบ pymycobot:
pip3 list | grep pymycobot - เริ่มทดสอบตาม บทที่ 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 รุ่นล่าสุดต้องการ
ดาวน์โหลด & ติดตั้ง
- เข้า elephantrobotics.com/en/downloads
- ดาวน์โหลด myStudio (เวอร์ชันล่าสุด V3.5.8 รองรับ Windows / macOS / Linux)
- ติดตั้งตามขั้นตอนของ OS
รุ่นที่รองรับ
myStudio ใช้ได้กับ myCobot ทุกรุ่นในซีรีส์ 280 รวมถึงรุ่นอื่นๆ เลือก machine ให้ตรงกับเครื่องของคุณ:
- 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
myStudio ติดตั้งมาแล้ว เปิดจาก Desktop ได้ทันที (ไม่ต้องดาวน์โหลด) version ที่ติดตั้งมาคือ v3.6.0 หรือใหม่กว่า
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 ก่อน เพราะใช้พอร์ตเดียวกันไม่ได้พร้อมกัน
- เปิด myStudio เลือก machine: myCobot 280 เลือกพอร์ต Serial ที่เชื่อม
- คลิกแท็บ Flash
- เลือก firmware ที่จะ burn:
- Atom firmware ของบอร์ดปลายแขน (LED, IO, gripper)
- Basic / Transponder firmware ของบอร์ดที่ฐาน (servo communication)
- minirobot / Roboflow โหมดทดสอบที่หน้าจอเล็กของ myCobot รุ่นมีจอ
- เลือกเวอร์ชันล่าสุด กด Flash
- รอจน progress 100% และข้อความ Success
- ปิดเครื่องและเปิดใหม่
หาก burn firmware ผิดประเภท (เช่น burn Atom ไปที่บอร์ด Basic) บอร์ดอาจไม่บูทกลับมาได้ ตรวจสอบ firmware ที่เลือกให้ตรงกับบอร์ดที่ต้องการเสมอ และห้ามถอด USB ระหว่าง flash
ตรวจสอบเวอร์ชัน firmware
หลัง burn เสร็จ ตรวจจาก Python ได้:
pythonfrom 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 ใหม่มีปัญหา