MASTERMIND METAVERSE

MASTERMIND METAVERSE

MASTERMIND METAVERSE คือเกมที่ให้ผู้เล่นจัดเรียงและตำแหน่งของสีให้ถูกต้อง

โดยสามารถเล่นแบบ Multiplayer ได้ เมื่อเล่นแล้วมีการเปลี่ยนสีภายในเกมจะส่งค่าไปให้ตัวเครื่องในโลกจริงเปลี่ยนสีตามไปด้วย และเมื่อมีการเฉลยเกิดขึ้นจะมีระบบในการควบคุม Motor ในการเปิดเฉลย พร้อมด้วยระบบการ Streaming ให้สำหรับผู้ที่ไม่สะดวกมาดูตัวเครื่องจริงที่อยู่ในตึก FIBO

สมาชิกผู้จัดทำ

1.นักศึกษาสถาบันวิทยาการหุ่นยนต์ภาคสนาม โครงการ WiL ปีการศึกษา 2565

  • ณัฐชนน เทวะวโรดม
  • ณัฐวรา นาคีสถิตย์
  • รังสิมันต์ เอมโอช
  • สัณห์ศิวัช เกื้อกูลสง
  • สุพรรษา เทียนทอง
  • กฤษฎา วิรัชมงคลชัย
  • ชานน คำวิลัยศักดิ์

2.นักศึกษาสถาบันวิทยาการหุ่นยนต์ภาคสนาม โครงการ Internship ปีการศึกษา 2565

  • จารุวรรณ วิจิตร์แสงศรี
  • ศศิกานต์ เจนพิทักษ์ชัย
  • ศุภกร จารุจุณาวงศ์

วัตถุประสงค์

  1. เพื่อศึกษาออกแบบและพัฒนาระบบ MASTERMIND METAVERSE
  2. เพื่อศึกษาออกแบบและพัฒนาระบบการควบคุมหลอดไฟ IoT
  3. เพื่อสร้างระบบที่คนเล่นสามารถเล่น Online จากที่ไหนก็ได้ในรูปแบบ Multiplayer game

แผนการดำเนินงาน

การนำเสนอผลการออกแบบ

วิธีการเล่น

แผนผังการทำงานของระบบ Mastermind Metaverse

  • เมื่อเริ่มเกมผู้เล่นจะต้องทำการโหวตเลือกสีภายในระยะเวลาที่กำหนด โดยสีที่ได้รับคะแนนโหวตสูงสุดจะถูกนำไปใส่ไว้ในช่อง และสีดังกล่าวจะไม่สามารถถูกโหวตได้อีกจนกว่าจะจบแถวนั้น ๆ
  • เมื่อทำการโหวตครบทั้ง 4 ครั้ง สีก็จะครบทุกช่องในแถวและทำการตรวจคำตอบ ซึ่งจะทำการนำเอาสีที่ใส่ในแต่ละช่องของแถวนั้น ๆ มาเปรียบเทียบกับคำตอบที่ทำการสุ่มเอาไว้ในตอนเริ่มเกมก็จะแสดงเป็นสี 3 สีแสดงอยู่ใต้ช่องนั้น ๆ เพื่อให้ผู้เล่นได้นำไปวิเคราะห์หาคำตอบที่ถูกต้อง
  • หากผู้เล่นสามารถใส่สีได้ตรงตามคำตอบ ผู้เล่นก็จะถูกส่งไปยังหน้าชนะของเกม แต่หากผู้เล่นยังไม่สามารถใส่สีได้ตรงตามคำตอบภายใน 5 รอบ ผู้เล่นก็จะถูกส่งไปยังหน้าแพ้ของเกมแทน
  • โดยทั้งหน้าแพ้และหน้าชนะ ผู้เล่นจะมีปุ่มให้กด 2 ปุ่ม คือ History เพื่อดูประวัติการเล่นของผู้เล่นได้ ทั้งจำนวนรอบที่เล่น จำนวนที่แพ้และชนะ แต่ประวัติในการเล่นนี้จะถูกรีเซ็ทเมื่อผู้เล่นออกจากเกม และ ปุ่ม New Game เพื่อเริ่มเล่นเกมใหม่อีกครั้งแต่ปุ่ม New Game จะสามารถกดได้เฉพาะเจ้าของห้องเท่านั้น 

