Fat Cat Automated Arduino Pet Feeder

by tarzan0493 in Circuits > Arduino

24907 Views, 157 Favorites, 0 Comments

Fat Cat Automated Arduino Pet Feeder

IMG_0893.JPG
12688000_10208611067333552_7882052033266495875_n.jpg

Everybody say hello to Duke! He is a 24 pound Maine Coon that I adopted three years ago. Duke enjoys laying in the sun, watching the birds outside, and....waking up his owner at 5 o'clock in the morning for breakfast. As you can imagine, if you have a 24 pound cat sitting on your chest early in the morning, you have no choice but to wake up, gasp for air, and feed the beast. I know what you're thinking, "why not buy a pet feeder?" Well the answer I have come up with is...(pause for dramatic effect)...buying a pet feeder is boring and easy! I will instead build one! As a college student studying Engineering, I have enough of a DIY background to compete the task, but let's see if we can maintain a college student budget and complete the feeder for under $100.

Parts for the Feeder.

So here are the main ideas behind the build. Let's build it for under $100 and let's see if we can make use of other products to make the build simpler.

Here is the parts list:

  • Home Basics Cereal Dispenser - (Ebay $17.75)
  • SPRING SM-S4303R JR interface 360 Robot Servo Large Continuous Rotation - (Ebay $8.90)
  • 12"x12"x1/4" project board - (Michael's $4.90)
  • 16 Hz Arduino Uno R3 - (Ebay $3.50)
  • 4x 1" right angle brackets- (Home Depot $1.97)
  • 1 pack of 24x1/2" zinc screws and bolts - (Home Depot $1.18)
  • 2" PVC 90 degree elbow - (Home Depot $.98)

Getting Started: the Body

IMG_2079.JPG

I had originally planned to build the entire thing from scratch but the more plans I drew out, the more complicated it became. So I thought, "What is something that already dispenses that is cheap and easy to modify?" Viola! I give you the hand crank cereal dispenser. Perfect!!! It already has dispensing capability and it should be fairly simple to connect a servo to it.

So an Ebay buy and a few days of shipping later, I was ready to get started.

Crank/Servo Assembly

Capture.PNG
IMG_2101.JPG
IMG_2100.JPG
IMG_2103.JPG

The first thing I did was modify the crank that comes with the dispenser. I cut off the handles until only the middle cylinder of the crank was left. After a little bit of sanding I was able to attach one of the smaller servo rotation discs with some small screws that were provided. After that was finished all that was left was to attach the disc to the servo.

(Note: I highly recommend you buy a servo kit with multiple rotation attachments in case the dispenser you buy has different dimensions for the crank.)

Front Panel

IMG_2080.JPG
IMG_2078.JPG
IMG_2082.JPG

After that, I constructed the front face of the feeder. I cut a piece of project board to the proper dimensions so that it fit snugly to the front and provided a good amount of cover for the electrical components. Once that was cut and sanded, I attached 4 right angle brackets to the edges to that I could mount it to the front of the feeder. Then I drilled two holes on each side to attach the panel to the body of the feeder. The bolts and nuts make it incredibly easy to disassemble and reassemble.

(Note: I recommend you buy right angle brackets that are a little bit bigger. The 1" brackets I bought work but the screws touch on the inside corners.)

Dispensing Funnel

IMG_2081.JPG
IMG_2077.JPG
IMG_2084.JPG
IMG_2083.JPG

This was the easiest part. I used the mouth of the pipe to trace an outline on the front panel. Then I attached the angled pipe to the bottom of the dispenser using hot glue.

(Note: Make sure you check the fit of the pipe and the front panel before you hot glue the pipe in place.)

Securing Servo

IMG_2086.JPG

Now that all of that is done, we can attach the servo so that it won't move while turning. Here I used two wood screws through the bottom mounting holes of the servo and screwed them into the wood.

Programming the Arduino

pet_feeder_code2.PNG
copper_wire.jpg
IMG_2106.JPG
IMG_0891.JPG

Now for the really fun part! We need to program the Arduino so that it dispenses food at certain times of the day. I tried to keep the code as simple as possible. I looked up how much food and how often throughout the day Duke needs to be fed based on his current age, weight, and breed. So the feeder will dispense .65 cups of food every 8 hours. Feel free to modify the feeding time and amount based on your pet's needs. The pin outputs will stay the same.

(Note: If you want cheap wire to connect your Arduino to the servo and use on other projects, Home Depot and Lowe's carry spools of telephone jumper wire. It's cheap-color-coded-copper wire.)

Connecting Everything and Testing

IMG_2107.JPG
IMG_2108.JPG
IMG_2110.JPG
IMG_2119.JPG
IMG_2122.JPG

Now that we have the code written, we can connect the Arduino to the servo to test everything out. The connections are as follows:

Black Servo Wire - Arduino GND

Red Servo Wire - Arduino 5v

White Servo Wire - Arduino Pin 13

After you have tested that everything is working properly, you can secure the Arduino in place. My Arduino has a 3D printed case that I made for it. This made it really easy to just hot glue the assembly to the inside if the pet feeder.

Using what was left of the project board, I cut out a back panel for the pet feeder, making sure to leave room for the power cord.

The final modification I made was adding legs to the feeder to raise it up above the pet food bowl. For the legs I cut 4 2" pieces of dowel rod I had laying around. They I hot glued some foam to the bottom of the pieces so they don't scratch the floor. All that was left to do was hot glue the legs to the feeder and...IT'S DONE!

Finished Product

IMG_0895 (1).JPG

Here it is in all its glory!

Total cost for the project = $39.18

I hope this inspires you to build your own programmable pet feeder!

Happy building!