First, a summary:
Our feeder is set to consist of a mat, which has a force sensor in it, in order to determine which cat is on the mat by weight. We plan on setting up some sort of calibration mode, so that the owner can assign a bowl to each cat in his/her home. Our feeder will also have a timer built into it, so the user can put a serving of wet food in the bowl before leaving for the day, and have the food made available to the cat at the time of day set on the timer. Finally, there will also be an 'open lid' button, an LED indicating power, an LED indicating when the bowl is empty, and an LED indicating when the system is active.
We discussed various ways to deal with the moving lid. We talked about having a lid that rotated 180 degrees to reveal the food underneath, pushing the bowl out from a slot, and simply raising and lower the lid from an armature, all done with a servo. We went with the last option.
Now, the update:
For our timer, we were going to use a variable resistor, that let you set time based on where a slider was positioned along a strip marked with hour intervals. We realised, however, that this was going to be problematic, in the event that the feeder lost power. The clock would be reset, and the timer would no longer be meaningful. i.e. if the clock was set to 5pm, and the user sets the timer to feed the cat at 8pm, but the power goes out, by the time it comes back on, the clock will be reset to some arbitrary time.. therefore rendering our original 8pm feeding time to mean some other hour.
So, to get around this, we decided to go with a digital alarm clock picked up from kmart. The advantage to this is ease of setting the clock and the alarm via a pre-made interface. Plus providing a digital display. The interface is much better than one that we would be able to build in the time we have. Once the alarm goes off, we set the arduino to leave the system activated for one hour following. After the hour elapses, the system deactivates, and the cat can no longer eat.
To determine when the bowl is empty, we are using a limit switch, which clicks on when there is no food left in the bowl. Basically, our bowl sits in a ring, which has an arm that extends into the system, and has a counterweight at the end of it. When the bowl is empty, the counterweight pulls the bowl up, disengaging our switch. When it is full, the bowl outweighs the counterweight, and pulls down in the other direction, tripping the switch. We still need to find a suitable counterweight, so that it balances out with the typical amount of cat food we will be putting into the bowl.
Our next step is to build the mat with the fsrs in place, and to build a housing to contain the guts of our system, and to hold our interface in place. And to find a good counterweight for checking the bowl's food level. stay tuned.