กลับไปหน้ารวมไฟล์
arduino-catch-the-beat-8x8-led-matrix-740f45.md

โปรเจกต์นี้ได้แรงบันดาลใจมาจาก OSU!Catch the beat หลักการคือจับลูกบอลที่ตกลงมาในเมทริกซ์ 8x8 เริ่มเกมมาด้วย 10 ชีวิต หายไป 1 ชีวิตถ้าจับพลาด แต่ได้คืนมา 2 ชีวิตถ้าจับได้! เมื่อความเร็วเพิ่มขึ้น น้องจะตามจังหวะทันมั้ย? มาลองดู!

Arduino catch the beat gameplay
OSU!Catch the beat gameplay

Retro Rhythm: The Catch The Beat Experience

ได้แรงบันดาลใจจากโหมดยอดฮิต OSU!Catch กันเลยทีเดียว! Arduino Catch The Beat นี่เอาเกมจังหวะความเร็วสูงมาใส่ลงในตาราง LED $8\times8$ ธรรมดาๆ โดยใช้ โพเทนชิโอมิเตอร์แบบหมุน (Rotary Potentiometer) เป็นตัวควบคุม น้องต้องเลื่อน "ตัวจับ" ไปตามแถวล่างสุดของเมทริกซ์เพื่อสกัดกั้น "จังหวะ" (พิกเซล LED) ที่ตกลงมาก่อนที่มันจะถึงพื้น เรียกได้ว่าเป็นคลาสเรียนขั้นเทพสำหรับเรื่อง การแมปอินพุตแบบเรียลไทม์ (Real-Time Input Mapping) และ การตรวจจับการชน (Collision Detection) บน Arduino เลยล่ะ

กลไกเกมและการปรับความยาก

เกมนี้ถูกออกแบบมาให้เล่นเป็นช่วงสั้นๆ แต่ติดหนึบ!

  • ระบบชีวิต: เริ่มเกมมาด้วย 10 ชีวิต ถ้าจับลูกบอลตกหล่นไปนึง เสียชีวิตไป 1 แต่ถ้าจับได้สำเร็จ จะได้ 1 คะแนน และได้ชีวิตคืนมา 2 ชีวิต (แต่ไม่เกินค่าสูงสุดนะ)
  • ความเร็วที่เพิ่มขึ้น: ทุกๆ 4 คะแนนที่ได้ นาฬิกาภายในเกมจะเร่งขึ้น พิกเซลที่ตกลงมาจะเคลื่อนที่เร็วขึ้นเรื่อยๆ ต้องใช้รีเฟล็กซ์ที่เฉียบคมและมือที่นิ่งกับโพเทนชิโอมิเตอร์
  • เสียงตอบรับ: มี ออดแบบแพสซีฟ (Passive Buzzer) คอยให้เสียงเอฟเฟกต์แบบชิปจูนเวลาจับได้ จับพลาด และเสียงไซเรน "เกมโอเวอร์" ที่น่ากลัว

การควบคุมแบบแม่นยำ: จากโพเทนชิโอมิเตอร์สู่เมทริกซ์

ความท้าทายทางเทคนิคหลักอยู่ที่การแปลงสัญญาณอนาล็อกให้เป็นตารางดิจิทัล:

  1. การปรับให้เรียบแบบอนาล็อก: ข้อมูลดิบ 10-bit ($0-1023$) จากโพเทนชิโอมิเตอร์ถูก "แมป" ลงมาให้เหลือแค่ 8 คอลัมน์ของเมทริกซ์ โค้ดใช้บัฟเฟอร์ซอฟต์แวร์เล็กๆ เพื่อให้แน่ใจว่าตัวจับจะไม่ "กระพริบ" ระหว่างคอลัมน์เพราะสัญญาณรบกวนทางอิเล็กทรอนิกส์
  2. ไดรเวอร์เมทริกซ์: โดยใช้ไลบรารี LedControl และชิปไดรเวอร์ MAX7219 โปรเจกต์นี้สามารถเรนเดอร์จังหวะที่ตกลงมาได้โดยไม่กระพริบ แม้ในความเร็วเกมระดับสุดขั้ว
  3. ตรรกะของเฟรม: ลูปเกมจัดการสามสถานะที่แตกต่างกัน: ตำแหน่ง "ตัวจับ" (แถวล่างสุด), "จังหวะที่ตกลงมา" (การเกิดแบบสุ่ม), และ "การตรวจสอบการชน" (เมื่อจังหวะซ้อนทับกับตัวจับ)

สร้างตู้เกมอาร์เคดของตัวเอง

เมื่อน้องเล่นจนชำนาญบนเบรดบอร์ดแล้ว โปรเจกต์นี้เหมาะมากที่จะเอาไปทำเป็น ตู้เกมอาร์เคดขนาดเล็ก (Miniature Arcade Cabinet) โดยการพิมพ์โครงตู้ด้วย 3D printer และใช้ปุ่มหมุน "Trimmer" ขนาดใหญ่ขึ้น น้องจะได้ของตกแต่งโต๊ะที่เอาไว้ท้าทายเพื่อนร่วมงานหรือเพื่อนๆ ได้เลย โปรเจกต์นี้แสดงให้เห็นว่าอุปกรณ์ฮาร์ดแวร์ง่ายๆ เมื่อจับคู่กับตรรกะที่ฉลาดๆ ก็สามารถสร้างประสบการณ์เกมที่ดึงดูดและดูโปรได้มากแค่ไหน

วิธีทำโปรเจกต์นี้:

ขั้นตอนที่ 1: เช็คการเชื่อมต่อ Arduino.

ขั้นตอนที่ 2: คัดลอกและวางโค้ดในสเก็ตช์ใหม่ของ Arduino IDE.

ขั้นตอนที่ 3: เชื่อมต่อ LED matrix, ออด และโพเทนชิโอมิเตอร์เข้ากับ Arduino.

ขั้นตอนที่ 4: เล่นเกมให้สนุกเลย ^^

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

apps:
  - "1x Arduino IDE"
author: "MagonxESP"
category: "Gadgets, Games & Toys"
components:
  - "1x Arduino 101 (or Uno)"
  - "1x 8x8 LED Matrix with MAX7219 Driver"
  - "1x Rotary Potentiometer (10k ohm)"
  - "1x Passive Buzzer"
  - "1x Breadboard & Jumper wires"
description: "โครงงานนี้คือเกมจับจังหวะง่ายๆ แต่โคตรหล่อบน Arduino ใช้แค่ Trimmer Potentiometer กับ Matrix LED ขนาด 8x8 ก็เล่นได้แล้วว่ะ งานง่ายแต่เท่ไม่เบา!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX18Rr9kaqLDFeCLthAzpCsVgeZw2KrzfrS95LIEbgowQT5X37XQkm3jNu2VyLGjAhIcaBYUX9eHjNVQfrsdLFBQizwpwA0/1mT8="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/arduino-catch-the-beat-8x8-led-matrix-740f45_cover.JPG"
lang: "en"
likes: 1
passwordHash: "312a33616f8107f1a94150a4950f95b93824d84db2cd09cfdc7a55f82e110546"
price: 870
seoDescription: "Build a simple Catch The Beat game on Arduino using an 8x8 LED Matrix and a trimmer potentiometer. Easy DIY electronic project for beginners."
tags:
  - "gaming"
  - "led-matrix"
  - "arcade"
  - "interactive"
  - "arduino-101"
title: "เกมจับจังหวะตึงๆ บน Arduino [8x8 LED Matrix]"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/fwhfuiK7wws"
  - "https://www.youtube.com/embed/RjFOLdkZuao"
views: 9035