Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:iotelea:sara_denisa.florean [2025/05/27 20:44]
sara_denisa.florean
pm:prj2025:iotelea:sara_denisa.florean [2025/05/28 02:57] (current)
sara_denisa.florean [Bibliografie/Resurse]
Line 17: Line 17:
 === Care a fost ideea de la care am pornit? === === Care a fost ideea de la care am pornit? ===
  
-Ideea a pornit din dorința de a crea un sistem care să adauge o **dimensiune educativă jocurilor de Lego**, prin integrarea unei tehnologii simple și accesibile. Astfel, am conceput un dashboard care monitorizează viteza mașinii Lego, adăugând un buzzer care semnalizează momentele importante dintr-o cursă, cum ar fi startul și depășirea vitezei maxime admise.+Ideea a pornit din dorința de a crea un sistem care să adauge o **dimensiune educativă jocurilor de Lego**, prin integrarea unei tehnologii simple și accesibile. Astfel, am conceput un dashboard care monitorizează viteza mașinii Lego, adăugând un buzzer care semnalizează momentele importante dintr-o cursă.
  
 === De ce cred că este util? === === De ce cred că este util? ===
Line 26: Line 26:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-Acest sistem permite **monitorizarea vitezei unei mașini de Formula 1 miniatură** printr-un **Arduino UNO**, cu **feedback vizual pe LCD** și **auditiv prin buzzer**, iar utilizatorul poate interacționa prin butoane.+Acest sistem permite **monitorizarea vitezei unei mașini de Formula 1 miniatură** printr-un **Arduino UNO**, cu **feedback vizual pe LCD** și **auditiv prin buzzer**, iar utilizatorul poate interacționa prin **butoane**.
  
-  * **Arduino UNO** este unitatea principală de control. Acesta primește semnale de la componente externe și controlează LCD-ul, butoanele, buzzer-ul, senzorul Hall și magnetul+  * **Arduino UNO** este unitatea principală de control. Acesta primește semnale de la componente externe și controlează LCD-ul, butoanele, buzzer-ul și senzorul Hall
-  * **LCD** afișează informațiile relevante, cum ar fi viteza, numărul de lap-uri.+  * **LCD** afișează informațiile relevante, cum ar fi viteza, numărul de lap-uri, timpul scurs de la începerea cursei, rezumatul cursei după terminarea acesteia.
   * **Senzorul Hall** detectează rotațiile roții mașinii, iar magnetul montat pe roată interacționează cu senzorul pentru a calcula viteza.   * **Senzorul Hall** detectează rotațiile roții mașinii, iar magnetul montat pe roată interacționează cu senzorul pentru a calcula viteza.
-  * **Butoanele** permit utilizatorului să interacționeze cu sistemul (de exemplu, pentru a începe cursa, pentru a afișa viteza maximă, numărul de lap-uri). +  * **Butoanele** permit utilizatorului să interacționeze cu sistemul (de exemplu, pentru a începe/​încheia ​cursa, pentru a afișa viteza maximă, numărul de lap-uri). 
-  * **Buzzer-ul** semnalează momente cheie ale cursei, cum ar fi startul sau depășirea limitei de viteză.+  * **Buzzer-ul** semnalează momente cheie ale cursei, cum ar fi startul/​finalul ​sau depășirea limitei de viteză.
  
 {{:​pm:​prj2025:​iotelea:​sara_pm.png?​600}} {{:​pm:​prj2025:​iotelea:​sara_pm.png?​600}}
Line 68: Line 68:
 === Senzor Hall 3144E === === Senzor Hall 3144E ===
  
-Senzorul Hall 3144E este un senzor digital unipolar care detectează câmpuri magnetice. Este folosit în proiect pentru a detecta rotațiile unei roți și a calcula viteza ​vehiculului.+Senzorul Hall 3144E este un senzor digital unipolar care detectează câmpuri magnetice. Este folosit în proiect pentru a detecta rotațiile unei roți și a calcula viteza ​mașinii de jucărie.
  
 **Conectarea pinilor:** **Conectarea pinilor:**
