MASTERMIND METAVERSE คือเกมที่ให้ผู้เล่นจัดเรียงและตำแหน่งของสีให้ถูกต้อง
โดยสามารถเล่นแบบ Multiplayer ได้ เมื่อเล่นแล้วมีการเปลี่ยนสีภายในเกมจะส่งค่าไปให้ตัวเครื่องในโลกจริงเปลี่ยนสีตามไปด้วย และเมื่อมีการเฉลยเกิดขึ้นจะมีระบบในการควบคุม Motor ในการเปิดเฉลย พร้อมด้วยระบบการ Streaming ให้สำหรับผู้ที่ไม่สะดวกมาดูตัวเครื่องจริงที่อยู่ในตึก FIBO
สมาชิกผู้จัดทำ
1.นักศึกษาสถาบันวิทยาการหุ่นยนต์ภาคสนาม โครงการ WiL ปีการศึกษา 2565
- ณัฐชนน เทวะวโรดม
- ณัฐวรา นาคีสถิตย์
- รังสิมันต์ เอมโอช
- สัณห์ศิวัช เกื้อกูลสง
- สุพรรษา เทียนทอง
- กฤษฎา วิรัชมงคลชัย
- ชานน คำวิลัยศักดิ์
2.นักศึกษาสถาบันวิทยาการหุ่นยนต์ภาคสนาม โครงการ Internship ปีการศึกษา 2565
- จารุวรรณ วิจิตร์แสงศรี
- ศศิกานต์ เจนพิทักษ์ชัย
- ศุภกร จารุจุณาวงศ์
วัตถุประสงค์
- เพื่อศึกษาออกแบบและพัฒนาระบบ MASTERMIND METAVERSE
- เพื่อศึกษาออกแบบและพัฒนาระบบการควบคุมหลอดไฟ IoT
- เพื่อสร้างระบบที่คนเล่นสามารถเล่น 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 รวบกับการทำงานของตัวเครื่อง
ภาพหลังจากการทำ Image processing
หน้า Website
สรุปผลการทดลอง
MASTERMIND METAVERSE สามารถทำได้ตามแผนที่วางไว้ คือ เป็นเกมที่เล่นแบบ Online จากที่ไหนก็ได้และสามารถควบคุมระบบที่อยู่ในโลกจริงได้โดยที่ MASTERMIND METAVERSE จะทำออกมาเป็น 2 โหมดก็ คือ แบบโหวตหาคำตอบที่มากที่สุดและโหมดคิดคะแนนจากการกด หลังจากที่ได้ลองให้พี่ที่ไม่มีส่วนเกี่ยวข้องกับงานลองเล่นแล้วทำให้ได้รับ Feedback กลับมาจำนวนหนึ่งเพื่อไปปรับแก้ไข MASTERMIND METAVERSE ให้ดีขึ้น
ข้อเสนอแนะ
- ในส่วนของหลอดไฟ ถ้าใช้หลอดไฟที่สามารถควบคุมด้วย IFTTT ได้ จะทำให้สามารถทำระบบนี้ได้ง่ายขึ้น (แต่ ewelink และ IFTTT อาจต้องมีค่าใช้จ่ายเพิ่ม)
- ในส่วนของ Motor ถ้าใช้ Unity สั่ง Motor ตรง ๆ เลยน่าจะดีกว่า
- เพิ่มลูกเล่นของระบบให้มากขึ้น
- ใช้กล้องที่สามารถมองเห็นสีชัดเจนได้เลยโดยไม่ต้องผ่านการ Image processing
- คนโฟกัสกับตัวเกมมากไปทำให้ตัวไลฟ์ไม่เด่นและคนไม่ค่อยมองกัน
- เวลาที่ให้น้อยไปสำหรับคนที่คิดเยอะเพื่อความถูกต้อง (แต่การที่มีเวลาเยอะทำให้คนสามารถหันไปดูไลฟ์ได้)
- เสียงเอฟเฟคเพิ่มเติมเช่นตอนหมดเวลาหรือตอนขึ้นบรรทัดใหม่
ข้อมูลเพิ่มเติม
Source Code
Video Gameplay