Πίνακας περιεχομένων:

Αυτόματος τροφοδότης σκύλων: 6 βήματα
Αυτόματος τροφοδότης σκύλων: 6 βήματα

Βίντεο: Αυτόματος τροφοδότης σκύλων: 6 βήματα

Βίντεο: Αυτόματος τροφοδότης σκύλων: 6 βήματα
Βίντεο: 16 τρόποι με τους οποίους πληγώνετε τον σκύλο σας χωρίς να το συνειδητοποιείτε 2024, Ιούλιος
Anonim
Αυτόματος τροφοδότης σκύλων
Αυτόματος τροφοδότης σκύλων

Αυτό είναι το έργο μου ενός αυτόματου τροφοδότη κατοικίδιων ζώων. Το όνομά μου είναι Parker είμαι στο βαθμό 11 και έκανα αυτό το έργο στις 11 Νοεμβρίου 2020 ως CCA (Course Culminating Activity) σε αυτό το έργο θα σας δείξω πώς να φτιάξετε έναν αυτόματο τροφοδότη κατοικίδιων ζώων με το Arduino UNO. Μπορείτε να επιλέξετε μια ώρα που μπορείτε να αλλάξετε. Τα τρόφιμα θα διανεμηθούν μέσω ενός τρυπανιού και θα ταΐσουν τα κατοικίδια ζώα σας!

Προμήθειες

ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ:

  • Arduino UNO
  • L298N - 10 $ - Ελέγχει το Nema 17
  • NEMA 17 - 10 $ - Γυρίζει το τρυπάνι έτσι ώστε να διανέμεται το φαγητό
  • RTC (DS1307) - 10 $ - Δίνει το χρόνο
  • Τροφοδοτικό 12V - 5 $ - Τροφοδοτεί τα πάντα
  • Mini Breadboard - Για επιπλέον χώρο καλωδίωσης
  • Jumper Wires - Συνδέει τα πάντα
  • Καλώδια από θηλυκά σε αρσενικά - Συνδέει τα πάντα

Σκεύη, εξαρτήματα:

  • Νήμα 3D εκτύπωσης - για τρισδιάστατο εκτυπωτή
  • 2 μπουλόνια M4 - Κρατήστε τη βάση πλάκας στη θέση της
  • 4 μπουλόνια Nema 17 - Κρατήστε πατημένο το nema
  • PVC T 48mm εσωτερική διάσταση 66mm εξωτερική διάσταση - 3 $

Εργαλεία:

  • Τρισδιάστατος εκτυπωτής
  • Τρυπάνι
  • Συγκολλητικό όπλο

Βήμα 1: Επισκόπηση του Σχεδιασμού

Επισκόπηση του Σχεδιασμού
Επισκόπηση του Σχεδιασμού
Επισκόπηση του Σχεδιασμού
Επισκόπηση του Σχεδιασμού
Επισκόπηση του Σχεδιασμού
Επισκόπηση του Σχεδιασμού
Επισκόπηση του Σχεδιασμού
Επισκόπηση του Σχεδιασμού

Ο σχεδιασμός του τροφοδότη κατοικίδιων ζώων είναι πολύ απλός. Μια χοάνη πηγαίνει στην κορυφή του PVC T. Στη συνέχεια, ένα κάλυμμα πηγαίνει στο πίσω μέρος του PVC T (όπως φαίνεται στην εικόνα) με το Nema 17 προσαρτημένο σε αυτό. Στη συνέχεια, το Nema 17 θα ωθηθεί στο πίσω μέρος του Auger που φαίνεται παραπάνω και ένα μπουλόνι θα μπει στο πλάι για να το κρατήσει στη θέση του, ώστε να μην παραμορφώσει την τρύπα που φαίνεται παραπάνω!

Στη συνέχεια, ο τρυπητής απλά θα σπρώξει το φαγητό έξω από το σωλήνα και σε ένα μπολ!

Βήμα 2: Επισκόπηση του κώδικα

Επισκόπηση του Κώδικα
Επισκόπηση του Κώδικα
Επισκόπηση του Κώδικα
Επισκόπηση του Κώδικα
Επισκόπηση του Κώδικα
Επισκόπηση του Κώδικα

