Სარჩევი:
- მარაგები
- ნაბიჯი 1: დიზაინის მიმოხილვა
- ნაბიჯი 2: კოდის მიმოხილვა
- ნაბიჯი 3: Nema 17 -ის მიმაგრება ბაზის ფირფიტაზე და აუგზე
- ნაბიჯი 4: გაყვანილობა L298N & RTC
- ნაბიჯი 5: კოდირება კომენტარებით
- ნაბიჯი 6: პრობლემები და როგორ გავასწორე ისინი
ვიდეო: ძაღლის ავტომატური მიმწოდებელი: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:15
ეს არის ჩემი პროექტი Pet Pet Feeder. მე მქვია პარკერი მე ვარ 11 კლასში და მე გავაკეთე ეს პროექტი 2020 წლის 11 ნოემბერს, როგორც CCA (კურსის კულმინაციური აქტივობა) ამ პროექტში მე გაჩვენებთ თუ როგორ უნდა გააკეთოთ ავტომატური შინაური ცხოველის მიმწოდებელი Arduino UNO– სთან ერთად. თქვენ შეგიძლიათ აირჩიოთ დრო, რომლის შეცვლაც შეგიძლიათ. საჭმელი გაიცემა აუგზე და გამოკვებავთ თქვენს შინაურ ცხოველებს!
მარაგები
ელექტრონიკა:
- Arduino UNO
- L298N - 10 $ - აკონტროლებს ნემას 17
- NEMA 17 - 10 $ - აქცევს საჭეს ისე, რომ საკვები გაიცემა
- RTC (DS1307) - 10 $ - იძლევა დროს
- 12V კვების ბლოკი - 5 $ - იძენს ყველაფერს
- მინი პურის დაფა - დამატებითი გაყვანილობისთვის
- Jumper Wires - აკავშირებს ყველაფერს
- მავთულები ქალიდან მამაკაცამდე - აკავშირებს ყველაფერს
აპარატურა:
- 3D ბეჭდვის ბოჭკო - 3D პრინტერისთვის
- 2 M4 ჭანჭიკი - დაიჭირეთ ბაზის ფირფიტა ადგილზე
- 4 ნემა 17 ჭანჭიკი - დაიჭირეთ ნემა ქვემოთ
- PVC T 48 მმ შიდა განზომილება 66 მმ გარე განზომილება - 3 $
ინსტრუმენტები:
- 3D პრინტერი
- საბურღი
- შედუღების იარაღი
ნაბიჯი 1: დიზაინის მიმოხილვა
შინაური ცხოველების მიმწოდებლის დიზაინი ძალიან მარტივია. ჰოპერი გადადის PVC T.– ის თავზე, შემდეგ საფარი მიდის PVC T– ის უკანა მხარეს (როგორც სურათზეა ნაჩვენები), რომელზეც მიმაგრებულია Nema 17. შემდეგ ნემა 17 ჩაძვრება აუგის უკანა ნაწილში, რომელიც ზემოთ ჩანს და ჭანჭიკი წავა გვერდზე, რომ შეინარჩუნოს იგი ისე, რომ არ დეფორმირდეს ხვრელი, რომელიც ჩანს ზემოთ!
შემდეგ გამზრდელი უბრალოდ საჭმელს გამოიყვანს მილიდან და თასში!
ნაბიჯი 2: კოდის მიმოხილვა
RTC & Stepper– ს აქვს Libary სახელწოდებით RTClib.h და Stepper.h, რომელიც დასძენს გამარტივებულ კოდს RTC & Stepper– ისთვის. თუ განცხადებები ძალიან მარტივია, მისი ნათქვამია, თუ საათი და წუთი უდრის აღნიშნულ დროს, ის ბრუნავს ნემას, რომელიც დაარიგებს საკვებს. დანარჩენი კოდი ძალიან ადვილი გასაგებია თუნდაც ერთდღიანი გამოცდილების მქონე ადამიანისთვის.
ნაბიჯი 3: Nema 17 -ის მიმაგრება ბაზის ფირფიტაზე და აუგზე
პირველ რიგში, თქვენ უნდა აიღოთ თქვენი ძირითადი ფირფიტა და მიამაგროთ იგი თქვენს ნემა 17 -ზე, დაფაზე დაფარული წინასწარ გაკეთებული ხვრელების გამოყენებით. მას შემდეგ რაც დაასრულეთ, თქვენ გინდათ მიამაგროთ ნავი ნემაზე უკანა ხვრელის გამოყენებით. შემდეგ დააკავშირეთ საბაზისო ფირფიტა აუზთან და ნემასთან მიმაგრებული, შემდეგ დააწებეთ M2 ჭანჭიკები თითოეულ მხარეს.
ნაბიჯი 4: გაყვანილობა 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– თან (ვერ ვიპოვე 12 ვ, ამიტომ წარმოიდგინეთ 9 ვ ბატარეა, როგორც ენერგია)
- ვოლტი 12 ვ -მდე
- მიწა GND– მდე
- 5V დან 5V to Breadboard
RTC დაკავშირებულია არდუინოსთან
- GND to GND
- 5V დან 5V to Breadboard
- SDA to A5
- SCL– დან A4– მდე
Jumper ქინძისთავები
ყველა მხტუნავები უნდა იყოს L298N- ზე
ნაბიჯი 5: კოდირება კომენტარებით
კოდი უფრო ნათელია ზემოთ მოცემულ სურათებში
// სახელი: პარკერ ფრედერიკი
// პროექტის სახელი: ავტომატური შინაური ცხოველების საკვების მიმწოდებელი // თარიღი: სამშაბათი, 10 ნოემბერი 2020 // მასწავლებელი: მ. ბონისტელი // აღწერილობა: შესანახი თქვენი შინაური ცხოველები აღნიშნულ დროს!
// ბიბლიოთეკები იმ ნივთებისთვის, რაც მე გამოვიყენე #მოიცავს #მოიცავს #მოიცავს #მოიცავს "RTClib.h"
RTC_DS1307 rtc; // ამბობს რას ვიყენებ RTC– ს
// ეს არის ის ადგილი, სადაც თქვენ ადგენთ საჭმლის დროს
// Hours int mornFeedTime = 12; int nightFeedTime = 7; // წუთი int mornFeedTimeM = 29; int nightFeedTimeM = 00; // წამი int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"კვირა", "ორშაბათი", "სამშაბათი", "Wedsneday", "ხუთშაბათი", "პარასკევი", "შაბათი"}; // ნორმალურ დღეებს აქცევს კვირის დღეებად
const int feed = 200; // ეს არის თქვენი ნაბიჯები, რამდენჯერ გსურთ რომ დაიძაბოს
სტეპერი myStepper (არხი, 8, 9, 10, 11); // თქვენი ქინძისთავები Nema 17 -ისა და სხვა მრავალი სტეპერებისათვის
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 = ახლა. წუთი (); int se = ახლა. მეორე ();
// კოდი ისე, რომ მითითებულ დროს ის დაარიგებს საკვებს და ის 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 ჯერ დატრიალდება, ეს არის ღამის კვებისათვის
if (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); }
// ეს აჩვენებს სერიას YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
Serial.print (now.year (), DEC); Serial.print ('/'); Serial.print (now.month (), DEC); Serial.print ('/'); Serial.print (ახლა დღე), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (ახლა. საათი (), DEC); Serial.print (':'); Serial.print (now.minute (), DEC); Serial.print (':'); Serial.print (ახლა. მეორე (), DEC); Serial.println (); }
ვებგვერდი, რომელსაც ვიყენებდი RTC– სთვის, მე წავშალე სხვა რამ, გარდა განცხადებებისა, სადაც ნათქვამია RTC ჩართულია თუ არა. მე ძირითადად ვიყენებდი ამ ვებსაიტს იმის შესასწავლად, თუ როგორ უნდა დაპროგრამებულიყო RTC
ვებგვერდი, რომელსაც მე ვიყენებდი Stepper motor– ისთვის, ეს დამეხმარა იმის გაგებაში, თუ როგორ უნდა დამეპროგრამებინა სტეპერი გასაშვებად, მე ნამდვილად არაფერი შევინახე მისგან. ეს მხოლოდ დამეხმარა იმის გაგებაში, თუ როგორ უნდა დაშიფვრა იგი
ნაბიჯი 6: პრობლემები და როგორ გავასწორე ისინი
რამდენიმე პრობლემა მქონდა
- მე მჭირდებოდა 12 ვ კვების წყარო, მე მქონდა მხოლოდ 9 ვ ბატარეა, ვიპოვე ერთი და ის სწრაფად მოგვარდა.
- როდესაც L298N- თან დაკავშირება NEMA 17-ით მქონდა A და A- ზე მავთულები არასწორი, რამაც ცოტათი გამაბრაზა. მე უბრალოდ გავასწორე მავთულის სხვა გზით შეცვლით.
- შევეცადე კოდის გაადვილება, რადგან if განცხადებაში myStepper.step (-კვება); ისევ და ისევ არეული ჩანდა. ამიტომ მომიწია მისი შეცვლა უკან.
- მე მქონდა არასწორი ზომის საბაზისო ფირფიტა, როგორც სურათზე ჩანს, ამიტომ მე მომიწია ახლის 3D დაბეჭდვა და ის იდეალურად ჯდებოდა!
- პრობლემა რაც მაქვს არის ის, რომ ეს არის ჯემი მას შემდეგ, რაც auger არის პატარა ასე რომ jams მარტივი გზა მე შემიძლია დაფიქსირება არის გაფართოების auger მცირე რაოდენობით!
გირჩევთ:
ძაღლის ავტომატური კვება !!: 4 ნაბიჯი
ძაღლების ავტომატური კვება !!: მარტივი, სასარგებლო და ჯანმრთელი
ძაღლის ავტომატური დისპენსერი: 10 ნაბიჯი
ძაღლების ავტომატური დისპენსერი: ჩემი პროექტით დარწმუნებული ვარ, რომ როდესაც თქვენ დატოვებთ თქვენს ძაღლს მარტო სახლში, ის არასოდეს იქნება საკვების გარეშე. ავტომატური მიმწოდებელი იქნება " გატეხილი " სიმინდის ფანქრების დისპენსერიდან. დისპენსერი არის წყალსაცავი ძაღლის საკვებისთვის, საჭე ბოლოში
ალექსას კონტროლირებადი ძაღლის მიმწოდებელი: 6 ნაბიჯი (სურათებით)
ალექსას კონტროლირებადი ძაღლის მიმწოდებელი: ეს არის ჩვენი ძაღლი ბეილი. ის არის სასაზღვრო კოლი და ავსტრალიელი პირუტყვის ძაღლი, ასე რომ ზოგჯერ ის საკუთარ ჭკუაზე ჭკვიანია, განსაკუთრებით მაშინ, როდესაც საქმე ეხება დროის განსაზღვრას და იმის ცოდნას, თუ როდის უნდა ჭამოს ვახშამი. როგორც წესი, ჩვენ ვცდილობთ მის კვებას საღამოს 6 საათზე
ძაღლის ავტომატური მიმწოდებელი: 5 ნაბიჯი
ძაღლის ავტომატური მიმწოდებელი: ეს არის ნაბიჯ -ნაბიჯ ინსტრუქცია, თუ როგორ უნდა გააკეთოთ ძაღლის ავტომატური მიმწოდებელი არდუინოს გამოყენებით. ეს არის სრულყოფილი, თუ სახლიდან გასული ხართ დღის უმეტეს ნაწილზე. იმის ნაცვლად, რომ თქვენს ძაღლს მოუწიოს მთელი დღის ლოდინი საკვებისთვის, ან სახლში იხვი მის შესანახად, ეს მოწყობილობა
ჟოლო Pi ავტომატური ძაღლის მიმწოდებელი და ცოცხალი ვიდეო სტრიმერი: 3 ნაბიჯი
ჟოლოს Pi ავტომატური ძაღლის მიმწოდებელი და ცოცხალი ვიდეო სტრიმერი: ეს არის ჩემი ჟოლოს PI იკვებება ძაღლების ავტომატური მიმწოდებლით. ვმუშაობდი დილიდან დილის 11 საათიდან საღამოს 9 საათამდე. ჩემი ძაღლი გიჟდება, თუ მე მას დროულად არ ვკვებავ. სერფინგი ჩაუტარდა Google– ს, რომ ეყიდა საკვების ავტომატური მიმწოდებლები, ისინი მიუწვდომელია ინდოეთში და ძვირადღირებული იმპორტირებული ოპერაცია