Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Yleiskatsaus suunnitteluun
- Vaihe 2: Koodin yleiskatsaus
- Vaihe 3: Nema 17: n kiinnittäminen pohjalevyyn ja ruuviin
- Vaihe 4: Johdotus L298N & RTC
- Vaihe 5: Koodaus kommenttien avulla
- Vaihe 6: Ongelmat ja niiden korjaaminen
Video: Automaattinen koiran syöttölaite: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Tämä on projektini automaattisesta lemmikkieläinten syöttölaitteesta. Nimeni on Parker, olen luokalla 11 ja tein tämän projektin 11. marraskuuta 2020 CCA: na (Course Culminating Activity) tässä projektissa. Voit valita ajan, jonka voit muuttaa. Ruoka annostellaan ruuvin läpi ja ruokkii lemmikkisi!
Tarvikkeet
Elektroniikka:
- Arduino UNO
- L298N - 10 $ - Ohjaa Nema 17: tä
- NEMA 17 - 10 $ - Kierrä ruuvia niin, että ruoka jakautuu
- RTC (DS1307) - 10 $ - antaa aikaa
- 12 V: n virtalähde - 5 dollaria - Virtalähde kaikkeen
- Mini Breadboard - lisää johdotustilaa
- Jumper Johdot - Yhdistää kaiken
- Naaras -urosjohdot - Yhdistää kaiken
Laitteisto:
- 3D -tulostuslanka - 3D -tulostimelle
- 2 M4 ruuvia - Pidä pohjalevyä paikallaan
- 4 Nema 17 pulttia - Pidä nema painettuna
- PVC T 48mm sisämitta 66mm ulkomitat - 3 $
Työkalut:
- 3D tulostin
- Porata
- Juotosase
Vaihe 1: Yleiskatsaus suunnitteluun
Lemmikkieläinten syöttölaitteen rakenne on hyvin yksinkertainen. Säiliö menee PVC T: n päälle. Sitten PVC T: n takaosaan (kuten kuvassa) tulee kansi, johon on kiinnitetty Nema 17. Sitten Nema 17 työnnetään ruuvin takaosaan, joka näkyy yllä ja pultti menee sivulle pitämään sitä paikallaan, jotta se ei vääristä yllä näkyvää reikää!
Sitten ruuvi yksinkertaisesti työntää ruuan putkesta kulhoon!
Vaihe 2: Koodin yleiskatsaus
RTC & Stepperillä on kirjasto nimeltä RTClib.h ja Stepper.h, joka lisää yksinkertaistetun koodin RTC & Stepperille. Jos lausunnot ovat hyvin yksinkertaisia, sen sanonta, jos tunti ja minuutit ovat yhtä suuret kuin mainittu aika, se pyörittää nemaa, joka jakaa ruoan. Loput koodista ovat erittäin helppoja ymmärtää jopa niille, joilla on päivän kokemus.
Vaihe 3: Nema 17: n kiinnittäminen pohjalevyyn ja ruuviin
Ensin haluat ottaa pohjalevyn ja kiinnittää sen Nema 17 -laitteeseen pohjalevyn valmiiden reikien avulla. Kun olet valmis, haluat kiinnittää ruuvin Nemaan käyttämällä sen takareikää. Liitä sitten pohjalevy ruuvilla ja Nema kiinnitettynä ja ruuvaa sitten M2 -pultit molemmille puolille.
Vaihe 4: Johdotus L298N & RTC
Tässä vaiheessa kerrotaan, miten L298N ja RTC kytketään
Aloitamme L298N: n nastoilla 8, 9, 10, 11
- Nasta 8 (valkoinen) - IN1
- Nasta 9 (violetti) - IN2
- Nasta 10 (vaaleanpunainen) - IN3
- PIN 11 (keltainen) - IN4
Seuraavaksi yhdistämme Nema 17: n L298N: ään
- OUT1 - 1 NEMA: ssa
- OUT2 - 2 NEMA: ssa
- OUT3 - 3 NEMA: ssa
- OUT4 - 4 NEMA: ssa
12 V: n ja Arduinon kytkeminen L298N: ään (12 V ei löytynyt, joten kuvittele 9 V: n akku virtalähteeksi)
- Jännite 12V
- Maasta GND: hen
- 5–5 V leipätaululla
RTC: n yhdistäminen Arduinoon
- GND - GND
- 5–5 V leipätaululla
- SDA - A5
- SCL - A4
Neulepuserot
Kaikkien hyppytappien on oltava L298N: ssä
Vaihe 5: Koodaus kommenttien avulla
Koodi selkeämpi yllä olevissa kuvissa
// Nimi: Parker Frederick
// Projektin nimi: Automaattinen lemmikkieläinten syöttölaite // Päivämäärä: tiistai, 10. marraskuuta 2020 // Opettaja: M. Bonisteel // Kuvaus: Syötä lemmikkisi tiettyyn aikaan!
// Liberaalit käyttämistäni asioista #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Sanoo, mitä RTC käyttää
// Tässä asetat ruuan ajan
// Tunnit int mornFeedTime = 12; int nightFeedTime = 7; // Minuuttia int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekuntia int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"}; // Normaalit päivät muuttuvat viikonpäiviksi
const int syöte = 200; // Tämä on sinun vaiheesi, joten kuinka monta kertaa haluat sen pyöriä
Stepper myStepper (syöte, 8, 9, 10, 11); // Nastasi Nema 17: lle ja useimmille muille steppereille
void setup () {Serial.begin (9600);
while (! Sarja); // Jos RTC ei toimi, se näyttää sen sarjanäytössä, jos (! Rtc.begin ()) {Serial.println ("RTC: tä ei löytynyt"); kun taas (1); }
// Tämä kertoo, onko reaaliaikakello käynnissä vai ei, ja se näyttää sen sarjanäytössä, jos (! Rtc.isrunning ()) {Serial.println ("RTC on käynnissä!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Tämä vie tietokoneesi aikaa ja käyttää sitä RTC: ssä
// Jos haluat asettaa tietyn ajan tietokoneen ajan sijaan, voit tehdä sen täällä //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Vuosi/kuukausi/päivä/tunti/minuutti/sekunti} myStepper.setSpeed (200); // Nopeus, jonka haluat sen kääntyvän}
void loop () {DateTime now = rtc.now ();
// Tämä tekee näistä muuttujista sen hetken tunnin jne. Int hr = now.hour (); int mi = nyt.minute (); int se = nyt.second ();
// Koodaa niin, että se annostelee ruoan asetettuna ajankohtana ja se pyörii 5 kertaa, mikäli kyseessä on aamuruoka
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Aamiainen!"); myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700);
}
// Koodaa niin, että asetettuun aikaan se annostelee ruoan ja se pyörii 5 kertaa, tämä koskee yöaikaista rehua
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Illallinen!"); myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700);
myStepper.step (-syöttö); viive (700); }
// Tämä näyttää sarjassa YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
Sarjanjälki (nyt.vuosi (), DEC); Serial.print ('/'); Serial.print (nyt.kuukausi (), 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 (nyt.second (), DEC); Sarja.println (); }
RTC: ssä käyttämäni verkkosivusto Poistin useimmat muut asiat kuin if -lausunnot, joissa kerrotaan, onko RTC käytössä vai ei. Käytin pääasiassa tätä verkkosivustoa RTC: n ohjelmoinnin opettamiseen
Verkkosivusto, jota käytin askelmoottorilla, tämä auttoi minua ymmärtämään, kuinka ohjelmoin askelmallin toimimaan, en todellakaan pitänyt siitä mitään. Se vain auttoi minua ymmärtämään, miten se koodataan
Vaihe 6: Ongelmat ja niiden korjaaminen
Muutamia ongelmia minulla oli
- Tarvitsin 12 voltin virtalähteen, minulla oli vain 9 voltin akku, jonka löysin ja se ratkaistiin nopeasti.
- Kun kytket L298N: n NEMA 17: een, johdot olivat väärin kohdissa A ja A-, mikä teki siitä hieman tärisevää. Korjasin sen vain vaihtamalla johdot toiseen suuntaan.
- Yritti tehdä koodista yksinkertaisemman, koska if-lauseessa myStepper.step (-feed); kerta toisensa jälkeen näytti sotkuiselta. Joten minun piti vaihtaa se takaisin.
- Minulla oli väärän kokoinen pohjalevy, kuten kuvassa näkyy, joten minun piti tulostaa hieman uusi 3D ja se sopi täydellisesti!
- Ongelmani on, että se tukkeutuu, koska ruuvi on liian pieni, joten se tukkeutuu yksinkertaisella tavalla, jonka voin korjata suurentamalla ruuvia pienellä määrällä!
Suositeltava:
Automaattinen koiran syöttölaite !!: 4 vaihetta
Automaattinen koiran syöttölaite !!: Helppoa, hyödyllistä ja terveellistä
Automaattinen koiran annostelija: 10 vaihetta
Automaattinen koiranannostelija: Projektillani varmistan, että kun jätät koirasi yksin kotiin, hän ei koskaan jää ilman ruokaa. Automaattinen syöttölaite "hakkeroidaan" maissihiutaleiden annostelijasta. Annostelija on koiranruoan säiliö, pyörä alhaalla
Alexa -ohjattu koiran syöttölaite: 6 vaihetta (kuvilla)
Alexan kontrolloitu koiran syöttölaite: Tämä on meidän koiramme Bailey. Hän on osa bordercollietä ja australialaista karjakoiraa, joten joskus hän on älykkäämpi kuin oma edunsaaja, varsinkin kun on kyse ajan kertomisesta ja tiedosta, milloin hänen pitäisi syödä illallista. Yleensä yritämme ruokkia häntä noin klo 18
Automaattinen koiran syöttölaite: 5 vaihetta
Automaattinen koiran syöttölaite: Tämä on askel askeleelta opetusohjelma automaattisen koiran syöttölaitteen valmistamisesta Arduinon avulla.Tämä on täydellinen, jos olet poissa kotoa suurimman osan päivästä. Sen sijaan, että koirasi joutuisi odottamaan ruokaa koko päivän tai antautumaan kotiin ruokkimaan sitä, tämä laite
Raspberry Pi automaattinen koiran syöttölaite ja suora videon suoratoisto: 3 vaihetta
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: Tämä on Raspberry PI -käyttöinen automaattinen koiran syöttölaite. Olin töissä aamulla klo 11-21. Koirani tulee hulluksi, jos en syö sitä ajoissa. Surffaili googlella ostaakseen automaattisia ruokinsyöttölaitteita, niitä ei ole saatavilla Intiassa ja kalliita tuontia