Inspiration
PC gaming is super sedentary. Gamers sit hunched over a keyboard for hours, leading to bad posture and zero physical activity.
Our favourite game is Minecraft (Demon Slayer Mode) so that gave us an idea: what if we can turn Minecraft into an immersive experience?
What it does
Nichirin B turns a real sword into a hardware controller. Minecraft becomes an immersive and physical experience over Bluetooth. The hardware connects our sword to IRL jumps and arm swings, forcing the player to stand up and move. By using IMU data (MPU6050) and translating physical G-force spikes into keystrokes, the controller connects the physical and digital world.
How we built it
Hardware: We used an ESP32 for the IRL physics the code and a MPU6050 IMU motion sensor to detect swings, turns and jumps. We also attached a joystick for steering and changing walking. Finally, we added a 9V battery to make it fully wireless.
Code: We wrote the firmware in Arduino (C++). About 50 times a second, it reads the sensor, decides what move you made, and sends the right key or click over Bluetooth. A 1.5G Z-axis push-off triggers a jump, and a hard X-axis spike executes a sword swing. The ESP32 works as a dual-role Bluetooth HID device for gameplay.
Challenges we ran into
- The motion sensor wasn't detected at first because the pins weren't soldered and the wiring was off.
- The Bluetooth library only works with an older ESP32 version, which took a while to figure out.
Accomplishments that we're proud of
This was our first time ever working with hardware. Before this weekend, we had never wired a sensor, used a breadboard or programmed a microcontroller. In about 24 hours, we had a full working prototype of our favourite game with no extra software.
What we learned
How to wire and debug hardware, read raw data from a motion sensor and send keyboard and mouse input over Bluetooth. We also learned that most bugs come down to one loose wire.
What's next for Nichirin
- A 3D-printed sword so we can hide the hardware.
- Adding universal control so we can add other games like Roblox, Valorant. etc
Log in or sign up for Devpost to join the conversation.