กลับไปหน้ารวมไฟล์
board-interactive-game-on-line-game-play-46619e.md

โปรเจคเกมกระดาน Arduino แบบ 2 เครื่อง

โปรเจคนี้คือเกมกระดานที่ใช้ Arduino สร้างขึ้นมา 2 เครื่อง (Console) แต่ละเครื่องสามารถเล่นได้สูงสุด 4 คน และจะต้องแข่งขันกับผู้เล่นบนอีกเครื่องหนึ่งผ่าน 5 ด่านเกมที่ทดสอบความจำ ความเร็ว และรีเฟล็กซ์ สำหรับเกมนี้ เราสร้างคอนโซลอิเล็กทรอนิกส์ 2 เครื่องที่เชื่อมต่อกันผ่านเครือข่าย เราใช้ Arduino Mega, โปรโตคอล MQTT และสภาพแวดล้อมการเขียนโปรแกรมแบบอินเทอร์แอคทีฟอย่าง Node-RED ในการสร้างคอนโซลขึ้นมา

หัวใจหลักของโปรเจคนี้พึ่งพา Arduino Mega คู่กับ Ethernet Shield เพื่อสร้างการเชื่อมต่อเครือข่ายที่เสถียร Node-RED ทำหน้าที่เป็นแดชบอร์ดกลางและเซิร์ฟเวอร์สำหรับประมวลผลลอจิกการคิดคะแนน ส่วนโปรโตคอล MQTT ช่วยให้การแลกเปลี่ยนข้อมูลระหว่างคอนโซลทั้งสองเครื่องเป็นแบบเรียลไทม์ ซึ่งช่วยลดความหน่วง (Latency) ระหว่างการแข่งขันได้อย่างมาก

ตัวอย่างการเล่นเกม

เริ่มเกม

เริ่มเกมโดยการกดปุ่มใดปุ่มหนึ่งค้างไว้ 5 วินาที เมื่อทั้งสองเครื่องทำแบบนี้ เกมจะเริ่มต้นพร้อมกับนับถอยหลัง ถ้าคอนโซลพร้อมเริ่ม ไฟ LED บนปุ่มจะติดสว่าง

เกมที่ 1: (ทดสอบรีแอคชัน - เกมไล่ไฟ LED)

เกมนี้ทดสอบการประสานงานระหว่างมือและตา จะมีจุด LED สีแดง 2 จุดติดขึ้นบนแถบ LED ทางขวาและซ้าย พร้อมกับมีปุ่มอาร์เคด 2 ปุ่มที่สว่างขึ้นแบบสุ่ม ด้านหน้าปุ่มทั้งสองนี้จะมี LED ปุ่มหนึ่งเป็นสีเขียว อีกปุ่มเป็นสีน้ำเงิน (การเลือกสีเป็นแบบสุ่ม) จากนั้น แถบ LED ตรงกลางจะมีไฟ LED สีหนึ่งวิ่งขึ้นลงด้วยความเร็วที่ต่างกัน (สีเขียวและสีน้ำเงิน) เป้าหมายคือต้องกดปุ่มอาร์เคดที่ถูกต้องในตอนที่ไฟ LED ที่กำลังเคลื่อนที่มาอยู่ในตำแหน่งเดียวกันกับจุดสีแดงที่อยู่กับที่ เมื่อไฟ LED ทั้งสองหยุดอยู่ในตำแหน่งที่ถูกต้อง เกมจะจบ

เกมที่ 2: (ทดสอบรีแอคชัน)

นี่คือการทดสอบความเร็วในการตอบสนองอย่างแท้จริง โดยจะมีการสุ่มให้ไฟ LED ด้านหน้าปุ่มอาร์เคดติดขึ้นมา เป้าหมายของเกมนี้คือต้องกดปุ่มให้เร็วที่สุดเท่าที่จะทำได้

เกมที่ 3: (ทดสอบความจำ)

