Table des matières:

Mangeoire automatique pour chien : 6 étapes
Mangeoire automatique pour chien : 6 étapes

Vidéo: Mangeoire automatique pour chien : 6 étapes

Vidéo: Mangeoire automatique pour chien : 6 étapes
Vidéo: DIY : Comment fabriquer un distributeur de croquettes pour chien 2024, Novembre
Anonim
Mangeoire automatique pour chien
Mangeoire automatique pour chien

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

Aperçu de la conception
Aperçu de la conception
Aperçu de la conception
Aperçu de la conception
Aperçu de la conception
Aperçu de la conception
Aperçu de la conception
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

Présentation du code
Présentation du code
Présentation du code
Présentation du code
Présentation du code
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

Fixation du Nema 17 à la plaque de base et à la tarière
Fixation du Nema 17 à la plaque de base et à la tarière
Fixation du Nema 17 à la plaque de base et à la tarière
Fixation du Nema 17 à la plaque de base et à la tarière
Fixation du Nema 17 à la plaque de base et à la tarière
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

Câblage L298N & RTC
Câblage L298N & RTC
Câblage L298N & RTC
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

Codage avec commentaires
Codage avec commentaires
Codage avec commentaires
Codage avec commentaires
Codage avec commentaires
Codage avec 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

Problèmes et comment je les ai résolus !
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é: