This shows you the differences between two versions of the page.
pm:prj2024:vstoica:robert.osnaga [2024/05/02 21:49] robert.osnaga [Descriere generală] |
pm:prj2024:vstoica:robert.osnaga [2024/05/27 23:15] (current) robert.osnaga [Download] |
||
---|---|---|---|
Line 16: | Line 16: | ||
Schemă montaj: | Schemă montaj: | ||
- | {{:pm:prj2024:vstoica:screenshot_21.png?600|}} | + | {{:pm:prj2024:vstoica:robert_dispenser.png?600|}} |
Schemă electrică: | Schemă electrică: | ||
- | {{:pm:prj2024:vstoica:screenshot_22.png?600|}} | + | {{:pm:prj2024:vstoica:robert_dispense.png?600|}} |
</note> | </note> | ||
Line 39: | Line 39: | ||
</note> | </note> | ||
- | ===== Software Design ===== | ||
<note tip> | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | + | * Mediu de Dezvoltare |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | Arduino IDE: Codul pentru distribuitorul automat de hrană pentru câini este scris și dezvoltat în mediul Arduino IDE. |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * Librării și Surse 3rd-party |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | - DS3231: Utilizată pentru interfațarea cu ceasul în timp real DS3231, care oferă o ținere exactă a timpului. |
- | * (etapa 3) surse şi funcţii implementate | + | - LiquidCrystal_I2C: Utilizată pentru controlul afișajului LCD I2C, care afișează mesaje pentru utilizator. |
+ | - IRremote: Folosită pentru a primi și decoda semnalele de la telecomanda IR, permițând interacțiunea cu utilizatorul. | ||
+ | - Servo: Librăria standard Arduino pentru controlul servo motoarelor, folosită pentru a controla mecanismul de distribuire a hranei. | ||
+ | * Algoritmi și Structuri Implementate | ||
+ | - Verificarea Hranei Disponibile -> Folosirea unui senzor ultrasonic pentru a măsura distanța până la hrana din recipient și a determina dacă este suficientă mâncare. | ||
+ | - Programarea Hrănirii -> Stocarea și gestionarea până la trei timpi de hrănire într-o matrice. Utilizatorul poate seta acești timpi folosind telecomanda IR. | ||
+ | - Hrănire Automată -> Compararea timpului curent cu timpii programați și activarea servo motorului pentru a distribui mâncare la orele stabilite. | ||
+ | - Interfața cu Utilizatorul -> Afișarea de mesaje pe LCD pentru a ghida utilizatorul prin meniuri și pentru a afișa starea curentă a dispozitivului (e.g., verificarea mâncării, setarea timpilor de hrănire, hrănirea manuală). | ||
+ | - Gestionarea Intrărilor de la Telecomandă -> Decodarea semnalelor IR pentru a naviga între opțiuni și a seta timpii de hrănire. | ||
+ | * Surse și Funcții Implementate | ||
+ | - Funcția setup() -> Inițializează toate componentele hardware (LCD, IR, servo, RTC).Setează pinurile pentru senzorul ultrasonic.Afișează un mesaj de bun venit pe LCD. | ||
+ | - Funcția loop() -> Actualizează ora curentă de la ceasul DS3231. Măsoară distanța folosind senzorul ultrasonic pentru a verifica disponibilitatea hranei.Verifică și execută programele de hrănire la timpii setați.Gestionează intrările de la telecomandă pentru a naviga în meniuri și a seta timpii de hrănire. | ||
+ | - Funcții de Afișare pe LCD -> writeFirstLine(char* text): Afișează text pe prima linie a ecranului LCD.writeSecondLine(char* text): Afișează text pe a doua linie a ecranului LCD. | ||
+ | - Funcția microsecondsToCentimeters(long microseconds) -> Convertește timpul de răspuns al senzorului ultrasonic în centimetri. | ||
+ | - Funcția make_Time(char number) -> Permite utilizatorului să seteze timpul de hrănire prin introducerea cifrelor folosind telecomanda IR. | ||
</note> | </note> | ||
Line 53: | Line 66: | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Proiectul de distribuitor automat de hrană pentru câini a atins obiectivele stabilite și a demonstrat o funcționalitate completă și stabilă. Dispozitivul asigură hrănirea automată la timpii programați, oferă o interfață ușor de utilizat prin afișajul LCD și telecomanda IR, și include funcții suplimentare precum detectarea disponibilității hranei și hrănirea manuală. Performanța și fiabilitatea sistemului au fost validate prin teste extensive, iar rezultatele au fost satisfăcătoare din toate punctele de vedere. |
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Acest proiect de dispenser de mâncare pentru câini automatizează hrănirea animalelor de companie prin utilizarea unui ceas RTC, a unui senzor ultrasonic, a unui servo motor și a unui ecran LCD pentru interacțiunea cu utilizatorul. Sistemul permite setarea unor intervale precise de hrănire și monitorizarea nivelului de hrană disponibilă, asigurând astfel o îngrijire optimă și constantă a animalelor de companie. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | {{:pm:prj2024:vstoica:pet_feeder_remote_control.zip|}} |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
- | + | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | |
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== |