Interactive speed radar

Introducere

Un dispozitiv care determina viteza unui obiect și o afiseaza pe un LCD, alaturi de alte mesaje sugestive, in functie de setari. Utilizatorul poate selecta afisarea vitezei in km/h, mph sau m/s, poate seta limita de viteza si modul de afisare al mesajelor. In functie de limita de viteza introdusa, se afiseaza diferite mesaje de informare insotite de colorarea corespunzatoare a unei benzi LED, și chiar suma amenzii de viteza daca lasam gandurile intruzive sa castige.

P.S: Este posibil ca valoarea amenzii sa nu mai fie corecta pe viitor.

Descriere generală

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

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

Componente folosite:

  • Arduino Uno R3
  • 2 x senzor infrarosu
  • Ecran LCD
  • Modul tastatura 4×3
  • Banda LED RGB
  • Breadboard
  • Rezistenta 470 ohm
  • Fire de legatura

Tinkercad:

Schema electrica:

Real life:

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

Software Design

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;

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

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

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.

Download

Jurnal

  • 4 aprilie - prima comanda de componente
  • 20 aprilie - a doua comanda de componente
  • 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

pm/prj2023/alucaci/interactive-speed-radar.txt · Last modified: 2023/05/29 12:43 by sergiu.pana
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