This shows you the differences between two versions of the page.
pm:prj2024:rvirtan:pet_feeder [2024/05/07 18:20] andreea.pop created |
pm:prj2024:rvirtan:pet_feeder [2024/05/24 12:04] (current) andreea.pop [Software Design] |
||
---|---|---|---|
Line 10: | Line 10: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
+ | Dispozitivul are în componență un ecran LCD care afișează ora ultimei hrăniri (cu ajutorul unui modul RTC) și un senzor de greutate pentru a-l notifica pe stăpân când este cazul să reaprovizioneze recipientul cu mâncare. De asemenea, proprietarul se poate conecta prin Bluetooth atât pentru monitorizarea informaților prezentate anterior cât și pentru a seta ora următoarei mese, ce constă în eliberarea unei cantități prestabilite de mâncare în bolul animăluțului. | ||
- | <note tip> | + | ==== Schema bloc ==== |
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | {{:pm:prj2024:rvirtan:pet_feeder_pm.png?600}} |
- | + | ||
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | |
- | </note> | + | |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
<note tip> | <note tip> | ||
- | Aici puneţi tot ce ţine de hardware design: | + | Lista pieselor: |
- | * listă de piese | + | * Arduino Uno |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | * LCD |
- | * diagrame de semnal | + | * Micro Servo Motor |
- | * rezultatele simulării | + | * Modul RTC |
+ | * Modul Bluetooth | ||
+ | * Senzor de greutate 1 kg | ||
+ | * Buton | ||
+ | * Fire + Breadboard + Rezistențe | ||
</note> | </note> | ||
- | ===== Software Design ===== | + | ==== Schema circuitului ==== |
+ | {{:pm:prj2024:rvirtan:pmhard.png?600|}} | ||
+ | În urma simulării efectuate, atât LCD-ul cât și servo motorul funcționau. Am testat toate acestea și împreună cu fucționalitățiile butonului: | ||
+ | {{ :pm:prj2024:rvirtan:screenshot_2024-05-16_015535.png?450 |}} | ||
+ | Cât despre forma fizică a proiectului, am început să îl realizez, respectând schema de mai sus. După cum se poate observa, modulul Bluetooth funcționează și acesta. | ||
+ | {{ :pm:prj2024:rvirtan:proiect_fizic_pop.jpg?500 |}} | ||
+ | ===== Software Design ===== | ||
+ | |||
+ | === Link GitHub === | ||
<note tip> | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | + | [[https://github.com/aandreeapop/Automatic-Pet-Feeder-Arduino|Automatic-Pet-Feeder-Arduino]] |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
</note> | </note> | ||
+ | |||
+ | === Mediul de dezvoltare === | ||
+ | [[https://www.arduino.cc/en/software|Arduino IDE]] | ||
+ | |||
+ | === Biblioteci utilizate === | ||
+ | * **LiquidCrystal.h** - bibliotecă utilizată pentru interacțiunea cu LCD-ul. | ||
+ | * **RTClib.h** - bibliotecă utilizată pentru manevrarea componentei de ceas (Real Time Clock) ce extrage data si ora exacte. | ||
+ | * **Servo.h** - bibliotecă utilizată pentru manipularea rotației servomotorului (rotirea elicei pentru eliberarea unei cantități de mâncare). | ||
+ | * **Wire.h** - bibliotecă folosită în concordanță cu protocolul I2C. | ||
+ | * **SoftwareSerial.h**- bibliotecă ce permite comunicarea cu serialul. | ||
+ | |||
+ | === Explicarea funcționalităților === | ||
+ | Stăpânul se va conecta prin Bluetooth cu ajutorul Smartphone-ului sau al tabletei, de unde va putea interacționa cu feeder-ul. Astfel, va putea seta o oră viitoare de hrănire, ce va apărea pe ecran, va putea afișa lista cu orele programate de masă din care, ulterior, va putea șterge elemente. În momentul în care se ajunge la o oră la care este programată masa animăluțului, pe LCD va apărea mesajul „Feeding...”, iar servomotorul va roti două recipiente până cand decupajele acestora se vor descompune, astfel eliberând o cantitate redusă de hrană în bol, ulterior revenind la poziția inițială. | ||
+ | |||
+ | === Optimizări efectuate === | ||
+ | În practică, pe parcursul testării am observat anumite moduri mai eficiente de legare a cablurilor și componentelor față de etapa precedentă. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== |