Line 122: Line 122:
 ==== ➤ Descrierea fluxului aplicației ==== ==== ➤ Descrierea fluxului aplicației ====
  
-Aplicația se comportă ca un sistem de monitorizare a vitezei pentru o mașinuță în miniatură care parcurge un circuit. Fluxul ​logic principal este următorul:+Aplicația se comportă ca un **sistem de monitorizare a vitezei pentru o mașinuță în miniatură** care parcurge un circuit. Fluxul principal este următorul:
  
 === 1. Inițializare === === 1. Inițializare ===
Line 135: Line 135:
  
 === 3. Start cursă === === 3. Start cursă ===
-  * Se pornește o numărătoare inversă (3...2...1...) cu semnale sonore la fiecare pas.+  * Se pornește o numărătoare inversă (3...2...1...) cu **semnale sonore** la fiecare pas.
   * Sistemul setează `raceActive = true`, resetează contoarele și începe monitorizarea.   * Sistemul setează `raceActive = true`, resetează contoarele și începe monitorizarea.
  
 === 4. În timpul cursei === === 4. În timpul cursei ===
-  * La fiecare 100 ms se verifică dacă s-au înregistrat pulsații noi de la senzorul ​Hall. +  * Detectează fiecare trecere a mașinuței prin fața senzorului ​Hall: 
-  * Se calculează viteza curentă (în m/s) și se adaugă la media generală.+Înregistrează timpul `millis()și calculează viteza în km/h folosind formula: `v = (circumferință roată / timp_tură_secunde) * boost * 3.6`
   * Pe LCD se afișează:   * Pe LCD se afișează:
-    * Viteza curentă +    ​* **Viteza curentă** 
-    * Timpul scurs de la începutul cursei+    ​* **Timpul scurs** de la începutul cursei
   * Dacă viteza depășește pragul impus (`speedLimit`),​ se generează o alertă vizuală + sonoră.   * Dacă viteza depășește pragul impus (`speedLimit`),​ se generează o alertă vizuală + sonoră.
  
 === 5. Stop cursă === === 5. Stop cursă ===
-  * Se oprește monitorizarea (`raceActive ​false`)+  * Cursa se încheie automat când **lapsCompleted >totalLaps** sau la **apăsarea butonului de START/​STOP**.
   * Se calculează:​   * Se calculează:​
-    * Viteza medie (pe baza tuturor măsurătorilor) +    ​* **Viteza medie** (pe baza tuturor măsurătorilor) 
-    * Numărul de ture (presupunând ca fiecare pulasație înregistrată reprezintă o parcurgere a circuitului,​ senzorul având o poziție fixă)+    ​* **Numărul de ture** (presupunând ca fiecare pulasație înregistrată reprezintă o parcurgere a circuitului,​ senzorul având o poziție fixă)
   * Se afișează mesaj de final și statistici pe LCD.   * Se afișează mesaj de final și statistici pe LCD.
  
 === 6. Revenire la starea inițială === === 6. Revenire la starea inițială ===
-  * După afișare, aplicația revine automat la ecranul de bun venit, pregătită pentru o nouă cursă.+  * După afișare, aplicația revine automat la **ecranul de bun venit**, pregătită pentru ​**o nouă cursă**.
  
 ==== ➤ Mediu de dezvoltare ==== ==== ➤ Mediu de dezvoltare ====
Line 170: Line 170:
  
 Am reușit să implementez toate funcționalitățile pe care mi-am dorit să le implementez atunci când am ales proiectul, având chiar câteva sound-uri și afișaje extra pentru o experiență mai amplă atunci când este folosit dashboard-ul. Am reușit să implementez toate funcționalitățile pe care mi-am dorit să le implementez atunci când am ales proiectul, având chiar câteva sound-uri și afișaje extra pentru o experiență mai amplă atunci când este folosit dashboard-ul.
 +Am modificat partea de hardware astfel încât dashboard-ul să aibă un aspect estetic.
  
 [[https://​drive.google.com/​drive/​u/​0/​folders/​1PzVqeifVU6tNrAW6V_fTyDVcEYwUXtAq | F1 Car Dashboard]] [[https://​drive.google.com/​drive/​u/​0/​folders/​1PzVqeifVU6tNrAW6V_fTyDVcEYwUXtAq | F1 Car Dashboard]]
  
 +===== Concluzii ======
  
 +Deși am început cu o idee simplă, complexitatea a crescut pe măsură ce am integrat componente hardware, afișaj dinamic și logica de control într-un singur sistem.
 +
 +Acest proiect m-a ajutat să înțeleg și să aplic concepte esențiale precum:
 +  * **Gestionarea întreruperilor hardware** (ISR) pentru detecția în timp real.
 +  * **Debouncing software** pentru a trata corect semnalele instabile de la butoane.
 +  * **Actualizarea eficientă a informației pe LCD**, evitând flicker sau suprapuneri.
 +  * **Structurarea clară a codului**, cu funcții dedicate fiecărui modul logic.
 +
 +În final, am reușit să livrez un **sistem funcțional,​ interactiv și ușor de utilizat**, cu o experiență completă de tip dashboard pentru curse de mașinuțe.
  
 ===== Download ===== ===== Download =====
  
-<note warning>​ +Arhivă: {{:​pm:​prj2025:​iotelea:​sara_denisa.florean:​F1_Car_Dashboard.zip}} 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+ 
 +===== Jurnal =====
  
-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 Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +**08.05.2025** – Am ales tema proiectului și am realizat descrierea aplicației împreună cu lista componentelor hardware necesare.\\ 
-</​note>​+**10.05.2025** – Am achiziționat materialele și am început proiectarea hardware pe breadboard.\\ 
 +**14.05.2025** – Am testat independent principalele componente: senzorul Hall, buzzer-ul, butoanele și afișajul LCD.\\ 
 +**15.05.2025** – Am implementat funcționalitățile de bază: afișarea mesajului de start și semnalul sonor de întâmpinare.\\ 
 +**16.05.2025** – Am finalizat integrarea tuturor modulelor hardware și am început testele combinate. Am realizat schema electrică și diagrama de cablaj, pe care le-am încărcat în documentația proiectului.\\ 
 +**19.05.2025** – Am adăugat suport pentru sunete distincte (start, avertizare, finalși afișaje dinamice pe LCD în funcție de starea cursei.\\ 
 +**21.05.2025** – Am actualizat logica software: numărătoare inversăcalcul viteză, oprire automată la finalul cursei.\\ 
 +**24.05.2025** – Am finalizat integrarea logicii software cu afișajul și am completat întreaga documentație pe wiki.\\ 
 +**25.05.2025** - Am confecționat cutia pentru dashboard.\\
  
  
Line 197: Line 216:
 === Resurse Hardware === === Resurse Hardware ===
  
 +  * [[https://​docs.arduino.cc/​resources/​datasheets/​A000066-datasheet.pdf| Arduino UNO Datasheet]] - Fișă tehnică completă pentru placa Ardunio UNO
   * [[https://​components101.com/​sites/​default/​files/​component_datasheet/​A3144-Datasheet.pdf|A3144 Hall Effect Sensor Datasheet]] – Fișă tehnică completă pentru senzorul Hall A3144   * [[https://​components101.com/​sites/​default/​files/​component_datasheet/​A3144-Datasheet.pdf|A3144 Hall Effect Sensor Datasheet]] – Fișă tehnică completă pentru senzorul Hall A3144
-  * [[https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf|Arduino UNO Pinout (Schematic)]] – Schematics oficiale ​pentru ​placa UNO+  * [[https://www.handsontec.com/dataspecs/module/​I2C_1602_LCD.pdf|LCD - I2C Datasheet]] - Fișă tehnică completă ​pentru ​ecranul LCD - I2C
    
  
pm/prj2025/iotelea/sara_denisa.florean.1748367880.txt.gz · Last modified: 2025/05/27 20:44 by sara_denisa.florean
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0