Sommario:

Mangiatoia automatica per cani: 6 passaggi
Mangiatoia automatica per cani: 6 passaggi

Video: Mangiatoia automatica per cani: 6 passaggi

Video: Mangiatoia automatica per cani: 6 passaggi
Video: Le 5 Migliori Distributori Automatici di Cibo per Cani 2024, Luglio
Anonim
Mangiatoia automatica per cani
Mangiatoia automatica per cani

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

Panoramica del design
Panoramica del design
Panoramica del design
Panoramica del design
Panoramica del design
Panoramica del design
Panoramica del design
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

Panoramica del codice
Panoramica del codice
Panoramica del codice
Panoramica del codice
Panoramica del codice
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

Collegamento di Nema 17 alla piastra di base e alla coclea
Collegamento di Nema 17 alla piastra di base e alla coclea
Collegamento di Nema 17 alla piastra di base e alla coclea
Collegamento di Nema 17 alla piastra di base e alla coclea
Collegamento di Nema 17 alla piastra di base e alla coclea
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

Cablaggio L298N e RTC
Cablaggio L298N e RTC
Cablaggio L298N e RTC
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

Codifica con commenti
Codifica con commenti
Codifica con commenti
Codifica con commenti
Codifica con commenti
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

Problemi e come li ho risolti!
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: