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

ทัวร์บอร์ด: เล่นของจริงก่อน

โมดูล 1 — แอปพลิเคชันบนจอที่มีอยู่แล้ว · สไลด์: slides.md · ภาพรวมโมดูล · หน้าหลักสูตร

เล่นเมนูที่มากับบอร์ดให้ครบก่อนเขียนโค้ดบรรทัดแรก แล้วจับคู่ให้ได้ว่าแต่ละเมนูอ่านเซนเซอร์ตัวไหน และหน้าไหนคือที่ที่โค้ดของเราจะไปปรากฏ

เมื่อจบบทเรียนนี้ คุณจะ:

  1. ระบุเซนเซอร์ที่เมนู Home (แผง Sensor Live), Sensor Dashboard และ Smart Watch ใช้ ได้ถูกต้องอย่างน้อยสามเมนู จากการเอียง หมุน แตะ และหมุนลูกบิดบนบอร์ดจริงหรือ Emulator
  2. บอกได้ว่าเมนู Controls, Audio Player และ TESAIoT Connectivity มีเฉพาะบน Eva Kit และเลือกทางแทนบน Dev Kit ได้
  3. อธิบายว่าทำไมต้องเปิดหน้า BENTO Playground ค้างไว้ก่อนส่งโค้ดจาก BENTO IDE

ไม่ต้องเขียนโค้ดในบทเรียนนี้ เตรียมสมุดหรือไฟล์ไว้เป็น บันทึกการเรียน ของตัวเอง (สไลด์จะบอกเป็นระยะว่าควรจดอะไร) ถ้าไม่มีบอร์ด เปิด BENTO Emulator ใน BENTO IDE แล้วเล่นตามได้เกือบทุกข้อ

  • อุปกรณ์: บอร์ด Eva Kit หรือ TESAIoT Dev Kit ที่ลงเฟิร์มแวร์ MicroPython ของ BENTO แล้ว หรือ BENTO Emulator ใน BENTO IDE

เปิดบอร์ดแล้วอยู่ที่หน้า Home ก่อน อย่าเพิ่งกดเข้าเมนูไหน เอียงบอร์ด หมุนบอร์ด แตะแผ่นสัมผัส และหมุนลูกบิด แล้วดูแผง Sensor Live มุมขวาบนของจอ ค่าพวกนี้วิ่งอยู่แล้วทั้งที่ยังไม่มีโค้ดของเราสักบรรทัด เพราะเฟิร์มแวร์อ่านเซนเซอร์ให้ตลอดเวลา

บอร์ดในหลักสูตรนี้มีของครบทุกชิ้นที่ระบบ AIoT จริงต้องมี: เซนเซอร์วัดการเคลื่อนไหว (IMU) เข็มทิศ ปุ่มสัมผัส (CapSense) ลูกบิด จอสัมผัส ไมโครโฟน และวิทยุ WiFi เมนูที่มากับเครื่องคือ “ปลายทาง” ที่เราจะค่อย ๆ สร้างเองตลอดหลักสูตร การเล่นก่อนจึงไม่ใช่การเสียเวลา มันคือการเห็นเป้าก่อนออกเดิน

ทัวร์แบ่งเป็นสามรอบ รอบแรกคือหน้า Home กับแผง Sensor Live รอบที่สองคือสามเมนูที่ต้องเล่นให้ครบ (Controls, Sensor Dashboard, Smart Watch) รอบที่สามคือเมนูที่ต้องรู้ว่ามีอยู่ (Audio Player, Wi-Fi Setting, BENTO Playground, TESAIoT Connectivity) ระหว่างเล่นให้ถามตัวเองทุกครั้งว่า ค่าบนจอมาจากเซนเซอร์ตัวไหน

สองบอร์ดใช้โค้ดชุดเดียวกัน แต่หน้า Home ไม่เหมือนกัน: Dev Kit ไม่มีการ์ด Controls, Audio Player และ TESAIoT Connectivity ทีมที่ถือ Dev Kit จะเห็นไฟจริงติดจากโค้ดของตัวเองในบทเรียน 1.3 แทน

หน้าที่สำคัญที่สุดสำหรับเราคือ BENTO Playground ผลของโค้ดที่ส่งจาก BENTO IDE จะไปโผล่ที่หน้านี้ ถ้าไม่ได้เปิดค้างไว้ก่อนส่งโค้ด จะดูเหมือนว่าส่งแล้วไม่มีอะไรเกิดขึ้น

สไลด์ของบทเรียนนี้อ้างถึงไฟล์ที่อยู่ในบทเรียนอื่นด้วย:

