InkQuest เกม E-Paper ให้ Gemini แต่งเรื่องตามตัวเลือกของผู้เล่น

GLOBALBYTE / ESP32-C3 / E-PAPER / AI / 3D PRINTING

InkQuest: เกมผจญภัย AI บนจอ E-Paper ด้วย XIAO ESP32-C3

ถ้า E-Paper ไม่ได้ใช้เพียงอ่านหนังสือหรือแสดงสภาพอากาศ แต่กลายเป็นเครื่องเล่นเกมที่เราเลือกเนื้อเรื่องเองได้? InkQuest ของ Jeremy Ngai ใช้ XIAO ESP32-C3, จอ E-Paper 2.9 นิ้ว และ Rotary Encoder ร่วมกับ Google Gemini เพื่อสร้างเกมผจญภัยแบบ Choose Your Own Adventure

Source: Jeremy Ngai / Instructables · 25 October 2026 · เรียบเรียงโดย GlobalByte

InkQuest เครื่องเล่นเกม E-Paper พร้อม Rotary Encoder
เครื่องเล่นเกม InkQuest ภาพต้นฉบับของ Jeremy Ngai บน Instructables
Key Takeaways
  • XIAO ESP32-C3 เชื่อม Wi-Fi เพื่อเรียก Gemini API
  • Gemini สร้างเนื้อเรื่องและตัวเลือก 4 แบบตามการตัดสินใจของผู้เล่น
  • ใช้ประวัติเรื่องราวล่าสุด 5 Turns เป็นบริบท
  • E-Paper แสดงข้อความ ส่วน NeoPixel RGB เปลี่ยนสีตามบรรยากาศ
  • มีไฟล์ PCB Gerber, STL, CAD และ Arduino Firmware ให้ศึกษาต่อ
ภาพเครื่องเล่น InkQuest อีกมุมหนึ่ง ภาพต้นแบบ InkQuest เพิ่มเติม ภาพ InkQuest จาก GitHub InkQuest มุมมองด้านบนจาก GitHub ภาพเดโม InkQuest จาก GitHub Prototype

InkQuest คืออะไร? เกมอ่านเรื่องที่เราเป็นคนเลือกตอนต่อไป

ผู้สร้างอยากให้ E-Paper ทำอะไรได้มากกว่าแสดงข้อมูลนิ่ง ๆ จึงนำแนวคิด E-Reader มารวมกับเกมผจญภัยแบบเลือกเส้นทาง ผู้เล่นหมุน Rotary Encoder เพื่อเลื่อนอ่านข้อความหรือเลือกคำตอบ แล้วกดยืนยัน

ตัวเกมไม่จำเป็นต้องมีกราฟิกเคลื่อนไหว แต่เน้นเนื้อเรื่องที่ปรับตามทางเลือกและแสง RGB ซึ่งช่วยเปลี่ยนบรรยากาศของฉาก

Gemini API สร้างเนื้อเรื่องใหม่อย่างไร?

1. ผู้เล่นหมุนและกด Rotary Encoder
2. ESP32-C3 รวบรวม Choice + History ล่าสุด 5 Turns
3. ส่งข้อมูลผ่าน Wi-Fi ไปยัง Gemini API
4. Gemini สร้าง Story, 4 Choices และ RGB ใน JSON
5. E-Paper แสดงเรื่องราว ส่วน NeoPixel เปลี่ยนสี

Firmware ที่ผู้สร้างเผยแพร่ใช้ Model ID gemini-3.1-flash-lite การสร้างเรื่องใหม่ต้องอาศัยการเชื่อมต่อเครือข่ายและโควตา Gemini API จึงไม่ควรอ้างว่าเล่นได้ไม่จำกัดแบบ Offline

หมายเหตุเรื่อง Free Tier: จำนวน Requests และค่าบริการขึ้นอยู่กับ Model และบัญชี ควรตรวจ Gemini API Rate Limits ก่อนใช้งาน ไม่รับรองตัวเลข 500 Requests/Day จากต้นฉบับว่าเป็นโควตาปัจจุบัน

