Table des matières:
- Fournitures
- Étape 1: Aperçu de la conception
- Étape 2: Présentation du code
- Étape 3: Fixation du Nema 17 à la plaque de base et à la tarière
- Étape 4: Câblage L298N & RTC
- Étape 5: coder avec des commentaires
- Étape 6: Problèmes et comment je les ai résolus
Vidéo: Mangeoire automatique pour chien : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Ceci est mon projet d'un distributeur automatique d'aliments pour animaux de compagnie. Je m'appelle Parker, je suis en 11e année et j'ai réalisé ce projet le 11 novembre 2020 en tant que CCA (activité culminante de cours) dans ce projet, je vais vous montrer comment créer une mangeoire automatique pour animaux avec Arduino UNO. Vous pouvez choisir une heure que vous pouvez modifier. La nourriture sera distribuée à travers une tarière et nourrira vos animaux de compagnie !
Fournitures
Électronique:
- Arduino UNO
- L298N - 10$ - Contrôle le Nema 17
- NEMA 17 - 10$ - Tourne la tarière pour que la nourriture se distribue
- RTC (DS1307) - 10$ - Donne l'heure
- Alimentation 12V - 5$ - Alimente tout
- Mini planche à pain - Pour un espace de câblage supplémentaire
- Cavaliers - Connecte tout
- Fils femelle à mâle - Connecte tout
Matériel:
- Filament d'impression 3D - pour imprimante 3D
- 2 boulons M4 - Maintenez la plaque de base en place
- 4 boulons Nema 17 - Maintenez le nema enfoncé
- PVC T 48mm dimension intérieure 66mm dimension extérieure - 3$
Outils:
- Imprimante 3D
- Percer
- Fer à souder
Étape 1: Aperçu de la conception
La conception de la mangeoire pour animaux de compagnie est très simple. Une trémie va sur le dessus du PVC T. Ensuite, une couverture va à l'arrière du PVC T (comme indiqué sur la photo) avec le Nema 17 qui y est attaché. Ensuite, le Nema 17 sera poussé à l'arrière de la tarière qui peut être vu ci-dessus et un boulon ira dans le côté pour le maintenir en place afin qu'il ne déforme pas le trou qui peut être vu au-dessus !
Ensuite, la tarière poussera simplement les aliments hors du tuyau et dans un bol !
Étape 2: Présentation du code
Le RTC et le stepper ont une bibliothèque appelée RTClib.h et Stepper.h qui ajoute un code simplifié pour le RTC & Stepper. Les instructions if sont très simples, si l'heure et les minutes sont égales à l'heure en question, le nema fera tourner le nema qui distribuera la nourriture. Le reste du code est très facile à comprendre même pour quelqu'un avec une journée d'expérience.
Étape 3: Fixation du Nema 17 à la plaque de base et à la tarière
Vous voulez d'abord prendre votre plaque de base et la fixer à votre Nema 17 en utilisant les trous préfabriqués sur la plaque de base. Une fois cela fait, vous souhaitez attacher la tarière au Nema en utilisant le trou arrière. Ensuite, connectez la plaque de base avec la tarière et le Nema attachés, puis vissez les boulons M2 de chaque côté.
Étape 4: Câblage L298N & RTC
Cette étape vous dira comment câbler le L298N & RTC
Nous allons commencer par les broches 8, 9, 10, 11 au L298N
- Broche 8 (blanche) à IN1
- Broche 9 (violet) à IN2
- Broche 10 (rose) à IN3
- PIN 11 (Jaune) à IN4
Ensuite, nous allons connecter le Nema 17 au L298N
- OUT1 à 1 sur NEMA
- OUT2 à 2 sur NEMA
- OUT3 à 3 sur NEMA
- OUT4 à 4 sur NEMA
Connexion 12v et Arduino à L298N (Impossible de trouver 12V alors imaginez une batterie 9V comme alimentation)
- Volts à 12V
- Terre à GND
- 5V à 5V sur planche à pain
Connecter RTC à Arduino
- GND à GND
- 5V à 5V sur planche à pain
- SDA à A5
- SCL à A4
Épingles de cavalier
Toutes les broches de cavalier sont censées être sur le L298N
Étape 5: coder avec des commentaires
Le code plus clair dans les images ci-dessus
// Nom: Parker Frederick
// Nom du projet: Auto Pet Feeder // Date: Mardi 10 novembre 2020 // Enseignant: M. Bonisteel // Desc: Nourrissez vos animaux à une heure précise !
// Bibliothèques pour les choses que j'ai utilisées #include #include #include "RTClib.h"
RTC_DS1307 rtc; //Dit ce que RTC j'utilise
// C'est ici que vous définissez l'heure de la nourriture
// Heures int mornFeedTime = 12; int nightFeedTime = 7; //Minutes intmornFeedTimeM = 29; int nightFeedTimeM = 00; //Secondes int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7][12] = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"}; // Transforme les jours normaux en jours de la semaine
const int feed = 200; // Ce sont vos pas donc combien de fois vous voulez qu'il tourne
Stepper myStepper(alimentation, 8, 9, 10, 11); // Vos pins pour le Nema 17 et la plupart des autres steppers
void setup() { Serial.begin(9600);
tandis que (!Série); // Si le RTC ne fonctionne pas, il l'affichera dans l'écran série if (! rtc.begin()) { Serial.println("Impossible de trouver le RTC"); tandis que (1); }
// Cela vous dira si l'horloge temps réel est en cours d'exécution ou non et l'affichera sur l'écran série if (! rtc.isrunning()) { Serial.println("RTC is running!");
rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // Cela prendra du temps à votre ordinateur et l'utilisera sur le RTC
// Si vous voulez avoir une heure définie au lieu de l'heure de l'ordinateur, vous pouvez le faire ici //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Année/Mois/Jour/Heure/Minute/Seconde } myStepper.setSpeed(200); // Vitesse à laquelle vous voulez qu'il tourne }
boucle vide () { DateTime now = rtc.now ();
// Cela fera de ces variables l'heure actuelle, etc. int hr = now.hour(); int mi = maintenant.minute(); int se = maintenant.seconde();
// Code donc à l'heure définie, il distribuera la nourriture et il tournera 5 fois, ceci si pour la tétée du matin
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) { Serial.println("Petit déjeuner!"); monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700);
}
// Code donc à l'heure définie, il distribuera la nourriture et il tournera 5 fois, c'est pour l'alimentation de nuit
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) { Serial.println("Dîner !"); monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700);
monpas.step(-feed); retard (700); }
// Cela affichera l'ANNÉE, MOIS, JOUR, HEURE, MINUTE, SECONDE dans la série
Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(maintenant.mois(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(" ("); Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); Serial.print(") "); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(maintenant.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Serial.println(); }
Site Web que j'ai utilisé pour le RTC J'ai supprimé la plupart des choses autres que les instructions if qui indiquent si le RTC est activé ou non. J'ai principalement utilisé ce site pour apprendre à programmer le RTC
Site Web que j'ai utilisé pour le moteur pas à pas, cela m'a aidé à comprendre comment programmer le moteur pas à pas pour qu'il fonctionne, je n'en ai vraiment rien gardé. Cela m'a juste aidé à comprendre comment le coder
Étape 6: Problèmes et comment je les ai résolus
Quelques problèmes que j'ai eu
- J'avais besoin d'une alimentation 12v, je n'avais que des piles 9v, j'en ai trouvé une et ça a été résolu rapidement.
- Lors du branchement du L298N avec NEMA 17, les fils A et A étaient incorrects, ce qui l'a fait trembler un peu. Je l'ai simplement réparé en changeant les fils dans l'autre sens.
- J'ai essayé de rendre le code plus simple car dans l'instruction if myStepper.step(-feed); encore et encore avait l'air en désordre. J'ai donc dû le changer en arrière.
- J'avais la mauvaise taille de plaque de base comme on le voit sur la photo, j'ai donc dû en imprimer une nouvelle en 3D et elle s'est parfaitement ajustée !
- Le problème que j'ai, c'est qu'elle se bloque car la tarière est trop petite, donc elle se bloque.
Conseillé:
Mangeoire automatique pour chien!! : 4 étapes
Distributeur automatique d'aliments pour chien !! : Facile, utile et sain
Mangeoire pour chien contrôlée par Alexa : 6 étapes (avec photos)
Mangeoire pour chien contrôlée par Alexa : c'est notre chien Bailey. Elle fait partie du Border Collie et du Australian Cattle Dog, donc parfois elle est plus intelligente que son propre bien, surtout quand il s'agit de dire l'heure et de savoir quand elle devrait dîner. Typiquement, nous essayons de la nourrir vers 18 heures
Mangeoire automatique pour chien : 5 étapes
Mangeoire automatique pour chien : il s'agit d'un didacticiel étape par étape sur la façon de créer une mangeoire automatique pour chien à l'aide d'Arduino. C'est parfait si vous êtes absent une grande partie de la journée. Plutôt que que votre chien doive attendre toute la journée pour avoir de la nourriture ou que vous vous rendiez à la maison pour le nourrir, cet appareil
Catapulte automatique pour lancer de la nourriture pour animaux de compagnie (chien, chat, poulet, etc.), lancer des balles et plus encore ! : 4 étapes (avec photos)
Catapulte automatique pour lancer de la nourriture pour animaux de compagnie (chien, chat, poulet, etc.), lancer des balles et plus encore ! : Bonjour et bienvenue dans mon premier Instructable ! Notre chien adore sa nourriture, elle va littéralement tout manger en quelques secondes. J'ai imaginé des moyens de ralentir cela, des balles avec la nourriture à l'intérieur à la jeter partout dans la cour. Étonnamment, elle est
Mangeoire automatique pour chien Raspberry Pi et diffuseur vidéo en direct : 3 étapes
Mangeoire automatique pour chien Raspberry Pi & Streamer vidéo en direct : Ceci est mon mangeoire automatique pour chien alimenté par Raspberry PI. Je travaillais du matin de 11h à 21h. Mon chien devient fou si je ne le nourris pas à temps. Surfé sur google pour acheter des mangeoires automatiques, ils ne sont pas disponibles en Inde et importation coûteuse