บทเรียน 1.2 — แล็บ: จับคู่โดเมน MCU กับชั้นของ SDK

แล็บเชิงแนวคิด (ไม่ต้อง flash บอร์ด): กรอกตารางจับคู่โดเมนกับงาน ติดป้ายชั้นซอฟต์แวร์ และตอบโจทย์รวมสองสถานการณ์

หลักสูตร TESA Firmware SDK สำหรับ Edge AI — โมดูล 1 · แล็บ

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

เป้าหมาย

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

  • จับคู่โดเมนฮาร์ดแวร์ (Cortex-M55 / Cortex-M33 / Ethos-U55 NPU) กับประเภทงานได้อย่างสมเหตุสมผล
  • ระบุได้ว่าโค้ดประเภทใดควรอยู่ชั้น HAL/BSP, Driver API, Utility หรือ Application
  • ตรวจความเข้าใจด้วย checklist สั้น ๆ

เกณฑ์ผ่าน: กรอกตารางส่วนที่ 1–2 ครบพร้อมเหตุผล และทำ checklist ถูก/ผิด (ส่วนที่ 4) ได้อย่างน้อย 8 จาก 10 ข้อ

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

ก่อนเริ่ม

Flash / Hello World อยู่ที่ไหน? การติดตั้ง ModusToolbox สร้างโปรเจกต์ และ flash บอร์ดอยู่ใน โมดูล 2 — แล็บนี้ตั้งใจเป็นแผนที่ความคิดก่อนลงมือกับเครื่องมือ

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

ดูของจริงก่อน — โครงสร้างโฟลเดอร์ตัวอย่าง

สมมติโครงสร้างโฟลเดอร์อย่างง่ายของโปรเจกต์เฟิร์มแวร์ (ชื่อสมมติเพื่อการเรียน — ไม่ใช่ path จริงของ SDK):

app/
  main.c                 # product logic, สร้าง task
  gesture_policy.c       # ตัดสินใจเมื่อได้ผล inference
bsp/
  board_init.c           # clock, pin mux, bring-up
drivers/
  gpio_api.c
  i2c_api.c
  uart_api.c
utils/
  ring_buffer.c
  simple_filter.c

โครงสร้างนี้คือโจทย์ของส่วนที่ 2 ในแล็บ

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

ฝึกเติม/แล็บ (1) — จับคู่โดเมนกับงาน (Part 1)

เลือกโดเมนที่เหมาะสมที่สุดสำหรับแต่ละงาน (ตอบได้มากกว่าหนึ่งโดเมนถ้าจำเป็น แต่ต้องเขียนเหตุผลสั้น ๆ)

# งาน ตัวเลือก
1 วนอ่านปุ่มและกระพริบ LED ตามสถานะ UI M55 / M33 / NPU
2 ฟัง wake-word แบบใช้พลังงานต่ำตลอดเวลา M55 / M33 / NPU
3 รันโมเดล gesture recognition บนอุปกรณ์ M55 / M33 / NPU
4 จัดรูปแบบ JSON แล้ว publish MQTT M55 / M33 / NPU
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ฝึกเติม/แล็บ (2) — ติดป้ายชั้น SDK (Part 2)

กรอกตาราง โดยใช้โครงสร้างโฟลเดอร์จากสไลด์ก่อนหน้า — ชั้นที่เลือกได้คือ HAL/BSP, Driver API, Utility หรือ Application

กลุ่มไฟล์ ชั้น เหตุผลสั้น ๆ
bsp/board_init.c
drivers/i2c_api.c
utils/ring_buffer.c
app/gesture_policy.c
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ฝึกเติม/แล็บ (3) — โจทย์รวม 3A: On-Device Gesture

อ่านค่า IMU ผ่าน I²C เป็นช่วงเวลาคงที่ → เก็บหน้าต่างตัวอย่างสั้น ๆ → ส่งเข้าโมเดลบน Ethos-U55 → ถ้าเป็นท่าทางที่สนใจให้เปิด LED และเตรียมข้อความไปคลาวด์

ตอบเป็นข้อ ๆ (ไม่ต้องเขียนโค้ด):

  1. ชั้นใดรับผิดชอบการคุย I²C กับชิปเซ็นเซอร์
  2. ชั้นใดเหมาะกับบัฟเฟอร์หน้าต่างตัวอย่าง
  3. โดเมน/บล็อกฮาร์ดแวร์ใดเร่ง inference ขั้นสูง
  4. ชั้นใดตัดสินใจว่า "ท่านี้สำคัญพอจะเปิด LED"
  5. เหตุใดการ publish MQTT จึงยังไม่ใช่หน้าที่ของ NPU
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ฝึกเติม/แล็บ (4) — โจทย์รวม 3B: Always-On Then Wake

ระบบรอจับกิจกรรมเสียงบนโดเมนพลังงานต่ำตลอดคืน เมื่อมีเหตุการณ์จึงปลุกโดเมนสมรรถนะสูงเพื่อรันโมเดลหนักและอัปเดตจอ

ตอบ:

  1. คอร์/ตัวเร่งใดเหมาะกับช่วง "รอฟังตลอดคืน"
  2. คอร์/ตัวเร่งใดเหมาะกับช่วง "inference หนักหลังถูกปลุก"
  3. เพราะเหตุใดจึงไม่ควรให้ Ethos-U55 ทำงานเต็มที่ตลอด 24 ชั่วโมงถ้าผลิตภัณฑ์ใช้แบตเตอรี่
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

เช็กความเข้าใจ — checklist ถูก/ผิด (Part 4)

ตอบ ถูก หรือ ผิด (เกณฑ์แนะนำ: ได้อย่างน้อย 8/10 ก่อนไป โมดูล 2)

  1. TESA Firmware SDK คือชื่อของโปรแกรม IDE แทน ModusToolbox
  2. HAL/BSP ช่วยให้นักพัฒนาไม่ต้องตั้งค่า register พื้นฐานของบอร์ดด้วยตัวเองทุกครั้ง
  3. Driver API เป็นชั้นหลักสำหรับควบคุม GPIO, UART, I2C, SPI, PWM, ADC ในแนวทางของหลักสูตร
  4. Utility modules ใช้แทน Driver เมื่อต้องการพูดกับฮาร์ดแวร์โดยตรง
  5. Cortex-M55 และ Ethos-U55 มีบทบาทเดียวกันในทุกงาน
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

เช็กความเข้าใจ — checklist ถูก/ผิด (ต่อ)

  1. Edge AI หมายถึงการส่งข้อมูลดิบทั้งหมดขึ้นคลาวด์เสมอ
  2. การเลือกโดเมนประมวลผลมีผลต่อพลังงานและความหน่วง (latency)
  3. โมดูล 1 ต้องการให้ผู้เรียน flash เฟิร์มแวร์ Hello World ให้สำเร็จ
  4. ความปลอดภัยระดับชิป (เช่น Secure Boot) เป็นส่วนหนึ่งของสถาปัตยกรรม ไม่ใช่หัวข้อแยกจาก MCU
  5. บทถัดไป (โมดูล 2) จะลงมือติดตั้งเครื่องมือและสร้างโปรเจกต์จริง
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ไปต่อ

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

  • [ ] กรอกตารางส่วนที่ 1 ครบ พร้อมเหตุผล
  • [ ] กรอกตารางส่วนที่ 2 ครบ
  • [ ] ตอบส่วนที่ 3A และ 3B ครบ
  • [ ] ทำ checklist ส่วนที่ 4 ได้อย่างน้อย 8/10
  • [ ] อธิบายได้แล้วว่า SDK ต่างจาก IDE อย่างไร และ multi-domain ต่างจากคอร์เดียวอย่างไร

พร้อมแล้ว ไปต่อ โมดูล 2 — ModusToolbox™ และ VS Code สำหรับพัฒนาเฟิร์มแวร์

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

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

แหล่งที่มา

"บทเรียน 1.2 — แล็บ: จับคู่โดเมน MCU กับชั้นของ SDK" จาก 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 — C1 (commit 287c218) ภายใต้สัญญาอนุญาต CC BY 4.0

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

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