Final Project¶
Project Brief¶
My final project is an interactive board game inspired by the epic Mahabharata war.
Features¶
Story-Based Game
-
The game is based on the Mahabharata war.
-
Players choose to play as Pandavas or Kauravas.
-
Events on the board follow the real order of the war.
Three-Level Game Board
-
The board has three circular levels (big, medium, small).
-
Players move from one level to the next by reaching special gates.
-
Each level has its own challenges and events.
-
Rotating boards
Astra Cards
-
Each player gets Astra cards (special powers).
-
Cards can be used when landing on your own side’s event.
-
Players scan the card to use its power to get strenghth.
Learn While Playing
-
The game teaches about Indian mythology and the Mahabharata.
-
It also helps players think, plan, and work as a team.
Planning¶
Following is the panning of the gameflow
Cards ideation
Sketches¶
Final sketch
Prototyping¶
Board design. Three cicular dics stacked on top of each other.
Card design
3d modelling¶
Earlier version of the board game setup
Pawns design
Element design
3d printing¶
Test print
Main Framework¶
- The entire board will be laser cut including the outermost packaging.
- The pawns and the pointers will be 3d printed using PLA.
Finishing and Aesthetics¶
- Painting the 3d parts with acrylics paints
- All parts are fixed using Fevicol and Feviquick.
- Final board and packaging print
List of Machines and tools used¶
Machine
- Laser Cutter
- 3d Printing
- SRM Pcb milling
Electronics¶
Component | Description |
---|---|
Xiao RP2040 Board | Microcontroller board to control all modules |
Speaker | Outputs audio played by the DFPlayer Mini |
MP3 Player | DFPlayer Mini used to play MP3 audio files |
RFID Cards | 13.56 MHz cards used for identification |
RFID Reader | Module to scan RFID cards (e.g., RC522) |
SD Card | Stores audio files in MP3 format for the DFPlayer |
WS2812 RGB LED Ring 8bit | RGB LED ring for visual feedback |
Push Button | For triggering events or resetting the system |
Input Devices¶
- RFID Cards – Players scan these to activate events or powers
- Push Buttons – Can be used for triggering events or confirming actions.
Output Devices¶
- Speaker – Plays audio or voice narration from the cards.
- WS2812 RGB LED Ring (8-bit) – Acts as a dice to move the player
Connections¶
BOM¶
Project plan¶
Laser cutting¶
I have used laser cutter to cut all the pieces like the three dics, the packaging box and the rfid holder.
3d Printing¶
Printed two covers for the neopixel ring to check which one is perfect that it is also study and at the same time pass enough amount of light
Pcb production¶
I created a dedicated PCB to securely hold and connect the DFPlayer Mini module. This custom board includes all necessary pin headers and solder points to integrate the DFMini with other components in my circuit, making the overall setup more compact and organized.
Electronics testing¶
I began by testing each electronic component individually to ensure proper functionality before integration. The RFID module was tested to verify that it could successfully read card UIDs and communicate with the microcontroller. The NeoPixel ring was checked separately by running basic color and animation tests to confirm proper wiring and power. Similarly, the DFPlayer Mini was tested by playing audio files from a microSD card, triggered through serial communication, and connected to a speaker for output. Once each component worked reliably on its own, I proceeded to integrate them onto a single system. This allowed me to streamline the connections, troubleshoot more effectively, and ensure that all components could interact as intended in the final setup.
Testing the Rfid¶
On Arduino
On Xiao
Testing neopixel¶
Testing with GPD2846A then dfminiplayer¶
At first, I used the GPD2846A MP3 player for sound, but it had some problems. The sound would start playing on its own as soon as the power was on, and I couldn’t control which file to play through code. It only worked with physical buttons, which didn’t suit my project where I wanted each RFID card to play a specific sound. So, I switched to the DFPlayer Mini. It lets me control everything using code—like playing a specific file, changing volume, or stopping the sound. This worked much better for my interactive setup.
GPD2846A
Dfmini player
Application and implication¶
System Integration¶
Link to the system integration page
The integration process for the final project involved assembling multiple mechanical, electronic, and functional elements into a single, cohesive system to ensure smooth operation and user interaction.
Mechanical Integration¶
Mounting the rfid card holder
To keep the RFID reader in place so the cards can be scanned properly.
Cover for the neopixel
Neopixel was mounted on a hollow pipe and to a cover to protect the NeoPixel lights and make the light look smooth and even.
Mounting the speaker
A small holder to fix the speaker using M3 screws so it stays in place without shaking.
Electronics Integration¶
I connected all electronic parts according to the circuit:
-
The RFID reader, NeoPixel LEDs, speaker, and LCD screen were all wired to the microcontroller.
-
All wires were arranged properly so they don’t get loose or break.
-
I checked each part separately before putting everything together.
Wirings
Holder for the cards
A separate holder to neatly store all the RFID cards.
Integrating the whole setup together
After assembling all the parts, I fixed the PCB in its position connected all the wires properly and integrated the whole setup together into one complete system.
Finishing¶
Painting
I carefully stuck the printed game design on the board to make it look clean and easy to understand.
Intellectual Property Strategy¶
This work is licensed under a CREATIVE COMMONS ATTRIBUTION-NONCOMMERCIAL-NODERIVS 4.0 INTERNATIONAL LICENSE. This will allow you to share, reproduce or distribute the work for any purpose but must acknowledge (credit) this project while doing it.
Acknowledgments¶
To understand how rfid card works I have taken reference from Bianca's work and some youtube videos
To understand how dfmini works I have taken reference from Koharu Takeda's work some youtube videos
Exercise files¶
Below are the files for:
Code: