Empathetic Designing: Arduino Automatic Rat Feeder

by Kanoah in Circuits > Arduino

2256 Views, 2 Favorites, 0 Comments

Empathetic Designing: Arduino Automatic Rat Feeder

IMG_20200506_123119.jpg

This Instructable serves as an all-encompassing guide to the creation of an automatic feeding device for a rat or pet animal of a similar size. The inspiration for this project came from my sister’s rat, who needs to be fed exactly 4 food pellets each day. Given the current circumstances(COVID-19), my sister is unable to feed the rat every day. The system I’ve designed uses an Arduino Nano, a “micro” servo, and a custom 3d printed enclosure. Using a push-rod, the machine should dispense 4 food pellets every 24 hours consistently and without fail. The system can run-off of a 5 volt wall outlet, or, be powered by a small lithium-ion battery pack—either way, it draws a minimal amount of power.

Supplies

Materials:

3x 6” length 22 AWG Electrical Wire (Breadboarding Wire)

1x Micro Servo

1x Arduino Nano (or Metro Mini)

1x Roll of any Non-flexible 3D-Printer Filament (PLA, PETG, ABS, PEK, NYLON, or any resin if you choose to use an SLA printer)

1x 20mm Heat Shrink Tubing

3x 1mm Heat Shrink Tubing

1x Micro Servo Arm (Normally Included with Micro Servo)

1x Roll of Flux-Cored Solder

Equipment:

3D-Printer(FDM or SLA)

Diagonal Flush-Cutters

Needle-Nose Pliers

Lighter or Heat Gun

Soldering Iron

Empathetic Research

IMG_20200510_185607.jpg
IMG_20200510_185920.jpg

What is Empathy?

Empathy is described as the ability to understand and share the feelings of others. Though this may see simple, there are actually three different types of empathy: Cognitive, Emotional, and Compassionate. Cognitive empathy only requires one to understand how a person feels and know what they are potentially thinking. Cognitive empathy requires no emotional connection, but is still incredibly useful in everyday life. Emotional empathy involves the internalization of another person's emotions, you must feel what that person feels to experience emotional empathy. This is integral to close relationships and occupations that require individuals to make decisions about the lives of others. Unfortunately, emotional empathy can be overwhelming at times. Lastly, there exists compassionate empathy, which essentially combines the first two forms of empathy. It balances careful consideration, along with connected emotion, and most importantly, action. Integral to compassionate empathy is the desire to act on one's feelings, and help those in need.

Why is it important to empathize with a given client?

In good design, empathy is critical, whether this be cognitive, emotional or compassionate. At the very least, any designer must put utmost effort into understanding their clients needs and wants. This is why we see most designers opt for cognitive empathy when tackling a project. Obviously, emotional empathy isn’t appropriate from a design standpoint, and would most likely be regarded as unprofessional. However, when a designer is able to empathize with a client compassionately, they have achieved a level of communication conducive to the creation of an incredible product. Thus, when I design for a client, I strive to not only understand their feelings and perspective, but feel what they feel, in order to meet their standards to the best of my ability.

How this empathy led me to create this project in particular

This rat feeder was designed for my sister. She recently became the owner of a dumbo rat(dumbo because of its large ears, not its intellect), and has experienced the ups and downs of owning a large furry rodent. The rat was shy, and still is, the first time she went to pick it up it lashed out with its teeth and bit her on the finger—she cried for a good hour after that. It took her a week or two to build enough courage to put her hand back in that cage, but she did eventually. I watched her attitude change from one of contempt to one of caring, she fed the rat daily, washed it weekly, and even built it a new cage so it could run around. I understand the way she felt then and the way she feels now, not only because I'm her brother, but because I’ve cared for a small rodent as well.I’ve been scared of it biting me, I’ve also let it sit on my shoulder as I’ve walked around my room, the ever changing tide of emotions is something I’ve experienced first hand. Unfortunately, due to COVID-19, and a few other reasons, we’re living away from a normal home in the city. My sister still has to feed her rat daily, and is thus stuck out here indefinitely. While the rest of my family, including me, is free to travel when they please, my sister must stay, to care for her rat. Thus, by creating an automatic rat feeder, she would be free to go wherever she pleases for as long as she wants. And she deserves that.

Design

I designed all of the components for this project using Autodesk Inventor.

Download All 3D Printed Files

Visit this link: https://www.thingiverse.com/thing:4354393, and download the 5 available files.

Print the Piston Housing

Screenshot (13).png

The print settings for each component differ slightly. These are the print settings for the "Piston Housing"

Optimal temperatures and settings vary printer by printer but here are some guidelines for infill and support material.

Material: PLA or PETG

Infill: 10%

Perimeter/Wall: 2

Support Material: Yes

Speed/Accuracy: Fast

Print the Servo Arm Extension

Screenshot (17).png

The print settings for each component differ slightly. These are the print settings for the "Servo Arm Extension"

Optimal temperatures and settings vary printer by printer but here are some guidelines for infill and support material.

Material: PLA or PETG

Infill: 10%

Perimeter/Wall: 2

Support Material: No

Speed/Accuracy: Standard

Print the Piston Head

Screenshot (14).png

