Differences

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

Link to this comparison view

pm:prj2021:apredescu:asistent_parcare [2021/06/04 14:48]
lucian.grigore
pm:prj2021:apredescu:asistent_parcare [2021/06/04 20:31] (current)
lucian.grigore
Line 2: Line 2:
 Autor: Grigore Lucian-Florin 336CA Autor: Grigore Lucian-Florin 336CA
  
-==== Introducere ====+===== Introducere ​=====
 Senzor de proximitate montat pe peretele garajului care ajuta soferul, in momentul parcarii, sa stie cat de aproape este de un anumit perete, prin schimbarea culorii afisate si a frecventei de afisare, precum si printr-o avertizare sonora. Senzor de proximitate montat pe peretele garajului care ajuta soferul, in momentul parcarii, sa stie cat de aproape este de un anumit perete, prin schimbarea culorii afisate si a frecventei de afisare, precum si printr-o avertizare sonora.
  
 Ideea a pornit de la dorinta de a ii ajuta pe cei care isi parcheaza masina in locuri stramte. Ideea a pornit de la dorinta de a ii ajuta pe cei care isi parcheaza masina in locuri stramte.
  
-==== Descriere generala ====+===== Descriere generala ====
 + 
 +Modulul Arduino primeste pe RX un vector de distante de la senzorul ultrasonic, calculeaza o distanta medie ca sa elimine putin din zgomotul transmis de acesta. Apoi, lumineaza banda LED, sau LED-urile individuale,​ si porneste buzzer-ul corespunzator distantei dintre masina si senzor. Cu cat masina se apropie mai mult de senzor, lumina devine mai rosie si buzzer-ul se aude din ce in ce mai des.
  
 == Schema bloc == == Schema bloc ==
 +===== =====
 {{:​pm:​prj2021:​apredescu:​schema_bloc_asistent_parcare.png?​650|}} {{:​pm:​prj2021:​apredescu:​schema_bloc_asistent_parcare.png?​650|}}
  
-Modulul Arduino primeste pe RX un vector de distante de la senzorul ultrasonic, calculeaza o distanta medie ca sa elimine putin din zgomotul transmis de acesta. Apoi, lumineaza banda LED, sau LED-urile individuale,​ si porneste buzzer-ul corespunzator distantei dintre masina si senzor. +===== Hardware design ​=====
- +
-==== Hardware design ====+
  
 == Piese necesare == == Piese necesare ==
 +===== =====
   * Arduino Uno/Nano   * Arduino Uno/Nano
   * HC-SR04 senzor ultrasonic   * HC-SR04 senzor ultrasonic
Line 24: Line 25:
   * WS2812B LED strip sau LED-uri individuale (RGB sau single color)   * WS2812B LED strip sau LED-uri individuale (RGB sau single color)
   * Dioda 1N4148 (optionala, doar pentru alimentara in acelasi timp si a placutei Arduino, si a benzii, de la priza)   * Dioda 1N4148 (optionala, doar pentru alimentara in acelasi timp si a placutei Arduino, si a benzii, de la priza)
-  * Buzzer/​difuzor +  * Buzzer/​difuzor ​(am folosit buzzer de 3-24V)
- +
-== Schema electrica cu banda LED == +
- +
-{{:​pm:​prj2021:​apredescu:​schema_banda_led.png?​500|}}+
  
 == Schema electrica cu LED-uri individuale == == Schema electrica cu LED-uri individuale ==
 +===== =====
 +{{:​pm:​prj2021:​apredescu:​asistent_de_parcare_schema_electrica.png?​650|}}
  
-TODO+== Schema electrica cu banda LED == 
 +===== ===== 
 +{{:​pm:​prj2021:​apredescu:​schema_banda_led.png?​650|}}
  