การทำงานส่วนต่าง ๆ ของระบบ Mastermind Metaverse

ส่วนการควบคุมหลอดไฟ

ส่วนการทำงานของ Host

ส่วนการควบคุม Motor

ส่วนการทำงานของ Host

  • ผู้เล่นสามารถที่จะตั้งชื่อของผู้เล่นได้
  • ผู้เล่นทุกคนสามารถสร้างห้องของผู้เล่นได้เองและสามารถที่จะกำหนดจำนวนผู้เล่นสูงสุดของห้องนั้น ๆ ได้ โดยการพิมพ์ชื่อห้องและจำนวนผู้เล่นสูงสุด
  • ผู้เล่นสามารถกดเข้าร่วมห้องได้ผ่านทางรายชื่อห้องที่ปรากฎขึ้นในเกม
  • มีเพียงเจ้าของห้องเท่านั้นที่สามารถกดเริ่มเล่นเกมได้ ผู้เล่นคนอื่นในห้องจะไม่สามารถกดเริ่มเกมได้ แต่หากเจ้าของห้องออกจากห้องหรือออกจากเกมไป ผู้เล่นคนอื่นก็จะขึ้นมาเป็นเจ้าของห้องแทนและสามารถกดเริ่มเกมได้

ส่วนการควบคุมหลอดไฟ

1.การเชื่อมต่อหลอดไฟ

  • หลอดไฟทั้ง 12 หลอด ที่เลือกใช้ในการทำโปรเจคใช้คือ Lamptan smart wifi bulb 10W
  • สามารถเชื่อมต่อเข้ากับ Application Tuya Smart ในการควบคุมหลอดไฟได้
  • ในการเชื่อมต่อเข้าระบบ IoT ของ Tuya สามารถเชื่อมต่อได้ผ่าน Tuya IoT Platform
  • Integrations เข้ากับระบบ Home Assistant ซึ่งทำหน้าที่เป็นเหมือนศูนย์กลางการเชื่อมต่อระบบ IoT

2.การสั่งหลอดไฟ

  • สร้าง Scene สำหรับการเปลี่ยนสีหลอดไฟใน Hone Assistant

3.การเชื่อมต่อระหว่าง Unity และหลอดไฟ

  • สั่งการ Home Assistant ผ่าน Webhooks โดยการส่ง request ผ่าน Unity
  • สั่งการหลอดไฟผ่าน Home Assistant โดยเชื่อมต่อ Device ผ่าน Tuya IoT และ Tuya Smart

ส่วนการควบคุม Motor

  • ใช้ Arudino ในการเขียนคำสั่งควบคุม DC Motor ซึ่ง Board ที่ใช้คือ ESP8266 และ Driver Motor l298n
  • ควบคุมกาเปิด ปิดของ Motor ด้วยการอ่านค่าจาก FEED Adafruit IO เมื่อ Adafruit มีการรับค่าเข้ามา
  • ควบคุมการส่งค่ามาให้ adafruit ด้วย IFTTT เช่น ถ้า On ให้ส่งค่า 1 ถ้า Off ให้ส่งค่า 0 เป็นต้น
  • ควบคุมการทำงานของ IFTTT ด้วย Unity

ส่วนของ Video streaming

  • ใช้กล้อง Webcam (Logitech c922) ต่อเข้ากับคอมพิวเตอร์
  • โดยปรับค่าของตัวกล้องให้สามารถรับแสงจากหลอดไฟแล้วเห็นสีที่หลอดไฟแสดงออกมาได้
  • โดยมีการนำ Image processing เข้ามาใช้ในการปรับค่าแสง ความอิ่มตัวของสี และเปลี่ยนสีของหลอดไฟที่รับเข้ามาให้แยกแต่ละสีง่ายขึ้น
  • โดยการ Live stream จะ stream ผ่าน OBS studio และ Youtube

ส่วนของการทำ Website

  • MASTERMIND METAVERSE เสร็จ ทำการ Build ตัวเกมในรูปแบบของ WebGL เพื่อ Upload ลง Web Hosting
  • โดยเลือกใช้เป็น SIMMER.io โดยเมื่อ Upload ตัว WebGL ลง SIMMER.io สำเร็จแล้ว จะสามารถนำตัวเกมที่ SIMMER.io Host อยู่มาใส่เป็น Embed code บนหน้าเว็บได้
  • โดยตัวเว็บของ MASTERMIND METAVERSE และ Live Streaming จะถูกสร้างและพัฒนาผ่านแพลตฟอร์ม Wix.com

