This shows you the differences between two versions of the page.
pm:prj2023:alucaci:interactive-speed-radar [2023/05/03 18:51] sergiu.pana [Introducere] |
pm:prj2023:alucaci:interactive-speed-radar [2023/05/29 12:43] (current) sergiu.pana [Rezultate Obţinute] |
||
---|---|---|---|
Line 9: | Line 9: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | + | {{:pm:prj2023:alucaci:screenshot_from_2023-05-03_18-55-46.png|}} |
- | 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 | + | Viteza obiectului este masurata de doi senzori infrarosu, amplasati la o distanta cunoscuta. Se masoara intervalul de timp necesar activarii ambilor senzori. Se imparte distanta la timp si se obtine viteza 🤓. |
- | </note> | + | |
+ | Prin intermediul unei tastaturi numerice, utilizatorul poate sa modifice comportamentul radarului de viteza, astfel: | ||
+ | * poate modifica limita de viteza (pentru momentele cand prinde Autobahn-ul liber) | ||
+ | * poate schimba modul in care se afiseaza mesajele informative (standard sau cu referinte de Formula 1) | ||
+ | * poate schimba unitatea de masura a vitezei: km/h, m/s sau freedom units (mph) | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | + | Componente folosite: |
- | Aici puneţi tot ce ţine de hardware design: | + | * Arduino Uno R3 |
- | * listă de piese | + | * 2 x senzor infrarosu |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | * Ecran LCD |
- | * diagrame de semnal | + | * Modul tastatura 4x3 |
- | * rezultatele simulării | + | * Banda LED RGB |
+ | * Breadboard | ||
+ | * Rezistenta 470 ohm | ||
+ | * Fire de legatura | ||
+ | |||
+ | Tinkercad: | ||
+ | |||
+ | {{:pm:prj2023:alucaci:sergiupana-tinkercad-design.png?800|}} | ||
+ | |||
+ | Schema electrica: | ||
+ | |||
+ | {{:pm:prj2023:alucaci:sergiupana-electrical-schema.jpg?800|}} | ||
+ | |||
+ | Real life: | ||
+ | |||
+ | {{:pm:prj2023:alucaci:whatsapp_image_2023-05-20_at_13.08.38.jpeg?400|}} | ||
+ | |||
+ | |||
+ | <note important> | ||
+ | Modulul de keypad folosit in simulare nu este cel pe care il folosesc in proiectul meu, deoarece nu am reusit sa il gasesc. | ||
+ | |||
+ | Cu toate acestea, am incercat sa pastrez legaturile intre modulul din simulari si placuta cat mai aproape de realitate | ||
</note> | </note> | ||
Line 28: | Line 51: | ||
- | <note tip> | + | Pentru partea de software, am folosit bibliotecile Keypad pentru a citi caracterele de la keypad, LiquidCrystal_I2C pentru controlul display-ului LCD si Adafruit Neopixel pentru controlul benzii LED; |
- | 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> | + | |
+ | Partea centrala a codului este reprezentata de partea de calcul al vitezei, realizat prin calculul raportului intre distanta predefinita dintre senzorii infrarosii si timpul necesar declansarii ambilor senzori. | ||
+ | Sunt facute verificari suplimentare pentru a oferi un calcul cat mai aproape de realitate al vitezei, precum verificarea printr-un flag ca ambii senzori au fost activati inainte de a trece la calculul vitezei. | ||
+ | |||
+ | In functie de viteza limita setata de utilizator si viteza calculata, se acorda o evaluare a vitezei si se afiseaza mesajele corespunzatoare, astfel: | ||
+ | * viteza < 0.75 * limita_viteza => viteza prea mica | ||
+ | * viteza >= 0.75 * limita_viteza && viteza < 1.05 * limita_viteza => viteza normala | ||
+ | * viteza >= 1.05 * limita_viteza && viteza < 1.5 * limita_viteza => viteza mare; se va calcula valoarea amenzii in functie de viteza | ||
+ | * viteza > 1.5 * limita_viteza => viteza excesiva; vine politia; se va suspenda permisul; | ||
+ | |||
+ | De asemenea, proiectul mai contine si un meniu de configurare, in care, prin apasarea unor taste, se pot schimba setarile dispozitivului: | ||
+ | * limita de viteza | ||
+ | * unitatea de masura a vitezei | ||
+ | * modul de afisare al mesajelor informative | ||
+ | |||
+ | Comutarea intre modul de configurare si cel de detectare a vitezei se poate face prin apasarea unui buton care genereaza o intrerupere ce schimba un flag in cod. | ||
+ | |||
+ | |||
+ | Codul contine cateva functii de animare a benzii LED, in functie de gravitatea faptei. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | {{:pm:prj2023:alucaci:inside-black-box.jpeg?300|}} |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
+ | {{:pm:prj2023:alucaci:final-project1.jpeg?300|}} | ||
+ | |||
+ | |||
+ | {{:pm:prj2023:alucaci:final-project2.jpeg?300|}} | ||
+ | |||
+ | {{:pm:prj2023:alucaci:pana_sergiu_hardware_2.jpeg?300|}} | ||
+ | |||
+ | Am obtinut un dispozitiv care masoara viteza si o afiseaza in diferite unitati de masura, insotita de mesaje de afisare diverse si diferite animatii de LED-uri. De asemenea, dispozitivul poate fi configurat dupa bunul plac. | ||
+ | |||
+ | Radarul foloseste tastatura pentru a citi diferite comenzi de la utilizator sau pentru a actualiza parametrii de rulare. | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Per total, a fost un proiect engaging, care a combinat cunostintele software cu cele hardware si m-a pus in pozitia sa imi "murdaresc mainile", avand ocazia sa ma joc cu componentele hardware. Desi exista multe locuri unde ar putea fi imbunatatit, sunt multumit de proiect si m-am simtit bine lucrand la el. | ||
+ | |||
+ | <html> | ||
+ | <iframe width="560" height="315" src="https://www.youtube.com/embed/4IThyZkpkLU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> | ||
+ | </html> | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | {{:pm:prj2023:alucaci:source_code_pana_sergiu_335ca.zip|}} |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un 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 ===== | ||
- | <note tip> | + | * 4 aprilie - prima comanda de componente |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * 20 aprilie - a doua comanda de componente |
- | </note> | + | * 28 aprilie - idee + documentatie |
+ | * 20 mai - hardware partial gata (componentele legate intre ele, fara cutie) | ||
+ | * 24 mai - software partial gata (parte din functionalitati implementate) | ||
+ | * 28 mai - proiect gata - hardware: aranjat componentele in cutie; software: implementat restul functiilor si facut legaturile | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | Biblioteci folosite: |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | |
- | + | ||
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | |
+ | * [[https://www.arduino.cc/reference/en/libraries/keypad/|Keypad]] | ||
+ | * [[https://github.com/adafruit/Adafruit_NeoPixel|Adafruit Neopixel]] | ||
+ | * [[https://www.arduino.cc/reference/en/libraries/liquidcrystal-i2c/|LiquidCrystal_I2C]] | ||