คำถามชุดเดียวกันอยู่ใน quiz.yaml สำหรับระบบที่ตรวจอัตโนมัติ

  1. บนหน้า Home คุณหมุนบอร์ดรอบตัวเองโดยไม่เอียง แถวไหนของแผง Sensor Live ที่ค่าควรเปลี่ยนชัดที่สุด (เลือกหนึ่งข้อ · เป้าหมายข้อ 1)

    • ก) Comp (เข็มทิศ)
    • ข) Touch
    • ค) Pot
    • ง) ไม่มีแถวไหนเปลี่ยน เพราะยังไม่ได้เขียนโค้ด
    เฉลย

    ก — การหมุนรอบตัวเองเปลี่ยนทิศที่บอร์ดหัน เข็มทิศ (Comp) จึงเปลี่ยน ส่วนค่าพวกนี้วิ่งอยู่แล้วโดยไม่ต้องมีโค้ดของเรา เพราะเฟิร์มแวร์อ่านเซนเซอร์ให้ตลอดเวลา

  2. เมนูใดใช้ข้อมูลจากเซนเซอร์วัดการเคลื่อนไหว (IMU) เลือกทุกข้อที่ถูก (เลือกได้หลายข้อ · เป้าหมายข้อ 1)

    • ก) Sensor Dashboard (กราฟที่กระเพื่อมเมื่อเขย่าบอร์ด)
    • ข) Smart Watch (ตัวนับก้าว)
    • ค) แผง Sensor Live แถว IMU บนหน้า Home
    • ง) Wi-Fi Setting
    เฉลย

    ก, ข, ค — กราฟของ Sensor Dashboard, ตัวนับก้าวของ Smart Watch และแถว IMU ของ Sensor Live มาจากเซนเซอร์ความเร่งตัวเดียวกัน ส่วน Wi-Fi Setting ใช้วิทยุ ไม่ใช่เซนเซอร์

  3. ทีมของคุณถือ TESAIoT Dev Kit และหาการ์ด Controls บนหน้า Home ไม่เจอ ข้อใดถูกต้อง (เลือกหนึ่งข้อ · เป้าหมายข้อ 2)

    • ก) บอร์ดเสีย ต้องลงเฟิร์มแวร์ใหม่
    • ข) Dev Kit ไม่มีการ์ดนี้ ให้ดูไฟจริงติดจากโค้ดตัวอย่างในบทเรียน 1.3 แทน
    • ค) ต้องต่อ WiFi ก่อน การ์ดจึงจะขึ้น
    • ง) ต้องเสียบ SD card ก่อน
    เฉลย

    ข — Controls, Audio Player และ TESAIoT Connectivity มีเฉพาะบน Eva Kit สองบอร์ดใช้โค้ดชุดเดียวกัน ทีม Dev Kit จึงเห็นไฟจริงติดจากโค้ดของตัวเองแทน

  4. คุณกด Program to Device ใน BENTO IDE แล้วจอบอร์ดไม่แสดงอะไรเลย สิ่งแรกที่ควรตรวจคืออะไร (เลือกหนึ่งข้อ · เป้าหมายข้อ 3)

    • ก) เปิดหน้า BENTO Playground ค้างไว้บนบอร์ดแล้วหรือยัง
    • ข) เปลี่ยนไปใช้ภาษา C
    • ค) รีเซ็ตบอร์ดกลับค่าโรงงาน
    • ง) ต่อ WiFi ให้บอร์ด
    เฉลย

    ก — ผลของโค้ดที่ส่งจาก IDE ไปโผล่ที่หน้า BENTO Playground ถ้าบอร์ดค้างอยู่หน้าอื่น จะดูเหมือนส่งแล้วไม่มีอะไรเกิดขึ้น

ทัวร์สามรอบ (ราว 30 นาที) ทำบนบอร์ดจริงหรือ Emulator แล้วจดลงบันทึกการเรียน

  • รอบที่ 1: หน้า Home เอียง หมุน แตะ ลากนิ้วบนแถบเลื่อน และหมุนลูกบิด แล้วจดว่าแถวไหนของ Sensor Live เปลี่ยน
  • รอบที่ 2: Controls (Eva Kit) แตะวงกลมแล้วดูหลอด LED จริง · Sensor Dashboard เขย่าแล้วดูกราฟ · Smart Watch ปัดเปลี่ยนหน้า
  • รอบที่ 3: เข้า Audio Player, Wi-Fi Setting, BENTO Playground และ TESAIoT Connectivity (ถ้ามี) เพื่อรู้ว่าอยู่ตรงไหน
  • ทำตารางสามคอลัมน์ในบันทึกการเรียน: เมนู · เซนเซอร์ที่ใช้ · สิ่งที่เห็นบนจอ ให้ครบอย่างน้อยห้าแถว

บทเรียนถัดไป: บทเรียน 1.2 — ข้อความแรกขึ้นจอ: โมดูล lcd กับ ui

  • เมนูไหนที่คุณคิดว่าเอาไปใช้ในงานของตัวเองได้ทันที และจะต้องเพิ่มอะไรอีก
  • แผงหน้าปัดรถยนต์รุ่นเก่ามีลูกบิดจริงทุกชิ้น พอย้ายทุกอย่างขึ้นจอเดียว อะไรหายไปบ้าง

