Inspiration
Our project was inspired entirely by the reveal of the mystery track. As soon as we learned what it was, we knew we wanted to take on the challenge because it sounded like a fun and exciting opportunity for both of us. Coming into the hackathon, we had already decided that we wanted to push ourselves outside our comfort zones, learn new skills, and build something we had never attempted before.
Neither of us are Mechanical Engineering students. Neither of us are Electrical Engineering students. In fact, we came into this hackathon with little to no experience in robotics or hardware. Rather than letting that discourage us, we saw it as an opportunity to challenge ourselves and learn something completely new.
What it does
Rattle Royale is an interactive multiplayer game where players compete to control a physical robot using their phones. The robot is powered by an Arduino and receives movement instructions through a backend web service exposed using ngrok.
Players join a lobby through our web application and compete by shaking their phones. Each shake contributes to a virtual pulling force that influences the robot's movement toward that player. As players compete for control, the robot continuously changes direction based on their inputs.
The web application also allows players to join games, track the robot's estimated position on a virtual map, and compete against one another to win.
How we built it
We started by connecting an Arduino to a stepper motor and writing a basic script to make the motor rotate. Once we successfully controlled one motor, we connected everything to a breadboard and worked on getting both stepper motors running simultaneously.
From there, we began physically constructing the robot. Without access to a robotics kit or 3D printer, we improvised a chassis using cardboard, a breadboard, lots of hot glue, electrical tape, and a little bit of prayer. We even created our own wheels using Arizona Green Tea bottle caps, cutting holes in their centers so they could attach to the stepper motors.
After assembling the robot, we shifted our attention to the software. We developed a web application and used ngrok to expose our local server, allowing players to connect to a multiplayer lobby. We then implemented the backend game logic to process player inputs, determine which player was controlling the robot, and calculate how the robot should move toward them.
One of the more challenging parts of development was implementing the robot's movement logic. Since the robot could move both forward and backward but had limited turning capabilities, we needed to account for its current position and orientation when calculating how to move toward a player.
Challenges we ran into
One of our biggest challenges was figuring out how to construct a functional robot chassis without access to a robotics kit or 3D printer. We had to experiment with different materials, weight distributions, and mounting techniques to create something that could support all of our components while still allowing the robot to move.
Another major obstacle was our lack of experience with hardware. Learning how to connect and operate the Arduino, ULN2003 motor drivers, and stepper motors required a significant amount of trial and error.
We also struggled with tracking the robot's position without proper positional sensors. Since our robot could move forward, backward, and along curved paths, we had to develop mathematical logic to estimate its position based on movement speed, direction, and elapsed time.
Finally, our available hardware created some limitations. Because our Arduino did not have built-in Wi-Fi capabilities, we had to maintain a wired USB connection to communicate with the backend. This cable added weight and restricted the robot's movement, making it more difficult for our motors to operate efficiently. Ideally, we would have used a Wi-Fi-enabled microcontroller to communicate directly with the web service and eliminate the wired connection entirely.
Accomplishments that we're proud of
One of our proudest accomplishments was building a functional robot almost entirely from recycled and improvised materials. Creating a chassis out of cardboard and wheels from Arizona Green Tea bottle caps was something we never expected to do, but it became one of the most memorable parts of the project.
We are also proud that we successfully got our robot moving using two stepper motors and an Arduino, especially considering our limited experience with hardware before the hackathon.
Another major accomplishment was developing the multiplayer web application and backend game logic that allowed players to interact with the robot. Being able to connect a physical robot to a competitive multiplayer game was a significant achievement for us.
Most importantly, we are proud that we stuck with our original idea. There were several moments when switching to a simpler project would have been easier, but we continued working through the challenges and committed to seeing Rattle Royale through to the end.
What we learned
One of the biggest lessons we learned was how to deal with adversity and unexpected challenges. Even when you have an exciting idea and a clear vision, bringing that idea to life can introduce obstacles you never anticipated. This project taught us the importance of adapting, troubleshooting, and continuing to work toward a solution when things don't go as planned.
On the technical side, we gained hands-on experience with Arduino programming, stepper motor control, breadboard wiring, and basic robotics. We also learned how to translate physical movement into mathematical calculations that could be incorporated into our backend game logic.
We learned a surprising amount about weight distribution and physical design. At one point, we attempted to reduce the robot's weight by cutting away excess cardboard. However, we quickly discovered that removing too much material negatively affected the robot's balance. We ended up having to reattach pieces of cardboard to restore stability. This experience taught us that making a robot lighter does not always make it better.
We also gained a better understanding of the differences between an Arduino and a Raspberry Pi. During development, we explored using a Raspberry Pi as an alternative controller and even began working on an implementation. If we had access to a Raspberry Pi with Wi-Fi capabilities, we would have seriously considered rebuilding the robot around it to eliminate the USB connection and allow for wireless communication.
What's next for Rattle Royale
There are several directions we would love to explore with Rattle Royale.
One of our biggest goals is to introduce additional game modes. Currently, Rattle Royale features two modes: Chase, where players shake their phones as much as possible to pull the robot toward them, and Endurance, where players must strategically use a limited number of shakes. Given the time constraints of the hackathon, we are proud of implementing these two modes, but we have several more ideas we would like to explore.
One potential addition is a reaction-time game mode. In this mode, a beat or randomly timed sound would play every few seconds, and players would compete to react by shaking their phones as quickly as possible. The player with the fastest reaction would gain control of the robot, creating a different type of competition focused on timing rather than the number of shakes.
We would also love to improve the robot itself. With access to better components and equipment, we could build a lighter, faster, and more efficient chassis. Our current stepper motors provide consistent, low-speed movement, but they struggle with the combined weight of the robot and its USB connection. Upgrading the motors and improving the overall design would make gameplay much more responsive.
Finally, one of our original goals was to eliminate the USB connection entirely. We explored several potential solutions during the hackathon, but with our available hardware and limited time, wireless control was not feasible. Moving forward, we would love to incorporate a Wi-Fi-enabled microcontroller so that the robot could communicate with the backend wirelessly and move freely around the table.
Ultimately, we see Rattle Royale as a project with plenty of room to grow. What started as an ambitious idea for a mystery track became a working combination of robotics, web development, and multiplayer gameplay, and we're excited about what we could build with more time and resources.
Log in or sign up for Devpost to join the conversation.