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
- XIAO ESP32-C3 เชื่อม Wi-Fi เพื่อเรียก Gemini API
- Gemini สร้างเนื้อเรื่องและตัวเลือก 4 แบบตามการตัดสินใจของผู้เล่น
- ใช้ประวัติเรื่องราวล่าสุด 5 Turns เป็นบริบท
- E-Paper แสดงข้อความ ส่วน NeoPixel RGB เปลี่ยนสีตามบรรยากาศ
- มีไฟล์ PCB Gerber, STL, CAD และ Arduino Firmware ให้ศึกษาต่อ
InkQuest คืออะไร? เกมอ่านเรื่องที่เราเป็นคนเลือกตอนต่อไป
ผู้สร้างอยากให้ E-Paper ทำอะไรได้มากกว่าแสดงข้อมูลนิ่ง ๆ จึงนำแนวคิด E-Reader มารวมกับเกมผจญภัยแบบเลือกเส้นทาง ผู้เล่นหมุน Rotary Encoder เพื่อเลื่อนอ่านข้อความหรือเลือกคำตอบ แล้วกดยืนยัน
ตัวเกมไม่จำเป็นต้องมีกราฟิกเคลื่อนไหว แต่เน้นเนื้อเรื่องที่ปรับตามทางเลือกและแสง RGB ซึ่งช่วยเปลี่ยนบรรยากาศของฉาก
Gemini API สร้างเนื้อเรื่องใหม่อย่างไร?
Firmware ที่ผู้สร้างเผยแพร่ใช้ Model ID gemini-3.1-flash-lite การสร้างเรื่องใหม่ต้องอาศัยการเชื่อมต่อเครือข่ายและโควตา Gemini API จึงไม่ควรอ้างว่าเล่นได้ไม่จำกัดแบบ Offline
อุปกรณ์ที่ใช้สร้าง 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 ตัวเครื่องและฝาหลัง
ผู้สร้างออกแบบ Case และ Lid ด้วย Autodesk Fusion และเลือกสั่งผลิตด้วยเรซิน 8001 Translucent Resin ก่อนขัดรอย Support บางส่วนให้เรียบร้อย โดย Source ไม่ได้ให้การตั้งค่าพิมพ์ 3D ครบทุกค่า
ดาวน์โหลด Enclosure STL | ดาวน์โหลด Lid STL | ดู Fusion CAD
Step 2: ออกแบบ PCB ด้วย EasyEDA
PCB ถูกออกแบบให้รวม ESP32-C3, Rotary Encoder, NeoPixel, ขั้วต่อแบตเตอรี่ และขั้วต่อ E-Paper ในบอร์ดเดียว พร้อมลาย Silkscreen รูปคลื่นสีขาว
เปิด PCB Gerber | ดู Schematic บน GitHub
Step 3: ประกอบและบัดกรีชิ้นส่วนบน PCB
ผู้สร้างเริ่มประกอบชิ้นส่วน SMD ขนาดเล็กก่อน แล้วจึงตามด้วย Connector และชิ้นส่วน Through-hole โดยต้องตรวจ Footprint และ Polarity เทียบกับ Schematic จริง
Step 4: เปลี่ยน E-Paper Connector ให้บางลง
ผู้สร้างเลือก Low-Profile Pin Header เพื่อให้จัดวางแบตเตอรี่ระหว่าง PCB สองแผ่นได้ โดยระบุช่องว่างของ Header ที่เลือกประมาณ 6.5 มม. เทียบกับ Header ทั่วไปราว 9 มม.
Step 5: ติดตั้ง E-Paper ลงในตัวเครื่อง
ตัวเครื่องใช้คลิปเล็ก ๆ เพื่อยึด PCB ของจอ E-Paper โดยต้องเหลือพื้นที่สำหรับแบตเตอรี่และ Main PCB ที่ประกอบซ้อนกัน
Step 6: เตรียม Battery Connector
ผู้สร้างปรับ Connector ของแบตเตอรี่ให้เข้ากับ Layout บน PCB แต่เป็นขั้นตอนที่ต้องระมัดระวังอย่างมาก เพราะเซลล์ยังมีพลังงานอยู่
Step 7: Mount Battery on PCB
PCB ถูกออกแบบให้มีพื้นที่สำหรับยึดแบตเตอรี่ไว้โดยเฉพาะ โดยผู้สร้างยังไม่เสียบ Battery Connector จนกว่าจะเสร็จขั้นตอนประกอบที่เหลือ
Step 8: Flash Firmware ด้วย Arduino IDE
ผู้สร้างใช้ Arduino IDE พร้อม Library GxEPD2, Adafruit NeoPixel และ WiFiManager และระบุให้ใช้ Partition Scheme แบบ Huge APP สำหรับ Firmware นี้
เปิดไฟล์ Arduino 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
ผู้สร้างต่อเสาอากาศกับ Connector U.FL และจัดตำแหน่งภายในเคส เพื่อใช้เชื่อมต่อ Wi-Fi สำหรับเรียก Gemini API
Step 10: ประกอบ E-Paper กับ Main PCB
ผู้สร้างประกอบ E-Paper เข้ากับ Main PCB ต่อแบตเตอรี่ และยึดฝาหลังกับ Rotary Encoder Knob จนกลายเป็นเครื่องเล่นเกมพกพา

Step 11: ตั้งค่า Wi-Fi และ Gemini API เพื่อเริ่มเล่น
เมื่อเปิดใช้งานครั้งแรก เครื่องจะให้ตั้งค่า Wi-Fi และ Gemini API Key ผ่าน Captive Portal จาก WiFiManager หลังเชื่อมต่อสำเร็จ Gemini จะเริ่มสร้างเรื่องราวและตัวเลือกให้ผู้เล่น
สร้าง API Key ที่ Google AI Studio และตรวจ Quota ก่อนใช้งานจริง ห้ามนำ API Key จริงมาเผยแพร่ในโพสต์หรือรูปภาพ
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 เป็นตัวอย่างการรวม Electronics, 3D Printing และ Generative AI ให้กลายเป็นเครื่องพกพาที่ใช้งานจริงได้ โดยยังคงข้อจำกัดเรื่องการเชื่อมต่อ Wi-Fi, Gemini API และการ Refresh ของ E-Paper
วิดีโอ Demo และ Walkthrough ของ InkQuest
GitHub ของผู้สร้างมีลิงก์วิดีโอ Vimeo 3 รายการ โดยสองคลิปมาจาก Repository InkQuest-ESP32 และอีกหนึ่งคลิปจาก Repository InkQuest รุ่นก่อน
InkQuest Demo
ลิงก์ทั้งหมดมาจาก 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 / แหล่งข้อมูลต้นฉบับ
ต่อยอดโปรเจกต์ ESP32 และ 3D Printing กับ GlobalByte
สนใจทำโปรเจกต์ E-Paper, ESP32 หรือ Embedded AI สามารถสอบถามทีม GlobalByte เกี่ยวกับ Development Board, Sensor, Connector และบริการ 3D Printing จากไฟล์ STL ได้ โดยควรตรวจสเปกและความเข้ากันได้ก่อนเลือกใช้งาน