Marble Miser was designed to meet the challenge of the 4th Annual Lego Robotics Competition / Get together at U of T in Toronto Ontario.
Many thanks to Calum and the boys for putting this together. It was the first event that I was able to attend, and it was a great time. The turnout yielded many more entrants than initially expected.
To find out more about the event, visit RTL Toronto Website.
Now to get down to details.
This view shows the parts of Marble Miser that do the object avoidance tasks. In total, Marble Miser has 6 sensors multiplexed to the 3 sensor ports.
Port 1 has 2 touch and 1 light sensors.
Port 2 has a rotation sensor
Port 3 has 2 touch sensors.
This only required one trick in NQC. For Port 1, I had to be able to distinguish between when the “bumper” was hit, and what light sensor values were being returned to the RCX (white/black marble & home bases). To do this I set the port to read as RAW. Distinguishing between the tasks of bumper detection and colour/light reading was simple:
If sensor value < 70 then
do avoidance rountine (bumper hit)
If sensor value was in the range of 650+ then read light values and do marble detection rountines.
The top view shows the front bumper system and the marble guide. The marble guide was driven by a micro motor that was powered seperately by a 9V battery pack. This power source also powered the fiber optic unit at the back (for show only). The power source can be seen directly below the RCX to the left of the motor. I was very impressed with the sensitivity of the bumpers. The top set were very flexible, and could absorb shock if Marble Miser was in a bind with another bot, and could not get out of it (see below). The bottom bumpers were initally designed to server 2 purposes. First, to guide the marbles into the center feed area, and second to detect hits on walls etc.. They too worked quite well.
This is the marble guide system. Quite simple. Through forward motion, the marble would be guided into the detector unit (keeper/ejector). There, the light sensor would read the value. The keeper/ejector is the 2 blue 3x beams. They are attached to a micro motor, that runs through a rotation sensor. This unit would rotate one way to keep, and the other to eject. The rotation sensor is used to enable the unit to return to a zero position.
Here Marble Miser gets in a bind. Marble Miser was programed with “get out” routines, but since one drive wheel was raised off the ground, it was unable to break free. This competition ended up in a tie. Notice the tubing at the rear taking a beating. For the most part, this helped when Marble Miser was in tight corners, as it guided it around the turns while allowing flexibility. Looking back, I would not have built it any other way.
Two interested onlookers having fun watching the competition…
This was one of Marble Miser’s better performances. During this competition, my home base was white. The goal was to collect as many white marbles and get back to home base before 5 minutes was up. Well at the 3+ minute mark, Marble Miser had collected some 5 marbles in its holding bin and got back to home base and got stuck in the corner, so I was happy to let it keep trying to get out. Lucky for me it didn’t! I got 16 points for this round.
Rate This Post: