บทเรียน 3.2 — แล็บ: สร้าง Virtual Device และ event script

สร้างโมเดลอุปกรณ์ กำหนด behavior เขียนสคริปต์เหตุการณ์ที่รันซ้ำได้ และ (แนะนำ) ฝึก Blender สั้น ๆ แล้วส่งออก GLB

พัฒนาเฟิร์มแวร์ร่วมกับ TESA Digital Twin บน VS Code — โมดูล 3 · แล็บ

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

เป้าหมาย

เมื่อทำครบ คุณจะ

  1. สร้างโมเดลอุปกรณ์ (device-model.json หรือเทียบเท่า) ที่มีเซ็นเซอร์ ≥ 2 ชนิดและ behavior ≥ 1 เส้นทาง
  2. รัน event script ซ้ำและเก็บหลักฐานผลบน visualization
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ก่อนเริ่ม

  • [ ] Lab โมดูล 2 ผ่าน (เปิด Bitstream Studio ได้)
  • [ ] เลือกเส้นทาง: Simulator และ/หรือบอร์ดที่สตรีมได้
  • [ ] มีโฟลเดอร์ lab-notes/ สำหรับไฟล์โมเดล + หลักฐาน
  • [ ] (Lab E) ติดตั้ง Blender ถ้าจะทำส่วน 3D

เวลาที่แนะนำ: ~3–3.5 ชม. (Virtual Device) + ~1–1.5 ชม. (Lab E Blender ถ้าทำ)

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ดูของจริงก่อน — เกณฑ์ผ่านของแต่ละบล็อก

บล็อก เกณฑ์ผ่าน
Lab A — Create the model (required) ไฟล์โมเดลอ่านรู้เรื่อง และโฮสต์แสดงค่าที่เกี่ยวข้องอย่างน้อยหนึ่งช่อง
Lab B — Behavior (required) เพื่อนในทีมกระตุ้นอินพุตแล้วชี้ผลบนจอได้โดยไม่เดา
Lab C — Event script (required) รันสคริปต์ซ้ำแล้วได้ลำดับผลเดียวกันโดยประมาณ
Lab E — Blender (แนะนำ) มีไฟล์ .glb และหลักฐานว่าเปิดในโฮสต์ได้
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ฝึกเติม/แล็บ (1) — Lab A: Create the model

  1. คัดลอก template เป็นไฟล์ของคุณ เช่น lab-notes/device-model.json
  2. ตั้ง deviceId / displayName ให้ทีมจำได้
  3. เปิดใช้เซ็นเซอร์อย่างน้อย 2 ชนิดจากชุด: switch, temperature/pressure, IMU
  4. กำหนด default และช่วง min/max ให้สมเหตุสมผล
  5. ระบุ actuator อย่างน้อย 1 ตัว (LED / flag / log sink)

บนโฮสต์: เปิด Simulator หรือบอร์ด แล้วเลือก scene ที่สอดคล้องโมเดล

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ฝึกเติม/แล็บ (2) — Lab B: Behavior

กำหนดและสาธิตอย่างน้อยหนึ่งกฎ เช่น:

  • คำสั่ง/ปุ่ม → LED หรือสถานะบน UI
  • อุณหภูมิเกินเกณฑ์ → event / ข้อความ log / การเปลี่ยนโหมด

เขียนเป็นประโยค WHEN … THEN … ใน checklist

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ฝึกเติม/แล็บ (3) — Lab C: Event script

เขียนไทม์ไลน์อย่างน้อย 4 จังหวะ แล้วรันจริง:

  1. เริ่มจากค่า default / Lab Quiet
  2. กระตุ้นสเกลาร์หรือสวิตช์ตามเวลา
  3. กระตุ้น IMU หรือสลับไป Motion (ถ้าโมเดลมี IMU)
  4. บันทึกผลที่เห็นเป็นสกรีนช็อตก่อน/หลังของคุณเอง (หรือคลิปสั้น)

อนุญาตให้รันแบบนาฬิกาจับเวลา + มือ — แต่ต้องทำซ้ำได้ในรอบที่ 2

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ฝึกเติม/แล็บ (4) — Lab D: Optional polish

  • เพิ่ม behavior ที่สอง (threshold + command)
  • เปรียบเทียบ scene Lab Quiet vs Motion บนเซ็นเซอร์ชุดเดียวกัน
  • เปิด Hackathon web-app/ เป็นจอ Visualization ชั้นนอก
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ฝึกเติม/แล็บ (5) — Lab E: Blender for Twin (แนะนำ)

เลือกอย่างน้อย หนึ่ง track ให้จบ:

  • E1 Modeling — สร้างชิ้นส่วนง่าย (เคสกล่อง/บอร์ดแบน) จาก mesh primitive แล้ว Extrude/Bevel/Mirror ตั้ง origin + Apply Scale
  • E2 Texturing — Unwrap UV ใส่ Principled BSDF + Base Color
  • E3 Animation — Keyframe หมุนหรือเปิดฝา 2–3 วินาที
  • E4 Export & view — Export → glTF 2.0 → .glb แล้วโหลดใน Bitstream Studio บันทึกสกรีนช็อตของคุณเองพร้อมชื่อไฟล์
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

เช็กความเข้าใจ — ไล่อาการก่อนขอความช่วยเหลือ

ถ้าติดปัญหา ให้ตอบตัวเองก่อนว่าน่าจะตรงแถวไหน:

  1. โมเดลเขียนแล้วแต่จอไม่เปลี่ยน — ควรตรวจอะไรก่อน
  2. IMU ไม่ขยับ — สาเหตุที่พบบ่อยคืออะไร
  3. ทำซ้ำสคริปต์ไม่ได้ — ควรแก้อย่างไร
  4. GLB ไม่มี texture หรือ animation — มักลืมทำอะไร
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ไปต่อ

ก่อนส่งงาน ตรวจกับตัวเองว่ามีครบ:

  • [ ] device-model.json (หรือเทียบเท่า)
  • [ ] Lab A–C ผ่าน
  • [ ] device-model-checklist.md กรอกครบ
  • [ ] หลักฐานสคริปต์รัน (รูป/คลิปของคุณเอง)
  • [ ] (แนะนำ) Lab D และ Lab E + .glb

พร้อมแล้ว ไปต่อ โมดูล 4 — Co-simulation ระหว่างเฟิร์มแวร์กับ Twin

บทเรียนโมดูล 4 →

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

แหล่งที่มา

"บทเรียน 3.2 — แล็บ: สร้าง Virtual Device และ event script" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย
(Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program
สัญญาอนุญาต CC BY-NC 4.0

เนื้อหาต้นฉบับโดย ผศ.ดร.สันติ นุราช ภาควิชาวิศวกรรมระบบควบคุมและเครื่องมือวัด คณะวิศวกรรมศาสตร์
มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี (KMUTT) (https://github.com/drsanti) ภายใต้การสนับสนุนของสมาคมสมองกลฝังตัวไทย (TESA)
นำเข้าจาก drsanti/TESAIoT-Courses — C2 (commit 287c218) ภายใต้สัญญาอนุญาต CC BY 4.0

ไม่มีภาพจากบุคคลที่สามในสไลด์ชุดนี้

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0