ลองใช้ M5Stack Tab5 ด้วย MicroPython + LVGL: ตอน 1 MicroPython
ผมเพิ่งซื้อบอร์ด M5Stack Tab5 เพื่อเตรียมทำงานวิจัย เลยอยากจะมาแชร์ประสบการณ์การลองใช้งาน…
ลองใช้ M5Stack Tab5 ด้วย MicroPython + LVGL: ตอน 1 MicroPython
ผมเพิ่งซื้อบอร์ด M5Stack Tab5 เพื่อเตรียมทำงานวิจัย เลยอยากจะมาแชร์ประสบการณ์การลองใช้งาน โดยเฉพาะสำหรับใครที่สนใจอยากสร้างแอปพลิเคชันที่มีหน้าจอสวยๆ (GUI) ด้วยไลบรารี LVGL บน MicroPython จุดที่ทำให้อยากเขียนบทความนี้เกิดจากตอนที่ผมหาข้อมูล ส่วนใหญ่จะเจอแต่ตัวอย่างการใช้ LVGL กับ ESP32 ที่เขียนด้วยภาษา C/C++ บน Arduino IDE ซึ่งสำหรับคนที่ไม่คุ้นเคยกับการเขียนโปรแกรมแบบ Event-Driven อาจจะรู้สึกว่ามันซับซ้อนและเริ่มต้นได้ยาก การใช้ MicroPython จึงน่าจะเป็นอีกทางเลือกที่น่าสนใจสำหรับผู้เริ่มต้น

บอร์ด M5Stack Tab5
บอร์ด M5Stack Tab5 ใช้หน่วยประมวลผล ESP32-P4 (Dual-core RISC-V) ที่แตกต่างจาก ESP32 ตระกูลอื่นตรงที่ไม่มี wireless มาให้เลย ทำให้ต้องเพิ่ม ESP32-C6 มาเพิ่มเป็นส่วนสื่อสาร แต่ข้อชดเชยคือตัว ESP32-P4 ของ Tab5 จัดทรัพยากร (Flash 16 MB และ PSRAM 32 MB) มาให้เยอะเมื่อเทียบกับบอร์ด ESP32 ทั่วไป ซึ่งเหลือเฟือสำหรับการทำ UI ที่ซับซ้อนด้วย LVGL จุดเด่นของบอร์ดนี้คือการรวมอุปกรณ์ในฐานะ HMI มาแบบเต็มชุด มีทั้งจอภาพ (5-inch 1280 × 720 IPS TFT + GT911 touch) กล้อง (2MP) เสียง (ทั้งไมค์ ลำโพง หัวต่อ 3.5mm) และเซ็นเซอร์ IMU (BMI270 accel + gyro) ทำให้เรียกได้เป็นบอร์ดที่ถูกมาก ($55 ไม่ถึง 2,000 บาท) การออกแบบก็ถือว่าสวย เบา และมีหัวต่อหลายแบบมาให้ ในขณะที่คุณภาพของ M5Stack เชื่อถือได้ เพราะซื้อมาใช้อยู่หลายบอร์ดแล้ว ใครสนใจรายละเอียดของส่วนฮาร์ดแวร์ก็ไปดูจากโพสต์แกะกล่องของ CNX ได้
ใช้ MicroPython บน Tab5

หน้าจอของ UIFlow 2.0
M5Stack มีเครื่องมือพัฒนา GUI แบบ web เรียกว่า UIFlow โดยมีการใช้งานแบบลากวางตามสไตล์ Blockly เหมือนหลายๆเครื่องมือ เช่น App Inventor, Microsoft MakeCode, KidBright IDE แต่ผมเลือกไม่ใช้รูปแบบนี้เพราะลอจิกของโค้ดที่วางแผนไว้จะซับซ้อนหน่อย ทำให้ตอนมาทำเป็น flow ของ block จะรกไปหน่อย แต่ส่วนเฟิร์มแวร์ของ UIFlow 2.0 ในบอร์ด Tab5 จะถูกพัฒนาด้วย MicroPython ร่วมกับ LVGL 9.x เพื่อไปเชื่อมต่อกับเซิร์ฟเวอร์ ดังนั้นการติดตั้ง UIFlow 2.0 กับ Tab5 จะทำให้เราสามารถเขียนโค้ดด้วย MicroPython + LVGL ได้

โปรแกรม M5Burner สำหรับโปรแกรมเฟิร์มแวร์
การติดตั้ง UIFlow จะใช้โปรแกรม M5Burner เลือกดาวน์โหลดเฟิร์มแวร์ UIFlow 2.0 จากนั้นกดปุ่ม Reset ค้างแล้วเสียบสาย USB เพื่อเข้าโหมด bootloader (เห็น LED สีเขียวกระพริบ) การโปรแกรมเฟิร์มแวร์ UIFlow 2.0 จะต้องลงทะเบียนก่อน และป้อนข้อมูลของ WiFi เพื่อให้เฟิร์มแวร์ไปเชื่อมกับเซิร์ฟเวอร์ UIFlow หลังจากติดตั้งเสร็จให้กดปุ่ม Reset จะเห็นหน้าจอแสดง UI สำหรับทดลองใช้งานอุปกรณ์บนบอร์ด แต่ปัญหาคือส่วน REPL จะไม่ทำงานเพราะไปค้างในส่วนโค้ด UI จึงแนะนำว่าให้เลือก “Boot Option” เป็น “Run main.py direcly” เพื่อให้ Tab5 หลุดออกมาที่ส่วน REPL หลังการบูต

เฟิร์มแวร์ UIFlow 2.0 บนบอร์ด Tab5
การเชื่อมต่อ MicroPython ในบอร์ด Tab5 จะผ่านทางกลไก REPL ทางพอร์ทอนุกรม โดยมีตัวเลือกของโปรแกรมหลายตัว เช่น Thonny แต่หลังๆพอใช้ VS Code แล้วติดใจพวก AI แย่งเขียนโค้ด (แม้จะออกเหวไปหลายที) รอบนี้เลยเปลี่ยนมาใช้ Pymakr extension ซึ่งจะมาช่วยในส่วนการเชื่อมต่อและรับส่งโค้ดกับบอร์ด โดยจะสามารถใช้ฟีเจอร์อื่นๆของ VS Code ไปด้วย

การติดตั้ง PyMakr extension สำหรับเชื่อมต่อบอร์ด Tab5
การเชื่อมต่อกับบอร์ด Tab5 เริ่มต้นด้วยการสร้าง project ด้วย Pymakr extension แล้วทำตามขั้นตอนดังนี้
- เลือกพอร์ทอนุกรมของบอร์ด
- กดปุ่ม Connect
- กดปุ่ม Open device in file explorer เพื่อแสดงไฟล์ในอุปกรณ์
- กดปุ่ม Create Terminal เปิดหน้าต่าง REPL เพื่อลองพิมพ์คำสั่ง
หากเชื่อมต่อไม่ได้ แนะนำให้ย้อนกลับไปโปรแกรมเฟิร์มแวร์ และเช็คว่าได้เลือก Boot Option เป็น Run main.py directly หรือไม่

เฟิร์มแวร์ของ UIFlow ที่เป็น MicroPython เตรียมไลบรารีมาเยอะพอสมควร โดยสามารถพิมพ์คำสั่ง help('modules') เพื่อดูรายการของไลบรารีที่ติดตั้งมาได้ เราสามารถดู component ในตัวไลบรารี LVGL โดยพิมพ์คำสั่ง import lvgl แล้วแสดงรายการของ component ด้วยคำสั่ง dir(lvgl)

การตรวจสอบไลบรารี LVGL
Pymakr extension มีตัวช่วย development mode สำหรับการเขียนโค้ดให้กับบอร์ด MCU โดยทุกครั้งที่ save จะส่งไฟล์ไปที่บอร์ดและรีบูตบอร์ดให้ ส่วนโค้ดหลักจึงเป็นไฟล์ main.py เนื่องจากเราตั้งเฟิร์มแวร์ให้เรียกใช้ main.py ทำงานหลังบูต ส่วนไลบรารีเฉพาะของบอร์ด M5Stack Tab5 คือ โมดูล M5 ซึ่งจะมีไดรเวอร์สำหรับใช้ฮาร์ดแวร์ต่างๆ เช่น การแสดงผลบนจอ

การเขียนโค้ดเพื่อแสดงข้อความบนหน้าจอ
終わりに (ในตอนท้าย)
บทความตอนแรกเขียนแบบเร็วๆเพื่อแนะนำการใช้ MicroPython กับบอร์ด M5Stack Tab5 เผื่อคนที่สนใจจะใช้บอร์ดนี้จะมีตัวเลือกที่น่าจะง่ายกว่าการเขียนโค้ด GUI ด้วยภาษา C/C++ บน Arduino ตอนหน้าจะมาแนะนำการเขียนโค้ดสร้าง GUI ด้วย LVGL บน MicroPython
메타데이터
- post_id
- 33b3eaa367df
- slug
- ลองใช้-m5stack-tab5-ด้วย-micropython-lvgl-ตอน-1-micropython-33b3eaa367df
- url
- https://medium.com/@vsupacha-90388/%E0%B8%A5%E0%B8%AD%E0%B8%87%E0%B9%83%E0%B8%8A%E0%B9%89-m5stack-tab5-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-micropython-lvgl-%E0%B8%95%E0%B8%AD%E0%B8%99-1-micropython-33b3eaa367df
- canonical_url
- https://medium.com/@vsupacha-90388/%E0%B8%A5%E0%B8%AD%E0%B8%87%E0%B9%83%E0%B8%8A%E0%B9%89-m5stack-tab5-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-micropython-lvgl-%E0%B8%95%E0%B8%AD%E0%B8%99-1-micropython-33b3eaa367df
- author_url
- https://medium.com/@vsupacha-90388
- status
- ok
- fetched_at
- 2026-06-20 20:29:01