A fishing game
Fishbot Frenzy is a multiplayer, interactive fishing game centered around dynamic gameplay and integrated engineering. The system consists of a tank containing several "fishbots" that move among three motorized obstacles. Players attempt to “catch” as many fishbots as possible with magnetic fishing rods. Once collected, each fishbot is placed into a player's personal scoring box. A digital score display updates in real time when it senses the fishbot returning to the main tank. Players can monitor their progress and compete head to head!
For the first phase of our project, we wanted to see if we could make a simple prototype of the tank, a fishing rod, a functioning bristlebot with an off switch, and a working score box that could detect the presence of a fishbot. Our goal was a basic but integrated system.
The mechanical subteam's goal was to prototype:
Almost all of these goals were met successfully! Tank and scorebox prototypes were designed in Onshape and then laser cut from eucaboard. The fishbots were unable to leave the scorebox, but all other goals were achieved. Beyond those goals, an initial prototype of a custom fishbot 3D print was created as well.
Tank CAD and physical prototype
Scorebox CAD and physical prototype
Bristlebot physical prototype and CAD of fishbot shell #1
The electrical subteam's goal was to:
All of these goals were met! The object detection system was based on an ultrasonic sensor and created using an LED and Arduino R3 Uno.
Scoring sensor circuit diagram
The bristlebot was equipped with a battery, motor, and switch.
The software goal for this phase was to develop scoring logic from the object detection system, and this was successfully met. Using Arduino IDE to set a distance threshold, the program would trigger the LED based on fishbot detection, increment a score in the serial monitor, and enforce a delay to prevent repeat scoring.
This phase was focused on enhancing functionality and aesthetics of different parts of our project, along with limited amounts of integration.
The mechanical subteam's goal was to increase the complexity of the tank and score box, and to further iterate upon the fishbot shells.
This iteration of the tank was designed to be multilevel, with a DC motor rotating a central platform. Due to a lack of testing, the ramp was too steep and the upper level was too narrow for the fishbots to navigate; however, as a proof of concept of complexity and potential for a tiered tank design, it was successful!
Tank CAD and physical prototype
The scorebox design was changed to mimic a large fish consuming the fishbot. While the design did not include the tunnel that would lead the fish back to the main tank nor any object detection, it was a successful proof of concept for a geared chomping mechanism. An SG90 Micro Servo Motor drove the spur gears that moved the jaws.
Scorebox and servo CAD
Scorebox prototype
Finally, for the fishbots, we were able to create three different fishbots! We tested out different body shapes and different materials, including PLA and TPU. A eucaboard topper for aesthetics was considered but decided against due to the increased weight.
Straight-legged fishbot (shell #2) CAD.
A ⅛" fish topper designed to be cut from eucaboard.
A fishbot with legs tilted to 25° and better-designed motor casing (shell #5).
The main goal for electrical and software during this phase was to test RFID sensing. Unlike a simple distance sensor, RFID would allow us to assign different points to unique fish bots.
RFID sensor and chip.
The software successfully integrated with the scorebox; the opening and closing jaws were limited in software rather than in hardware. Electrical also began working directly with mechanical to improve fishbot wiring.
Many challenges presented themselves during this phase. The tank needed to be rethought; the ramp didn't work, the paths were too narrow, and the square shape didn't work particularly well. The scorebox didn't fit any fish inside, had no tank connection (tunnel) designed, and had no plan for integrating with RFID. Our next steps included:
For this phase, we needed to finalize designs for a clear path to fabrication and integration.
The final iteration of the fish tank began to take shape in CAD. The size of the tank increased substantially from the previous phase and while the floor-moving mechanism was removed, three DC motors powering different obstacle mechanisms (scotch yoke and two spinners) were placed instead.
In order to allow access to the bottom layer of electronics, the structure was planned out such that the main platform could be removed along with two structs and half of the railings. Using six struts not only meant that four struts could be permanently in place, but also that the scoreboxes could be permanent attachments directly across from each other. The dome shape was partially for aesthetics, and partially to improve game balance; the added difficulty of fishing through a roof was expected to alleviate the fact that the fish were highly magnetic.
(Top) Isometric view of the tank CAD at this point.
(Right) Diagram detailing how struts and platform might be removed.
Top-down view. Note the two layers made to accommodate the obstacle motors.
Planning for the score display started during this phase. The initial design located the score display on the back of the scoring boxes; however, this would prevent the opponent from seeing the scores. We chose to move the score display away from the score box and planned to mount them to the tank struts instead.
Quick sketches of where the LED display might be mounted.
The score box was also initially intended to close in response to the placement of a fish using a distance sensor. However, implementing the distance sensor in such a cramped space with moving parts in a manner that wouldn't accidentally trigger in response to the box but would still detect fish dropped in. Ultimately, we chose to instead randomize the opening and closing mechanism of the scorebox, much like other popular magnetized tabletop fishing games, which would simplify the sensor layout.
Initial scorebox design with distance sensor and score display.
Front and back views of the updated CAD design.
The fishbot iteration hadn't ended yet, either! At this point, the team determined that the best course of action would be to design an internal PLA shell with an external TPU casing, rather than continue forward with the full TPU shell. A shift from 3V coin cell batteries to smaller 1.5V button cell batteries to save space and weight was made after determining that there was no noticeable speed shift, but this meant there needed to be a full overhaul of the CAD. For this sprint, no new shells were created, but rigorous testing was done to determine the next steps.
The focus for electrical and software was on continuing to work with RFID functionality, now integrating it with a seven-segment LED display to show points. Each time an RFID token passed in front of the sensor, the LED display would change its display to increment a number.
Electrical diagram for the shift register interfacing an Arduino and a seven-segment display.
Updated directory structure for phase 3.
this sure is code
We now have the overall structure for how the game is going to be integrated between subteams. From here, our main focus is shifting to fabrication and iterative development to build, test, and refine each of our components before the final demonstration day!
Like many engineering projects with a deadline, we got the most work done during the final three weeks of our project! Here's the breakdown on how we flat-out sprinted through the rest of this game.
The tank was mostly done at this point; the scotch yoke, base, motors, and associated supports were all placed and dimensioned in CAD. The main components added during the final segment were the dome cap, a third layer of railings, and the 3D-printed obstacle mounts for the motors and scotch yoke.
Final CAD Of the tank.
However, it still wasn't finished enough to be cut and assembled immediately. The bottom layer of the railing design changed after testing determined that the fishbots would get stuck on sharp corners; a third layer was added to increase support and adhesive contact to the struts, and then altered along with the second layer in response to the scorebox location and design.
The 3D prints required some level of iteration as well. They were designed with pressfitting in mind, as they would need to be removed to slide the main platform off, and as such they required testing until the tolerances were acceptable. Likewise, the struts were originally meant to be made of clear acrylic for aesthetic purposes, and so was made to be pressfit. Difficulties with laser printing, tight tolerancing, and lack of stock meant that we were forced to use plywood as a replacement in the end.
For the scorebox, a large concern was our inability to control the orientation that the fishbots fell. An initial concept involved preventing them from flipping by designing the platform in a specific manner, such as through a ramp or a vertical tunnel.
Initial scorebox and tunnel design (Chomp v3).
Unfortunately, this method did not succeed, and we attempted to instead design the fishbots to consistently land upright. With this in mind, the platform simplified drastically and became much more focused on funneling the fishbots out into the tunnel.
Partially finished assembly of an updated scorebox (Chomp v4).
This design, however, was also problematic; the assembly was never completed in favor of being able to test the railing and platform faster, and it was unexpected when the fishbots were caught on the bottom edges of spur gears and the fish jaws.
Finally, due to time constraints, we resorted to removing the "eating" mechanism.
A completed assembly of the final scorebox (Chomp v5) in CAD and reality.
Throughout all of this design and redesign, we were also fabricating parts. The main platform was cut with the Shopbot CNC Router with little issue. We had significant issues with cutting with the laser cutters, where there were errors with speed levels and poor tolerancing due to settings and overuse of the shop spaces. Pieces that didn't cut all the way through were difficult to retrieve and happened often enough for it to be a time issue.
The main platform after being Shopbotted.
This last phase included two fishbot shell versions, each of which had multiple subiterations. Shell 7 was a PLA-core bot with TPU legs designed to hold two 1.5V button cell batteries.
Sketches for the PLA shell and dimensions.
The assembled PLA shell #7 and TPU legs, along with the motor and switch.
However, this shell resulted in a fishbot that was too tall. While it was high enough to be read by the RFID sensor, it would get stuck on the ¼" plywood railings. The next iteration involved lowering the face of the fishbot and adding a pointed tip to turn it away from walls instead of running directly into them.
PLA shell #7b
The other benefit of shell #7b is that it has a lower center of mass. We had hoped this would encourage it to land feet-first more often. It did not. In order to solve the problem of orientation when landing, a different idea was devised: making the fishbots double-sided.
(top) Fish 8 CAD. (bottom) Fish 8 assembled.
The TPU legs of Fishbot 8 clip on to the center and have legs on both sides, allowing the fish to move regardless of which side it lands on.
A final wired scorebox circuit
Our game is built around three core mechanical elements, the fishbots, the tank, and the score boxes.
Without the fishbots, the game doesn't exist! Can't have Fishbot Frenzy without the fishbots. The bot shells are composed of an internal PLA (polylactide) shell with pressfit TPU (thermoplastic polyurethane) leg segments and external PLA toppers. PLA was printed with Prusa MINI printers, while TPU was printed on a Bambu X1 Carbon
Various parts of the game are supported with electrical circuits.
A circuit diagram of a seven segment display used in the scorebox.
As Arduino compatible boards and microcontrollers were chosen for our project, our code is in Arduino C.
Find the code on Github
Fishbot Frenzy combines software, electrical, and mechanical components to create an interactive experience!
Data and Energy Flow Diagram:
System Diagram:
Our team was given a total of $250 as the budget for this project. Above is the breakdown of how our budget was spent. Our total estimated cost of materials is $308.77. We spent $207.63 of our budget to purchase materials and the other materials were obtained for free.
Hello! I’m currently a sophomore studying Electrical and Computer Engineering at Olin. My goals for this project were to branch out and try new things, like prototyping and mechanical design. I mainly worked on testing and integrating the fishbots, but I also helped out with the electrical components.
I am a current sophomore studying Mechanical Engineering at Olin. My goals for this project were to improve my mechanical design skills and understanding of project specifications, with a focus on CAD, machining, iterative prototyping, and creative mechanical design.
Like most people, I am a multifaceted human being! Among other things, I am a mechanical engineer studying at Olin. My focus in this project was on integration, design for assembly, and design for manufacturing; I worked on all of the CAD, fabrication, and final assembly for the project, and was the main designer of the fishbot shells. My focus on personal projects is on artistic performance, be it painting, playing an instrument, or firespinning.
Hi! I'm currently a sophomore studying mechanical engineering at Olin! My goals for this project were to gain more experience in design-to-prototype work.
Hi! I am currently a sophomore studying Electrical and Computer Engineering. My goals in this project were to expand on my electrical skills, going further than prototyping boards with soldering and protoboard, and to have a final product people would genuinely enjoy playing with.