Kazalo:
- Zaloge
- 1. korak: Pregled oblikovanja
- 2. korak: Pregled kode
- Korak 3: Pritrditev Nema 17 na osnovno ploščo in polž
- 4. korak: Ožičenje L298N & RTC
- 5. korak: Kodiranje s komentarji
- 6. korak: Težave in kako sem jih odpravil
Video: Samodejni podajalnik psov: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
To je moj projekt avtomatskega podajalnika hišnih ljubljenčkov. Moje ime je Parker, jaz sem v razredu 11 in ta projekt sem izvedel 11. novembra 2020 kot CCA (tečaj, ki zaključuje dejavnost) v tem projektu. Pokazal vam bom, kako narediti avtomatski napajalnik za hišne ljubljenčke z Arduino UNO. Izberete lahko čas, ki ga lahko spremenite. Hrana se bo razdelila skozi polž in nahranila vaše hišne ljubljenčke!
Zaloge
Elektronika:
- Arduino UNO
- L298N - 10 $ - Nadzira Nema 17
- NEMA 17 - 10 $ - Obrne polž tako, da se hrana raztopi
- RTC (DS1307) - 10 $ - daje čas
- 12V napajalnik - 5 $ - Poganja vse
- Mini plošča - za dodaten prostor za ožičenje
- Jumper žice - povezujejo vse
- Ženski na moški žice - poveže vse
Strojna oprema:
- 3D tiskalna nit - za 3D tiskalnik
- 2 vijaka M4 - osnovno ploščo držite na mestu
- 4 vijaka Nema 17 - držite nema navzdol
- PVC T 48 mm notranja dimenzija 66 mm zunanja mera - 3 USD
Orodja:
- 3D tiskalnik
- Vrtalnik
- Spajkalna pištola
1. korak: Pregled oblikovanja
Zasnova hranilnika za hišne ljubljenčke je zelo preprosta. Na vrh PVC T. gre lijak, nato pa na zadnji strani PVC T (kot je prikazano na sliki) pokrov, na katerega je pritrjen Nema 17. Nato se Nema 17 potisne v zadnjo stran svedra, ki je vidna zgoraj, in vijak bo šel vstran, da ga drži na mestu, da ne deformira luknje, ki jo lahko vidite zgoraj!
Potem bo polž preprosto potisnil hrano iz cevi v posodo!
2. korak: Pregled kode
RTC in Stepper imata knjižnico z imenom RTClib.h in Stepper.h, ki dodaja poenostavljeno kodo za RTC & Stepper. Izjave if so zelo preproste, če pravijo, da sta ura in minute enaki omenjenemu času, se bo vrtela nema, ki bo razdelila hrano. Preostanek kode je zelo enostavno razumeti tudi za nekoga z enodnevnimi izkušnjami.
Korak 3: Pritrditev Nema 17 na osnovno ploščo in polž
Najprej morate vzeti osnovno ploščo in jo pritrditi na napravo Nema 17 z vnaprej pripravljenimi luknjami na osnovni plošči. Ko to storite, morate sveder pritrditi na Nema z zadnjo luknjo na njem. Nato priključite osnovno ploščo s pritrjenim polžem in Nema, nato privijte vijake M2 na vsako stran.
4. korak: Ožičenje L298N & RTC
Ta korak vam bo povedal, kako priključiti L298N & RTC
Začeli bomo z zatiči 8, 9, 10, 11 do L298N
- Pin 8 (bela) v IN1
- Pin 9 (vijolično) na IN2
- Pin 10 (roza) v IN3
- PIN 11 (rumena) do IN4
Nato bomo priključili Nema 17 na L298N
- OUT1 do 1 na NEMA
- OUT2 do 2 na NEMA
- OUT3 do 3 na NEMA
- OUT4 do 4 na NEMA
Priključitev 12v in Arduina na L298N (12V ni bilo mogoče najti, zato si predstavljajte 9V baterijo kot napajanje)
- Napetost do 12V
- Ozemljitev do GND
- 5V do 5V na deski
Povezovanje RTC z Arduinom
- GND v GND
- 5V do 5V na deski
- SDA do A5
- SCL do A4
Zatiči za skakalce
Vsi skakalni zatiči naj bi bili na L298N
5. korak: Kodiranje s komentarji
Na zgornjih slikah je koda jasnejša
// Ime: Parker Frederick
// Ime projekta: Samodejni podajalnik hišnih ljubljenčkov // Datum: torek, 10. november 2020 // Učitelj: M. Bonisteel // Desc: Nahranite svoje hišne ljubljenčke ob določenem času!
// Knjižnice za stvari, ki sem jih uporabil #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Pove, kaj uporablja RTC
// Tu nastavite čas za hrano
// Ure int mornFeedTime = 12; int nightFeedTime = 7; // Minute int mornFeedTimeM = 29; int nightFeedTimeM = 00; // sekunde int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"nedelja", "ponedeljek", "torek", "sreda", "četrtek", "petek", "sobota"}; // Omogoča, da se normalni dnevi spremenijo v dneve v tednu
const int feed = 200; // To so vaši koraki, kolikokrat želite, da se zavrti
Stepper myStepper (vir, 8, 9, 10, 11); // Vaši zatiči za Nema 17 in večino drugih korakov
void setup () {Serial.begin (9600);
while (! Serijski); // Če RTC ne deluje, ga prikaže na serijskem zaslonu if (! Rtc.begin ()) {Serial.println ("RTC ni mogoče najti"); medtem ko (1); }
// To vam bo povedalo, ali ura v realnem času deluje ali ne, in prikazalo se bo na serijskem zaslonu, če (! Rtc.isrunning ()) {Serial.println ("RTC teče!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // To bo računalniku vzelo čas in ga porabilo za RTC
// Če želite imeti namesto računalniškega časa nastavljen čas, lahko to storite tukaj //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Leto/mesec/dan/ura/minuta/sekunda} myStepper.setSpeed (200); // Hitrost, pri kateri želite, da se obrne}
void loop () {DateTime now = rtc.now ();
// To bo naredilo te spremenljivke uro, ki je trenutno itd. Int hr = zdaj.hour (); int mi = zdaj.minute (); int se = zdaj.second ();
// Kodirajte tako, da bo ob nastavljenem času razdelil hrano in se vrtel 5 -krat, to je za jutranjo krmo
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Zajtrk!"); myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700);
}
// Kodirajte, da bo ob nastavljenem času hrano razdelil in se petkrat zavrtel, to je za nočno krmljenje
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Večerja!"); myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700);
myStepper.step (-feed); zamuda (700); }
// To bo v zaporedju prikazalo LETO, MESEC, DAN, URO, MINUTO, SECOND
Serial.print (zdaj. Leto (), DEC); Serial.print ('/'); Serial.print (zdaj.mesec (), 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 (zdaj.minute (), DEC); Serial.print (':'); Serial.print (now.second (), DEC); Serial.println (); }
Spletno mesto, ki sem ga uporabil za RTC, sem izbrisal večino stvari razen navedb if, ki pravijo, ali je RTC vklopljen ali izklopljen. To spletno stran sem uporabljal predvsem za učenje programiranja RTC
Spletno mesto, ki sem ga uporabil za Stepper motor, mi je pomagalo razumeti, kako programirati stepper za zagon. Pomagal mi je razumeti, kako ga kodirati
6. korak: Težave in kako sem jih odpravil
Nekaj težav sem imel
- Potreboval sem 12v napajalnik, imel sem samo 9v baterijo, ki sem jo našel in je bila hitro rešena.
- Pri povezovanju L298N z NEMA 17 sem imel napačne žice na A in A-, zaradi česar je rahlo trepetal. Preprosto sem popravil tako, da sem žice zamenjal na drug način.
- Poskusil sem poenostaviti kodo, ker je v stavku if myStepper.step (-feed); vedno znova videti neurejeno. Zato sem ga moral zamenjati nazaj.
- Osnovno ploščo sem imel napačne velikosti, kot je prikazano na sliki, zato sem moral malo 3D natisniti novo in se popolnoma prilega!
- Problem, ki ga imam, je, da se je puž premajhen, zato se zagozdi na preprost način, da ga popravim tako, da majhno količino povečate!
Priporočena:
Samodejni podajalnik psov !!: 4 koraki
Samodejni podajalnik psov !!: Enostavno, koristno in zdravo
Samodejni podajalnik za hišne ljubljenčke z uporabo AtTiny85: 6 korakov
Samodejni podajalnik hišnih ljubljenčkov z uporabo AtTiny85: O trabalho Samodejni podajalnik hišnih ljubljenčkov z uporabo AtTiny85 de PET
Samodejni razpršilnik psov: 10 korakov
Samodejni razpršilnik za pse: S svojim projektom poskrbim, da psa, ko ga pustite samega doma, nikoli ne ostane brez hrane. Samodejni podajalnik bo " vlomljen " iz razpršilnika za koruzne kosmiče. Razpršilnik je rezervoar za hrano za pse, kolo na dnu
Samodejni podajalnik psov: 5 korakov
Samodejni podajalnik psov: To je korak za korakom vadnica o tem, kako z Arduinom narediti avtomatski napajalnik psov. To je kot nalašč, če večino dneva niste doma. Namesto, da bi moral vaš pes ves dan čakati na hrano ali pa, da se raca odnesete domov hranit, ta naprava
Samodejni podajalnik psov Raspberry Pi in video prenos v živo: 3 koraki
Samodejni podajalnik psov Raspberry Pi in videoprenosnik v živo: To je moj samodejni podajalnik psov z napajanjem Raspberry PI. Delal sem od 11. do 21. ure zjutraj. Moj pes je nor, če ga ne nahranim pravočasno. Surfal google za nakup avtomatskih podajalnikov hrane, niso na voljo v Indiji in dragi uvozni op