The print settings for each component differ slightly. These are the print settings for the "Piston Head"

Optimal temperatures and settings vary printer by printer but here are some guidelines for infill and support material.

Material: PLA or PETG

Infill: 10%

Perimeter/Wall: 2

Support Material: No

Speed/Accuracy: Standard

Print the Piston Arm

Screenshot (15).png

The print settings for each component differ slightly. These are the print settings for the "Piston Arm"

Optimal temperatures and settings vary printer by printer but here are some guidelines for infill and support material.

Material: PLA or PETG

Infill: 10%

Perimeter/Wall: 2

Support Material: Yes

Speed/Accuracy: Standard

Print the Hopper

Screenshot (16).png

The print settings for each component differ slightly. These are the print settings for the "Hopper"

Optimal temperatures and settings vary printer by printer but here are some guidelines for infill and support material.

Material: PLA or PETG

Infill: 5%

Perimeter/Wall: 1

Support Material: No

Speed/Accuracy: Fast

Prepare Components

IMG_20200510_165136.jpg

Remove Support Material:

The piston housing is printed with support material, this should be removed with needle-nose pliers.

The piston arm can be easily removed from its support material without the use of tools.

Optional: Lightly sand all parts.


Connect Piston Head and Piston Arm

IMG_20200510_165446.jpg
IMG_20200510_165455.jpg
IMG_20200510_165504.jpg

Align the "T" shaped side of the piston arm with the slot on the piston head

Press the piston arm down firmly until it's seated in the circular recess

Mount the Servo

IMG_20200510_202435.jpg
IMG_20200510_170017.jpg
IMG_20200510_203001.jpg

Insert the servo motor into the appropriate slot with the shaft positioned towards the top of the piston housing.

Use the included screws to secure the servo motor in place. Do not over tighten the screws as PLA is brittle and prone to cracking.

Attaching the Servo Arm and Servo Arm Adapter

IMG_20200510_165703.jpg
IMG_20200510_165717.jpg
IMG_20200510_165722.jpg

Insert the small plastic servo arm included with the servo motor into the recess on the servo arm adapter.

Ensure that the servo arm is flush with the servo arm adapter, and if it isn't, flip the servo arm and it should fit properly.

Press the servo arm and servo adapter firmly onto the output shaft of the servo motor.

Use the smallest screw included with the servo motor to secure both pieces in place.

If it is installed correctly, there should be little to no vertical "play"(wiggle)

Assembly (Mechanical Components)

IMG_20200510_203409.jpg
IMG_20200510_203447.jpg
IMG_20200510_203503.jpg
IMG_20200510_203557.jpg

Insert the piston head into the piston housing, ensure that the end of the piston is flush with the end of the piston housing.

Align the holes on the servo arm and piston arm. The servo can be moved without damaging it, so feel free to do so if need be.

Insert an inch long M3 bolt through both the servo arm and piston arm, use 2 nuts to secure it on the opposite side.

It doesn't matter which way the bolt is inserted.

Connecting the Servo to the Arduino

Screenshot (10).png
IMG_20200510_170045.jpg
IMG_20200510_181020.jpg

SOLDERING IS OPTIONAL, Please skip to the next step if you don't want to/can't solder.

Wire Prep:

Cut the wires on the servo motor so there are 3 inches remaining.

Separate the wires, but only for the first 1 inch.

Strip 1/2" of insulation from each wire.

Soldering:

Tin soldering iron and solder the brown wire to GND(Ground), red wire to 5V, and yellow to pin 9

Follow the schematic above!

Mount the Arduino

IMG_20200510_203801.jpg

Use 2 more small servo screws to secure the Arduino Nano to the rear of the dispenser housing.

Attach Feed Hopper

Connect and Flash the Code to the Arduino

IMG_20200510_203854.jpg

Copy the code below, and upload it to the Arduino via the Arduino CC:

#include

Servo myservo; // create servo object to control a servo // twelve servo objects can be created on most boards

int pos = 0; // variable to store the servo position

void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object }

void loop() { for (pos = 0; pos <= 45; pos += 1) { // goes from 0 degrees to 45 degrees // in steps of 1 degree myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for (pos = 45; pos >= 0; pos -= 1) { // goes from 45 degrees to 0 degrees myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } }

Mount to Cage

IMG_20200510_204711.jpg

Using zip ties, secure the face of the rat feeder to your pet's cage!

Please ensure the opening of the dispenser isn't obstructed by the wires of the cage.

The piston will cycle 4 times every 24 hours, the timer begins once the Arduino receives power.

The feeder only requires 5v, so it can run off of any wall outlet via Micro USB or an external battery pack.

Think About Pet Care

unnamed.jpg

The entire purpose of this product was to give your loved one's pets, or maybe your own pet, the care and attention it deserves. It does the job a caretaker normally would allowing them to spend a short spans time away from their pet worry-free.

To be liberated is to be free, and freedom comes with responsibility.

I want to make this absolutely clear: this product is NOT A PERMANENT SOLUTION TO PET CARE. As I have extended empathy to my sister when I created this product for her, I ask you kindly to extend empathy towards your pets; just because you can, don't leave them for days on end, play with them regularly, make sure their environment is clean and safe.

Thank you,

Kanoa.