การกู้คืนระบบ (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 | ซื้อก่อน 9 ต.ค. 2024 | V20250326_20.04JN_aarch64.zip |
| Ubuntu 20.04 | ซื้อหลัง 9 ต.ค. 2024 | V20241108_20.04JN_aarch64.tar.gz |
Bootloader เปลี่ยนเมื่อ 9 ตุลาคม 2024 และชื่อไฟล์ทำให้สับสนมาก:
ไฟล์ V20250326 (มี.ค. 2025) เป็นของเครื่องเก่า (ซื้อก่อน 9 ต.ค. 2024),
ส่วนไฟล์ V20241108 (พ.ย. 2024) เป็นของเครื่องใหม่ (ซื้อหลัง 9 ต.ค. 2024)
เลขในชื่อไฟล์ที่ "ใหม่กว่า" ไม่ได้แปลว่าตรงกับเครื่องคุณ — เลือกผิดเครื่องจะบูทไม่ขึ้น เพราะ bootloader คนละตัว
ลิงก์ตายหรือหาเวอร์ชันไม่เจอ ดูจากหน้าทางการ (มี checksum กำกับ): elephantrobotics.com/en/downloads
12.4 ขั้นตอนถอด TF Card (Hardware)
TF Card อยู่ภายในฐานหุ่นยนต์ ต้องแกะฐานก่อน:
ขั้นตอนถอดฐาน/ปลดสายเซอร์โว/ถอด Main Controller เป็นงานกับของแพงและเสี่ยงพัง แนะนำเปิดคู่มือทางการที่มีรูปจริงทีละขั้นดูควบคู่กับสเตปด้านล่าง: คู่มือถอด 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
ไฟล์ image เสียระหว่างดาวน์โหลดได้ (เบิร์นแล้วบูทไม่ขึ้น แล้วแยกไม่ออกว่าพังที่ไฟล์หรือฮาร์ดแวร์)
เทียบค่า sha256 กับที่หน้าดาวน์โหลดทางการก่อนเบิร์นทุกครั้ง:
# Linux / macOS
sha256sum myCobot_280_*.zip
# Windows (PowerShell)
Get-FileHash myCobot_280_*.zip -Algorithm SHA256
# เทียบค่าที่ได้กับที่ระบุในหน้า downloads ทางการ — ตรงกัน = ไฟล์สมบูรณ์ พร้อมเบิร์น
วิธีที่ 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 เก่า — แต่ละฟีเจอร์ต้องการเวอร์ชันต่างกัน (เช่น MoveIt ≥ 6.5 ดู บท 10, joint limit check ≥ 7.3) แนะนำ flash เวอร์ชันล่าสุดไปเลย จะครอบคลุมทุกฟีเจอร์
- หลังเบิร์น Image ใหม่ แล้วบอร์ดต่าง ๆ ไม่ตอบสนอง
- เปลี่ยน
set_color(),set_pin_mode()ไม่ทำงาน - ต้องการ Calibrate joint zero แบบ factory reset
- อัปเกรดเป็นโปรโตคอลใหม่ที่ pymycobot รุ่นล่าสุดต้องการ
ดาวน์โหลด & ติดตั้ง
- เข้า elephantrobotics.com/en/downloads
- ดาวน์โหลด myStudio เวอร์ชันล่าสุด (รองรับ 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 ใหม่มีปัญหา