ปัญหาที่พบบ่อยและวิธีแก้ — ลองแก้เองก่อน แล้วค่อยเรียก TA เมื่อจำเป็น
ลองตามลำดับ:
- ถอด USB-C แล้วเสียบใหม่
- ลองใช้ USB cable เส้นอื่น (cable เสียได้ง่าย!)
- เช็ค power adapter — ต้อง 5V/3A
- ลองเสียบเข้า USB port อื่นของ laptop
- ถ้ายังไม่ได้ → เปลี่ยนบอร์ดสำรอง
[ ] เช็คว่า Qwiic cable เสียบสนิททั้ง 2 ฝั่ง
[ ] เช็คว่าเสียบใน Qwiic port ของ UNO Q ไม่ใช่ port อื่น
[ ] ลองรัน sample sketch ของ Modulino library
[ ] ถ้าใช้หลาย module → เสียบทีละตัวเช็คว่าตัวไหนเสีย
# SSH เข้า UNO Q แล้วเช็ค
ls /dev/video*
# ถ้าไม่มี /dev/video0 → camera ไม่ถูกตรวจพบ
# เช็ค USB devices
lsusbสาเหตุที่พบบ่อย:
- USB Hub ไม่จ่ายไฟพอ → ใช้ powered hub
- Camera ต้องใช้ UVC standard
- ลอง reboot UNO Q
# เช็คว่า mic ถูกตรวจพบ
arecord -l
# ทดสอบ record
arecord -d 5 test.wav# บน UNO Q terminal
edge-impulse-linux
# ถ้า error → ลอง install ใหม่
sudo npm install edge-impulse-linux -g --unsafe-permChecklist:
- UNO Q connect Wi-Fi ได้
- Login Edge Impulse account
- เลือก project ถูก
- ตรวจ Wi-Fi signal
- ลด batch size (อัพทีละน้อย)
- เช็ค disk space ของ Edge Impulse free tier
Common fix:
- Training processor ต้องเลือก GPU ไม่ใช่ CPU
- ลด model size = nano (2.4M)
- ลด epochs ถ้าใช้ free tier เกิน quota
- ลด input data resolution (vision)
Error: model too large for target
→ ลด model size เป็น nano หรือ micro
Error: incompatible architecture
→ เช็ค deployment target = Arduino UNO Q (ไม่ใช่ UNO R4)
- Vision: ลด input resolution (96x96 พอแล้ว)
- Audio: ลด sample rate (16kHz พอ)
- Motion: เพิ่ม window size, ลด frequency
Diagnose:
- ดู confusion matrix → class ไหนสับสน?
- ดู data balance → แต่ละ class จำนวนใกล้กันไหม?
- ทดสอบบน data ที่ไม่ได้ train → overfit หรือเปล่า?
Common fixes:
- เก็บข้อมูลเพิ่มใน class ที่ accuracy ต่ำ
- เพิ่ม variation (แสง/มุม/สภาพแวดล้อม)
- แก้ class boundary ถ้าซ้อนกัน
= Distribution shift — data จริงต่างจาก data train
แก้:
- เก็บข้อมูล ในสภาพแวดล้อมจริงที่จะใช้
- เพิ่ม augmentation (Edge Impulse มีให้)
- เก็บข้อมูล "noise/background" เป็นอีก class
error: failed to push some refs
→ ทีมอื่นเพิ่ง push มา ทำตามนี้:
git pull --rebase
git push# แก้ commit ล่าสุดที่ยังไม่ push
git commit --amend -m "new message"
# ถ้า push ไปแล้ว
git commit --amend -m "new message"
git push --force-with-lease
# ⚠️ ระวัง ทับงานเพื่อน!git pull
# เห็น CONFLICT (content): ...
# เปิดไฟล์ที่ conflict
# ลบ marker <<<<<<<, =======, >>>>>>>
# เก็บ version ที่ต้องการ
git add <conflicted-file>
git commit
git push# ลบจาก tracking (ไฟล์ยังอยู่)
git rm --cached big-data.zip
# เพิ่มใน .gitignore
echo "*.zip" >> .gitignore
echo "dataset/raw/" >> .gitignore
git commit -m "fix: ลบไฟล์ใหญ่ออก, ใช้ Edge Impulse host แทน"
git pushBest practice: Dataset เก็บที่ Edge Impulse, repo เก็บแค่ link
Plan B ที่ทีมทำเองได้ทันที:
- ลด class ลงเป็น 2 (จาก 3)
- ลด samples ต่อ class เป็น 30
- ใช้ backup dataset ของ track เป็น base + เก็บเพิ่ม 10-20 samples ของตัวเอง
- เก็บ variation ที่สำคัญก่อน แล้วค่อยกลับมาเก็บเพิ่มถ้ายังมีเวลา
- หยุด 3 นาที แล้วให้แต่ละคนพูดทีละรอบว่าอยากทำอะไรและเพราะอะไร
- กลับไปดูโจทย์กับเวลาที่เหลือจริง ไม่ตัดสินจากความอยากอย่างเดียว
- แบ่งบทบาท 3H ให้ชัดอีกครั้ง: ใครตัดสินใจเรื่อง code, data, docs
- ถ้ายังคุยไม่ลงตัวค่อยเรียก TA มาช่วยตัดสินใจบนข้อจำกัดของเวลา
- แยกงานที่เหลือออกเป็นชิ้นเล็ก ๆ ทันที เช่น README, W3, W4, หรือการทดสอบ 10 cases
- คนที่ยังไม่ได้แตะงาน ให้รับผิดชอบ output ที่ชัดเจนอย่างน้อย 1 ชิ้น
- ก่อนช่วงโชว์ผล ให้ทุกคนอธิบายบทบาทตัวเองได้ว่ารับผิดชอบอะไร
- Show screen Edge Impulse Studio แทน
- อธิบาย V1→V2 improvement แทนการรันสด
- โฟกัสการอธิบายสิ่งที่ลอง, สิ่งที่พลาด, และสิ่งที่เรียนรู้
✅ เรียก TA เมื่อ:
- ลองในคู่มือนี้แล้ว 5+ นาที ยังไม่ได้
- Hardware เสียจริง (UNO Q ไม่ติด, Modulino พัง)
- Edge Impulse account มีปัญหา
- ติด conflict ใน Git แก้ไม่หาย
❌ อย่าเพิ่งเรียก TA ถ้า:
- ยังไม่ได้อ่านคู่มือ
- ยังไม่ได้ลองด้วยตัวเอง
- เป็นเรื่อง design choice (ทีมตัดสินใจเอง)
เคล็ดลับ: ถ้าเปิด GitHub Issue ใน repo ทีมแล้วเขียนปัญหา + สิ่งที่ลองมาแล้ว TA จะช่วยได้เร็วขึ้นมาก
ถ้า TA ไม่ว่าง:
- ดูใน GitHub Discussions ของ workshop repo
- ถามทีมข้างๆ
- ลอง Edge Impulse forum: https://forum.edgeimpulse.com/