Having built the model and programmed it, I thought it would be good to share it with the Mindstorms community at large. This turned out to be a major undertaking. I have had a brief look at the various LEGO cad programs, but decided that this was too complex a project with which to start using them from scratch, and so I decided to use a camera to document the building process. This took a great deal of time. Taking and retaking photos. reducing them to a smaller size to allow for a reasonably compact set of instructions, and checking the parts required. In the process I found Apple's iPhoto and preview programs invaluable, the latter making it very easy to produce the pdf build file. I also used Adobe Photoshop Elements to add the text to the photos.
I hope you have fun building the model and testing it. I would appreciate any feed back to
robin dot newman at gmail dot com.
---------- Version 2 Only using 8547 parts ----------
The major weakness of the first model is that it requires two Lego sets and an additional turntable to build it. Accordingly I wondered if it was possible to build a version which would work with parts only from the 8547 set. As there was no turntable in the set this required a major modification to the runway mechanism to deliver the balls. Also there were no length 6 axles, so the gate assembly required revision to work with length 7 axles. I came across Laurens Valk's bricksorter model in which he uses a vertical rotating chute to sort grey and black bricks, and this gave me the idea of using a rotating horizontal chute in my model.
Much of the preceding discussion for the development of the first model is still relevant. However the program required modification in several respects. First, the horizontal rotation of the chute assembly was more restricted than that of the turntable version. Some 75 degrees in total instead of 4 complete revolutions! This meant that the separations of the different output paths for the balls were much closer together, so I decided to combine the "parked" position of the arm with the blue ball output position, and found that I could only rotate 25 degrees between each of the other ball positions. These changes are incorporated in a new MyBlock called setposition2 which replaces the previous setposition block, by changing the multiplier factor from 360 to 25 degrees. Also, in the main program I now subtract 2 instead of 1 from the lastcolour variable so that the position variable holds numbers in the range -3 to +3 instead of -3 to +4. This means that the zero or parked position now coincides with the blue ball output position.
As far as the construction of the second version goes, the upper chute assembly is similar to the first version, although a little shorter. Because it is not counter balanced by a lower chute arm, and because it doesn't rotate, it is now braced with a 12 length axle. The tilted base is mounted on wheels to raise the body to a suitable height, and a similar tilted structure supports the NXT brick. The front rotating chute arm is braced by a short axle which just rests in the hub of the fourth wheel, but is not actually inserted into it. The lead attached to the sensor on the chute arm assembly is routed round a double height peg to maintain the sensor in an appropriate angled position.
The next page gives some hints and tips in setting up the second version model, including its associated ball collecting boxes. more...