Skip to content

Commit 3f0067c

Browse files
Project/vlad.raris (#1307)
* Adăugare pagină proiect vlad.raris * Actualizare documentatie proiect vlad.raris * Actualizare documentatie proiect vlad.raris++ * Actualizare documentatie proiect vlad.raris * Actualizare descriere video proiect vlad.raris * Corecteaza afisarea video in documentatie * Inlocuieste video-uri locale cu linkuri Drive --------- Co-authored-by: POPAGEORGEMATEI <119328898+POPAGEORGEMATEI@users.noreply.github.com>
1 parent 1ee3592 commit 3f0067c

5 files changed

Lines changed: 62 additions & 16 deletions

File tree

68.1 KB
Loading
25.5 KB
Loading

website/versioned_docs/version-acs_cc/project/2026/vlad.raris/index.md

Lines changed: 62 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ Un sistem mecatronic destinat aruncării mingilor de ping-pong către un coș de
1111

1212
## Descriere
1313

14-
Acest proiect implementează un lansator automat pentru basket în miniatură. Sistemul folosește o catapultă pentru mingi de ping-pong, montată pe o bază rotativă. Lansatorul detectează panoul coșului cu ajutorul unui senzor de distanță VL53L0X, se orientează pe axa orizontală și apoi declanșează mecanismul de aruncare.
14+
Acest proiect implementează un lansator automat pentru basket în miniatură. Sistemul folosește o catapultă pentru mingi de ping-pong, montată pe o bază rotativă. Lansatorul detectează panoul coșului cu ajutorul unui senzor ultrasonic HC-SR04, se orientează pe axa orizontală și apoi declanșează mecanismul de aruncare.
1515

1616
Controlul este realizat cu o placă NUCLEO-U545RE-Q, iar codul proiectului este scris în Rust. Coșul este construit separat și are un panou gri în spate, folosit ca suprafață de detecție pentru senzor. Pentru a simplifica problema de poziționare, lansatorul este deplasat pe un cerc în jurul coșului, iar sistemul trebuie să determine unghiul potrivit de orientare către panou.
1717

1818
## Motivație
1919

2020
Alegerea acestui proiect a fost determinată de dorința de a combina controlul mecanic, măsurarea distanței și programarea embedded în Rust într-un sistem vizibil și ușor de testat.
2121

22-
* **Control embedded:** Proiectul folosește semnale PWM pentru servomotoare și I2C pentru senzorul de distanță.
22+
* **Control embedded:** Proiectul folosește semnale PWM pentru servomotoare și semnale GPIO pentru senzorul de distanță.
2323
* **Rust în sisteme embedded:** Implementarea urmărește folosirea Rust pentru controlul sigur și predictibil al perifericelor.
2424
* **Integrare hardware-software:** Sistemul combină partea mecanică a catapultei cu detecția panoului și controlul mișcării.
2525
* **Prototipare practică:** Coșul, panoul și mecanismul de lansare permit testarea rapidă a comportamentului real al sistemului.
@@ -36,7 +36,7 @@ flowchart LR
3636
end
3737
3838
subgraph Lansator ["Unitate Lansator"]
39-
Senzor[VL53L0X ToF] -->|I2C| MCU[NUCLEO-U545RE-Q]
39+
Senzor[HC-SR04] -->|TRIG / ECHO| MCU[NUCLEO-U545RE-Q]
4040
Buton[Buton] -->|GPIO| MCU
4141
MCU -->|GPIO| LED[LED RGB]
4242
MCU -->|PWM| S1[Servo MG995 Bază]
@@ -53,16 +53,52 @@ flowchart LR
5353
```
5454

5555
**Conexiunile Componentelor:**
56-
Senzorul VL53L0X este conectat la placa NUCLEO-U545RE-Q prin I2C. Servo-ul MG995 rotește baza lansatorului, iar servo-ul SG90 acționează mecanismul de declanșare al catapultei. Butonul este folosit pentru comandă, iar LED-ul RGB oferă feedback vizual pentru stările sistemului.
56+
Senzorul HC-SR04 este conectat la placa NUCLEO-U545RE-Q prin doi pini GPIO: unul pentru impulsul de declanșare (`TRIG`) și unul pentru citirea impulsului de răspuns (`ECHO`). Servo-ul MG995 rotește baza lansatorului, iar servo-ul SG90 acționează mecanismul de declanșare al catapultei. Butonul este folosit pentru comandă, iar LED-ul RGB oferă feedback vizual pentru stările sistemului.
5757

5858
Servomotoarele sunt alimentate separat, folosind sursa de laborator în timpul testelor și modulul XL4005 pentru o alimentare stabilizată la 5-6V. Masa sursei pentru servomotoare este comună cu masa plăcii Nucleo, însă tensiunea `+5V_SERVO` nu este conectată la pinul de 5V al plăcii.
5959

6060
### Schema Electrică
6161

62-
Schema electrică a fost realizată în EasyEDA și arată conexiunile dintre placa NUCLEO-U545RE-Q, senzorul VL53L0X, servomotoare, buton, LED RGB și alimentarea externă a servourilor.
62+
Schema electrică a fost realizată în EasyEDA și arată conexiunile dintre placa NUCLEO-U545RE-Q, senzorul de distanță, servomotoare, buton, LED RGB și alimentarea externă a servourilor. Varianta curentă folosește HC-SR04 pentru detecție, conectat prin `TRIG` și `ECHO`.
6363

6464
![Schema electrică](./schema-electrica.webp)
6565

66+
### Conexiuni Curente
67+
68+
| Componentă | Pin componentă | Pin Nucleo | Pin STM32 | Rol |
69+
| :--- | :--- | :--- | :--- | :--- |
70+
| HC-SR04 | VCC | 5V extern | - | Alimentare senzor |
71+
| HC-SR04 | GND | GND comun | - | Masă comună |
72+
| HC-SR04 | TRIG | D14 | PB7 | Impuls de declanșare |
73+
| HC-SR04 | ECHO | D15 | PB6 | Citire durată ecou |
74+
| Servo MG995 | Signal | D6 | PB10 / TIM2_CH3 | Rotire bază |
75+
| Servo SG90 | Signal | D5 | PB4 / TIM3_CH1 | Declanșare catapultă |
76+
| Buton | Signal | D7 | PA8 | Pornire ciclu |
77+
| LED RGB | R | D3 | PB3 | Feedback vizual |
78+
| LED RGB | G | D9 | PC6 | Feedback vizual |
79+
| LED RGB | B | D10 | PC9 | Feedback vizual |
80+
81+
Servomotoarele sunt alimentate dintr-o sursă externă de 5V. Masa sursei externe este comună cu masa plăcii Nucleo, dar alimentarea de 5V a servourilor nu este conectată la pinul de 5V al plăcii.
82+
83+
## Galerie și demonstrații
84+
85+
### Fotografii
86+
87+
![Lansator - vedere de sus](./lansator-vedere-sus.webp)
88+
89+
![Lansator - vedere laterală](./lansator-lateral.webp)
90+
91+
![Ansamblu lansator și coș](./ansamblu-lansator-cos.webp)
92+
93+
![Coș cu panou gri](./cos-panou.webp)
94+
95+
### Video-uri Demonstrative
96+
97+
* ["Servo 180° - for fun"](https://drive.google.com/file/d/13tZFudmJhNiFWu0m0lhWfMDMGThURpQ5/view?usp=drivesdk)
98+
* [Demonstrație reușită](https://drive.google.com/file/d/14ZFsCu5ksannp7YFIYeAPAVJ2f8IaCr6/view?usp=drivesdk)
99+
* [Demonstrație reușită - variantă secundară](https://drive.google.com/file/d/1i56UOJDGOkpOpUaxo5dSThQmxMWrgyWk/view?usp=sharing)
100+
* [FAIL](https://drive.google.com/file/d/1GY5G6cucbEqx1XnDZaNeN2WKPweZJbyK/view?usp=sharing)
101+
66102
## Jurnal de Proiect
67103

68104
### Săptămâna 1
@@ -71,7 +107,7 @@ Am realizat documentația inițială a proiectului și am stabilit ideea general
71107

72108
### Săptămâna 2
73109

74-
Am simplificat arhitectura sistemului. În loc să pun electronică pe coș, am decis ca senzorul să fie montat pe lansator, iar coșul să rămână o țintă pasivă. Lansatorul este deplasat pe un cerc în jurul coșului, iar sistemul trebuie să determine unghiul potrivit de orientare către panou. Pentru detecție am ales senzorul VL53L0X, care măsoară distanța până la panoul gri din spatele coșului.
110+
Am simplificat arhitectura sistemului. În loc să pun electronică pe coș, am decis ca senzorul să fie montat pe lansator, iar coșul să rămână o țintă pasivă. Lansatorul este deplasat pe un cerc în jurul coșului, iar sistemul trebuie să determine unghiul potrivit de orientare către panou. Pentru detecție am ales inițial senzorul VL53L0X, care măsoară distanța până la panoul gri din spatele coșului.
75111

76112
### Săptămâna 3
77113

@@ -85,12 +121,21 @@ Am construit coșul fizic, format din bază, suport vertical, panou gri și inel
85121

86122
Am realizat schema electrică în EasyEDA și am asamblat partea hardware principală a proiectului. Schema include placa NUCLEO-U545RE-Q, senzorul VL53L0X, servomotoarele MG995 și SG90, butonul, LED-ul RGB, condensatorul de filtrare și alimentarea externă pentru servouri. Am documentat explicit faptul că `+5V_SERVO` este alimentare externă și nu trebuie conectată la pinul de 5V sau 3V3 al plăcii Nucleo, iar masa este comună între alimentarea servourilor și placa de dezvoltare.
87123

124+
### Săptămâna 6
125+
126+
Am trecut de la senzorul VL53L0X la senzorul ultrasonic HC-SR04, deoarece în teste senzorul ToF nu oferea citiri stabile pentru panoul coșului. Am actualizat firmware-ul în Rust pentru citirea distanței prin `TRIG` și `ECHO`, am adăugat loguri RTT pentru fiecare citire și am integrat scanarea bazei cu servomotorul MG995. În această etapă am testat și mecanismul de declanșare cu SG90, alimentarea externă pentru servouri și primele aruncări ale catapultei.
127+
128+
### Săptămâna 7
129+
130+
Am asamblat varianta curentă a prototipului: catapulta printată 3D este montată pe baza rotativă, senzorul HC-SR04 este montat frontal pe lansator, iar coșul cu panou gri este folosit ca țintă. Am realizat fotografii și video-uri cu montajul, testele de servo și demonstrațiile de lansare, pe care le-am adăugat în documentație.
131+
88132
## Hardware
89133

90134
Sistemul utilizează următoarele componente hardware principale:
91135

92136
* **NUCLEO-U545RE-Q:** Placa de dezvoltare folosită pentru controlul sistemului.
93-
* **VL53L0X:** Senzor ToF folosit pentru măsurarea distanței până la panoul coșului.
137+
* **HC-SR04:** Senzor ultrasonic folosit în varianta curentă pentru măsurarea distanței până la panoul coșului.
138+
* **VL53L0X:** Senzor ToF testat inițial pentru detecția panoului.
94139
* **Servo MG995:** Servomotor pentru rotirea bazei lansatorului.
95140
* **Servo SG90:** Servomotor pentru mecanismul de declanșare.
96141
* **XL4005 Step-Down:** Modul coborâtor de tensiune pentru alimentarea servomotoarelor.
@@ -101,7 +146,7 @@ Sistemul utilizează următoarele componente hardware principale:
101146

102147
Protocoale și semnale utilizate:
103148

104-
* **I2C:** Comunicația cu senzorul VL53L0X.
149+
* **GPIO TRIG/ECHO:** Citirea senzorului ultrasonic HC-SR04.
105150
* **PWM:** Controlul servomotoarelor MG995 și SG90.
106151
* **GPIO:** Citirea butonului și controlul LED-ului RGB.
107152

@@ -110,30 +155,31 @@ Protocoale și semnale utilizate:
110155
| Dispozitiv | Utilizare | Preț Estimativ |
111156
| :--- | :--- | :--- |
112157
| NUCLEO-U545RE-Q | Unitatea centrală de control | disponibilă |
113-
| Senzor VL53L0X | Detectarea panoului coșului | ~30 RON |
158+
| Senzor HC-SR04 | Detectarea panoului coșului în varianta curentă | disponibil |
159+
| Senzor VL53L0X | Test inițial pentru detecția panoului | ~30 RON |
114160
| Servo MG995 | Orientarea orizontală a lansatorului | ~30 RON |
115161
| Servo SG90 | Mecanismul de declanșare | ~10 RON |
116162
| XL4005 Step-Down | Alimentarea stabilizată a servomotoarelor | ~14 RON |
117163
| Breadboard | Prototipare conexiuni | ~7 RON |
118164
| Modul LED RGB | Feedback vizual | ~2 RON |
119165
| Modul buton | Control utilizator | ~4 RON |
120166
| Fire, rezistențe, condensator | Conexiuni și stabilizare alimentare | disponibile |
121-
| Catapultă printată 3D | Mecanism de aruncare | în lucru |
167+
| Catapultă printată 3D | Mecanism de aruncare | realizată |
122168
| Coș și panou | Țintă pentru lansator | realizat |
123169
| **Total cumpărat estimativ** | **-** | **~97 RON** |
124170

125171
## Software
126172

127173
### Prezentare Generală
128174

129-
Implementarea software folosește Rust pe placa NUCLEO-U545RE-Q. Aplicația controlează servomotoarele prin PWM, citește senzorul VL53L0X prin I2C și gestionează stările sistemului în funcție de buton și de distanțele măsurate.
175+
Implementarea software folosește Rust pe placa NUCLEO-U545RE-Q. Aplicația controlează servomotoarele prin PWM, citește senzorul HC-SR04 prin semnale GPIO `TRIG`/`ECHO` și gestionează stările sistemului în funcție de buton și de distanțele măsurate.
130176

131177
### Design Detaliat
132178

133179
Codul este structurat pe patru module logice:
134180

135-
1. **Gestionarea stărilor:** Controlează succesiunea operațiunilor: IDLE, SCANARE, ALINIERE, READY și FOC.
136-
2. **Scanarea panoului:** Rotește baza lansatorului pe un interval de unghiuri și citește distanța măsurată de VL53L0X.
181+
1. **Gestionarea stărilor:** Controlează succesiunea operațiunilor: IDLE, SCANARE, ALINIERE, AȘTEPTARE și DECLANȘARE.
182+
2. **Scanarea panoului:** Rotește baza lansatorului pe un interval de unghiuri și citește distanța măsurată de HC-SR04.
137183
3. **Controlul motoarelor:** Generează semnalele PWM pentru MG995 și SG90.
138184
4. **Interfața utilizator:** Citește butonul și controlează LED-ul RGB pentru feedback.
139185

@@ -142,11 +188,11 @@ Codul este structurat pe patru module logice:
142188
```mermaid
143189
flowchart TD
144190
A([Start Sistem]) --> B[Așteptare comandă]
145-
B -->|Apăsare buton| C[Scanare cu VL53L0X]
191+
B -->|Apăsare buton| C[Scanare cu HC-SR04]
146192
C --> D[Determinare direcție panou]
147193
D --> E[Rotire MG995 către țintă]
148-
E --> F[Semnalizare READY]
149-
F -->|Apăsare buton| G[Declanșare SG90]
194+
E --> F[Așteptare 3 secunde]
195+
F --> G[Declanșare SG90]
150196
G --> H([Resetare stare])
151197
H -.-> B
152198
```
57.9 KB
Loading
50.5 KB
Loading

0 commit comments

Comments
 (0)