This shows you the differences between two versions of the page.
pm:prj2022:sgherman:dogfeeder [2022/06/03 00:23] sebastian.puiu [Introducere] |
pm:prj2022:sgherman:dogfeeder [2022/06/03 00:29] (current) sebastian.puiu [Software design] |
||
---|---|---|---|
Line 31: | Line 31: | ||
===== Software design ===== | ===== Software design ===== | ||
- | 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 doua parti: zona care se ocupa de input-ul primit de la butoanele fizice sau de la aplicatia de pe telefon si zona care primeste informatii de la senzori. Aceste doua parti sunt separate pentru a nu se intercala actiunile ce sunt efectuate de motorul servo sau pompa de apa. Prin urmare, in cazul primei zone, atunci cand se apasa pe un buton nu 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, in cod se activeaza motorul servo care incepe sa se invarta in sensul ceasului, pana cand se renunta la actiunea de apasare. Atunci cand este apasat butonul albastru, in cod se activeaza pompa de apa care incepe sa scoata apa din bazin, pana cand se renunta la actiunea de apasare. In cazul celei de-a doua zone, in cod sunt citite continuu informatii referitoare la greutatea detectata si la nivelul de apa existent. Daca valorile lor scad sub un anumit prag, codul va gestiona eliberarea unei cantitati prestabilite de hrana/apa. | + | 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 senzori. Aceste trei parti sunt separate pentru a nu se intercala actiunile ce sunt efectuate de motorul servo sau pompa de apa. Prin urmare, in cazul primei si celei de-a doua zone, atunci cand se apasa pe un buton (fie fizic, fie din aplicatie) nu 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. |
===== Rezultate obtinute ===== | ===== Rezultate obtinute ===== |