ข้ามไปยังเนื้อหา

แล็บ: I/O ครบวงจรแบบ co-simulation

Course 2 · Module 4
Type: Hands-on (bring-up + input path + output path + latency)
Suggested time: ~2.5–3 ชั่วโมง

Read first: Lesson · Checklist · ← Table of Contents · ← M03 · M05 →

เอกสาร ใช้เมื่อ
M02 lab Studio / Simulator / COM
M03 lab event script / Virtual Device
Hackathon HEX · web-app/ evidence
Course 1 M04 task timing

  • รันเฟิร์มแวร์คู่ Twin/โฮสต์ได้เสถียร
  • พิสูจน์ input: กระตุ้น → เฟิร์มแวร์รับรู้
  • พิสูจน์ output: เฟิร์มแวร์สั่ง → โฮสต์/ Twin สะท้อน
  • จด latency คร่าว ๆ อย่างน้อย 1 จุด
  • กรอก cosim-checklist.md

  • M02 เซสชันแรกผ่าน
  • M03 มี device model + event script (หรือ timeline)
  • เลือก path: Simulator และ/หรือ Board + HEX
  • โฟลเดอร์ lab-notes/ สำหรับหลักฐาน

  1. เปิด Bitstream Studio
  2. เลือก Simulator หรือ Bitstream (อย่างใดอย่างหนึ่ง)
  3. Link จนมีสตรีม/heartbeat
  4. รอ ≥ 30 วินาทีโดยไม่หลุด
  5. แคปหน้าจอสถานะ Link + กราฟ/ค่า

Pass when: ทั้งโฮสต์และแหล่งเฟิร์มแวร์ (sim หรือบอร์ด) มีสัญญาณชีวิตชัด


  1. ใช้สคริปต์/ไทม์ไลน์จาก M03 หรือกระตุ้นด้วย scene/UI/ปุ่ม
  2. ให้เฟิร์มแวร์แสดงว่าอ่านค่าได้ (UART log, การเปลี่ยนโหมด, หรือค่าที่ echo บนโฮสต์อย่างชัดว่ามาจาก logic อ่าน)
  3. บันทึก: สิ่งที่กระตุ้น → สิ่งที่เฟิร์มแวร์รายงาน

Pass when: คนในทีมอธิบายลูกศร Twin/stimulus → firmware ได้พร้อมหลักฐาน


  1. ให้เฟิร์มแวร์เปลี่ยนเอาต์พุตอย่างน้อยหนึ่งอย่าง (LED, flag, publish, log marker)
  2. ยืนยันว่า Bitstream Studio (หรือ web-app/) สะท้อนผล
  3. เทียบกับ behavior WHEN/THEN จาก M03

Pass when: มีหลักฐานคู่ (firmware side + host side)


  1. เลือกจุดวัดหนึ่งจุด (เช่น stimulus → first log line)
  2. ทำ 3 รอบ จดค่าโดยประมาณ
  3. เดาสาเหตุหน่วง 1 ข้อ (task period / scene rate / UI)
  4. กรอกใน checklist

Pass when: มีตัวเลขช่วงและสมมติฐานแหล่งหน่วง — ไม่ต้องสวยที่สุด


  • เปรียบเทียบ Path A (Simulator) กับ Path B (Board) บนสคริปต์เดียวกัน
  • ถ้ามี GLB จาก M03 — โหลดประกอบฉากแล้วจดว่าภาพช่วยสาธิตอะไร (ไม่แทน sensor truth)

อ่าน walkthrough ใน README §4 ก่อน

  1. Serve โฟลเดอร์ Hackathon web-app/ แล้วเปิด ex05_bmi270_orientation.html
  2. ยืนยัน badge เป็น connected และมี route:
  3. ใน sensor settings เปิด BMI270 Euler และ/หรือ Quaternion ใน publish mask
  4. เอียงบอร์ด หรือสลับ scene Motion — horizon + ° ต้องขยับ
  5. แคปหน้าจอ คู่กับ แผง BMI270 ใน Studio; จด source: และ mask 0x…

Pass when: อธิบายได้ว่า ex05 พิสูจน์ output path ชั้นนอก และถ้าค้างที่ waiting for orientation แปลว่า mask ไม่ครบ (ไม่ใช่แค่ “หน้าเว็บเสีย”)


  • Lab A–C ผ่าน
  • cosim-checklist.md กรอกครบ
  • หลักฐาน input + output (สกรีนช็อต/คลิป/log)
  • (แนะนำ) Lab D latency
  • (แนะนำ) Lab E / E1 (ex05)

อาการ แนวทาง
Link ไม่ขึ้น Shutdown backends · ตรวจพอร์ต · M02
มีกราฟแต่กระตุ้นแล้วเงียบ ตรวจ scene/cfg · สคริปต์ M03 · log เฟิร์มแวร์
Log ถูกแต่ UI ไม่ขยับ เปิดผิดแผง · consumer ไม่ได้ connect
ค่า latency สุ่มมาก ใช้ timestamp ใน log · อย่าจับเวลาด้วยตาอย่างเดียว
สลับ Simulator/Bitstream แล้วงง เคลียร์ข้อมูล · Link ใหม่ทีละโหมด
ex05 ค้าง waiting for orientation เปิด Euler/Quaternion ใน BMI270 mask — ไม่ใช่แค่ accel/gyro
ex05 disconnected Serve ถูกโฟลเดอร์ web-app/ · Studio/bridge เปิดอยู่

Lesson · Checklist · Table of Contents · M05 →

อ้างอิงบทเรียนนี้

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

"แล็บ: I/O ครบวงจรแบบ co-simulation" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย (Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program สัญญาอนุญาต CC BY-NC 4.0

ข้อความอ้างอิงภาษาอังกฤษ: "Lab: Co-simulation End-to-End I/O" from TESA Open Knowledge by the Thai Embedded Systems Association (TESA), https://github.com/tesaiot/tesa-qualification-program, licensed under CC BY-NC 4.0

ลิงก์บทเรียน: https://tesaiot.github.io/tesa-qualification-program/courses/digital-twin/m04-cosimulation/l02-lab/

บทเรียนนี้ดัดแปลงจากต้นฉบับด้านล่าง เมื่ออ้างอิงให้คงเครดิตต้นฉบับไว้ด้วย
https://github.com/drsanti/TESAIoT-Courses/blob/287c21814ba8c75f693136616dcd270349a15966/C2/M04/lab.md · Original content by Asst. Prof. Dr. Santi Nuratch (ผศ.ดร.สันติ นุราช), KMUTT. Course 2 (C2/) of drsanti/TESAIoT-Courses. TESA funded the work and holds the rights; published here under CC BY-NC 4.0. The upstream repository carries no licence file. Text kept faithful; structure, front matter, quizzes and notes added by TESA Open Knowledge.

วิธีอ้างอิง TESA ฉบับเต็ม

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

เนื้อหาเผยแพร่ภายใต้ CC BY-NC 4.0 นำไปใช้ต่อในงานที่ไม่ใช่เพื่อการค้าได้ โปรดอ้างอิงสมาคมสมองกลฝังตัวไทย (TESA) ทุกครั้ง · วิธีอ้างอิง TESA