Cómo hacer dispensador de mascotas con Raspberry Pi
Si eres dueño de una mascota, sabrás que mantenerla bien alimentada es una de tus principales responsabilidades. Pero, ¿qué pasa si tienes un horario ocupado y no puedes estar en casa para darle de comer a tu mascota a la hora adecuada? ¿O si tu mascota tiene una dieta específica y necesita recibir una cantidad de alimento precisa y en un horario determinado? Una solución práctica para estos problemas es hacer un dispensador de comida para mascotas con Raspberry Pi. En este artículo, te explicaremos cómo hacerlo paso a paso.
Materiales necesarios
Antes de empezar, es importante tener todos los materiales necesarios. A continuación, te mostramos una lista de lo que necesitarás: (Los siguientes enlaces te llevarán a amazon.es)
- Raspberry Pi (preferiblemente el modelo 3 o superior)
- Servomotor SG90
- Adaptador de corriente de 5V y 2A
- Micro SD de al menos 16GB
- Cables macho-hembra
- Cables macho-macho
- Protoboard
- Resistencia de 330 ohmios
- Sensor de distancia ultrasónico HC-SR04
- Caja de plástico para alojar los componentes
- Comida para mascotas
Conectar el servomotor
Lo primero que debemos hacer es conectar el servomotor al Raspberry Pi. Para ello, conecta el pin de señal del servomotor al pin GPIO 17 del Raspberry Pi y la alimentación del servomotor al pin 2V de la protoboard. A continuación, conecta la resistencia de 330 ohmios entre el pin de señal del servomotor y el pin 2V de la protoboard.
Conectar el sensor de distancia
A continuación, conecta el sensor de distancia al Raspberry Pi. Luego conecta el pin VCC del sensor al pin 2V de la protoboard, el pin GND al pin GND del Raspberry Pi, el pin Echo al pin GPIO 24 del Raspberry Pi y el pin Trig al pin GPIO 23 del Raspberry Pi.
Programar la Raspberry Pi
servo.start(0)
Después, definimos la función que hará girar el motor para dispensar la comida:
def dispensar_comida(cantidad):
# Girar el motor hacia adelante
pwm.start(0)
pwm.ChangeDutyCycle(7.5)
time.sleep(cantidad)
# Detener el motor
pwm.ChangeDutyCycle(0)
pwm.stop()
La función recibe como parámetro la cantidad de tiempo en segundos que el motor debe girar hacia adelante. En este ejemplo, usamos un valor de 0.5 segundos para dispensar una pequeña cantidad de comida.
Luego, definimos la función que moverá el servo para abrir y cerrar la compuerta del dispensador:
def abrir_compuerta(angulo):
# Primero mover el servo a la posición deseada
duty = angulo / 18 + 2
servo.ChangeDutyCycle(duty)
time.sleep(1)
# Luego volver el servo a la posición inicial
servo.ChangeDutyCycle(0)
La función recibe como parámetro el ángulo en el que debe colocarse el servo para abrir la compuerta. En este ejemplo, usamos un valor de 90 grados para abrir la compuerta y un valor de 0 grados para cerrarla.
Por último, definimos el bucle principal del programa, que espera a que se active un sensor para dispensar la comida:
try:
while True:
# Esperar a que se active el sensor
if GPIO.input(sensor_pin) == GPIO.HIGH:
abrir_compuerta(90)
dispensar_comida(0.5)
abrir_compuerta(0)
time.sleep(10)
except KeyboardInterrupt:
pass
GPIO.cleanup()
La estructura del programa es sencilla: el bucle principal espera a que se active un sensor (que puede ser un sensor de movimiento, de proximidad, de peso, etc.), y cuando se activa, llama a las funciones de dispensar comida y abrir la compuerta para dispensar la cantidad deseada.
El siguiente paso es programar el Raspberry Pi para que pueda controlar el servomotor y el sensor de distancia. Así que para ello, puedes usar Python, un lenguaje de programación muy popular y fácil de aprender.
En primer lugar, debes instalar la biblioteca de control del servomotor y la biblioteca de control del sensor de distancia en el Raspberry Pi. Puedes hacerlo ejecutando los siguientes comandos en la terminal:
1.-sudo apt-get update
2.-sudo apt-get install python-rpi.gpio
3.-sudo apt-get install python3-rpi.gpio
Una vez instaladas las bibliotecas, puedes empezar a programar el Raspberry Pi. Aquí te mostramos un ejemplo de código en Python para que puedas controlar el servomotor y el sensor de distancia:
import RPi.GPIO as GPIO
import time
# Primero configuración de pines
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.IN)
# Seguidamente definir la función para mover el servomotor
def mover_servomotor(grados):
Programación del dispensador de comida para perros casero
Para programar el dispensador de comida, utilizaremos el lenguaje de programación Python y el módulo GPIO de la Raspberry Pi. Primero, necesitamos importar los módulos necesarios:
import RPi.GPIO as GPIO
import time
A continuación, definimos los pines que utilizaremos para controlar el motor y el servo. En este ejemplo, usaremos el pin 18 para el motor y el pin 22 para el servo:
motor_pin = 18
servo_pin = 22
Luego, configuramos los pines como salidas y definimos la frecuencia de trabajo del motor:
GPIO.setup(motor_pin, GPIO.OUT)
GPIO.setup(servo_pin, GPIO.OUT)
pwm = GPIO.PWM(motor_pin, 50)
A continuación para el servo, definimos la frecuencia de trabajo y el ángulo inicial:
servo = GPIO.PWM(servo_pin, 50)
Conclusión
En conclusión, como hacer un dispensador o crear un dispensador de comida para mascotas utilizando una Raspberry Pi es un proyecto emocionante y útil que cualquier amante de las mascotas puede disfrutar. Por lo tanto con la flexibilidad y la potencia de la Raspberry Pi, es posible crear un sistema de dispensación de comida personalizado que se adapte a las necesidades específicas de su mascota. Ya sea que esté buscando una forma de alimentar a su mascota mientras está fuera de casa o simplemente quiera automatizar la tarea de alimentación diaria, la Raspberry Pi es una herramienta valiosa en la creación de un dispensador de comida para mascotas.
Además, este proyecto es una excelente oportunidad para aprender más sobre la programación, la electrónica y la mecánica, lo que lo convierte en una experiencia educativa valiosa para cualquier entusiasta de la tecnología. Así que esperamos que este artículo haya sido útil para comenzar su proyecto de dispensador de comida para mascotas con Raspberry Pi. ¡Disfrute creando y personalizando su propio sistema de dispensador de comida para perros proyecto!