This shows you the differences between two versions of the page.
pm:prj2022:rtilimpea:sonar1234 [2022/06/01 21:44] dragos.andrei1909 [Software Design] |
pm:prj2022:rtilimpea:sonar1234 [2022/06/01 21:57] (current) dragos.andrei1909 [Hardware Design] |
||
---|---|---|---|
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 51: | Line 69: | ||
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. | 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. | Functia detection genereaza patratele care reprezinta obstacolele, iar calc_dis este folosita pentru a intoarce distanta de la senzor. |