Check out my new(er) cd robot project here. I grabbed an old scsi changer machine from ebay and have been working on adding serial connectivity to it. If it works, it will be a much simpler route!
One of my “always in my head” projects is a CD changing machine. I have seen the myriad of other projects out there, and this always captivates me, in that it is just out of reach, but it seems to be a fairly simple concept. I have been thinking and sketching on this one for SUCH a long time that I have decided to post it before it is fully polished up.
The basic premise is I have an arm that swings up and down mounted on a platform that rotates 180 degrees. Both of those are positioned by hobby servos. On the tip of the arm there is two vacuum aided suction cups and some hdpe tubing.
An arduino calls the shots, telling which servo to go to where, as well as controlling the vacuum pump and the cd tray. I have it connected to ladyada’s motor shield. I believe I have 5v going into the “motor input” part of the shield. This exits the shield and goes to a 6v relay that actually powers the vacuum motor(with 12 volts). The other relay is actuated by a different motor shield port and opens a relay that is hard-wired to the cd tray close button on the cd drive.
The Vacuum Pump is a 12v automotive tire inflator like this one
. I bought it and jb-welded a nylon tube nozzle onto the air intake port. This serves as a poor man’s vacuum pump.
The power supply is one from a tower pc. There are plenty of instructables and blogs about how to make one of these. I didn’t have a resistor big enough around, so I used a car brake lightbulb. It provides a myriad of different voltages and much more amps than the standard wall wart.
SOFTWARE – So the basic theory is that the arduino sends the arm around to the different stations, lowering it, powering up the pump, raising it, and then rotating it over to the next station. The 3 ‘stations’ are a cd input tray, a cd drive, and a cd output tray. When the arm drops it onto the cd tray, the arduino puts high a motor control pin on the motor shield, which activates a relay to ‘push’ the cd close button. From there I have itunes set up to auto-import and eject the disc. There is a switch that closes when the cd tray hits it, telling the arduino to pick up the disc and move on.
PROBLEMS – The motor shield situation is not what it was designed for, and is probably not the best way of going about this. I am using it because I can’t run 12v through my arduino.
I also initally wanted to use tinker.it’s serial->applescript software, but I have found it to be very buggy (sadly)
The servos move very jerkily and quickly. That means that some times the arm will flex one way or the other, and the movements are not very reliable. I am currently trying to write a way for the servos to wind up and wind down slowly and hopefully end up with a more polished result.
The vacuum tubing is pretty stiff and I can’t find a way that it doesn’t interfere with either the rotation or the up/down movement of the arm.
The vacuum pump is pretty loud, but I will deal with making an enclosure when the rest of it is all running nicely.
STILL TO DO –
I need to build a platform for the cd tray and the arm to mount to, create some sort of stacking corral for the input and output, and just test it more.
I would also LOVE to find a way to detect the cd open state without a switch (ie via the computer) and get tinker.it’s solution working for closing the tray. Thusfar the software will work, but not reliably. I’m not sure, but it might be somehow conflicting with the arduino program’s serial monitor.
as always, suggestions are welcome! And video to follow!