ระบบจะแสดงรูปแบบการกะพริบของไฟ LED ไฟ LED ด้านหน้าปุ่มจะสร้างรูปแบบ (Pattern) ขึ้นมา ผู้เล่นต้องกดปุ่มเพื่อสร้างรูปแบบนั้นซ้ำให้ถูกต้อง ถ้าผู้เล่นทำผิด ระบบจะสร้างรูปแบบใหม่ขึ้นมา เกมจะจบเมื่อผู้เล่นสร้างรูปแบบซ้ำได้ถูกต้อง

เกมที่ 4: (ทดสอบรีแอคชันกับสี)

เกมนี้ใช้เทคโนโลยี RFID อย่างสร้างสรรค์ ผู้เล่นจะเห็นสี LED ที่แตกต่างกันอยู่ตรงหน้า เป้าหมายของเกมคือต้องวางแท็ก RFID ที่มีสีแตกต่างกันไปในตำแหน่งที่ถูกต้อง ระบบจะสแกนและตรวจสอบ UID ของแท็กเพื่อยืนยันความถูกต้อง

เกมที่ 5: (ทดสอบความจำเสียง)

ปิดท้ายด้วยเกมความจำเสียง โดยแต่ละปุ่มจะถูกกำหนดโน้ตดนตรีที่แตกต่างกันผ่าน DF Player Mini เกมสุดท้ายนี้คือเกมความจำเสียง แต่ละตำแหน่งจาก 4 ตำแหน่งจะสร้างเสียงขึ้นมา นั่นหมายความว่าปุ่มแต่ละปุ่มแทนทำนองหนึ่ง ผู้เล่นต้องกดปุ่มเพื่อสร้างทำนองทั้งหมดนั้นซ้ำให้ถูกต้อง

การคิดคะแนน

ในทุกเกม เวลาที่ใช้ในการผ่านด่านจะถูกนับ คอนโซลที่ชนะคือคอนโซลที่ผ่านทุกด่านได้เร็วกว่า แต่ละคอนโซลจะส่งคะแนนไปที่แดชบอร์ด และแดชบอร์ดจะแสดงผู้ชนะ Node-RED ทำหน้าที่เป็นแดชบอร์ดกลาง รวบรวมเวลาที่ใช้ในแต่ละเกมจากทั้งสองคอนโซล เมื่อการแข่งขันสิ้นสุดลง ระบบจะคำนวณว่าใครใช้เวลาน้อยกว่าและส่งสัญญาณกลับไปยัง Arduino:

  • คอนโซลที่ชนะ: ไฟ LED จะเปลี่ยนเป็นสีเขียว พร้อมกับเสียงประกาศชัยชนะ
  • คอนโซลที่แพ้: ไฟ LED จะเปลี่ยนเป็นสีแดง พร้อมกับเสียง宣告ความพ่ายแพ้

อิเล็กทรอนิกส์

แต่ละคอนโซลถูกออกแบบมาด้วยวิศวกรรมขั้นสูงและชิ้นส่วนประสิทธิภาพสูง มาดูกันว่ามีอะไรบ้าง:

  1. Arduino Mega 2560 พร้อม Ethernet shield: ทำหน้าที่เป็นสมองหลักของระบบ เพราะต้องใช้ขา I/O เยอะมากสำหรับต่อเซนเซอร์สารพัดชนิด ส่วน Ethernet Shield ก็คอยให้การเชื่อมต่อเน็ตที่เสถียรสำหรับส่งข้อมูลผ่าน MQTT
  2. ปุ่มอาร์เคดพร้อมไฟ LED 4 ปุ่ม: เป็นอินเทอร์เฟซหลักให้ผู้เล่นกด มาพร้อมไฟ LED ในตัว สวยงามและใช้งานได้จริง
  3. เซนเซอร์อินฟราเรด (TCRT-5000) 4 ตัว: ไว้ตรวจจับวัตถุหรือตำแหน่งในระยะใกล้ๆ
  4. เครื่องอ่าน RFID 4 เครื่อง: ใช้ระบุตัวตนของแท็ก (Tag) ในเกมทดสอบสี
  5. แถบ LED แบบกำหนดแอดเดรสได้ (WS2812B) 4 แถบ แถบละ 10 ดวง: ไว้สร้างเอฟเฟกต์แสงสีสวยงามและแสดงสถานะของเกม
  6. DF Player 1 ตัว: โมดูลเสียง MP3 สำหรับเล่นเพลงพื้นหลังและเสียงเอฟเฟกต์
  7. ลำโพง 8 โอห์ม 1 ตัว
  8. เครื่องขยายเสียง (Audio Amplifier) 1 ตัว: ขยายสัญญาณเสียงให้ชัดเจนและดังพอสำหรับเล่นในที่สาธารณะ

