F1 Car Dashboard

Autor: Sara-Denisa Florean
Grupa: 333CD
GitHub: https://github.com/saraflorean24/PM_F1_Car_Dashboard

Introducere

Ce face proiectul?

Proiectul constă într-un accesoriu interactiv pentru cursele cu mașini Lego, care măsoară viteza mașinii și afișează datele pe un dashboard. Acesta include un senzor Hall și un magnet pentru a calcula viteza mașinii și un buzzer care emite sunete specifice în funcție de startul cursei și de depășirea vitezei maxime admise.

Care este scopul proiectlui?

Scopul proiectului este de a adăuga o componentă tehnologică interactivă și educativă în jocurile cu mașini Lego, oferind un sistem de monitorizare a vitezei și alerte audio. În plus, se dorește să încurajeze copiii să învețe despre senzori, controlul electronic și viteza într-un mod distractiv, transformând cursa Lego într-o adevărată competiție de viteză.

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ă.

De ce cred că este util?

Acest proiect poate fi un mod de a transforma jocurile cu Lego într-o experiență interactivă și educativă, ajutând copiii să înțeleagă mai bine concepte precum viteza, senzori și controlul electronic. Este un accesoriu ușor de utilizat și personalizat, care poate adăuga un element de competiție și distracție în jocurile de zi cu zi.

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.

  • 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, 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.
  • 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/finalul sau depășirea limitei de viteză.

Schemă realizată cu ajutorul site-ului: https://www.figma.com

Hardware Design

➤ Listă de componente

Nume componenta Model Protocol
Microcontroller Arduino UNO USB, Serial
LCD 16×2 I2C
Senzor Hall KY-024 Digital Input
Magnet - -
Buzzer - PWM
Butoane - GPIO


➤ Descriere detaliată a componentelor hardware

LCD 1602 cu modul I2C

LCD-ul 1602 are modulul I2C, ceea ce permite comunicarea cu Arduino folosind doar două fire: SDA și SCL.

Conectarea pinilor:

Pin LCD I2C Pin Arduino
VCC 5V
GND GND
SDA A4
SCL A5

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 mașinii de jucărie.

Conectarea pinilor:

Pin 3144E Pin Arduino
VCC 5V
GND GND
OUT D2

Buzzer pasiv

Buzzerul pasiv este utilizat pentru a genera semnale sonore. În proiect, este folosit pentru a semnaliza display-ul de welcome, începutul/finalul cursei, depășirea limitei de viteză.

Conectarea pinilor:

Pin Buzzer Pin Arduino
+ D9
- GND

Butoane (Start/Stop, Reset)

Sunt utilizate butoane pentru acțiuni precum Start/Stop cursă și Afișare informații. Fiecare buton este conectat între un pin digital și GND, folosind rezistor de pull-down extern.

Conectarea pinilor:

Buton Pin Arduino
Start/Stop D6
Afișare Informații D7

➤ Schemă Electrică


Schemă realizată cu ajutorul site-ului: https://easyeda.com

➤ Design Electric



Design realizat cu ajutorul site-ului: https://www.cirkitstudio.com

➤ Implementare Hardware


Software Design

➤ 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 principal este următorul:

1. Inițializare

  • Se inițializează componentele hardware: LCD, senzor Hall, buzzer, butoane.
  • Se afișează un mesaj de bun venit pe ecranul LCD (`WELCOME TO MONACO GP 2025`).
  • Se activează întreruperea externă pentru senzorul Hall, configurată pe frontul `FALLING`.

2. Așteptare comenzi

  • Utilizatorul poate apăsa:
    • Butonul INFO → afișează detalii despre configurația cursei (viteză maximă permisă, număr de ture).
    • Butonul START/STOP → pornește sau oprește cursa.

3. Start cursă

  • 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.

4. În timpul cursei

  • Detectează fiecare trecere a mașinuței prin fața senzorului Hall:

Î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ă:
    • Viteza curentă
    • Timpul scurs de la începutul cursei
  • Dacă viteza depășește pragul impus (`speedLimit`), se generează o alertă vizuală + sonoră.

5. Stop cursă

  • Cursa se încheie automat când lapsCompleted >= totalLaps sau la apăsarea butonului de START/STOP.
  • Se calculează:
    • 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ă)
  • Se afișează mesaj de final și statistici pe LCD.

6. Revenire la starea inițială

  • După afișare, aplicația revine automat la ecranul de bun venit, pregătită pentru o nouă cursă.

➤ Mediu de dezvoltare

  • Arduino IDE
  • Platforma hardware: Arduino UNO R3

➤ Librării și surse third-party

  • LiquidCrystal_I2C v1.1.2 by Frank de Brabander – bibliotecă pentru controlul LCD-ului 16×2 prin interfață I2C
  • tone() – funcție Arduino standard pentru generarea semnalului PWM pentru buzzer pasiv
  • millis(), delay(), attachInterrupt() – funcții standard Arduino pentru controlul timpului și întreruperilor

Rezultate Obţinute

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.

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

Jurnal

08.05.2025 – Am ales tema proiectului și am realizat descrierea aplicației împreună cu lista componentelor hardware necesare.
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.

Bibliografie/Resurse

Resurse Software

Resurse Hardware

pm/prj2025/iotelea/sara_denisa.florean.txt · Last modified: 2025/05/28 02:57 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