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

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



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


การออกแบบ


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


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