Most of the people has a pet at their home, if not then they for sure knows someone who is. Pet owners sometimes stay out late maybe because they have work to do or an emergency to take care of. If that happened it would be nice to easily have a machine that takes care of the food part for the pet to make sure it stays healthy.
What it does
It is set to dispense food every certain interval of time pre set or through using a Web Page to override the machine to dispense food. It also was planned that the web page shows how many times the food was dispensed in the last 24 hours but because of the time limit, that might be an add on feature to add later on.
How we built it
We are one time. Built by: Moaz Abougabal, Deion Booher, Paul Jacobs, Curtis Mimes.
Challenges we ran into
You can't really not run into challenges. First, running the stepper motor for arduino on a raspberry pi. The wiring part was not in the right order and took a whole a lot of time to get it together. Sec, setting up a web page to send data to the raspberry python file.
Accomplishments that we're proud of
Making our idea work!
What we learned
Setting up hardware for raspberry pi and how the GPIO pins work.
What's next for Automatic Pet Feeder
Control it using an app on the phone and making it decent priced for everyone to be able to use.
Code Used: named AutoCatFeeder.py
import RPi.GPIO as GPIO import time
GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) coil_A_1_pin = 4 coil_A_2_pin = 17 coil_B_1_pin = 23 coil_B_2_pin = 24
adjust if different
StepCount = 8 Seq = range(0, StepCount) Seq = [0,1,0,0] Seq = [0,1,0,1] Seq = [0,0,0,1] Seq = [1,0,0,1] Seq = [1,0,0,0] Seq = [1,0,1,0] Seq = [0,0,1,0] Seq = [0,1,1,0]
GPIO.setup(coil_A_1_pin, GPIO.OUT) GPIO.setup(coil_A_2_pin, GPIO.OUT) GPIO.setup(coil_B_1_pin, GPIO.OUT) GPIO.setup(coil_B_2_pin, GPIO.OUT)
def setStep(w1, w2, w3, w4): GPIO.output(coil_A_1_pin, w1) GPIO.output(coil_A_2_pin, w2) GPIO.output(coil_B_1_pin, w3) GPIO.output(coil_B_2_pin, w4)
def forward(delay, steps): for i in range(steps): for j in range(StepCount): setStep(Seq[j], Seq[j], Seq[j], Seq[j]) time.sleep(delay)
if name == 'main': while True: delay = 1 steps = raw_input("How many quarter rotations do you want the blades to rotate?") Dstime = raw_input("How long do you want the dispanse period to be? (in hours)?") daytime = 24+1 while daytime > 0: forward(int(delay) / 1000.0, int(steps)*125) time.sleep(3*int(Dstime)) daytime -= int(Dstime)