กลับไปหน้ารวมไฟล์
lx-arduino-tetris-708606.md

LX' Arduino Tetris

เป้าหมายที่ผมตั้งไว้สำหรับอีสเตอร์ปี 2018: ทำให้ เกม Tetris ทำงานบนแผง LED matrix ขนาด 32x32 ได้ โปรเจกต์นี้ใช้ Arduino/Genuino Uno เป็นคอนโทรลเลอร์ ซึ่งมีข้อจำกัดด้านหน่วยความจำค่อนข้างมากตามประสบการณ์ที่ผมพบ ส่วนใหญ่ของโปรเจกต์นี้จึงเป็นการหาวิธีแก้ไขข้อจำกัดเหล่านั้น บางทีในอนาคตอันใกล้ ผมอาจจะปรับให้เข้ากับ Arduino Mega เพื่อเพิ่มหน่วยความจำ

การเดินสายไฟของแผง LED เป็นไปตามที่แนะนำใน เอกสารของ Adafruit ส่วนที่เหลือเป็นเพียง resistor ladder สำหรับปุ่มควบคุมทั้งสี่

การสาธิตการทำงานของเกม:

ซอร์สโค้ดฉบับเต็มของเวอร์ชันล่าสุดสามารถดูได้ที่ GitHub.

รายละเอียดทางเทคนิคเพิ่มเติม

การนำ Logic ของเกมคลาสสิกมาใช้

LX' Tetris เป็นโปรเจกต์ที่เน้นด้านซอฟต์แวร์เป็นหลัก ซึ่งสร้างเกมพัซเซิลอันเป็นเอกลักษณ์ขึ้นมาใหม่บน LED matrix ขนาด 8x8 หรือ 16x32

  • การชนกันแบบ Array-Based: "บ่อ" (กระดานเกม) ถูกจัดเก็บเป็น 2D array เฟิร์มแวร์จะตรวจสอบ bitwise overlap ระหว่าง "ชิ้นส่วนที่กำลังตกลงมา" กับ "ชิ้นส่วนที่วางอยู่แล้ว" ในทุก clock cycle
  • Rotation Matrix: ใช้การหมุนพิกัดที่กำหนดไว้ล่วงหน้าสำหรับ Tetriminos ทั้ง 7 ตัว (I, J, L, O, S, T, Z) เพื่อให้แน่ใจว่าพวกมันหมุนได้อย่างถูกต้องภายในกริด

การตอบสนองของฮาร์ดแวร์

  • เสียงและภาพ: มี buzzer สำหรับเอฟเฟกต์เสียง "Line Clear" และใช้ logic การเปลี่ยนสี หากใช้ RGB matrix ทำให้ได้รับประสบการณ์ที่เหมือน "Game Boy" อย่างแท้จริงในรูปแบบ DIY

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

title: "LX' Arduino Tetris"
description: "A Tetris game for Arduino Uno and a 32x32 LED matrix panel."
author: "RomanSixty"
category: "Gadgets, Games & Toys"
tags:
  - "games"
views: 33704
likes: 49
price: 2450
difficulty: "Intermediate"
components:
  - "1x Arduino UNO"
  - "1x Breadboard (generic)"
  - "1x 32x32 RGB LED Matrix Panel"
  - "4x Pushbutton switch 12mm"
  - "1x Resistor 4.75k ohm"
  - "2x Resistor 10k ohm"
  - "1x Resistor 221 ohm"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles:
  - "https://github.com/RomanSixty/arduino-tetris"
  - "https://github.com/RomanSixty/arduino-tetris"
documentationLinks: []
passwordHash: "8aa3b9c9d4e80e00e7dc8ff8d210e9ddde86cca7ab2fe3a6fb62478a902450d7"
encryptedPayload: "U2FsdGVkX1+1OTnkdin9SR6qG4HQNRMYecnYTCd8XtCxtotDDxGPcKZ+7HWQzifws148IFxgGb7Ka3+5k9ZKD5ME+Nv13rPcdP+sWIHa1o0="
seoDescription: "Build a Tetris game using Arduino Uno and a 32x32 LED matrix panel. A fun DIY project for Arduino makers."
videoLinks:
  - "https://www.youtube.com/embed/rai_6IEXC00"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/lx-arduino-tetris-708606_cover.png"
lang: "th"