Saturday, May 18, 2013

DIY Cat feeder v2.0

Bingo, I just finished my cat feeder v2.0 ! No more cereal dispenser, I built everything myself ! I had the choice between different systems, but i chose an archimedes' screw. I had several prerequisites:

  • An accuracy of 5grs
  • Dispense food in two bowls
  • Easily get feedback

So I chose the Archimedes' screw, but I still had to supply it with dry food. So I get my saw and medium to build the box. I had set a size constraint : do not exceed the formwork of the radiator in the kitchen, or 11cm. In addition, I wanted to hang it on the wall and paint it in the color of the kitchen, in order to make it less visible.

The box is 11cm x 30cm x 32cm, and is made mostly from 8mm and 12mm medium. (It is almost my stock of wood scrap that determined the thickness).

The system is simple : It's a funnel for the dry food fall into the Archimedes' screw. I had some trouble with biscuits blocked in the hole (causing empty distribution). I solved the problem with some dremel sanding to cut the holes. I then have no worry with it.

When the biscuits reach the bottom of the tank, the Archimedes' screw, which is inside a 4cm diameter PVC pipe, moves the dry food to the two holes.

On this intermediate release, you can see the various components i used : an Arduino, a proto-shield, a DS1307 based RTC board, and a relay board with the IKEA screwdriver motor (FIXA 3.6V).
To attach the motor to the wood, i used polymorph. The binding is very strong and stable, I did not notice any vibration at startup. Pretty awesome.

I also improved the interface by adding a LCD screen, and a serial interface to allow modification of parameters (RTC time, number of distributions per day, reset the last fooding date) and dispense a dose, by sending command throught serial link : h to print help, + to increase the daily distributions...

And finally, here is the LCD display when a distribution occurs. It's a HD77480 LCD screen I bought on ebay for 5€. I used the classical 4-bits interface and the LiquidCrystal library available with the Arduino IDE. I create some custom characters to draw a small clock on the second line.
The first line print the current time and the number of distribution per day, the second the remaining time before the distribution.

Here is a test-run of 24 distributions :

All the code is available on my github