It looks like you're connecting from a mobile device. I've tried my best to have responsive web design, but I know there are some problems. For best viewing experience, try connecting from a desktop.

ENGR 112: Marble Sorter

ENGR 112 was a notorious class at Texas A&M: it was the class which consisted primarily of designing a device which color-sorted and dispensed marbles. The class/project had several nicknames including "marbles loser" and "freshman capstone" among other less nice things. Provided to the students where a collection of marbles, a LEGO Mindstorms (original), and a box of popsicle sticks. It was expected that the students, in teams of 8, would construct a marble sorter/dispenser over the course of the spring semester. I of course, threw my SolidWorks experience at the problem, resulting in the best looking, but not most functional, marble sorter.

The basic problem could be broken into a few categories. First the marbles had to be serialized, stored, then dispensed according to a barcode read in another part of the system. Going through systematically, serialization occurred first at the top of the machine. The marbles were placed in a bowl. A spinning flower turned in the bowl and took only one marble at a time. The marbles were then passed over a color sensor to attempt to discern the color. This is where the most trouble occurred. Several of the provided marbles were practically indistinguishable from one another by the LEGO NXT color sensor (White glass, Semi-translucent white, reflective silver were all options). Once a guess was made at the color, the revolver would position itself to receive the marble. The revolver had one tube per marble and each tube was only wide enough for one marble, forcing them to stack vertically. Between the color sensor and the revolver, a mechanism of two carefully spaced rails separated the marbles by size. A light sensor was used to determine which direction the marble rolled and thus its size. Assuming the marbles were sorted correctly, dispensing was much simpler. Beneath the revolver, a second rotating disk, in conjunction with careful positioning of the revolver, dispensed one marble at a time. The barcode reader was affixed to the right of the system. It used a wheel to feed the barcode and a color sensor to read the black and white stripes.

The control system was not that interesting. The project required either LabVIEW or MATLAB; we chose the latter. The whole process basically runs in two loops: sort and (read and dispense). The sensors used are just color and encoders. Everything is basically, done with dead reckoning. The motors are controlled with simple P loops (PID was tried at one point, but at the time we could not get it working reliably) and zeroed where possible by stalling.

Overall, the project was successful. We got to present our project, along with other teams at the Engineering Showcase 2018. We did not win the judging, but our design was certainly the cleanest, sturdiest, and smallest option there.

Media is still being collected for this project, but CAD files are available on GrabCAD.

Code is available on GitHub. I don't believe this is the final version of the code, it is something I am checking in on.