Το RTC & The stepper έχουν ένα libary που ονομάζεται RTClib.h και Stepper.h το οποίο προσθέτει απλοποιημένο κώδικα για το RTC & Stepper. Οι δηλώσεις if είναι πολύ απλές, λέγοντας ότι η ώρα και τα λεπτά ισούται με τον εν λόγω χρόνο, θα περιστρέψει το nema που θα διανείμει το φαγητό. Ο υπόλοιπος κώδικας είναι πολύ εύκολο να κατανοηθεί ακόμη και για κάποιον με μια μέρα εμπειρίας.

Βήμα 3: Προσάρτηση του Nema 17 στο Base Plate & Auger

Προσάρτηση του Nema 17 στο Base Plate & Auger
Προσάρτηση του Nema 17 στο Base Plate & Auger
Προσάρτηση του Nema 17 στο Base Plate & Auger
Προσάρτηση του Nema 17 στο Base Plate & Auger
Προσάρτηση του Nema 17 στο Base Plate & Auger
Προσάρτηση του Nema 17 στο Base Plate & Auger

Πρώτα θέλετε να πάρετε την πλάκα βάσης σας και να την συνδέσετε με το Nema 17 σας χρησιμοποιώντας τις προκατασκευασμένες οπές στην πλάκα βάσης. Μόλις τελειώσετε, θέλετε να συνδέσετε το τρυπάνι στο Nema χρησιμοποιώντας την πίσω τρύπα σε αυτό. Στη συνέχεια, συνδέστε την πλάκα βάσης με το τρυπάνι και το Nema που είναι προσαρτημένο και στη συνέχεια βιδώστε τα μπουλόνια Μ2 σε κάθε πλευρά.

Βήμα 4: Καλωδίωση L298N & RTC

Καλωδίωση L298N & RTC
Καλωδίωση L298N & RTC
Καλωδίωση L298N & RTC
Καλωδίωση L298N & RTC

Αυτό το βήμα θα σας πει πώς να συνδέσετε το L298N & RTC

Θα ξεκινήσουμε με τις ακίδες 8, 9, 10, 11 στο L298N

  • Καρφίτσα 8 (Λευκό) στο IN1
  • Καρφίτσα 9 (Μωβ) σε IN2
  • Καρφίτσα 10 (Ροζ) στο IN3
  • PIN 11 (Κίτρινο) έως IN4

Στη συνέχεια θα συνδέσουμε το Nema 17 με το L298N

  • OUT1 έως 1 στο NEMA
  • OUT2 έως 2 στο NEMA
  • OUT3 έως 3 στο NEMA
  • OUT4 έως 4 στο NEMA

Σύνδεση 12v και Arduino στο L298N (Δεν βρέθηκε 12V, οπότε φανταστείτε μπαταρία 9V ως τροφοδοσία)

  • Τάση έως 12V
  • Γείωση σε GND
  • 5V έως 5V στο Breadboard

Σύνδεση RTC με Arduino

  • GND σε GND
  • 5V έως 5V στο Breadboard
  • SDA έως A5
  • SCL έως Α4

Jumper Pins

Όλοι οι πείροι του βραχυκυκλωτήρα υποτίθεται ότι βρίσκονται στο L298N

Βήμα 5: Κωδικοποίηση με σχόλια

Κωδικοποίηση με σχόλια
Κωδικοποίηση με σχόλια
Κωδικοποίηση με σχόλια
Κωδικοποίηση με σχόλια
Κωδικοποίηση με σχόλια
Κωδικοποίηση με σχόλια

Ο κωδικός είναι σαφέστερος στις παραπάνω εικόνες

// Όνομα: Parker Frederick

// Όνομα έργου: Auto Pet Feeder // Ημερομηνία: Τρίτη, 10 Νοεμβρίου 2020 // Δάσκαλος: M. Bonisteel // Desc: Ταΐστε τα κατοικίδια ζώα σας σε μια συγκεκριμένη ώρα!

// Libaries για τα πράγματα που χρησιμοποίησα #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Λέει τι χρησιμοποιώ το RTC

// Εδώ καθορίζετε την ώρα για το φαγητό

// oursρες int mornFeedTime = 12; int nightFeedTime = 7; // Minutes int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Seconds int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"Κυριακή", "Δευτέρα", "Τρίτη", "Wedsneday", "Πέμπτη", "Παρασκευή", "Σάββατο"}; // Κάνει τις κανονικές ημέρες να μετατρέπονται σε ημέρες της εβδομάδας

const int feed = 200; // Αυτά είναι τα βήματά σας πόσες φορές θέλετε να γυρίσει

Stepper myStepper (ροή, 8, 9, 10, 11); // Οι καρφίτσες σας για το Nema 17 και τα περισσότερα άλλα steppers

