Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2022:sgherman:dogfeeder [2022/05/26 20:37]
sebastian.puiu [Bibliografie/Resurse]
pm:prj2022:sgherman:dogfeeder [2022/06/03 00:29] (current)
sebastian.puiu [Software design]
Line 8: Line 8:
 ===== Introducere ===== ===== Introducere =====
  
-Scopul proiectului este de a realiza un sistem automat, ce va putea hrani un animal de companie, atunci cand este necesar. Procesul de eliberare a mancarii va avea loc doar in momentul in care senzorul de greutate va detecta trecerea sub un anumit prag al gramajului, adica doar daca nu mai exista suficienta hrana. De asemenea, procesul de eliberare al apei va avea loc doar atunci cand senzorul de nivel de apa va detecta ca apa este, ca si in cazul precedent, sub un anumit prag prestabilit. Exista si posibilitatea ca utilizatorul sa elibereze manual mancarea, prin simpla apasa a unui buton fizic sau unui buton din aplicatia de pe telefon. De asemenea, sistemul va avea si alte moduri de functionare,​ care vor putea fi comutate tot prin intermediul unui buton fizic. Fiecare mod va fi asociat cu o culoare generata de un led RGB, pentru a le putea diferentia. In final, exista si un buzzer, cu ajutorul ​caruia vor exista diverse semnale auditive, atunci cand se elibereaza mancarea/​apa sau se apasa pe butoane+Scopul proiectului este de a realiza un sistem automat, ce va putea hrani un animal de companie, atunci cand este necesar. Procesul de eliberare a mancarii va avea loc doar in momentul in care senzorul de greutate va detecta trecerea sub un anumit prag al gramajului, adica doar daca nu mai exista suficienta hrana. De asemenea, procesul de eliberare al apei va avea loc doar atunci cand senzorul de nivel de apa va detecta ca apa este, ca si in cazul precedent, sub un anumit prag prestabilit. Exista si posibilitatea ca utilizatorul sa elibereze manual mancarea, prin simpla apasa a unui buton fizic sau unui buton din aplicatia de pe telefon. De asemenea, sistemul va avea si alte moduri de functionare,​ care vor putea fi comutate tot prin intermediul unui buton fizic. Fiecare mod va fi asociat cu o melodie tematicamelodii ce vor fi redate ​cu ajutorul ​unui buzzer.
 ===== Descriere generala ===== ===== Descriere generala =====
  
 ==== Schema bloc ==== ==== Schema bloc ====
-{{:​pm:​prj2022:​sgherman:​apfs.png |}}+{{:​pm:​prj2022:​sgherman:​pm_pf_diag.png?700|}}
  
  
Line 28: Line 28:
   * Buzzer   * Buzzer
  
-{{:​pm:​prj2022:​sgherman:​my_pm.png?600|}}+{{:​pm:​prj2022:​sgherman:​pm_pf_drawio.png?600|}}
 ===== Software design ===== ===== Software design =====
  
-<note tip> +Codul a fost realizat cu ajutorul lui Arduino Software ​(IDE). Bibliotecile folosite sunt'​Servo.h',​ '​SerialSoftware.h',​ '​HX771.h',​ '​pitches.h'​ si '​themes.h'​. Codul este divizat in trei parti: zona care se ocupa de input-ul primit de la butoanele fizice, zona care se ocupa cu input-ul primit din aplicatia de pe telefon si zona care primeste informatii de la senzoriAceste trei parti sunt separate pentru a nu se intercala actiunile ce sunt efectuate de motorul servo sau pompa de apaPrin urmarein cazul primei si celei de-a doua zone, atunci cand se apasa pe un buton (fie fizic, fie din aplicatienu se mai tine cont de ce detecteaza senzorii, lasandu-se la latitudine utilizatorului ce cantitate de mancare/apa doreste sa elibereze. Atunci cand este apasat butonul rosu (sau butonul '​ON'​ din aplicatie, la categoria '​FOOD'​),​ in cod se activeaza motorul servo care incepe sa se invarta in sensul ceasului, pana cand se renunta la actiunea de apasare (sau se apasa butonul '​OFF'​ din aplicatie, la categoria '​FOOD'​)Atunci cand este apasat butonul albastru (sau butonul '​ON'​ din aplicatie, la categoria '​WATER'​), in cod se activeaza pompa de apa care incepe sa scoata apa din bazin, pana cand se renunta la actiunea de apasare ​(sau se apasa butonul '​OFF'​ din aplicatie, la categoria '​WATER'​). In cazul celei de-a treia zona, in cod sunt citite (in mod continuu) informatii referitoare la greutatea detectata dintr-un bol si la nivelul de apa existent in celalalt bol. Daca valorile lor scad sub un anumit prag, codul va gestiona eliberarea unei cantitati prestabilite de hrana/apa.
-Descrierea codului aplicaţiei ​(firmware): +
-  * mediu de dezvoltare (if any) (e.gAVR StudioCodeVisionAVR) +
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3surse şi funcţii implementate +
-</note>+
  
 ===== Rezultate obtinute ===== ===== Rezultate obtinute =====
  
-<note tip> +Am reusit sa obtin toate functionalitatile dorite, acestea fiind incapsulate intr-un design cat mai compact. 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+ 
-</​note>​+{{:​pm:​prj2022:​sgherman:​pm_pf_1.jpeg?300|}} 
 +{{:​pm:​prj2022:​sgherman:​pm_pf_3.jpeg?​300|}}
  
 ===== Concluzii ===== ===== Concluzii =====
  
-<note tip> +Prin prisma acestui proiectam reusit sa aprofundez notiunile invatate in cadrul laboratoruluiDe asemeneaam realizat faptul ca un inginer trebuie sa stapaneasca foarte bine si partea de hardwarenu doar cea de softwareO multime de produse de pe piata imbina aceste doua zone ale ingineriei, deci, prin urmare, ​este important sa fie inteleasa legatura dintre ele.
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​ +
- +
-===== Download ===== +
- +
-<note warning>​ +
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, schemeetcUn fişier README, un ChangeLogun 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 =====
Line 68: Line 53:
   * Incepere pagina Wiki   * Incepere pagina Wiki
   * Comandare componente   * Comandare componente
 +
 +**15.05.2022**
 +  * Finalizare implementare hardware
 +
 +**20.05.2022**
 +  * Finalizare implementare software
 +
 +**26.05.2022**
 +  * Finalizare documentatie wiki
  
  
Line 75: Line 69:
   - https://​www.arduino.cc/​reference/​en/​libraries/​servo/​   - https://​www.arduino.cc/​reference/​en/​libraries/​servo/​
   - https://​docs.arduino.cc/​learn/​built-in-libraries/​software-serial   - https://​docs.arduino.cc/​learn/​built-in-libraries/​software-serial
 +
 +===== Download =====
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Puiu_Sebastian_Andrei_331CC</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Puiu_Sebastian_Andrei_331CC</​a></​html>​
 +
 +
 +{{:​pm:​prj2022:​sgherman:​COD_PF.zip|}}
  
pm/prj2022/sgherman/dogfeeder.1653586656.txt.gz · Last modified: 2022/05/26 20:37 by sebastian.puiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0