After contemplating the request, I agreed to make it a reality. The project took about a year of designing, prototyping, and building. The final product can be seen in the pictures and the YouTube video:
The product has the following features:
- Hopper large enough to store nine cans; enough for nine days of feeding. This can be theoretically expanded infinitely, and is only limited by space constraints and mechanical material strength.
- Built in trash bin for the lid and the empty can.
- Programmable feeding time for each day, with built in manual override.
- Function for clearing hopper for switching out food types.
The machine was designed in CAD, and is mostly comprised of 3D printed components, with some mechanical essentials like bearings, linear rods, etc. The rest of the parts were fabricated out of wood, Polycarbonate, and UHMW PE. It is powered by an array of steppers, servos, and DC motors. The steppers control the track and the gantry; the servos control the dispensing, gripping, and flipping of the can; and the DC motors come in the form of a vacuum pump and can opener.
The simplified operation procedure goes as follows:
- Hopper dispenses can into waiting trolley
- Trolley grabs onto the can and advances it to the gantry
- Gantry lowers can opener and cuts lid
- Trolley advances to vacuum cup
- Vacuum cup grabs onto the lid and removes it
- Trolley advances can to cutout, then flips the can upside down onto waiting plate
- Lid and empty can are disposed into the trash bin
The project presented many hurdles, including how to reliably dispense a can onto the trolley, how to reliably open the can, and how to remove the lid (it turns out it was aluminum, thwarting a simple magnetic solution).
On the electrical side, all processing is handled by an Arduino Mega 2560 (yes I know, I could have done the whole thing with a 555 timer :P). The I/O board was custom designed and etched, and sits on the bottom of the stack. This board makes it easy to wire up all of the end stops, DC motors, and provide power distribution. Power is provided by an SFX power supply hidden in the bottom chamber, which outputs both the 5v and 12v needed for this machine.
The stack includes two shields from AdaFruit; a motor shield for the steppers, and a servo expansion shield for the servos. The user interface is a regular 2x16 LCD, with an AdaFruit LCD backpack shield.
The user interface allows for programming of the feed time, as well as manual dispensing of food, and clearing of the hopper. The code has built in checks to monitor the status of the hopper, check the end stops, and provide a timeout for the homing sequence to detect any jams.
Overall, and much to my surprise, the dang thing works. Beautifully. And the client, and more importantly, the cat, love it.