Este proyecto de Arduino es tan simple como el mecanismo de un botijo, literalmente, conceptualmente esto es un botijo hecho con arduino, pero es probable que sea el más práctico de los realizados hasta ahora. Cuanto más complicado más inútil, y viceversa, cuanto más simple más práctico, bonita moraleja.

Una de las limitaciones propias de tener animales y plantas en casa son las obligaciones que generan. Da igual que los animales sean canarios y peces, para ellos un martes es indistinguible de un domingo, su estómago funciona de igual forma.

En nuestra última salida a Galicia decidimos no incordiar a ningún familiar/amigo con la tarea de «pasarse a ver si lo canarios tienen agua y darle de comer a los peces«. Dispuse un depósito de 8 litros de agua como bebedero y me ingenié un sistema de alimentación para los peces (alrededor de 80-100 platys) que viven en la tinaja del patio.
El problema de la alimentación de los peces es que si se les dá en exceso se contamina el agua y puede provocar un bloom bacteriano que en el peor de los casos acabe con un buen montón de peces muertos y si se les dá poco pues 3/4 de lo mismo. Si bien los platys se «distraen» mordisqueando algas y con el agua fresca se les puede «aletargar» fácilmente una temporada preferí no arriesgarme con un semana de parón y sobretodo costando tan poco trabajo.

(En el vídeo, si no teneis ganas de escuchar el rollo, para ver el funcionamiento moverse hasta el minuto 2:00)

Dispensador de comida

La mayor dificultad de este invento viene dada por la particular presentación de la comida de peces: pesa muy poco, absorbe humedad ambiental como una esponja reseca y es muy grande. En las primeras pruebas que hice, con un bote abierto completamente, la humedad ambiental del patio era suficiente para que por la mañana la comida estuviese convertida en pasta grumosa y solidificada en el fondo del envase, hasta tal punto solidificada que ni sacudiéndolo con fuerza caía fuera del bote.
La solución vino disponiendo una tapa basculante que evitaba la «caída de humedad» dentro del bote (y posibles chispeos veraniegos) y procurando que los movimientos del bote fuesen bastante bruscos para «desatascar» el contenido.
Esta tapadera basculante tiene una ventaja, el propio movimiento de giro del bote provoca que esta tapadera golpee el envase en cada giro, consiguiendo que «desatranque» posibles apelmazamientos de las escamas.

La segunda solución fue pulverizar la comida, triturando las escamas y dejándola con un aspecto mucho más polvoriento, en lugar de las escamas/láminas que tienden a atascar fácilmente la boca de salida provocando que, o bien no cae comida ó bien cae mucha de golpe.

El programa del temporizador

El programa es bien simple. Opté por descargar e instalar la librería Time/TimeAlarm que dispone de una serie de funciones básicas y elementales.
Prácticamente el programa lo único que hace es establecer una fecha/hora (setTime, las 0:0:0 del 20/Sep/11) y a continuación 4 ejecuciones de la función servirComida, la primera a los 3 segundos de iniciarse el sistema y otras tres a las 6, 12 y 18 horas del inicio (nota: ten en cuenta que no son las 18:00 horarias sino las 18 horas transcurridas desde que enchufaste el Arduino).
La función servirComida gira 3 veces el servo con intervalos de 1000+2000 milisegundos entre giros y deja el bote en una posición inclinada para que evacue el agua de la tapa (caso de lluvia) y asegure el cierre con la tapadera.

#include <Servo.h>
#include <Time.h>
#include <TimeAlarms.h>
Servo motorServo;
int ang = 0;
int anguloInicio = 360; // angulo de inicio
int anguloFin = 1; // hasta un maximo de 180
int numeroDeTazones = 3; //cuantos giros d el cubilete
void setup()
{
setTime(0,0,0,9,20,11);
motorServo.attach(9);
pinMode(13, OUTPUT);
Alarm.alarmRepeat(6,0,0, servirComida);
Alarm.alarmRepeat(12,0,0, servirComida);
Alarm.alarmRepeat(18,0,0, servirComida);
Alarm.timerOnce(3, servirComida);
}
void loop() {
Alarm.delay(1000); // wait one second between clock display
}
void servirComida() {
delay(1000);
for(int tazon = 0; tazon < numeroDeTazones; tazon ++) {
digitalWrite(13, HIGH);
for(ang = anguloInicio; ang > anguloFin; ang -= 3) {
motorServo.write(ang);
delay(10);
}
digitalWrite(13, LOW);
delay(2000);
}
}

La instalación como podéis ver en el vídeo es genuinamente casera. Simplemente procurad que el dispensador caiga suficientemente alejado del borde y que el cableado/placa esté protegido de la lluvia (una vieja caja de destornilladores de electrónica tiene el tamaño ideal para alojar una placa arduino)

Observaciones

– Se puede mejorar notablemente su funcionamiento simplemente cambiando el tipo de comida, en lugar de usar escamas usar alguna de las presentaciones en forma de gránulos, píldoras, etc…
– Experimenta con los ángulos de inicio y fin del giro al inicio del sistema. La combinación correcta viene dada por la posición del dispensador, motor, soporte, etc..
– No, efectivamente los peces no aprendieron en una semana a relacionar comida <-> led verde, entre otras cosas porque la luz del led es casi imperceptible durante el día, y una semana es muy poco tiempo.