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

16x2 Arcade Execution: Arduino LCD Game

คุณเคยเล่นเกม "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 Glyphs (Binary Byte Arrays)

ฟอนต์ LCD มาตรฐานไม่มีรูป "Running Man" หรือ "Cactus" คุณต้องวาดพวกมันทีละพิกเซลโดยใช้ค่า 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); // เขียนภาพลงในหน่วยความจำของ LCD!

เอ็นจิน Array แบบ Side-Scrolling

ภาพลวงตาของวิดีโอเกมเกิดจากการเลื่อนลำดับ string ล้วนๆ

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

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

  • Arduino Uno/Nano (สถาปัตยกรรมมาตรฐาน)
  • จอแสดงผล 16x2 Character LCD พร้อม I2C Backpack (I2C ช่วยลดการเดินสายไฟจาก 16 ขาแบบขนานที่ซับซ้อนให้เหลือเพียง 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"