This shows you the differences between two versions of the page.
pm:prj2024:vstoica:bogdan.dumitru2304 [2024/05/25 14:51] bogdan.dumitru2304 [Software Design] |
pm:prj2024:vstoica:bogdan.dumitru2304 [2024/05/31 13:54] (current) bogdan.dumitru2304 [Bibliografie/Resurse] |
||
---|---|---|---|
Line 8: | Line 8: | ||
Acest proiect fiind un POC, poate fi expandat prin folosirea unor componente mult mai avansate, care pot fi folosite si pe distante mai mari si avand o precizie mult mai bune decat cele din kit-ul pe care il voi folosi eu pentru acest mini proiect. Astfel, poate deservi si ca un punct de inspiratie si pentru alte persoane care doresc sa implementeze mici proiecte / sisteme. | Acest proiect fiind un POC, poate fi expandat prin folosirea unor componente mult mai avansate, care pot fi folosite si pe distante mai mari si avand o precizie mult mai bune decat cele din kit-ul pe care il voi folosi eu pentru acest mini proiect. Astfel, poate deservi si ca un punct de inspiratie si pentru alte persoane care doresc sa implementeze mici proiecte / sisteme. | ||
- | <note tip> | + | |
- | Prezentarea pe scurt a proiectului vostru: | + | |
- | * ce face | + | |
- | * care este scopul lui | + | |
- | * care a fost ideea de la care aţi pornit | + | |
- | * de ce credeţi că este util pentru alţii şi pentru voi | + | |
- | </note> | + | |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
Line 32: | Line 26: | ||
* Daca sistemul este activat, iar senzorul PIR detecteaza miscare, se trimite un semnal catre microprocesor, iar un buzzer si un LED rosu se vor activa, precum si afisarea unui mesaj sugestiv pe ecran. Dupa ce miscarea nu mai este detectata, buzzerul si LED-ul se vor opri. | * Daca sistemul este activat, iar senzorul PIR detecteaza miscare, se trimite un semnal catre microprocesor, iar un buzzer si un LED rosu se vor activa, precum si afisarea unui mesaj sugestiv pe ecran. Dupa ce miscarea nu mai este detectata, buzzerul si LED-ul se vor opri. | ||
- | <note tip> | ||
- | 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ă. | ||
- | |||
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | ||
- | </note> | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
+ | ==Componentele pe care le voi folosi sunt urmatoarele== | ||
+ | * Placuta Arduino Uno R3 (ATMega 328P) | ||
+ | * Breadboard | ||
+ | * LED rosu, care se va aprinde in momentul in care este detectata miscare. | ||
+ | * LED RGB. Culorile rosu si verde sunt folosite pentru a indica daca sistemul este pornit sau oprit. | ||
+ | * Buzzer pasiv care va emite sunet cand se va detecta miscare. | ||
+ | * Modul senzor cu infrarosu (PIR HC-SR501), folosit pentru detectarea miscarii | ||
+ | * 1602 LCD, interfata I2C, folosit pentru a afisa starea sistemului si daca s-a detectat miscare | ||
+ | * Buton | ||
- | <note tip> | ||
- | Aici puneţi tot ce ţine de hardware design: | ||
- | * listă de piese | ||
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | ||
- | * diagrame de semnal | ||
- | * rezultatele simulării | ||
- | </note> | ||
- | <note tip> | ||
- | Componentele pe care le voi folosi sunt urmatoarele: | ||
- | - Placuta Arduino Uno R3 (ATMega 328P) | ||
- | - Breadboard | ||
- | - LED rosu | ||
- | - LED RGB | ||
- | - Buzzer pasiv | ||
- | - Modul senzor cu infrarosu (PIR HC-SR501) | ||
- | - 1602 LCD, interfata I2C | ||
- | - Buton | ||
- | </note> | ||
==Ansamblu placuta + componente== | ==Ansamblu placuta + componente== | ||
Line 76: | Line 56: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | |||
- | |||
- | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | ||
- | * 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> | ||
- | |||
==Mediu de Dezvoltare== | ==Mediu de Dezvoltare== | ||
Arduino IDE, apoi mai tarziu am folosit VSC cu PlatformIO, importand proiectul de Arduino scris anterior. | Arduino IDE, apoi mai tarziu am folosit VSC cu PlatformIO, importand proiectul de Arduino scris anterior. | ||
Line 116: | Line 86: | ||
// Timer1 configuration: 1Hz (1 second interval) | // Timer1 configuration: 1Hz (1 second interval) | ||
- | noInterrupts(); // Disable all interrupts | + | cli(); // Disable all interrupts |
TCCR1A = 0; // Set entire TCCR1A register to 0 | TCCR1A = 0; // Set entire TCCR1A register to 0 | ||
TCCR1B = 0; // Same for TCCR1B | TCCR1B = 0; // Same for TCCR1B | ||
Line 124: | Line 94: | ||
TCCR1B |= (1 << CS12) | (1 << CS10); // 1024 prescaler | TCCR1B |= (1 << CS12) | (1 << CS10); // 1024 prescaler | ||
TIMSK1 |= (1 << OCIE1A); // Enable timer compare interrupt | TIMSK1 |= (1 << OCIE1A); // Enable timer compare interrupt | ||
- | interrupts(); // Enable all interrupts | + | sei(); // Enable all interrupts |
// Give the sensor some time to calibrate | // Give the sensor some time to calibrate | ||
Line 275: | Line 245: | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | Am invatat cum sa conectez, folosind un bradboard, componentele, urmarind data-sheet-ul pentru fiecare componenta in parte. Apoi am invatat cat de usor este sa scriu cod Arduino pentru a face un mic proiect, chiar daca pe alocuri am facut niste greseli stupide, fie in cod, fie cand incercam sa conectez componentele. | ||
- | <note tip> | + | Am reusit, totusi, sa implementez cu succes un mic sistem de alarma care foloseste un senzor cu infrarosu, chiar daca acum imi dau seama ca nu era chiar atat de greu pe cat ma asteptam initial. Cautand explicatii pe internet sau prin trial and error, in decursul a cateva zile am ajuns de la o multime de piese intr-o cutie de plastic la ceva practic si functional. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | A fost un proiect interesant si amuzant, desi mi-as fi dorit sa am mai mult timp la dispozitie sa fac ceva mai complex si mai interesant, dar am crezut la inceput ca va fi foarte greu si de aceea am ales o tema mai usor de implementat. Daca as putea sa aleg din nou tema proiectului, as alege tot un sistem de alarma, dar l-as face mai complex si la scara poate mai mare. | ||
===== Download ===== | ===== Download ===== | ||
Line 291: | Line 259: | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | + | * Dupa ce am ales tema, am comandat kit-ul cu toate (sau aproape toate :P) componentele de pe Emag. | |
- | <note tip> | + | * Am inceput sa caut pe net toate datasheet-urile componetelor care mi-au venit si mi-am dat seama ca imi lipseste senzorul de miscare, fix componenta principala din proiect, deci am comandat-o separat. |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * Am facut mai multe simulari pe TinkerCad, din frica de a nu arde componente si de a ma asigura ca problemele care apar in cod pot fi reparate inainte de produsul final. |
- | </note> | + | * Am inceput asamblarea fizica a sistemului. |
+ | * M-am chinuit sa imi dau seama ca senzorul de miscare este mult prea sensibil, deci a trebuit sa rezolv asta. A fost un fix usor de facut, doar am umblat la potentiometre pana cand am obtinut un senzor destul de sensibil incat sa detecteze miscare, dar care sa nu fie 24/7 pornit. | ||
+ | * Am scris codul initial, am testat si totul mergea ok, apoi am inceput sa folosesc intreruperi si sa schimb niste cod sa fie folositi si registrii, nu doar functii arduino. | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
Line 301: | Line 271: | ||
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | ||
</note> | </note> | ||
+ | |||
+ | {{:pm:prj2024:vstoica:bogdan.dumitru2304:proiect_pm.zip|}} | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||