Sisukord:
- Tarvikud
- Samm: disaini ülevaade
- 2. samm: koodi ülevaade
- Samm: Nema 17 kinnitamine alusplaadile ja tigule
- Samm 4: L298N ja RTC juhtmestik
- Samm: kodeerimine kommentaaridega
- 6. samm: probleemid ja kuidas ma need parandasin
Video: Automaatne koeratoit: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:45
See on minu lemmikloomade söötja projekt. Minu nimi on Parker, ma olen 11. klassis ja tegin selle projekti 11. novembril 2020 selle projekti CCA (Course Culminating Activity) raames. Näitan teile, kuidas teha Arduino UNO -ga automaatset lemmikloomasöötajat. Saate valida aja, mida saate muuta. Toit väljastatakse tigu kaudu ja toidab teie lemmikloomi!
Tarvikud
Elektroonika:
- Arduino UNO
- L298N - 10 $ - juhib Nema 17
- NEMA 17 - 10 $ - keerab tigu nii, et toit väljub
- RTC (DS1307) - 10 $ - annab aega
- 12 V toiteallikas - 5 dollarit - annab kõik
- Mini leivalaud - täiendava juhtmestiku jaoks
- Jumper Traadid - ühendab kõik
- Naiste ja meeste juhtmed - ühendab kõik
Riistvara:
- 3D prindikiud - 3D printerile
- 2 M4 polti - hoidke alusplaati paigal
- 4 Nema 17 polti - hoidke nema all
- PVC T 48mm sisemõõt 66mm välismõõt - 3 $
Tööriistad:
- 3D printer
- Puurida
- Jootmispüstol
Samm: disaini ülevaade
Lemmikloomasöötja disain on väga lihtne. Punker läheb PVC T ülaosale. Seejärel läheb PVC T tagaküljele kate (nagu pildil näidatud), millele on kinnitatud Nema 17. Seejärel lükatakse Nema 17 tigu tagaküljele, mida on näha ülalpool, ja küljele läheb polt, mis hoiab seda paigal, nii et see ei deformeeriks ülal nähtavat auku!
Siis lükkab tigu toidu lihtsalt torust välja ja kaussi!
2. samm: koodi ülevaade
RTC & Stepperil on raamatukogu nimega RTClib.h ja Stepper.h, mis lisab RTC & Stepperile lihtsustatud koodi. Kui väited on väga lihtsad, võib öelda, et kui tund ja minut võrduvad nimetatud ajaga, pöörab see nemat, mis annab toitu välja. Ülejäänud kood on väga hõlpsasti mõistetav isegi päevapikkuse kogemusega inimesele.
Samm: Nema 17 kinnitamine alusplaadile ja tigule
Esiteks soovite võtta oma alusplaadi ja kinnitada see oma Nema 17 külge, kasutades alusplaadil olevaid auke. Kui olete seda teinud, soovite tigu Nema külge kinnitada, kasutades selle tagumist ava. Seejärel ühendage alusplaat tigu ja Nema külge, seejärel keerake M2 poldid mõlemale küljele.
Samm 4: L298N ja RTC juhtmestik
See samm ütleb teile, kuidas ühendada L298N ja RTC
Alustame L298N tihvtidega 8, 9, 10, 11
- Tihvt 8 (valge) kuni IN1
- Pin 9 (lilla) kuni IN2
- Pin 10 (roosa) kuni IN3
- PIN 11 (kollane) kuni IN4
Järgmisena ühendame Nema 17 seadmega L298N
- OUT1 kuni 1 NEMA -l
- OUT2 kuni 2 NEMA -l
- OUT3 kuni 3 NEMA -l
- OUT4 kuni 4 NEMA -l
12v ja Arduino ühendamine L298N -ga (12V ei leidnud, nii et kujutage ette 9V akut)
- Voldid kuni 12V
- Maapind GND -ni
- 5V kuni 5V leivaplaadil
RTC ühendamine Arduinoga
- GND kuni GND
- 5V kuni 5V leivaplaadil
- SDA kuni A5
- SCL kuni A4
Jumper Pins
Kõik hüppajanõelad peaksid olema L298N -l
Samm: kodeerimine kommentaaridega
Ülaltoodud piltidel on kood selgem
// Nimi: Parker Frederick
// Projekti nimi: automaatne lemmikloomasöötja // Kuupäev: teisipäev, 10. november 2020 // Õpetaja: M. Bonisteel // Kirjeldus: Sööge oma lemmikloomi etteantud ajal!
// Libaarid nende asjade jaoks, mida ma kasutasin #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Ütleb, mida RTC kasutab
// Siin määrate toidu valmistamise aja
// Tundi int mornFeedTime = 12; int nightFeedTime = 7; // Minutid int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekundid int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"pühapäev", "esmaspäev", "teisipäev", "kolmapäev", "neljapäev", "reede", "laupäev"}; // Muudab tavalised päevad nädalapäevadeks
const int feed = 200; // See on teie samm, nii et mitu korda soovite seda keerutada
Stepper myStepper (feed, 8, 9, 10, 11); // Teie nööbid Nema 17 ja enamiku teiste sammude jaoks
void setup () {Serial.begin (9600);
while (! Seeria); // Kui RTC ei tööta, kuvab see selle jadakuval, kui (! Rtc.begin ()) {Serial.println ("Ei leidnud RTC -d"); samas (1); }
// See ütleb sulle, kas reaalajas kell töötab või mitte, ja kuvab selle seeriaekraanil, kui (! Rtc.isrunning ()) {Serial.println ("RTC töötab!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // See võtab teie arvutil aega ja kasutab seda RTC -s
// Kui soovite, et arvutiaja asemel oleks määratud aeg, saate seda teha siin //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Aasta/kuu/päev/tund/minut/sekund} myStepper.setSpeed (200); // Kiirus, milleni tahad pöörduda}
void loop () {DateTime now = rtc.now ();
// See muudab need muutujad praegu tundideks jne int hr = now.hour (); int mi = praegu.minute (); int se = nüüd.second ();
// Kodeerige nii, et määratud ajal väljastab see toidu ja see pöörleb 5 korda, see on hommikuse sööda jaoks
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Hommikusöök!"); myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700);
}
// Kodeerige nii, et määratud ajal väljastab see toidu ja see pöörleb 5 korda, see on öiseks söödaks
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Õhtusöök!"); myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700);
myStepper.step (-voog); viivitus (700); }
// See näitab seriaalis YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
Seeriaprint (nüüd.aasta (), DEC); Serial.print ('/'); Serial.print (nüüd.kuu (), 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 (nüüd.second (), DEC); Serial.println (); }
Veebisait, mida kasutasin RTC jaoks, kustutasin enamiku, välja arvatud if -laused, mis ütlevad, kas RTC on sisse või välja lülitatud. Kasutasin seda veebisaiti peamiselt RTC programmeerimise õppimiseks
Veebileht, mida kasutasin samm -mootori jaoks, aitas mul mõista, kuidas stepperit jooksma programmeerida, ma ei hoidnud sellest tegelikult midagi. See aitas mul lihtsalt aru saada, kuidas seda kodeerida
6. samm: probleemid ja kuidas ma need parandasin
Mõned probleemid tekkisid mul
- Mul oli vaja 12v toiteallikat, mul oli ainult 9v aku, leidsin ühe ja see lahendati kiiresti.
- L298N ühendamisel NEMA 17-ga olid mul juhtmed A ja A valesti, mis muutis selle natuke värisema. Ma lihtsalt parandasin selle, vahetades juhtmeid teistpidi.
- Proovisin koodi lihtsamaks muuta, sest if-lauses myStepper.step (-feed); ikka ja jälle tundus segane. Nii et ma pidin selle tagasi muutma.
- Mul oli pildil näha vale suurusega alusplaat, nii et pidin natuke uut 3D printima ja see sobis ideaalselt!
- Mul on probleem, et see on ummistunud, kuna tigu on liiga väike, nii et see ummistub lihtsal viisil, mida ma saan parandada, on tigu väikese koguse suurendamine!
Soovitan:
Automaatne kätepuhastusvahend: 8 sammu
Automaatne kätepuhastusvahend: COVID-19 pandeemiast on saanud avalikkus 2020. aastal väga sageli kuulnud. Iga kodanik, kes kuuleb sõna „COVID-19”, mõtleb kohe sõna „ohtlik”, „surmav”, „hoia puhtana” "Ja teisi sõnu. Sellel COVID-19-l on ka
DIY automaatne kätepuhastusvahendi dosaator: 6 sammu
DIY automaatne kätepuhastusvahendi dosaator: Selles projektis ehitame automaatse käte desinfitseerimisdosaatori. See projekt kasutab Arduino, ultraheli andurit, veepumpa ja käte desinfitseerimisvahendit. Käte olemasolu kontrollimiseks desinfitseerimismasina väljalaskeava all kasutatakse ultrahelisensorit
Automaatne koeratoit !!: 4 sammu
Automaatne koeratoit !!: Lihtne, abivalmis ja tervislik
Alexa juhitav koeratoit: 6 sammu (piltidega)
Alexa juhitav koeratoitja: See on meie koer Bailey. Ta on bordercollie ja Austraalia karjakoer, nii et mõnikord on ta targem kui tema enda heaolu, eriti kui on vaja öelda aega ja teada, millal ta peaks õhtusööki sööma. Tavaliselt üritame teda sööta kella 18.00 paiku
Automaatne koeratoit: 5 sammu
Automaatne koeratoit: see on samm -sammult õpetus, kuidas teha Arduino abil automaatset koeratoitjat. See on ideaalne, kui olete suure osa päevast kodust väljas. Selle seadme asemel, et teie koer peaks kogu päeva toitu ootama või pardile toita koju minema, on see seade