void setup () {Serial.begin (9600);

ενώ (! Σειριακό)? // Εάν το RTC δεν λειτουργεί θα το εμφανίσει στη σειριακή οθόνη εάν (! Rtc.begin ()) {Serial.println ("Δεν ήταν δυνατή η εύρεση του RTC"); ενώ (1)? }

// Αυτό θα σας πει εάν το Ρολόι πραγματικού χρόνου λειτουργεί ή όχι και θα το εμφανίσει στη σειριακή οθόνη εάν (! Rtc.isrunning ()) {Serial.println ("RTC τρέχει!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Αυτό θα πάρει χρόνο στον υπολογιστή σας και θα το χρησιμοποιήσετε στο RTC

// Αν θέλετε να έχετε έναν καθορισμένο χρόνο αντί για τον υπολογιστή, μπορείτε να το κάνετε εδώ //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Έτος/Μήνας/Ημέρα//ρα/Λεπτό/Δεύτερο} myStepper.setSpeed (200); // Ταχύτητα που θέλετε να γυρίζει στο}

void loop () {DateTime now = rtc.now ();

// Αυτό θα κάνει αυτές τις μεταβλητές την ώρα που είναι τώρα κλπ int int hr = now.hour (); int mi = now.minute (); int se = now.second ();

// Κωδικοποιήστε έτσι την καθορισμένη ώρα θα διανείμει το φαγητό και θα περιστρέφεται 5 φορές, αυτό για την πρωινή τροφή

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Πρωινό!"); myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)?

}

// Κωδικοποιήστε έτσι την καθορισμένη ώρα θα διανέμει το φαγητό και θα περιστρέφεται 5 φορές, αυτό είναι για νυχτερινή τροφοδοσία

εάν (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("δείπνο!"); myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)?

myStepper.step (-τροφή); καθυστέρηση (700)? }

// Αυτό θα εμφανίσει το ΕΤΟΣ, ΜΗΝΑΣ, ΗΜΕΡΑ, ΩΡΑ, ΛΕΠΤΟ, ΔΕΥΤΕΡΟ στο σειριακό

Serial.print (now.year (), DEC); Serial.print ('/'); Serial.print (now.month (), 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 (now.minute (), DEC); Serial.print (':'); Serial.print (now.second (), DEC); Serial.println (); }

Ιστότοπος που χρησιμοποίησα για το RTC διέγραψα τα περισσότερα πράγματα εκτός από τις δηλώσεις if που λένε εάν το RTC είναι ενεργοποιημένο ή όχι. Χρησιμοποίησα κυρίως αυτόν τον ιστότοπο για να μάθω πώς να προγραμματίζω το RTC

Ιστοσελίδα που χρησιμοποίησα για το Stepper motor αυτό με βοήθησε να καταλάβω πώς να προγραμματίσω το stepper να τρέξει δεν κράτησα πραγματικά τίποτα από αυτό. Με βοήθησε να καταλάβω πώς να το κωδικοποιήσω

Βήμα 6: Προβλήματα και πώς τα διόρθωσα

Προβλήματα και πώς τα διόρθωσα!
Προβλήματα και πώς τα διόρθωσα!

Μερικά προβλήματα που είχα

  • Χρειαζόμουν τροφοδοτικό 12v, είχα μόνο μπαταρία 9v βρήκα μία και λύθηκε γρήγορα.
  • Κατά τη σύνδεση του L298N με το NEMA 17 είχα τα καλώδια λανθασμένα στα A και A- κάτι που το έκανε να τρεμοπαίζει λίγο. Απλώς το διόρθωσα αλλάζοντας τα καλώδια με τον άλλο τρόπο.
  • Προσπάθησε να κάνει τον κώδικα πιο απλό γιατί στη δήλωση if myStepper.step (-feed)? ξανά και ξανά φαινόταν ακατάστατο. Έτσι έπρεπε να το αλλάξω πίσω.
  • Είχα λάθος πλάκα βάσης μεγέθους όπως φαίνεται στην εικόνα, οπότε έπρεπε να εκτυπώσω λίγο μια νέα 3D και ταιριάζει τέλεια!
  • Το πρόβλημα που έχω είναι ότι είναι μαρμελάδες αφού το τρυπάνι είναι πολύ μικρό, οπότε μπλοκάρει Ο απλός τρόπος που μπορώ να διορθώσω είναι μεγαλώνοντας το τρυπάνι σε μικρή ποσότητα!

Συνιστάται: