root@jonasvoigt.de~/post/1$

Cat Feeder

Background and Motivation

Before starting this project the cats of my parents had the annoying habit of scratching on doors and meowing everytime they were hungry. This was especially annoying in the morning when everyone except the cats wanted to sleep. The solution to the problem is to a cat bowl, which automatically feeds the cats at the same time everyday. Such a system has two mayor advantages compared to feeding the cats yourself.

  1. No one needs to feed the cats. The cats expect their meal very regulary, every day at the same time. But sometimes on weekends you don't want to get up that early or you are not home in the evening. With an automatic feeder, the cat's eating schedule won't conflict with your own.
  2. The feeding is not associated with you. When you feed a cat everyday for years they will associate you and the food. This means that they will scratch on the doors and meow every morning and beg for food everytime they want to eat.

The Feeder

The first version of the feeder is comprised of a multiple devices connected via a cable:

The Controller

Image of the Controller from the top
The controller from the top

This is a small wooden box containing an Arduino Nano, three indicator LEDs, two buttons, a seven segment display, a socket for attaching the bowls and a clock module. Later I will go into more detail on the wiring.

The Bowls

Image of a bowl from the top
A bowl from the top.
Image of a bowl from the side
A bowl from the side.
Image of a bowl from the bottom
A bowl from the bottom.

The electronics of the bowls is relativly simple. There is only one small servo which is directly connected to the two sockets A and B. Via cables these sockets can either be connected to the controller or to other bowls, which allows the bowls to be chained together.

The actual bowl with the food is covered by a wooden board on a hinge. When it is the right time, the controller will send a signal through the cable to all servos/bowls simultaneously. Each servo then pushes a small hook away which releases the wooden board. The board is then pushed up and out of the way by the pusher, revealing the food to the cats.

Electronics

The schematics
The schematics. On the left side is a bowl, which cosists only of two sockets and a servo. The right side shows the controller with an arduino nano, three LEDs, two buttons, the TM1637 seven segment display, and the DS3231 timer module.

The Arduino Nano has two interrupt pins: D2 and D3. Both interrupts are used to wake the arduino up. This allows it go sleep and wait for either a timer to run out or a button to be pressed. The buttons are wired so, that either button would result in an interrupt and both buttons can be polled seperately via pins D9 and D10.

Problems

Altough this feeder worked quite well for more than two years it had multiple major problems.

  1. I build the feeder without a PCB which resulted in a very time consuming assembly.
  2. The whole system is powered through the Arduino Nano. The power output was barely sufficeint to trigger two servos simultaneously.
  3. As it can be seen in the photos, all of the parts where handcut and handglued. This resulted in big gaps between the bowls and the wooden boards that covered them. Altough the cats were not able to reach the food through this gap, it wasn't looking very nice.
  4. Because of mechanical reasons, both the pusher and the hook were sticking out on the top. This meant that the hook could be pushed by hand (or by paw) so, that it would release the board covering the bowl. On one hand this is useful, because it allows a human to open the bowl manually, if it was closed by mistake. But on the other hand it also allows the cats to open the bowls. After two years of use, they finally figured this out, which made the whole system useless.