ส่วนการออกแบบเครื่องเล่น

  • การออกแบบโครงสร้างเป็นกล่องสี่เหลี่ยมเนื่องจากเป็นรูปทรงที่สามารถประกอบง่าย จัดวางง่าย ขนย้ายสะดวกสบาย และมีความมั่นคง
  • โดยวัสดุที่เลือกใช้คืออลูมิเนียมโปรไฟล์เพื่อความแข็งแรงของโครงสร้างภายใน และภายนอกประกอบด้วยอะคริลิกเพื่อความสวยงาม
  • มีหลอดไฟไว้ข้างหน้าเพื่อแสดงหลอดไฟตามเกม Mastermind โดยจะมีการล็อคขั้วหลอดไฟกับอลูมิเนียมโปรไฟล์เพื่อความแข็งแรงของหลอดไฟ
  • ระบบสำหรับ Motor ในการยกแผ่นเฉลย โดยจะใช้ Motor เพียง 1 ตัว ในการยกแผ่นอะคริลิกขึ้นโดยมอเตอร์จะอยู่ตรงกลางของแผ่น
  • จะมีเพลา 2 อันไว้เพื่อทำให้แผ่นที่ยกไม่เกิดการเอนเอียงเวลาขึ้นหรือลง
  • มีลิมิตสวิตช์เพื่อรับค่าว่าเลื่อนไปถึงตำแหน่งที่ต้องการหรือยัง
  • มีระบบระบายความร้อนด้วยพัดลมเนื่องจากตัวเครื่องตัวเปิดทำงานตลอดเวลาทำให้อาจเกิดความร้อนขึ้น

ผลการทดลอง

Video การเล่น MASTERMIND METAVERSE รวบกับการทำงานของตัวเครื่อง

0:00
0:00

ภาพหลังจากการทำ Image processing

หน้า Website

สรุปผลการทดลอง

MASTERMIND METAVERSE สามารถทำได้ตามแผนที่วางไว้ คือ เป็นเกมที่เล่นแบบ Online จากที่ไหนก็ได้และสามารถควบคุมระบบที่อยู่ในโลกจริงได้โดยที่ MASTERMIND METAVERSE จะทำออกมาเป็น 2 โหมดก็ คือ แบบโหวตหาคำตอบที่มากที่สุดและโหมดคิดคะแนนจากการกด หลังจากที่ได้ลองให้พี่ที่ไม่มีส่วนเกี่ยวข้องกับงานลองเล่นแล้วทำให้ได้รับ Feedback กลับมาจำนวนหนึ่งเพื่อไปปรับแก้ไข MASTERMIND METAVERSE ให้ดีขึ้น

ข้อเสนอแนะ

  • ในส่วนของหลอดไฟ ถ้าใช้หลอดไฟที่สามารถควบคุมด้วย IFTTT ได้ จะทำให้สามารถทำระบบนี้ได้ง่ายขึ้น (แต่ ewelink และ IFTTT อาจต้องมีค่าใช้จ่ายเพิ่ม)
  • ในส่วนของ Motor ถ้าใช้ Unity สั่ง Motor ตรง ๆ เลยน่าจะดีกว่า
  • เพิ่มลูกเล่นของระบบให้มากขึ้น
  • ใช้กล้องที่สามารถมองเห็นสีชัดเจนได้เลยโดยไม่ต้องผ่านการ Image processing
  • คนโฟกัสกับตัวเกมมากไปทำให้ตัวไลฟ์ไม่เด่นและคนไม่ค่อยมองกัน
  • เวลาที่ให้น้อยไปสำหรับคนที่คิดเยอะเพื่อความถูกต้อง (แต่การที่มีเวลาเยอะทำให้คนสามารถหันไปดูไลฟ์ได้)
  • เสียงเอฟเฟคเพิ่มเติมเช่นตอนหมดเวลาหรือตอนขึ้นบรรทัดใหม่

ข้อมูลเพิ่มเติม

Source Code

Video Gameplay

Share with: