Module Project: Automatic Cat Feeder

For the final module project, I have decide to make an automatic cat feeder. I have a cat named Cheetah and he eats a lot. That got me thinking into designing and making an automatic feeder for him. However, to make it a little more challenging, I will be implementing a lcd I2c screen to display messages and push buttons for different modes of feeding.


Final Product

Here you can see a hero shot of my project and it working in action. Pardon the song and mess in the background. Music helps me stay awake at 2am :). The documentation of the project will be below this section. There will also be a link below to my 1 minute video for the module project.


(Click here to download presentation file)
(Click here to go to Youtube Video on Module Project)

Planning

As for planning, I simply drew out some rough ideas on a page. It has been quite a while since I drew anything so it was nice to stretch my fingers.


Custom PCB board

Electronics needed:

  • Custom PCB board
  • 4,3 and 2 pin headers
  • 0.1uf capacitor
  • 2 x 1002 resistors
  • Attiny412

This being the first time designing, I asked Mr Steven to help me out. So we designed a rough idea of how the board would look like on the whiteboard. Since I did not need too many pins, I opted to use the attiny412 as my main processor. I will be implementing 2 push buttons and an I2c lcd.

I started out by designing the cicuit via eagle. It took quite some time to route the lines for the board. I tried using the autoroute function but the results were not to my liking. So I manually routed the lines.


Next , I milled the board using the stepcraft machine. Here you can see the milled board. Fortunately for me, I only had to mill the board once. I am not very confident in my soldering, so I decided to slowly peel the unused copper. I did so with a pen knife and carefully peeling it afterwards. It took quite a bit and my fingers were starting to hurt. The finished product was very satisfiying as I could see the individual copper lines. Afterwards, I layed the components that were going to be soldered.


Here is the how the boards looks like after soldering. I was pretty impressed with how my soldering turned out. The board look much better from my previous attempts in soldering.

After soldering, I double checked the connections with a multimeter before trying out simple codes for the components that will be used. You can see below that I managed to successfully input a simple servo coding as well as a hello world for the I2c LCD. It did however take lots of trouble shooting for the I2c as it was outputting error codes. Fortunately after a bit of help from Mr Steven, it turns out that the SDA and SCL wires were mixed up.

Programming PCB board

To code the board, I used the Arduino app. For my design, I wanted the feeder to have 2 modes of dispensing food. One is for dispensing the food immediately and one for every 3 hours. This coding turned out very difficult for me. I tried using delay commands to execute my coding. However, I learnt that it had a limitation. During the delay operation, nothing else will be done by the board. This meant that I the feeder could not rotate every 3 hours or so.


I tried out another method which is usuing millis. Mr Steven showed me example codes and went through explaining the coding for me. Unfortunately, even after many attempts, I could not succesfully create a code that worked for me. So for presentation purposes, I will use the delay coding.



3D Printing

This is probably my favourite part of this project. I had done 3d printing for DFAB 1 so I could not wait to get started again. I ended up printing quite a number of parts. I used Fusion360 to make the 3d models before slicing them in cura.
The parts are:
  • Hopper
  • Hopper cap
  • Feeder
  • Auger
  • Lcd underside plate
  • Lcd top plate
  • Servo mount 1
  • Servo mount 2
Once again, I learnt that doing it right the first time is crucial. I had to print the feeder a couple times because the dimensions that I used were wrong. However, I was really impressed with how my auger turned out. I managed to 3d print the auger in two pieces which I thought was pretty cool. I have to give the credits to the Youtube channel Product Design Online. The video on how to create 3d printable augers was really helpful.





Laser cutting

The feeder case was to be made via laser cutting. I designed the parts in Autocad.


Assembling

I started off the assembly process by super gluing the auger together. I printed the auger in 2 halves so that they would not require as much support. Next I used m4 nuts and bolts to screw the servo plate onto the servo.

Next, I used m4 screws to screw the servo cap end and the plate togther. As you can see in the image, the tolerance of the holes I designed on the cap end were just nice and the screws basically created their own threads since they were much harder than the 3d print material so it was a bonus for me.

Moving on, I super glued the servo connector to the auger. Since it did not affect my design, I felt that I did not need to design a specific connector from the auger to the servo and that I could simply reuse the one that came with it. Following that, I used velcro tape to secure the pvc pipe supports. This allows me to move the supports around in case I needed space.

With the previous items assembled, I could assemble the main body. Here is what it looks like with all the previous parts assembled. I went on to try out my test coding to confirm that everything works.

Now onto the laser cut box. I decided to use hot glue to to its simplicity. I didnt glue all sides because I wanted to test the fitting. So you can see below that it fit perfectly.

With the fitting confirmed, I could permanently put the pcb. I decided to drill 2 holes and use the leftover m4 screws to put the pcb inside the laser cut box. This was crucial as I need the wires to be able to reach their intended locationd without needed any extensions for simplicity.

Next, it was time to add the lcd screen and push button. I used double sided tape to secure the lcd screen onto its specially designed plate and hot glued it onto the casing. Also not forgetting the flower casting that

Last but not least, I double sided taped the flower casting that I did beforehand. The cast reminded me of my cat Cheetah when I brought him out for a walk one time. I kept trying to bite them and was soo attracted to the butterflies flying around them. Whcih was why I decided to add the cast onto my project, to add abit of personal touch.


Bill of Materials