This shows you the differences between two versions of the page.
pm:prj2022:rtilimpea:sonar1234 [2022/06/01 19:50] dragos.andrei1909 [Software Design] |
pm:prj2022:rtilimpea:sonar1234 [2022/06/01 21:57] (current) dragos.andrei1909 [Hardware Design] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Sonar ====== | + | ====== Sonar/Radar ====== |
===== Introducere ===== | ===== Introducere ===== | ||
Line 11: | Line 11: | ||
- | Placa Arduino Uno | + | **Placa Arduino Uno** |
{{:pm:prj2022:rtilimpea:arduinosonar.png?200|}} | {{:pm:prj2022:rtilimpea:arduinosonar.png?200|}} | ||
- | Senzor ultrasonic de distanta HC-SR04 | + | +Breadboard and a lot of wires |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Pinii de VCC si GND ai modulelor sunt conectati la GND/5V pe placuta sau prin intermediul breadboard-ului. | ||
+ | |||
+ | **Senzor ultrasonic de distanta HC-SR04** | ||
{{:pm:prj2022:rtilimpea:senzorsonar.png?200|}} | {{:pm:prj2022:rtilimpea:senzorsonar.png?200|}} | ||
- | Ecran LCD Nokia 5110 | + | |
+ | Pinii Trig si Echo ai senzorului de distanta sunt legati la conexiunile 8 si 9 pe Arduino Uno. | ||
+ | |||
+ | |||
+ | **Ecran LCD Nokia 5110** | ||
{{:pm:prj2022:rtilimpea:ecransonar.png?200|}} | {{:pm:prj2022:rtilimpea:ecransonar.png?200|}} | ||
- | ServoMotor SG90 180 de grade | ||
- | {{:pm:prj2022:rtilimpea:motorsonar.jpg?200|}} | + | Ecranul LCD are backlight-ul conectat la 3.3V, iar restul intrarilor sunt conectate la 3-7 pe placa. |
+ | **ServoMotor SG90 180 de grade** | ||
+ | {{:pm:prj2022:rtilimpea:motorsonar.jpg?200|}} | ||
+ | Legatura dintre servo-motor si placuta este facuta prin pinul 11. | ||
+ | Senzorul de distanta este conectat pe servo-motor si puse pe un suport, iar ecranul LCD este conectat direct la breadboard. | ||
Line 36: | Line 51: | ||
{{:pm:prj2022:rtilimpea:sonarr.png?700|}} | {{:pm:prj2022:rtilimpea:sonarr.png?700|}} | ||
+ | |||
+ | |||
+ | |||
===== Software Design ===== | ===== Software Design ===== | ||
Line 42: | Line 60: | ||
<note tip> | <note tip> | ||
Biblioteci folosite: | Biblioteci folosite: | ||
- | <SPI.h>, | + | **<SPI.h>**, |
- | <Adafruit_GFX.h>, | + | **<Adafruit_GFX.h>**, |
- | <Adafruit_PCD8544.h>, | + | **<Adafruit_PCD8544.h>**, |
- | <Servo.h> | + | **<Servo.h>** |
</note> | </note> | ||
Mediul de lucru: **Arduino IDE** | Mediul de lucru: **Arduino IDE** | ||
- | In setup initializez toate conexiunile elementelor cu placuta arduino, iar in loop se face o parcurgere a zonei 45-135 de grade a servo-motorului si se citesc valorile de la 60, 75, 90, 105 si 120 de grade. Se adauga intr-un vector scalate si la marimea de 84 pe 48 a ecranului LCD pentru a fi afisate la final de loop. Din punct de vedere hardware, senzorul de distanta este conectat pe servo-motor si puse pe un suport, iar ecranul LCD este conectat direct la breadboard. | + | In setup initializez toate conexiunile elementelor cu placuta arduino, iar in loop se face o parcurgere a zonei 45-135 de grade a servo-motorului si se citesc valorile de la 60, 75, 90, 105 si 120 de grade. Se adauga intr-un vector scalate si la marimea de 84 pe 48 a ecranului LCD pentru a fi afisate la final de loop. |
+ | |||
+ | Am folosit 2 vectori care retin pozitiile i si j ale obiectelor scanate anterior pentru ca la fiecare iteratie a loop-ului, sa pot sterge marcajele anterioare si sa rescriu vectorii cu valorile din noua detectie. | ||
+ | |||
+ | Functia detection genereaza patratele care reprezinta obstacolele, iar calc_dis este folosita pentru a intoarce distanta de la senzor. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | Am testat in mai multe situatii si cu obstacole plasate in bataia senzorului, iar outputul a fost corect. In poza se poate vedea cum scaneaza peretele meu cu o sticla de apa in drum la una din citiri:))))) | ||
{{:pm:prj2022:rtilimpea:sonarrr.jpg?500|}} | {{:pm:prj2022:rtilimpea:sonarrr.jpg?500|}} | ||
Line 62: | Line 85: | ||
<note> | <note> | ||
+ | Arhiva cu codul folosit: | ||
+ | |||
{{:pm:prj2022:rtilimpea:andreidragos335cb_cod.zip|}} | {{:pm:prj2022:rtilimpea:andreidragos335cb_cod.zip|}} | ||
+ | |||
+ | *in continuare este necesara downloadarea din Arduino IDE a bibliotecii Adafruit | ||
</note> | </note> | ||
Line 68: | Line 95: | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | https://ocw.cs.pub.ro/courses/pm/lab/lab6-2022 |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | https://ocw.cs.pub.ro/courses/pm/lab/lab3-2022 |
+ | |||
+ | https://ocw.cs.pub.ro/courses/pm/lab/lab1-2022 | ||
+ | |||
+ | https://www.youtube.com/watch?v=aDwrMeu4k9Y | ||
+ | |||
+ | https://create.arduino.cc/projecthub/DKVDH/simple-servo-project-for-beginners-5268b2 | ||
+ | |||
+ | https://create.arduino.cc/projecthub/Manikantsavadatti/diy-ultrasonic-radar-system-1f4d1c | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||