บทเรียน 1.2 — รู้จักบอร์ดและอีมูเลเตอร์

เปิด BENTO IDE รันโปรแกรมแรกใน BENTO Emulator โดยไม่ต้องมีบอร์ด

โมดูล 1 — รู้จักระบบสมองกลฝังตัวและเขียนโปรแกรมแรก

หลักสูตร Explorer: เปิดโลกระบบสมองกลฝังตัว · ต่อจากบทเรียน 1.1

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

เป้าหมาย

  1. เปิด BENTO IDE แล้วรันไฟล์ตัวอย่างใน BENTO Emulator จนเห็นชื่อบอร์ดขึ้นบนจอจำลอง
  2. บอกความต่างระหว่าง Eva Kit กับ TESAIoT Dev Kit ได้อย่างน้อย 2 ข้อ
  3. อธิบายได้ว่าอะไรที่อีมูเลเตอร์ตอบได้ และอะไรที่ต้องพิสูจน์บนบอร์ดจริง
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

ก่อนเริ่ม

  • จากบทที่แล้ว ส่วนไหนของหม้อหุงข้าวดิจิทัลที่ "ตัดสินใจ"
  • ถ้าไม่มีบอร์ดในมือ คุณคิดว่าจะเรียนเขียนโปรแกรมให้บอร์ดได้แค่ไหน

สิ่งที่ต้องมี: คอมพิวเตอร์ที่เปิดเบราว์เซอร์ Chrome หรือ Edge ได้ (บทเรียนนี้ไม่ได้ออกแบบสำหรับมือถือ)

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

ดูของจริงก่อน

ทำตามนี้ก่อน แล้วค่อยมาอ่านคำอธิบาย

  1. เปิด BENTO IDE ที่ https://ide.tesaiot.dev/
  2. IDE เปิดมาที่มุมมอง Blocks ให้กดปุ่ม Python ที่หัวจอ เพื่อสลับเป็นมุมมองโค้ด
  3. คัดลอกโค้ดจาก examples/01_board_knows_itself.py ไปวางในช่องแก้โค้ด
  4. กดปุ่ม BENTO Emulator บนแถบเครื่องมือ แล้วกด ▶ Run ในแผงนั้น
  5. มองที่จอจำลอง คุณควรเห็นชื่อบอร์ดตัวสีฟ้า และบรรทัดบอกว่ามีไฟกี่ดวง ปุ่มกี่ปุ่ม

ถ้าเห็นแล้ว ยินดีด้วย คุณเพิ่งรันโปรแกรมบนไมโครคอนโทรลเลอร์ (จำลอง) เป็นครั้งแรก

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

ภาพจอจาก BENTO Emulator

จอของ examples/01_board_knows_itself.py ขณะรันใน BENTO Emulator

01_board_knows_itself.py

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

แนวคิด — บอร์ดสองรุ่นที่ใช้โค้ดชุดเดียวกัน

หลักสูตรใน TESA Open Knowledge ใช้บอร์ดที่มีชิป PSoC™ Edge E84 ของ Infineon อยู่สองรุ่น

Eva Kit TESAIoT Dev Kit
หลอด LED ที่ Python สั่งได้ 3 ดวง 5 ดวง
เซนเซอร์เพิ่มเติม — อุณหภูมิ ความชื้น ความกดอากาศ เรดาร์
จอ สัมผัส 800×480 จุด สัมผัส 800×480 จุด

ตัวอย่างในบทนี้ไม่ได้จำว่าบอร์ดมีไฟกี่ดวง มันถาม gpio.board_info() ซึ่งคืนข้อมูลก้อนหนึ่งที่มีชื่อบอร์ด จำนวนไฟ และรายชื่อไฟ — โค้ดชุดเดียวจึงรันได้บนทั้งสองบอร์ด และในอีมูเลเตอร์ด้วย

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

แนวคิด — MicroPython

โปรแกรมที่เราเขียนเป็นภาษา MicroPython — Python ฉบับที่เล็กพอจะรันบนไมโครคอนโทรลเลอร์ได้ ไม่ต้องคอมไพล์ กดรันแล้วเห็นผลเลย

โมดูลของ BENTO ที่ใช้บ่อยในหลักสูตรนี้

  • ui — วาดบนจอ
  • lcd — ลิ้นชัก Console
  • gpio — ไฟและปุ่ม
  • sensors, wifi, mqtt — เซนเซอร์และเครือข่าย
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

แนวคิด — อีมูเลเตอร์ตอบอะไรได้ และอะไรตอบไม่ได้

BENTO Emulator รันโปรแกรม MicroPython ของเราในเบราว์เซอร์ และวาดจอขนาดเท่าจอบอร์ด ปุ่ม HW เปิดแผงฮาร์ดแวร์จำลองที่มีหลอดไฟ ปุ่ม ลูกบิด และแผ่นเอียง

อีมูเลเตอร์ตอบคำถาม "โปรแกรมรันจบไหม มีข้อผิดพลาดไหม หน้าจอหน้าตาแบบไหน" ได้ดีมาก

แต่มันไม่ใช่บอร์ดจริง ค่าเซนเซอร์เป็นค่าจำลอง WiFi เป็นของจำลอง เรื่องจังหวะเวลาหรือข้อจำกัดฮาร์ดแวร์บางอย่างไม่มีทางโผล่ในเบราว์เซอร์

ใช้อีมูเลเตอร์เรียนแนวคิด ใช้บอร์ดจริงพิสูจน์และวัดผล

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

ตัวอย่างสมบูรณ์

examples/01_board_knows_itself.py — ย่อมาจากตัวอย่างของหลักสูตร AIoT in Action

info = gpio.board_info()           # ท่าที่ 1: ถามบอร์ดครั้งเดียว

ui.screen()                         # ท่าที่ 2: ล้างจอ
time.sleep_ms(200)

ui.Label(info["name"], x=24, y=64, color=COL_ACCENT, value=24)   # ท่าที่ 3
ui.poll()                           # ป้ายขึ้นจอทันที

lcd.clear()                         # ท่าที่ 4: รายละเอียดยาว ๆ ลงลิ้นชัก
for i, name in enumerate(info["led_names"]):
    lcd.print("gpio.led(" + str(i) + ") =", name)
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

ฝึกเติม

ท้ายไฟล์ตัวอย่างมีโจทย์ "ตาคุณ" อยู่ ให้เพิ่มลูปพิมพ์รายชื่อปุ่มจาก info["btn_names"] แบบเดียวกับลูปพิมพ์รายชื่อไฟ

ก่อนรัน ลองทำนายว่าอีมูเลเตอร์จะรายงานปุ่มกี่ปุ่ม แล้วรันเทียบ

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

เช็กความเข้าใจ

ตอบคำถามใน quiz.yaml ถูกตั้งแต่ 80% ขึ้นไปถือว่าผ่าน

  1. เรียงขั้นตอนรันโปรแกรมใน BENTO Emulator ให้ถูกลำดับ
  2. หลังสร้าง ui.Label แล้ว ควรเรียกคำสั่งใดเพื่อให้ป้ายขึ้นจอทันที
  3. ข้อใดคือความต่างระหว่าง Eva Kit กับ TESAIoT Dev Kit (เลือกได้มากกว่าหนึ่งข้อ)
  4. คำถามใดที่ BENTO Emulator ตอบได้น่าเชื่อถือที่สุด
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

ไปต่อ

  • ลองกด HW แล้วดูว่าแผงฮาร์ดแวร์จำลองมีอะไรบ้าง บทต่อไปเราจะสั่งหลอดไฟบนแผงนั้น
  • ถ้าอยากรู้ว่าบอร์ดจริงตอบต่างจากอีมูเลเตอร์อย่างไร เปิดไฟล์ต้นฉบับ
    10_board_knows_itself.py
    ที่ถามบอร์ดต่อว่าโมดูล machine มีคำสั่งไหนบ้าง

บทถัดไป: บทเรียน 1.3 — โปรแกรมแรก: เขียนบนจอและเปิดไฟ

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0

แหล่งที่มาและเครดิต

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

ดัดแปลงจาก AIoT in Action — Embedded Systems for AIoT Developer, © 2026 รศ.วิรุฬห์ ศรีบริรักษ์
วิศวกรรมระบบสมองกลฝังตัว มหาวิทยาลัยบูรพา (BUU) · Advance Innovation Centre (AIC) · BENTO & TESAIoT (CC BY 4.0 / MIT)

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจาก AIoT in Action (รศ.วิรุฬห์ ศรีบริรักษ์, BUU) · CC BY-NC 4.0