เน็ตเวิร์ก

แผนภาพเครือข่ายและการเชื่อมต่อ MQTT

การประกอบโครงสร้าง

การประกอบเน้นที่ความทนทานเป็นพิเศษ เพราะเกมนี้ต้องถูกกดและสัมผัสอยู่ตลอดเวลา ห้ามช็อตนะตัวนี้!

Node-RED

Node-RED ทำหน้าที่เป็นแดชบอร์ดกลางและเซิร์ฟเวอร์สำหรับประมวลผลลอจิกการคิดคะแนน ใจกลางระบบเลยจ้า

การออกแบบ

PCB

เพื่อให้โปรเจคดูโปรขึ้นและแก้ปัญหาเรื่องสายไฟรุงรัง พี่เลยออกแบบ PCB ขึ้นมาเพื่อรวมการเชื่อมต่อระหว่าง Arduino Mega กับโมดูลต่างๆ ให้เป็นศูนย์กลาง

โปรเจคนี้ไม่ใช่แค่โชว์ความสามารถของ Arduino ในการสร้างความบันเทิงเท่านั้น แต่ยังผสานระบบเครือข่ายและ IoT ได้อย่างลงตัว เพื่อมอบประสบการณ์เกมแบบร่วมมือ/แข่งขันที่ตื่นเต้นและออกแบบมาอย่างชาญฉลาดเลยทีเดียว งานนี้จัดไปวัยรุ่น!

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

apps:
  - "1x MQTT"
  - "1x Node-RED"
  - "1x Arduino IDE 2.0 (beta)"
author: "electrozist"
category: "Gadgets, Games & Toys"
components:
  - "1x Arduino Mega 2560 Rev3"
  - "1x RFID-RC522"
  - "1x Arduino Ethernet Shield 2"
  - "1x 3 Watt Speaker"
  - "1x WS2811 Addressable LED strip (1m, 60 LEDs)"
  - "1x TCRT5000 Infared Sensor"
  - "1x Arcade Button with Led"
  - "1x DFPlayer - A Mini MP3 Player"
description: "เกม Multi-player แบบ Interactive จัดไปกับเพื่อนๆ งานง่ายแต่หล่อ!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX1+vf5qmWh+lI51lWcupFLaJDy72zgoKu2DFuzsIsxPTQjFWCOof5F/qzvBf8H9uySpWbeUWOrxVvLNzwlMcsEacAfWKI8GoNQlWvEGuiyjXSCdyAIwwUe6uo1eLw8Bi6SuxQJEAaI6yZA=="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/board-interactive-game-on-line-game-play-46619e_cover.jpg"
lang: "en"
likes: 2
passwordHash: "914475696bee044f66fbfc6ae2b099788a8deeecdafa27d6d9e4dbefcc0d070a"
price: 2450
seoDescription: "Multi-player Interactive Board Game with On-Line game play support. Built using Arduino and ESP32 for an immersive experience."
tags:
  - "Games"
  - "Audio"
  - "Communication"
  - "Entertainment System"
  - "Internet Of Things"
  - "Lights"
  - "Monitoring"
  - "Music"
  - "Remote Control"
title: "Board Interactive Game (On-Line game play)"
tools: []
videoLinks:
  - "https://youtu.be/Rnjg_v-43XQ"
views: 773