This shows you the differences between two versions of the page.
pm:prj2021:cghenea:smartdustbin [2021/06/02 03:06] anca_ioana.rolea |
pm:prj2021:cghenea:smartdustbin [2021/06/02 17:19] (current) anca_ioana.rolea |
||
---|---|---|---|
Line 22: | Line 22: | ||
==Schema electrica== | ==Schema electrica== | ||
- | {{:pm:prj2021:cghenea:schema_electrica_pm.png?700|}} | + | {{:pm:prj2021:cghenea:smart_dustbin_schema_electrica.png?800|}} |
===== Software Design ===== | ===== Software Design ===== | ||
- | * Mediul de dezvoltare utilizat a fost Arduino IDE. | + | * Mediul de dezvoltare utilizat a fost Arduino IDE, iar pentru construirea schemei electrice a proiectului am utilizat Fritzing. |
* Am folosit biblioteca Servo.h pentru a putea controla servomotorul | * Am folosit biblioteca Servo.h pentru a putea controla servomotorul | ||
* Am folosit bibliotecile LCD.h si LiquidCrystal_I2C.h pentru afisarea textului pe display | * Am folosit bibliotecile LCD.h si LiquidCrystal_I2C.h pentru afisarea textului pe display | ||
- | * Functia setup() a fost folosita pentru setarea numarului de caractere si de linii afisate pe display prin intermediul functiei begin(), pentru setarea tipului pinilor (de intrare sau iesire) cu ajutorul functiei pinMode(), dar si pentru initializarea servomotorului prin intermediul functiilor attach() si write(). | + | * Functia setup() a fost folosita pentru setarea numarului de caractere si de linii afisate pe display prin intermediul functiei begin(), pentru setarea tipului pinilor (de intrare sau de iesire) cu ajutorul functiei pinMode(), dar si pentru initializarea servomotorului prin intermediul functiilor attach() si write(). |
* Functia distance() returneaza distanta dintre un obiect si un senzor ultrasonic. | * Functia distance() returneaza distanta dintre un obiect si un senzor ultrasonic. | ||
* In metoda loop() am calculat distanta dintre senzorul ultrasonic raspunzator de ridicarea capacului gunoiului si un obiect aflat in fata sa, iar in functie de distanta aceasta manerul servomotorului se va roti sau nu (daca distanta este mai mica de 30 cm, servomotorul se va roti in directia opusa, la 0 grade si astfel se va deschide capacul gunoiului, altfel va ramane cum era pus initial, la 180 de grade). Am calculat apoi distanta dintre senzorul ultrasonic raspunzator de afisarea pe display a starii gunoiului(daca este plin sau nu) si un obiect aflat in fata acestui senzor. Daca distanta dintre senzor si obiect este mai mica decat 5 cm, atunci inseamna ca gunoiul s-a umplut si se afiseaza un mesaj corespunzator, altfel se semnaleaza faptul ca gunoiul nu este plin printr-un alt mesaj sugestiv. | * In metoda loop() am calculat distanta dintre senzorul ultrasonic raspunzator de ridicarea capacului gunoiului si un obiect aflat in fata sa, iar in functie de distanta aceasta manerul servomotorului se va roti sau nu (daca distanta este mai mica de 30 cm, servomotorul se va roti in directia opusa, la 0 grade si astfel se va deschide capacul gunoiului, altfel va ramane cum era pus initial, la 180 de grade). Am calculat apoi distanta dintre senzorul ultrasonic raspunzator de afisarea pe display a starii gunoiului(daca este plin sau nu) si un obiect aflat in fata acestui senzor. Daca distanta dintre senzor si obiect este mai mica decat 5 cm, atunci inseamna ca gunoiul s-a umplut si se afiseaza un mesaj corespunzator, altfel se semnaleaza faptul ca gunoiul nu este plin printr-un alt mesaj sugestiv. | ||
Line 42: | Line 42: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
* Am invatat sa programez o placuta Arduino, ceea ce inainte nu mai facusem chiar daca auzisem destul de multe lucruri bune despre o astfel de placuta care imi starnisera curiozitatea. | * Am invatat sa programez o placuta Arduino, ceea ce inainte nu mai facusem chiar daca auzisem destul de multe lucruri bune despre o astfel de placuta care imi starnisera curiozitatea. | ||
- | * Am invatat ca e foarte important sa testez si functionalitatea corecta a firelor pentru ca uneori e posibil ca un singur fir sa nu mearga si din cauza lui sa nu mearga tot proiectul. | + | * Am invatat ca e foarte important sa testez si functionalitatea corecta a firelor inainte de a ma grabi sa comand componente noi pentru ca uneori e posibil ca un singur fir sa nu mearga si din cauza lui sa nu mearga tot proiectul. |
* Din pacate, servomotorul am observat ca scoate niste sunete ciudate, cel mai probabil din cauza contactelor imperfecte. Totusi, isi face treaba de fiecare data, chiar daca este putin galagios. | * Din pacate, servomotorul am observat ca scoate niste sunete ciudate, cel mai probabil din cauza contactelor imperfecte. Totusi, isi face treaba de fiecare data, chiar daca este putin galagios. | ||
* Acesta a fost un proiect in care setup-ul a fost mai complicat decat partea de scris cod, dar care mi-a placut per total. | * Acesta a fost un proiect in care setup-ul a fost mai complicat decat partea de scris cod, dar care mi-a placut per total. | ||
Line 50: | Line 50: | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | TODO | + | * 2 mai: alegerea temei proiectului si crearea paginii de wiki |
+ | * 3 mai: comandarea pieselor necesare pentru realizarea proiectului | ||
+ | * 7 mai: primirea pieselor | ||
+ | * 9 mai: testarea senzorilor ultrasonici si a display-ului | ||
+ | * 10 mai: asamblarea capacului cutiei si a servomotorului | ||
+ | * 11 mai: lipirea breadboard-ului, a placutei Arduino, a bateriei si a display-ului de galeata + testarea primei variante de cod si comandarea unui nou display in urma constatarii faptului ca nu se mai aprinde deloc cel vechi | ||
+ | * 14 mai: sosirea noului display si testarea proiectului cu acesta + depistarea faptului ca nici acest display nu mergea, prin urmare s-au testat firele de legatura si s-a ajuns la concluzia ca unele nu functionau corespunzator, deci a fost nevoie de comandarea altora | ||
+ | * 17 mai: sosirea noilor fire de legatura | ||
+ | * 28 mai: finalizarea proiectului cu noile fire de legatura | ||
+ | * 1 iunie: modularizarea codului si adaugarea unor comentarii sugestive | ||
+ | * 2 iunie: finalizarea paginii pe wiki | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | TODO | + | * https://www.youtube.com/watch?v=9yrP1CZN3Ds |
+ | * https://www.element14.com/community/thread/44253/l/undestanding-the-pin-assignment-lcd-i2c | ||
+ | * https://www.arduino.cc/reference/en/language/functions/advanced-io/pulsein/ | ||
+ | * https://arduinogetstarted.com/reference/library/servo-attach | ||
+ | * https://create.arduino.cc/projecthub/abdularbi17/ultrasonic-sensor-hc-sr04-with-arduino-tutorial-327ff6 | ||
+ | * {{:pm:prj2021:cghenea:smart_dustbin.pdf|}} |