If you know anyone who does crafts, they probably have a drawer with a few million beads loose and mixed together. You’ll sort them out one day, right? Probably not. Unless, of course, you build a robot to do the dirty work for you. That’s what [Kalfalfa] did, using some Phidgets boards, a camera and Open CV. You can see a video of the cardboard machine doing its thing below.
Maybe it is because we are more electronics-minded, but we were impressed with the mechanism to grab just one bead at a time from the hopper. If you watch the video, you’ll see what we mean. However, sometimes a bead jams and a magnetic sensor figures that out so the controller can reverse a bit and try again.
You’d think the color detection would be tough. There was a time when this would involve filters and light sensors and all manner of crazy gyrations. Now it just takes a cheap camera and OpenCV. Of course, RGB LEDs can get rid of filters, too.
The code is, in fact, surprisingly simple, so if you ever wanted to dip your toe into Open CV, this might be a good one to study even if you don’t need to chromotize (yes, we just made that word up) beads.
Oddly, we’ve seen a similar mechanism before made mostly with Lego, but — alas — the link from 2014 is dead although the YouTube video survives.
OMG. I mean, great project, but seeing that big bucket of beads, and watching it take ~3 seconds for each bead… it’s the heat death of the universe problem.
They should have added more than one hole to sort multiple beads in one revolution.
Sorting 500 beads at a rate of 3s/bead would take 25 hours. This seems very reasonable- a lot of projects take longer, especially if 3D printing is involved. If I were building this, I wouldn’t be worried about optimization for speed.
After getting it working, you can optimize for speed. With most of the hardware done, that shouldn’t take too long.
With 25h for 5000 beads, it is just like a few projects that I did: ETA of “letting it run” is further away than the project of getting it faster and running the optimized program.
There are three projects that I remember. First was the DOS sort program. It was terribly slow and could not handle big files. My version did do big files. The seconds was to rotate an image by 90 degrees on a computer that didn’t have enough memory. It was “pnmflip” IIRC that had an ETA of days or weeks. The last one was much more recent. e2fsck was expected to finish in about a month. Fixing the code in e2fsck to get it done in a few hours was about the same in programming time as the actual runtime of the program in the end. (You have e2fsck on your computer? You have more than a million files? You didn’t wait a month for fsck to finish? You’re welcome!)
Those sound like great projects! Perhaps my previous comment wasn’t as nuanced as it should have been- optimization can be quite useful, as shown by the code you have described.
A lot of my programming has been in areas where optimization isn’t always required, as long as the code runs (and finishes running in ~1 week). I have seen some awful code (including, unfortunately, some of my own code) achieve its purpose and be considered acceptable despite having serious inefficiencies. I try not to become complacent about inefficiency, but the temptation to do so exists. This isn’t representative of most coding situations, where efficiency is of vital importance.
I still don’t wish to criticize the efficiency of the bead sorter- the picture of the sorted beads shows that it was able to accomplish its task. Perhaps the creator would have saved time by increasing efficiency, but I don’t know either way. If running the bead sorter is unpleasant (ex. if it requires lots of human intervention, or it is loud, or causes EMI issues), or if the beads are urgently needed, then I would consider optimization to be critically important. If the machine is able to run unobtrusively, and the beads aren’t needed for a while, then I wouldn’t think optimization is necessary.
tl;dr: maybe optimization would have been useful; maybe not. Either way, optimization is usually a good idea. Either way, this is a great project.
3s/bead is about 1200 beads per hour. :)
~3 seconds per bead that actually happens ends sooner than “there has to be something faster” that doesn’t.
Never underestimate the bandwidth of a station wagon full of tapes, or the throughput of a machine that can chug away in the background with minimal supervision.
So I want the Cerberus edition with 3 heads, so it can sort through hole resistors.
What about the 1% tolerance resistors?!
Those just need cut up into thinner slices :P
The easiest way to sort your through hole resistors is to throw them away and by a new “resistor kit” from Ali Express where they all come on cut tape segments marked with the values. :)
But what about those circuits that call for an original 1964 27/64 of a Watt non E series value, 16.5% tolerance part in ceramic, shaped like a coke bottle, that you might otherwise just have up and thrown away.
I know I’m going off-topic here, but this reminds me of articles I remember seeing in hobby electronics magazines in the 1960s and 70s. It seemed like every project had at least one part that was somehow special, that there was no way you were going to have one on hand. What I didn’t realize until much later, was that these articles were written by lazy authors, who were just taking schematics from the application notes of component manufacturers, showing off their proprietary parts. Unijunction transistors, tunnel diodes, dual-gate MOSFETs, whatever. And later on it just got worse, with circuits built around proprietary integrated circuits you couldn’t buy in unit quantities anyway.
But to answer your question directly, if you come across a circuit calling for a super-specific part, just be glad you dodged a bullet by NOT having that part on hand!
Very clever!
I love the use of cardboard in this project. It is a building material that often gets overlooked in our community.
You can make forts out of them. ;-)
Made one my self a while ago see here:
https://youtu.be/Oyp8Vp9MA38
if anyone wants to make a bettervertion contact me at our charity mike
I love the way the builder did not let the lack of better materials etc stop them. It is a very imprecise build, but it seems to work well. Cool project.
I think it is a really nice proof of concept.
How do you get the beads out without re-mixing them?
I don’t have normal color vision so maybe I’m wrong or it’s a trick of the light, but aren’t there a lot of misclassified beads in the lower right quadrant?
You’re not seeing things. But I would wonder whether they’re -mis-classified or -un-classified – I would want a bin for those beads whose colours could not be classified on the first pass, if only to allow the process to continue with the remaining beads.
Bin 17 clearly contains beads that don’t have a bucket, such as yellow or black. I’d be more worried about bin 8—it’s supposed to be white but has several cyan, peach, and yellow beads as well.
one that sorts screws, nuts and bolts would be very useful to me.
+1
I want to see a hexapod scout that can successfully retrieve lost stuff like SMD components and tiny springs and screws from the carpet and other nooks and crannies of the room, autonomously. Well, and somehow avoid getting stepped on. What…? No, it doesn’t need magic, I’m telling you, just sufficiently advanced technology…!
I hope you don’t have cats.
What CV code? This only has the video, which has no further links. Further googling is turning up nothing but this Hackaday article.
I also made a similar contraption, but i found out that the actual feeding was a major pain in the buttocks.
https://www.youtube.com/watch?v=SqDcLHIa-r8
https://www.youtube.com/watch?v=1QgW_pHGdjc
The video in the post is has some great luck, or some clever doodad that prevents the beads from jamming in the hole (and/or making a bridge in the cup)
This is where someone in the semiconductor industry came up with the chip ramp that vibrates a whole bin of chips and gets them to somehow land in a spiral track in the right orientation. Here’s something similar that orients screws: https://www.youtube.com/watch?v=YqeltDSCenk