อุปกรณ์ที่ใช้สร้าง InkQuest

อุปกรณ์สำหรับสร้าง InkQuest
Supplies ตามที่ Jeremy Ngai ใช้ประกอบ InkQuest
อุปกรณ์ หน้าที่
Seeed Studio XIAO ESP32-C3 Microcontroller และ Wi-Fi
WeAct E-Paper 2.9 นิ้ว Black/White แสดงเนื้อเรื่องและตัวเลือก
EC11 Rotary Encoder ควบคุมเกม
WS2812B NeoPixel แสง RGB ตามฉาก
603450 Li-Po 1,200mAh แหล่งพลังงาน
JST-PH 2P, Low-Profile Header ขั้วต่อแบตเตอรี่และจอ
Resistor และ Capacitor 0805 อุปกรณ์ประกอบ PCB ตาม BOM
3D Printed Case + Lid โครงตัวเครื่อง

ผู้สร้างระบุความหนาเครื่องประมาณ 1.6 ซม. และคาดการณ์แบตเตอรี่ราว 20 ชั่วโมง ตัวเลข Runtime ยังไม่ใช่ผลทดสอบที่รับประกัน

Step 1: 3D Print ตัวเครื่องและฝาหลัง

เคสและฝาหลัง InkQuest จากการออกแบบ 3D
การทำเคส InkQuest จากไฟล์ออกแบบของผู้สร้าง

ผู้สร้างออกแบบ Case และ Lid ด้วย Autodesk Fusion และเลือกสั่งผลิตด้วยเรซิน 8001 Translucent Resin ก่อนขัดรอย Support บางส่วนให้เรียบร้อย โดย Source ไม่ได้ให้การตั้งค่าพิมพ์ 3D ครบทุกค่า

ดาวน์โหลด Enclosure STL | ดาวน์โหลด Lid STL | ดู Fusion CAD

ภาพการพิมพ์เคส InkQuest เพิ่มเติม 1 ภาพการพิมพ์เคส InkQuest เพิ่มเติม 2 แบบเคส InkQuest เพิ่มเติม แบบฝาหลัง InkQuest เพิ่มเติม CAD Assembly InkQuest ด้านหน้า CAD Assembly InkQuest ด้านหลัง CAD รุ่น Prototype จาก GitHub

Step 2: ออกแบบ PCB ด้วย EasyEDA

การออกแบบ PCB InkQuest ด้วย EasyEDA
ภาพ PCB Design จาก Instructables

PCB ถูกออกแบบให้รวม ESP32-C3, Rotary Encoder, NeoPixel, ขั้วต่อแบตเตอรี่ และขั้วต่อ E-Paper ในบอร์ดเดียว พร้อมลาย Silkscreen รูปคลื่นสีขาว

เปิด PCB Gerber | ดู Schematic บน GitHub

PCB InkQuest ภาพเพิ่มเติม 1 PCB InkQuest ภาพเพิ่มเติม 2 Schematic InkQuest จาก GitHub ภาพ PCB InkQuest จาก GitHub Schematic ของ InkQuest Prototype PCB ของ InkQuest Prototype

Step 3: ประกอบและบัดกรีชิ้นส่วนบน PCB

บัดกรีชิ้นส่วนบน PCB InkQuest
ขั้นตอน Solder PCB Components ของผู้สร้าง

ผู้สร้างเริ่มประกอบชิ้นส่วน SMD ขนาดเล็กก่อน แล้วจึงตามด้วย Connector และชิ้นส่วน Through-hole โดยต้องตรวจ Footprint และ Polarity เทียบกับ Schematic จริง

ภาพประกอบ PCB InkQuest 1 ภาพประกอบ PCB InkQuest 2 ภาพประกอบ PCB InkQuest 3

Step 4: เปลี่ยน E-Paper Connector ให้บางลง

การติดตั้ง Low Profile Header บน E-Paper
การดัดแปลง Connector ของจอ E-Paper ในต้นแบบ