คำถามทบทวน

ลองตอบเองก่อน แล้วค่อยเปิดดูเฉลย

  1. บนหน้า Home คุณหมุนบอร์ดรอบตัวเองโดยไม่เอียง แถวไหนของแผง Sensor Live ที่ค่าควรเปลี่ยนชัดที่สุด (เป้าหมายข้อ 1)

    1. Comp (เข็มทิศ)
    2. Touch
    3. Pot
    4. ไม่มีแถวไหนเปลี่ยน เพราะยังไม่ได้เขียนโค้ด
    ดูเฉลย

    คำตอบ: A. Comp (เข็มทิศ)

    การหมุนรอบตัวเองเปลี่ยนทิศที่บอร์ดหัน เข็มทิศ (Comp) จึงเปลี่ยน ส่วนค่าพวกนี้วิ่งอยู่แล้วโดยไม่ต้องมีโค้ดของเรา เพราะเฟิร์มแวร์อ่านเซนเซอร์ให้ตลอดเวลา

  2. เมนูใดใช้ข้อมูลจากเซนเซอร์วัดการเคลื่อนไหว (IMU) เลือกทุกข้อที่ถูก (เป้าหมายข้อ 1)

    1. Sensor Dashboard (กราฟที่กระเพื่อมเมื่อเขย่าบอร์ด)
    2. Smart Watch (ตัวนับก้าว)
    3. แผง Sensor Live แถว IMU บนหน้า Home
    4. Wi-Fi Setting
    ดูเฉลย

    คำตอบ: A. Sensor Dashboard (กราฟที่กระเพื่อมเมื่อเขย่าบอร์ด) · B. Smart Watch (ตัวนับก้าว) · C. แผง Sensor Live แถว IMU บนหน้า Home

    กราฟของ Sensor Dashboard, ตัวนับก้าวของ Smart Watch และแถว IMU ของ Sensor Live มาจากเซนเซอร์ความเร่งตัวเดียวกัน ส่วน Wi-Fi Setting ใช้วิทยุ ไม่ใช่เซนเซอร์

  3. ทีมของคุณถือ TESAIoT Dev Kit และหาการ์ด Controls บนหน้า Home ไม่เจอ ข้อใดถูกต้อง (เป้าหมายข้อ 2)

    1. บอร์ดเสีย ต้องลงเฟิร์มแวร์ใหม่
    2. Dev Kit ไม่มีการ์ดนี้ ให้ดูไฟจริงติดจากโค้ดตัวอย่างในบทเรียน 1.3 แทน
    3. ต้องต่อ WiFi ก่อน การ์ดจึงจะขึ้น
    4. ต้องเสียบ SD card ก่อน
    ดูเฉลย

    คำตอบ: B. Dev Kit ไม่มีการ์ดนี้ ให้ดูไฟจริงติดจากโค้ดตัวอย่างในบทเรียน 1.3 แทน

    Controls, Audio Player และ TESAIoT Connectivity มีเฉพาะบน Eva Kit สองบอร์ดใช้โค้ดชุดเดียวกัน ทีม Dev Kit จึงเห็นไฟจริงติดจากโค้ดของตัวเองแทน

  4. คุณกด Program to Device ใน BENTO IDE แล้วจอบอร์ดไม่แสดงอะไรเลย สิ่งแรกที่ควรตรวจคืออะไร (เป้าหมายข้อ 3)

    1. เปิดหน้า BENTO Playground ค้างไว้บนบอร์ดแล้วหรือยัง
    2. เปลี่ยนไปใช้ภาษา C
    3. รีเซ็ตบอร์ดกลับค่าโรงงาน
    4. ต่อ WiFi ให้บอร์ด
    ดูเฉลย

    คำตอบ: A. เปิดหน้า BENTO Playground ค้างไว้บนบอร์ดแล้วหรือยัง

    ผลของโค้ดที่ส่งจาก IDE ไปโผล่ที่หน้า BENTO Playground ถ้าบอร์ดค้างอยู่หน้าอื่น จะดูเหมือนส่งแล้วไม่มีอะไรเกิดขึ้น

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

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

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

ข้อความอ้างอิงภาษาอังกฤษ: "Board tour: play with the real thing first" 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/aiot-micropython/m01-ui-application/l01-board-tour/

บทเรียนนี้ดัดแปลงจากต้นฉบับด้านล่าง เมื่ออ้างอิงให้คงเครดิตต้นฉบับไว้ด้วย
https://github.com/Advance-Innovation-Centre-AIC/embedded-systems-for-aiot-developer/blob/a80bbe88a34bcb9bb8d991f42f9252b77cdab079/session-01.html (slides 1–7)

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

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

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