Our automatic version of the mini sculpture is the basic ball catch system, but with a chain that resets the ball location. The ball's speed is sensed by the blue speed sensor. This information is passed to the Lego NXT and is put into equations calculating where the ball will fall. The NXT then conveys this to the motor, which moves the basket into place. The ball falls through the basket onto the collection track below. This funnels into the constantly moving chain which carries the ball back to the top of the structure to start again. Our manual component is a catch game. It uses a joystick that the user can control to move the cart to a desired location. The joystick is built from the servo motors and the touch sensors that are used to control basket movement and release the marble, respectively.
We were faced with the challenge of programming complexity, especially programming automatic and manual movement. The program had to be able to switch between these two modes seamlessly. We also had problems with creating a chain lift that successfully lifted the marble back up to the top of the track. In order for the chain to pick up the ball, we had to add the red pieces for the ball to sit in. These were liable to get caught and stall the chain. To overcome this problem, we reduced the amount of carrier pieces on the chain and added lubricant to the top gear to allow it to spin more freely. JP helped by cutting out a part of a business card and putting it onto the sprocket as a makeshift washer. This reduced wobble, so that the red hooks didn't get stuck on the side of the unloader ramp.
The program had two basic parts. The first part was the automated version. This was fairly similar to the example code given in class. The second part, the manual version, was also very simple. It was roughly 4 lines of code and was not too bad. However, I had many problems attempting to connect the two so that the mode could be switched at will. Eventually, I figured out that I could circumvent the issue of switching from manual to automatic and back during a cycle by only allowing mode switching while the cart was near the 0 position.
We decided to make a catch game to add a user interface. The user can control the basket manually through the joystick while holding down the button.
An early joystick design that included a second motor for another degree of freedom.
On the left is our final sculpture, and on the right our Working Model 2D simulation.