ผู้สร้างเลือก Low-Profile Pin Header เพื่อให้จัดวางแบตเตอรี่ระหว่าง PCB สองแผ่นได้ โดยระบุช่องว่างของ Header ที่เลือกประมาณ 6.5 มม. เทียบกับ Header ทั่วไปราว 9 มม.

ระวัง Pad และ Trace: การถอด Connector เดิมด้วยความร้อนอาจทำให้แผ่นทองแดงบน PCB ของจอเสียหาย ไม่ควรทำโดยไม่มีประสบการณ์บัดกรีชิ้นส่วนขนาดเล็ก
E-Paper Connector ภาพเพิ่มเติม 1 E-Paper Connector ภาพเพิ่มเติม 2

Step 5: ติดตั้ง E-Paper ลงในตัวเครื่อง

ยึดจอ E-Paper ลงในเคส InkQuest
ติดตั้งโมดูล E-Paper ด้วยคลิปยึดภายในเคส

ตัวเครื่องใช้คลิปเล็ก ๆ เพื่อยึด PCB ของจอ E-Paper โดยต้องเหลือพื้นที่สำหรับแบตเตอรี่และ Main PCB ที่ประกอบซ้อนกัน

การติดตั้งจอ InkQuest เพิ่มเติม 1 การติดตั้งจอ InkQuest เพิ่มเติม 2

Step 6: เตรียม Battery Connector

ขั้วต่อแบตเตอรี่สำหรับ InkQuest
การเตรียมขั้วต่อแบตเตอรี่ Li-Po ตามต้นฉบับ

ผู้สร้างปรับ Connector ของแบตเตอรี่ให้เข้ากับ Layout บน PCB แต่เป็นขั้นตอนที่ต้องระมัดระวังอย่างมาก เพราะเซลล์ยังมีพลังงานอยู่

Li-Po Safety: การตัดหรือบัดกรีสายแบตเตอรี่ที่ยังมีประจุเสี่ยงลัดวงจรและเกิดความร้อน ควรใช้อุปกรณ์พร้อม Connector ที่เข้ากันได้ หรือให้ผู้มีประสบการณ์จัดการ
Battery Connector ภาพเพิ่มเติม 1 Battery Connector ภาพเพิ่มเติม 2

Step 7: Mount Battery on PCB

ตำแหน่งแบตเตอรี่บน PCB InkQuest
ตำแหน่งติดตั้งแบตเตอรี่ Li-Po ภายใน InkQuest

PCB ถูกออกแบบให้มีพื้นที่สำหรับยึดแบตเตอรี่ไว้โดยเฉพาะ โดยผู้สร้างยังไม่เสียบ Battery Connector จนกว่าจะเสร็จขั้นตอนประกอบที่เหลือ

ติดตั้งแบตเตอรี่ InkQuest ภาพเพิ่มเติม 1 ติดตั้งแบตเตอรี่ InkQuest ภาพเพิ่มเติม 2

Step 8: Flash Firmware ด้วย Arduino IDE

ขั้นตอนอัปโหลด Firmware InkQuest ด้วย Arduino IDE
การตั้งค่าและอัปโหลดโค้ดเข้า ESP32-C3

ผู้สร้างใช้ Arduino IDE พร้อม Library GxEPD2, Adafruit NeoPixel และ WiFiManager และระบุให้ใช้ Partition Scheme แบบ Huge APP สำหรับ Firmware นี้

เปิดไฟล์ Arduino Firmware ต้นฉบับ

Flash Warning: การใช้ Erase All Flash Before Sketch Upload จะลบข้อมูลเดิมใน Flash ต้องสำรองข้อมูลที่จำเป็นก่อนใช้งาน
ภาพการแฟลช Firmware InkQuest เพิ่มเติม
Library Includes จาก Firmware
#include <GxEPD2_BW.h>
#include <HTTPClient.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>
#include <Adafruit_NeoPixel.h>
#include <WiFiManager.h>
#include <Preferences.h>

นี่เป็น Code Excerpt จากไฟล์ต้นฉบับ ไม่ใช่โปรแกรมที่รันได้โดยลำพัง

Step 9: ติดตั้งเสาอากาศ Wi-Fi

ติดตั้งเสาอากาศ Wi-Fi ของ InkQuest
ตำแหน่งเสาอากาศ Wi-Fi ภายในฝาหลัง InkQuest

ผู้สร้างต่อเสาอากาศกับ Connector U.FL และจัดตำแหน่งภายในเคส เพื่อใช้เชื่อมต่อ Wi-Fi สำหรับเรียก Gemini API

เสาอากาศ InkQuest ภาพเพิ่มเติม 1 เสาอากาศ InkQuest ภาพเพิ่มเติม 2

Step 10: ประกอบ E-Paper กับ Main PCB

การประกอบ InkQuest ขั้นตอนสุดท้าย
การรวมจอ PCB แบตเตอรี่ และฝาหลังเข้าด้วยกัน

ผู้สร้างประกอบ E-Paper เข้ากับ Main PCB ต่อแบตเตอรี่ และยึดฝาหลังกับ Rotary Encoder Knob จนกลายเป็นเครื่องเล่นเกมพกพา

InkQuest Final Assembly ภาพเพิ่มเติม

Step 11: ตั้งค่า Wi-Fi และ Gemini API เพื่อเริ่มเล่น

หน้าจอ InkQuest ระหว่างทดสอบเล่นเกม
ผลการทดสอบใช้งานเกม InkQuest บนจอ E-Paper

เมื่อเปิดใช้งานครั้งแรก เครื่องจะให้ตั้งค่า Wi-Fi และ Gemini API Key ผ่าน Captive Portal จาก WiFiManager หลังเชื่อมต่อสำเร็จ Gemini จะเริ่มสร้างเรื่องราวและตัวเลือกให้ผู้เล่น

สร้าง API Key ที่ Google AI Studio และตรวจ Quota ก่อนใช้งานจริง ห้ามนำ API Key จริงมาเผยแพร่ในโพสต์หรือรูปภาพ

ทดสอบ InkQuest ภาพเพิ่มเติม 1 ทดสอบ InkQuest ภาพเพิ่มเติม 2 ทดสอบ InkQuest ภาพเพิ่มเติม 3
WiFiManager Code Excerpt
if (!wm.autoConnect("ESP32_Setup")) {
    Serial.println("Failed to connect or portal timed out.");
    errorType = 2;
    update = true;
    return;
}

ตัวอย่างตัดมาจาก Firmware ของผู้สร้าง ไม่ใช่โค้ดเต็ม

Step 12: ผลลัพธ์ InkQuest Final Build

InkQuest เครื่องเล่นเกม E-Paper สำเร็จรูป
InkQuest Final Build จาก Jeremy Ngai

InkQuest เป็นตัวอย่างการรวม Electronics, 3D Printing และ Generative AI ให้กลายเป็นเครื่องพกพาที่ใช้งานจริงได้ โดยยังคงข้อจำกัดเรื่องการเชื่อมต่อ Wi-Fi, Gemini API และการ Refresh ของ E-Paper

InkQuest Final Build ภาพเพิ่มเติม 1 InkQuest Final Build ภาพเพิ่มเติม 2

วิดีโอ Demo และ Walkthrough ของ InkQuest

GitHub ของผู้สร้างมีลิงก์วิดีโอ Vimeo 3 รายการ โดยสองคลิปมาจาก Repository InkQuest-ESP32 และอีกหนึ่งคลิปจาก Repository InkQuest รุ่นก่อน

InkQuest Demo

เปิด Demo ต้นฉบับบน Vimeo

ลิงก์ทั้งหมดมาจาก README ของผู้สร้าง แต่ยังไม่ได้ยืนยันสิทธิ์ Embed บน Shopify ให้ใช้ลิงก์ Vimeo สำรองหาก Player ไม่แสดง

Firmware, STL, Gerber, CAD และ Download Files

