Sommario:
- Forniture
- Passaggio 1: panoramica del design
- Passaggio 2: panoramica del codice
- Passaggio 3: collegamento di Nema 17 alla piastra di base e alla coclea
- Passaggio 4: cablaggio L298N e RTC
- Passaggio 5: codifica con commenti
- Passaggio 6: problemi e come li ho risolti
Video: Mangiatoia automatica per cani: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Questo è il mio progetto di una mangiatoia per animali domestici. Mi chiamo Parker, frequento il Grade 11 e ho realizzato questo progetto l'11 novembre 2020 come CCA (Course Culminating Activity) in questo progetto ti mostrerò come realizzare una mangiatoia automatica per animali domestici con Arduino UNO. Puoi scegliere un orario che puoi modificare. Il cibo verrà erogato tramite una coclea e nutrirà i tuoi animali domestici!
Forniture
Elettronica:
- Arduino UNO
- L298N - 10$ - Controlla il Nema 17
- NEMA 17 - 10$ - Ruota la coclea in modo che il cibo venga erogato
- RTC (DS1307) - 10$ - Dà il tempo
- Alimentatore 12V - 5$ - Alimenta tutto
- Mini tagliere - Per spazio di cablaggio extra
- Cavi jumper - Collega tutto
- Cavi da femmina a maschio: collega tutto
Hardware:
- Filamento di stampa 3D - per stampante 3D
- 2 bulloni M4 - Mantieni la piastra di base in posizione
- 4 bulloni Nema 17 - Tieni premuto Nema
- PVC T 48mm dimensione interna 66mm dimensione esterna - 3$
Utensili:
- stampante 3d
- Trapano
- Pistola per saldatura
Passaggio 1: panoramica del design
Il design della mangiatoia per animali domestici è molto semplice. Una tramoggia va sulla parte superiore del PVC T. Quindi una copertura va sul retro del PVC T (come mostrato nell'immagine) con il Nema 17 attaccato ad esso. Quindi il Nema 17 verrà spinto nella parte posteriore della trivella che può essere vista sopra e un bullone andrà nel lato per tenerlo in posizione in modo che non deformi il foro che può essere visto sopra!
Quindi la coclea spingerà semplicemente il cibo fuori dal tubo e in una ciotola!
Passaggio 2: panoramica del codice
L'RTC e lo stepper hanno una libreria chiamata RTClib.he Stepper.h che aggiunge un codice semplificato per l'RTC e lo Stepper. Le affermazioni if sono molto semplici, se l'ora e i minuti sono uguali al suddetto tempo ruoterà il nema che erogherà il cibo. Il resto del codice è molto facile da capire anche per qualcuno con un giorno di esperienza.
Passaggio 3: collegamento di Nema 17 alla piastra di base e alla coclea
Per prima cosa devi prendere la tua piastra di base e attaccarla al tuo Nema 17 usando i fori prefabbricati sulla piastra di base. Una volta fatto, vuoi attaccare la coclea al Nema usando il foro posteriore su di esso. Quindi collegare la piastra di base con la coclea e Nema attaccati, quindi avvitare i bulloni M2 su ciascun lato.
Passaggio 4: cablaggio L298N e RTC
Questo passaggio ti spiegherà come cablare l'L298N e l'RTC
Inizieremo con i pin 8, 9, 10, 11 fino a L298N
- Pin 8 (bianco) a IN1
- Pin 9 (viola) a IN2
- Pin 10 (rosa) a IN3
- PIN 11 (giallo) a IN4
Successivamente collegheremo il Nema 17 all'L298N
- OUT1 a 1 su NEMA
- OUT2 a 2 su NEMA
- OUT3 a 3 su NEMA
- OUT4 a 4 su NEMA
Collegamento di 12 V e Arduino a L298N (Impossibile trovare 12 V, quindi immagina una batteria da 9 V come alimentazione)
- Volt a 12V
- Terra a GND
- 5V a 5V su breadboard
Collegamento di RTC ad Arduino
- GND a GND
- 5V a 5V su breadboard
- SDA ad A5
- SCL in A4
Perni del ponticello
Tutti i pin dei ponticelli dovrebbero essere sull'L298N
Passaggio 5: codifica con commenti
Il codice più chiaro nelle immagini sopra
// Nome: Parker Frederick
// Nome del progetto: Auto Pet Feeder // Data: martedì 10 novembre 2020 // Insegnante: M. Bonisteel // Desc: Dai da mangiare ai tuoi animali domestici all'ora stabilita!
// Librerie per le cose che ho usato #include #include #include "RTClib.h"
RTC_DS1307 rtc; //Dice cosa sto usando RTC
// Qui è dove imposti l'ora per il cibo
// Ore int mornFeedTime = 12; int nightFeedTime = 7; //Minuti int mornFeedTimeM = 29; int nightFeedTimeM = 00; //Secondi int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7][12] = {"Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"}; // Trasforma i giorni normali nei giorni della settimana
const int feed = 200; // Questi sono i tuoi passi, quindi quante volte vuoi che giri
Stepper myStepper(feed, 8, 9, 10, 11); // I tuoi pin per il Nema 17 e la maggior parte degli altri stepper
void setup() { Serial.begin(9600);
mentre (!Seriale); // Se l'RTC non funziona lo visualizzerà nella schermata seriale if (! rtc.begin()) { Serial.println("Impossibile trovare l'RTC"); mentre (1); }
// Questo ti dirà se il Real Time Clock è in esecuzione o meno e lo visualizzerà sullo schermo seriale if (! rtc.isrunning()) { Serial.println("RTC is running!");
rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // Questo richiederà tempo al tuo computer e lo utilizzerà sull'RTC
// Se vuoi avere un orario fisso invece dell'orario del computer puoi farlo qui //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Anno/Mese/Giorno/Ora/Minuto/Secondo } myStepper.setSpeed(200); // Velocità con cui vuoi che giri a }
void loop() { DateTime now = rtc.now();
// Questo renderà queste variabili l'ora in cui è adesso etc int hr = now.hour(); int mi = now.minute(); int se = now.second();
// Codice così all'ora impostata erogherà il cibo e girerà 5 volte, questo se per la pappa mattutina
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) { Serial.println("Breakfast!"); mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700);
}
// Codice così all'ora impostata erogherà il cibo e girerà 5 volte, questo è per l'alimentazione notturna
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) { Serial.println("Dinner!"); mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700);
mioStepper.step(-feed); ritardo(700); }
// Questo visualizzerà ANNO, MESE, GIORNO, ORA, MINUTO, SECONDO nel seriale
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(); }
Sito web che ho usato per RTC Ho cancellato la maggior parte delle cose diverse dalle istruzioni if che dicono se l'RTC è acceso o spento. Ho utilizzato principalmente questo sito Web per imparare a programmare l'RTC
Sito Web che ho usato per il motore passo-passo, questo mi ha aiutato a capire come programmare lo stepper per l'esecuzione, non ho davvero nascosto nulla. Mi ha solo aiutato a capire come codificarlo
Passaggio 6: problemi e come li ho risolti
Qualche problema che ho avuto
- Avevo bisogno di un alimentatore da 12 V, avevo solo una batteria da 9 V, ne ho trovata una ed è stato risolto rapidamente.
- Quando ho collegato L298N con NEMA 17, ho sbagliato i fili su A e A, il che lo ha reso un po' tremolante. L'ho semplicemente risolto cambiando i fili nell'altro modo.
- Ho cercato di rendere il codice più semplice perché nell'istruzione if myStepper.step(-feed); sembrava più e più volte disordinato. Quindi ho dovuto cambiarlo di nuovo.
- Avevo la piastra di base della dimensione sbagliata come si vede nell'immagine, quindi ho dovuto stamparne un po' una nuova in 3D e si adattava perfettamente!
- Il problema che ho è che si inceppa poiché la coclea è troppo piccola, quindi si inceppa in modo semplice che posso risolvere è allargando la coclea di una piccola quantità!
Consigliato:
Mangiatoia automatica per canirr!!: 4 passaggi
Automatic Dog Feederrr!!: Facile, Utile e Sano
Mangiatoia automatica per animali domestici utilizzando AtTiny85: 6 passaggi
Mangiatoia automatica per animali domestici utilizzando AtTiny85: O trabalho Mangiatoia automatica per animali domestici utilizzando AtTiny85 di PET Engenharia de Computação ha la licenza con una licenza Creative Commons - Atribuição 4.0 Internazionale
Mangiatoia per gatti automatica super elegante: 3 passaggi (con immagini)
Mangiatoia automatica per gatti super elegante: Jojo è un gatto super bello. Lo amo in ogni aspetto, tranne che continua a svegliarmi ogni giorno alle 4 del mattino per il suo cibo, quindi è ora di prendere una mangiatoia automatica per gatti per salvare il mio sonno. Tuttavia, è così bello che quando voglio trovare un diritto
Mangiatoia per cani controllata da Alexa: 6 passaggi (con immagini)
Alimentatore per cani controllato da Alexa: questo è il nostro cane Bailey. È in parte Border Collie e Australian Cattle Dog, quindi a volte è più intelligente del suo bene, specialmente quando si tratta di leggere l'ora e sapere quando dovrebbe cenare. In genere, cerchiamo di darle da mangiare intorno alle 18:00
Mangiatoia automatica per cani: 5 passaggi
Mangiatoia automatica per cani: questo è un tutorial passo passo su come realizzare una mangiatoia automatica per cani usando Arduino. Questo è perfetto se sei fuori casa per gran parte della giornata. Piuttosto che il tuo cane che deve aspettare tutto il giorno per il cibo, o farti tornare a casa per dargli da mangiare, questo dispositivo