< Back to Projects



Date: October 2018 - April 2019

Created By: Alex Gronlund, Joseph Allen, Dillon Smith, Jordan Pasker, Samuel Ryckman, Dustin Richards, Zane Brandt, Rachel Lauer, Christian Weaver, Brooke Bialas

Purpose: Ball Acquiring Machine (B.A.M.) for use in the 2019 ASME Student Design Competition

Cost: $1,500ish

Features: Scary fast omnidirectional drivetrain, efficient ball collection system, overly aggressive ball release fence that frightens children.


B.A.M. (Ball Acquisition Machine) is a robot constructed for the 2019 ASME Student Design Competition. The goal of the competition was to collect balls of various sizes from 20cm tall tubes and dispense them into a 50cm x 50cm scoring area.

The original design was as follows. A basket on the side of the robot would be used to collect balls. The basket would have a rotating flap to whack balls into the basket. A laser tripwire would be in front of the basket to sense when a ball was within hitting range and the flap would automatically collect the ball. Once a basket full of balls was collected, the basket would raise on a chain driven elevator, pivot over the top, and dump the balls into the storage area. Inside of the storage area a grate would sort the smaller balls into the bottom and leave the large ones in the top area. To score the balls, a corral would drop to keep balls from rolling away and the doors would open to release the balls. There would be separate doors for the small and large balls so that they could be released separately.

Due to a rushed schedule for constructing B.A.M., the team didn’t have enough time to work out some of the kinks with the ball collection system. One such issue was with the elevator. The motors were able to raise and lower the basket but were not able to swing it over the top in a controlled manner. The team fought with this issue until 20 minutes before the start of the first qualifying round at the competition. At that point they decided to redesign the ball collection system on the fly by removing the basket and the sorting system and creating a hole in the front of the robot so that B.A.M. could drive directly into the balls and they would fall directly into the storage area of the bot. This worked surprising well considering how rushed it was.

Electrical and Programming
As with most of our bots, B.A.M. runs off of an Arduino Mega. It is controlled using input from one of our custom controllers using Xbees for communications. The motors are driven using Vex Victor SPX motor controllers which use the CAN protocol for communications. This was our first time using these controllers and since there are no Arduino libraries readily available for them we had to figure out how to communicate with them largely on our own. An example of the control code is in the links area below. We also modded an RGB light strip from Home Depot to be controlled by the Arduino to add a swag factor. The Arduino library for this is also in the links area.

For power distribution, we developed a custom power distribution board. This included a relay for on/off control (since we were dealing with large currents) and fuse protection for each connected device. It also included 3.3v and 5v outputs for powering other devices on the robot.

For driving, we used RS-550s with 28:1 planetary gear boxes. This resulted in very fast motion (some would say a bit too fast). We attempted to get more accurate control using by adding some encoders (CUI AMT102-V) but hit some roadblocks and ended up running out of time.