FAQ: คำถามที่พบบ่อยเกี่ยวกับ InkQuest

1. InkQuest ใช้ ESP32 รุ่นไหน?

ใช้ Seeed Studio XIAO ESP32-C3

2. จอ E-Paper เป็นจอสีหรือไม่?

เป็นจอขาวดำ 2.9 นิ้ว ส่วนไฟสีมาจาก NeoPixel

3. เล่นแบบ Offline ได้ไหม?

การสร้างเรื่องใหม่ต้องเรียก Gemini API ผ่าน Wi-Fi

4. ตัวเลือกมีทั้งหมดกี่แบบ?

Gemini ส่ง 4 Choices ต่อ Story Segment ตามที่ผู้สร้างกำหนด

5. ใช้ Gemini รุ่นใด?

Firmware ที่ตรวจใช้ gemini-3.1-flash-lite

6. ต้องสร้าง API Key เองหรือไม่?

ต้องสร้าง Key จาก Google AI Studio ของตนเอง

7. Battery Runtime เท่าไร?

ผู้สร้างประมาณ 20 ชั่วโมง ไม่ใช่ผลทดสอบรับรอง

8. เครื่องเข้าสู่ Sleep เมื่อไร?

ผู้สร้างระบุ Deep Sleep หลังไม่ใช้งาน 2 นาที

9. มีไฟล์ STL ไหม?

มีไฟล์ Case และ Lid แยกกัน

10. มี Gerber หรือ Schematic ไหม?

มีผ่าน Google Drive และ GitHub ของผู้สร้าง

11. ใช้ Resin อะไรพิมพ์เคส?

ผู้สร้างเลือก 8001 Translucent Resin

12. ต้องตั้งค่า Layer Height เท่าไร?

Source ไม่ได้ระบุค่าการพิมพ์ทั้งหมดที่ยืนยันได้

13. ทำไมต้องใช้ Low Profile Header?

เพื่อลดช่องว่างระหว่างจอ PCB และแบตเตอรี่

14. มีวิดีโอสาธิตไหม?

พบ Vimeo 3 ลิงก์ใน README ของผู้สร้าง

15. นำภาพไปใช้เชิงพาณิชย์ได้ทันทีไหม?

ควรขออนุญาตเจ้าของภาพก่อน เพราะ Instructables ระบุ CC BY-NC-SA 4.0 ซึ่งมีข้อจำกัด NonCommercial

สรุป: InkQuest รวม ESP32, E-Paper และ Gemini AI ได้อย่างน่าสนใจ

InkQuest แสดงให้เห็นว่าบอร์ด ESP32 ขนาดเล็กสามารถนำมาต่อยอดเป็นเครื่องเล่นเกมอ่านเรื่องได้ เมื่อผสาน E-Paper, Rotary Encoder, Custom PCB, 3D Printed Case และ Gemini API

การทำตามจริงควรตรวจ Schematic, Firmware, ความเข้ากันได้ของจอ และขั้นตอนจัดการแบตเตอรี่อย่างรอบคอบ พร้อมอ่าน Instructables Tutorial ครบ 12 Steps ประกอบกับ Source Code บน GitHub

References / แหล่งข้อมูลต้นฉบับ

  1. Instructables: InkQuest โดย Jeremy Ngai
  2. GitHub: InkQuest-ESP32
  3. GitHub: InkQuest Prototype
  4. Google AI Studio: Gemini Rate Limits
  5. Vimeo: InkQuest Demo
  6. Vimeo: InkQuest Walkthrough
  7. Vimeo: InkQuest Prototype

ต่อยอดโปรเจกต์ ESP32 และ 3D Printing กับ GlobalByte

สนใจทำโปรเจกต์ E-Paper, ESP32 หรือ Embedded AI สามารถสอบถามทีม GlobalByte เกี่ยวกับ Development Board, Sensor, Connector และบริการ 3D Printing จากไฟล์ STL ได้ โดยควรตรวจสเปกและความเข้ากันได้ก่อนเลือกใช้งาน

 

แท็ก


Blog posts