หน้าแรก ดูโปรเจกต์ทั้งหมด
Hard

โปรเจกต์ Draw Poker

Draw Poker สำหรับ Arduino Mega พร้อมจอ IPS Touchscreen ขนาด 800x480 มาพร้อมการ์ดแบบ Graphical เต็มรูปแบบซึ่งเก็บไว้ใน Micro SD card

โปรเจกต์ Draw Poker

รายการอุปกรณ์และเครื่องมือ

1x 4 Inch IPS Touchscreen for the Arduino Mega
-
1x Micro SD card
-
1x Arduino Mega 2560
🛒 สั่งซื้อ

รายละเอียดและวิธีทำ

เมื่อผมซื้อ 800 x 480 IPS Touchscreen shield (Model MAR4018) สำหรับ Mega ผมรู้สึกทึ่งกับคุณภาพของหน้าจอมาก ตอนแรกผมลองแสดงรูปภาพแบบ slideshow และคุณภาพของภาพนั้นยอดเยี่ยมมาก ในที่สุดผมก็ตัดสินใจว่าจะสร้างเกม Poker แบบกราฟิกเต็มรูปแบบสำหรับหน้าจอนี้ ผมใช้ไพ่ที่มีรายละเอียดสูงมากและใช้ Micro SD card บน Touchscreen เพื่อจัดเก็บข้อมูล ไฟล์ BMP ทั้งหมดถูกแปลงเป็น 16 Bit 565 Color เพื่อลดเวลาในการโหลด

เกมนี้ควรจะรันได้ง่ายถ้าคุณใช้ Hardware ชุดเดียวกัน คุณจำเป็นต้องใช้ Mega เนื่องจากเกมต้องการ Ram เพิ่มเติม (ใช้สำหรับการโหลด BMP ที่รวดเร็ว) คุณต้องมีหน้าจอ 800x480 เนื่องจากเกมถูกเขียนขึ้นมาสำหรับความละเอียดนั้น

เพียงแค่คัดลอกไฟล์ BMP ทั้ง 53 ไฟล์ลงใน Micro SD Card แล้วเสียบเข้ากับ SD Slot ของหน้าจอ จากนั้น Compile sketch และโปรแกรมลงใน Mega มันก็น่าจะทำงานได้

เกมนี้ใช้งานง่ายมาก มันจะคอยบอก User ว่าต้องทำอะไรบ้าง เช่น Deal, Hold, Shuffle และอื่นๆ ทุกอย่างควบคุมผ่านระบบ Touch ทั้งหมด

สิ่งหนึ่งที่ผมพบขณะเขียนโปรเจกต์นี้คือ Driver LCDWIKI_Touch ไม่ทำงานเมื่อมีการใช้งาน Micro SD card เนื่องจาก Driver ของ SD card ใช้ Hardware SPI แต่ Driver ของ LCDWIKI_Touch ใช้ Software SPI ทำให้ระบบ Touch จะไม่ทำงานหลังจากที่ Driver ของ SD card ถูก initialised อย่างไรก็ตาม ผมได้พบ Driver ของ Touchscreen ที่ใช้ Hardware SPI แล้ว คุณจำเป็นต้องใช้ Driver ตัวนี้ ขอบคุณ Paul Stoffregen ที่ปล่อยออกมา สามารถหาได้ใน Github ที่

XPT2046_Touchscreen Library

ผมกำลังใช้ Driver หน้าจอ LCDWIKI NT35510 รุ่นของ Touchscreen คือ MAR4018 มันคุ้มค่ากับราคามาก มันเป็นหน้าจอ IPS แท้ๆ ต่างจากรุ่นอื่นๆ ในขนาดใกล้เคียงกันที่เป็น TFT

Link สำหรับ Library ของหน้าจอขนาด 4 นิ้ว บนหน้าเว็บ LCDWIKI

ผมได้อัปเดตโค้ดเพื่อใช้ SdFat Library ในการเข้าถึง SD Card ซึ่ง Library นี้มีความเร็วในการอ่านสูงกว่า SD Library เดิมประมาณสองเท่า คุณจะต้องติดตั้ง SdFat Library จาก Library Manager ใน IDE

ผมเจอปัญหาบางอย่างกับ SdFat เนื่องจากมันเข้ากันไม่ได้กับ SD Library แบบร้อยเปอร์เซ็นต์ แต่ตอนนี้มันใช้งานได้แล้ว โดยสามารถแสดงผลไพ่ทั้ง 5 ใบได้ในเวลาประมาณ 1.5 วินาที

17 พฤศจิกายน 2022: การอัปเดตครั้งใหญ่

MAR4018 เป็นหน้าจอ IPS ที่ดีมาก สีสันสดใสและ Contrast ยอดเยี่ยม อย่างไรก็ตาม Touch panel ที่เขาใช้มีคุณภาพที่แย่มาก หน้าจอของผมมีปัญหาเรื่อง Rotation Errors ที่สังเกตเห็นได้ชัด และมี Linearity Errors ที่ "รุนแรง" (Severe) ค่า Linearity แย่มากจนผมต้อง calibrate ตำแหน่งของแต่ละปุ่มด้วยตัวเอง วิธีการ Calibrate หน้าจอ Touch Screen แบบมาตรฐานนั้นใช้ไม่ได้ผล

ผมได้เพิ่มโค้ด Calibration ลงใน Sketch รวมถึงโค้ด Test Calibration ด้วย สามารถดูข้อมูลเรื่อง Calibration และอื่นๆ ได้ในไฟล์ Read_Me

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: draw-poker-cdd92f
2450 บาท
PromptPay QR Code