-==== Software design ====+===== Software design ​=====
  
 Pentru unelte de analiza a datelor primite de la senzorul HC-SR04, am folosit libraria QuickStats. Aceasta nu este gasita in meniul "​Manage libraries"​ din Arduino IDE, asa ca trebuie descarcata ca arhiva si trebuie folosita optiunea "Add a .ZIP library"​. Pentru controlul benzii LED am folosit libraria FastLED. Codul pentru Uno R3 a fost scris de mine in Arduino IDE. Codul de Nano este compatibil cu Uno R3, deoarece porturile folosite au aceleasi capabilitati (PWM). Pentru unelte de analiza a datelor primite de la senzorul HC-SR04, am folosit libraria QuickStats. Aceasta nu este gasita in meniul "​Manage libraries"​ din Arduino IDE, asa ca trebuie descarcata ca arhiva si trebuie folosita optiunea "Add a .ZIP library"​. Pentru controlul benzii LED am folosit libraria FastLED. Codul pentru Uno R3 a fost scris de mine in Arduino IDE. Codul de Nano este compatibil cu Uno R3, deoarece porturile folosite au aceleasi capabilitati (PWM).
  
 == LED strip == == LED strip ==
 +===== =====
 Daca se utilizeaza o banda WS2812B, atunci libraria FastLED contine functii precum show() si CRGB(). Cu cea din urma se seteaza culoarea intr-un vector de tipul CRGB, care reprezinta led-urile fizice, iar cu cea dintai se afiseaza noua configuratie a LED-urilor. Daca se utilizeaza o banda WS2812B, atunci libraria FastLED contine functii precum show() si CRGB(). Cu cea din urma se seteaza culoarea intr-un vector de tipul CRGB, care reprezinta led-urile fizice, iar cu cea dintai se afiseaza noua configuratie a LED-urilor.
  
 == Individual LEDs == == Individual LEDs ==
 +===== =====
 Folosind LED-uri individuale,​ se folosesc functiile analogWrite() (datorita necesitatii PWM pentru cele 3 canale de culoare) pentru RGB si digitalWrite() pentru LED-uri single color. Am creat functii care sa afiseze orice spectru de culori pe LED-urile RGB, iar pentru LED-urile single color am creat un numar fix de configuratii posibile de lumini, care sunt folosite in functie de cat de apropiata este masina de senzor. Folosind LED-uri individuale,​ se folosesc functiile analogWrite() (datorita necesitatii PWM pentru cele 3 canale de culoare) pentru RGB si digitalWrite() pentru LED-uri single color. Am creat functii care sa afiseze orice spectru de culori pe LED-urile RGB, iar pentru LED-urile single color am creat un numar fix de configuratii posibile de lumini, care sunt folosite in functie de cat de apropiata este masina de senzor.
  
 == Arduino Code == == Arduino Code ==
 +===== =====
 Codul Arduino folosit (pentru Uno R3) se poate gasi [[https://​github.com/​lucigrigo/​University/​blob/​master/​3rd%20Year/​PM%20-%20Microprocessors%20Design/​Proiect/​asistent_parcare/​asistent_updated/​asistent_updated.ino|aici]]. Codul Arduino folosit (pentru Uno R3) se poate gasi [[https://​github.com/​lucigrigo/​University/​blob/​master/​3rd%20Year/​PM%20-%20Microprocessors%20Design/​Proiect/​asistent_parcare/​asistent_updated/​asistent_updated.ino|aici]].
  
 Codul Arduino (pentru Nano) care se poate folosi impreuna cu o banda LED WS2812B se poate gasi [[https://​create.arduino.cc/​projecthub/​Bcjams/​garage-parking-assistant-11446b?​ref=search&​ref_id=garage&​offset=0#​code|aici]]. Codul Arduino (pentru Nano) care se poate folosi impreuna cu o banda LED WS2812B se poate gasi [[https://​create.arduino.cc/​projecthub/​Bcjams/​garage-parking-assistant-11446b?​ref=search&​ref_id=garage&​offset=0#​code|aici]].
  
-==== Rezultate obtinute ====+===== Rezultate obtinute ​=====
  
 == Functionare == == Functionare ==
 +===== =====
 +<note tip>​Distantele configurate pentru demonstratie au fost destul de mari si la intervale mari, ceea ce poate fi destul de dificil pentru senzorul ultrasonic. Acesta se comporta mult mai bine la distante mai mici, unde precizia lui creste substantial. Astfel, intr-un scenariu real de utilizare, as recomanda configurarea pentru distante mici, unde se va obtine o performanta excelanta, dar si o consistenta mai solida.</​note>​
  
-Distantele configurate pentru demonstratie au fost destul de mari si la intervale mari, ceea ce poate fi destul de dificil pentru senzorul ultrasonic. Acesta se comporta mult mai bine la distante mai mici, unde precizia lui creste substantial. Astfel, intr-un scenariu real de utilizare, as recomanda configurarea pentru distante mici, unde se va obtine o performanta excelanta, dar si o consistenta ​mai solida.+Senzorul va avertiza (vizual ​si sonor) in urmatorul fel (in cadrul demo-ului): 
 +  * peste 300cm - lumina albastra ​si nicio avertizare sonora 
 +  * intre 250cm si 300cm - lumina verde slaba si usoara avertizare sonora 
 +  * intre 200cm si 250cm - lumina verde intensa si avertizare sonora ​mai alerta 
 +  * intre 150cm si 200cm - lumina galbena intensa si aceeasi avertizare sonora 
 +  * intre 0cm si 150cm - lumina rosie intensa si avertizare sonora foarte alarmanta
  
-Senzorul va avertiza (vizual si sonor) pentru urmatoarele scenarii: +== Poze cu starile descrise mai sus == 
-  * Unordered List Item+===== ===== 
 +{{:​pm:​prj2021:​apredescu:​blue.jpg?​250|}}
  
-== Demo video ==+{{:​pm:​prj2021:​apredescu:​light_green.jpg?​250|}}
  
 +{{:​pm:​prj2021:​apredescu:​intense_green.jpg?​250|}}
 +
 +{{:​pm:​prj2021:​apredescu:​yellow.jpg?​250|}}
 +
 +{{:​pm:​prj2021:​apredescu:​red.jpg?​250|}}
 +
 +== Demo video ==
 +===== =====
 [[https://​www.youtube.com/​watch?​v=NoFG4ZSbEao]] [[https://​www.youtube.com/​watch?​v=NoFG4ZSbEao]]
  
-==== Concluzii ====+Filmarea este realizata cu telefonul, asa ca am ales sa filmez seara, ca sa nu intre prea multa lumina naturala in cadru, si cu farurile stinse la masina. De aceea, calitatea nu este iesita din comun, iar din cauza faptului ca este spatiu inchis, microfonul telefonului nu prinde asa bine sunetul buzzer-ului,​ desi si acesta poate fi auzit, in fundal. Cu toate acestea, functionalitatea asistentului de parcare este usor demonstrata prin acest demo.
  
-==== Download ​====+===== Concluzii =====
  
-==== Jurnal ====+Asistentul de parcare s-a dovedit a fi foarte eficient. Dat fiind faptul ca este vorba de detectarea unei masini, senzorul se descurca foarte bine cu obiectele mari, fiind convenabil de precis. Buzzer-ul folosit, chiar daca este mic, se aude foarte clar, chiar si din interiorul masinii, cu motorul pornit si geamurile inchise, iar luminile pot fi usor vazute, chiar si ziua, sau cu farurile pornite. 
 + 
 +===== Download ===== 
 + 
 +{{:​pm:​prj2021:​apredescu:​grigorelucianflorin_336ca_pm_proiect.zip|}} 
 + 
 +===== Jurnal ​=====
  
   * 24 mai 2021 - inceput proiect   * 24 mai 2021 - inceput proiect
   * 29 mai 2021 - terminare design software si asamblare componente, cu exceptia benzii LED   * 29 mai 2021 - terminare design software si asamblare componente, cu exceptia benzii LED
-  * 31 mai 2021 - am ajuns la concluzia ca banda LED nu merge, dupa ce am incercat sa o conectez in 100 de feluri+  * 31 mai 2021 - am ajuns la concluzia ca banda LED nu merge (probabil am ars-o), dupa ce am incercat sa o conectez in 100 de feluri
   * 1 iunie 2021 - modificare proiect astfel incat sa folosesc LED-uri individuale   * 1 iunie 2021 - modificare proiect astfel incat sa folosesc LED-uri individuale
   * 2 iunie 2021 - terminare montaj, filmare demo seara   * 2 iunie 2021 - terminare montaj, filmare demo seara
   * 4 iunie 2021 - terminare documentatie completa   * 4 iunie 2021 - terminare documentatie completa
  
-==== Bibliografie/​resurse ====+===== Bibliografie/​resurse ====
 + 
 +== Resurse software == 
 +===== ===== 
 https://​create.arduino.cc/​projecthub/​Bcjams/​garage-parking-assistant-11446b?​ref=search&​ref_id=garage&​offset=0 https://​create.arduino.cc/​projecthub/​Bcjams/​garage-parking-assistant-11446b?​ref=search&​ref_id=garage&​offset=0
  
Line 88: Line 115:
  
 https://​www.arduino.cc/​reference/​en/​language/​functions/​digital-io/​digitalwrite/​ https://​www.arduino.cc/​reference/​en/​language/​functions/​digital-io/​digitalwrite/​
 +
 +== Resurse hardware ==
 +===== =====
 +https://​howtomechatronics.com/​tutorials/​arduino/​how-to-control-ws2812b-individually-addressable-leds-using-arduino/​
 +
 +
 +
 +----
 +
 +
 +[[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​apredescu/​asistent_parcare?​do=export_pdf|Export to PDF]]
  
 //Kudos to Bcjams for the idea of this type of project :)// //Kudos to Bcjams for the idea of this type of project :)//
pm/prj2021/apredescu/asistent_parcare.1622807329.txt.gz · Last modified: 2021/06/04 14:48 by lucian.grigore
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