กลับไปหน้ารวมไฟล์
arduino-lcd-video-game-520e9d.md

การจำลองเกมอาร์เคดบนจอ 16x2: เกม Arduino LCD

คุณเคยเล่นเกม "No Internet Dinosaur" ของ Google Chrome มาก่อน โปรเจกต์ Arduino LCD Video Game นี้ บังคับให้วิดีโอเกมแนว side-scrolling ที่ดำเนินไปอย่างรวดเร็วทั้งเกมนั้น เข้าไปอยู่ในบัฟเฟอร์ 32 ตัวอักษรที่จำกัดอย่างมากของหน้าจอ 16x2 I2C LCD มาตรฐาน ซึ่งต้องใช้การสร้าง Custom Character อย่างเข้มข้น และการปรับเปลี่ยน String ด้วยความเร็วสูง

1306_oled_retro_game_display_1772681532057.png

การสร้าง Custom Glyph (Binary Byte Arrays)

ฟอนต์ LCD มาตรฐานไม่มีรูป "คนวิ่ง" หรือ "ต้นกระบองเพชร" คุณต้องวาดพวกมันทีละพิกเซลโดยใช้ Binary

  1. 16x2 LCD รองรับ Custom Character ได้สูงสุด 8 ตัว ซึ่งจัดเก็บอยู่ใน CGRAM ขนาดเล็กของมัน
  2. คุณกำหนดตารางพิกเซลขนาด 5x8 ด้วย C++ Bytes บริสุทธิ์:
byte runner[8] = {
  B01110,
  B01110,
  B00100,
  B11111,
  B00100,
  B01010,
  B01010,
  B10001
};
lcd.createChar(0, runner); // Burns the drawing into the LCD memory!

กลไกอาร์เรย์แบบ Side-Scrolling

ภาพลวงตาของวิดีโอเกมเป็นเพียงลำดับ String ที่เลื่อนไปมา

  • อุปสรรค: Arduino สร้าง String ขนาดใหญ่ที่ซ่อนอยู่ (เช่น X X X X)
  • ในระหว่าง loop() โค้ดจะบังคับให้ String เลื่อนไปทางซ้ายหนึ่งช่องทุกๆ 100 มิลลิวินาที โดยใช้ substring(1)
  • ฟิสิกส์ของผู้เล่น (Interrupts): ตัวละครของผู้เล่นจะถูกล็อกอยู่ที่ Column 2 เสมอ
  • if (digitalRead(jumpButton) == LOW) { playerRow = 0; } (ผู้เล่นจะกระโดดไปที่แถวบนสุดทันที!)
  • การตรวจจับการชน: if (obstacleString.charAt(2) == 'X' && playerRow == 1) -> ต้นกระบองเพชรที่อันตรายชนผู้เล่นที่แถวล่างอย่างรุนแรง! Game Over!

ฮาร์ดแวร์ที่จำเป็นสำหรับเกม

  • Arduino Uno/Nano (สถาปัตยกรรมมาตรฐาน)
  • 16x2 Character LCD Display พร้อม I2C Backpack (I2C ช่วยลดการเดินสายจาก 16 พินแบบ Parallel ที่ซับซ้อน เหลือเพียง 4 สาย Jumper Wire ง่ายๆ เท่านั้น!)
  • Arcade Tactile Push Button ที่ตอบสนองได้ดี
  • Passive Piezo Buzzer สำหรับเล่นเอฟเฟกต์เสียงกระโดดและเสียงชนสุดท้าย!

ข้อมูล Frontmatter ดั้งเดิม

title: "Arduino LCD Video Game"
description: "Side-scrolling geometry! Push the primitive 16x2 character display directly into hardware limits by writing custom glyph sets and creating a fast-paced, obstacle-dodging dinosaur-style arcade clone."
category: "Gaming & Entertainment"
difficulty: "Intermediate"