This shows you the differences between two versions of the page.
|
pm:prj2025:iotelea:albert.antonescu [2025/05/30 14:01] albert.antonescu [Software Design] |
pm:prj2025:iotelea:albert.antonescu [2025/05/30 14:05] (current) albert.antonescu [Concluzii] |
||
|---|---|---|---|
| Line 135: | Line 135: | ||
| ==== Pe Arduino (firmware) ==== | ==== Pe Arduino (firmware) ==== | ||
| - | * Implementare completă cu **scriere bare-metal** pentru: digitalRead, digitalWrite, analogRead.\ | + | * Implementare completă cu **scriere bare-metal** pentru: digitalRead, digitalWrite, analogRead.\\ |
| - | * Control **PWM** pentru cele 3 servomotoare: Pan, Tilt, Fire.\ | + | * Control **PWM** pentru cele 3 servomotoare: Pan, Tilt, Fire.\\ |
| - | * Control LED RGB + buzzer pentru feedback în timp real.\ | + | * Control LED RGB + buzzer pentru feedback în timp real.\\ |
| - | * Trimitere și recepționare comenzi prin **UART Serial**.\ | + | * Trimitere și recepționare comenzi prin **UART Serial**.\\ |
| - | * Implementare logica modurilor: `FREE`, `SCAN`, `LOCK`, `FIRE_WARN`, `MANUAL`.\ | + | * Implementare logica modurilor: `FREE`, `SCAN`, `LOCK`, `FIRE_WARN`, `MANUAL`.\\ |
| ==== Pe PC (Python + OpenCV) ==== | ==== Pe PC (Python + OpenCV) ==== | ||
| - | * Inițializare cameră și captură video în timp real.\ | + | * Inițializare cameră și captură video în timp real.\\ |
| - | * Detecție țintă: **HoughCircles** pentru identificarea unui cerc roșu (țintă).\ | + | * Detecție țintă: **HoughCircles** pentru identificarea unui cerc roșu (țintă).\\ |
| - | * Detecție punct laser: bazat pe intensitatea canalului roșu.\ | + | * Detecție punct laser: bazat pe intensitatea canalului roșu.\\ |
| - | * Aliniere dinamică a servomotoarelor în funcție de pozițiile detectate.\ | + | * Aliniere dinamică a servomotoarelor în funcție de pozițiile detectate.\\ |
| - | * Activare secvență de tragere când ținta este aliniată.\ | + | * Activare secvență de tragere când ținta este aliniată.\\ |
| - | * Control complet al modurilor și resetare din tastatură sau buton.\ | + | * Control complet al modurilor și resetare din tastatură sau buton.\\ |
| === Funcții cheie implementate === | === Funcții cheie implementate === | ||
| Line 154: | Line 154: | ||
| **Pe Arduino:** | **Pe Arduino:** | ||
| - | * `pinModeBare()`, `digitalWriteBare()`, `analogReadBare()` – acces direct la registre.\ | + | * `pinModeBare()`, `digitalWriteBare()`, `analogReadBare()` – acces direct la registre.\\ |
| - | * `beep(freq, durată)` – feedback sonor fără tone().\ | + | * `beep(freq, durată)` – feedback sonor fără tone().\\ |
| - | * `setRGB()` – stare vizuală în funcție de mod.\ | + | * `setRGB()` – stare vizuală în funcție de mod.\\ |
| - | * `loop()` – gestionează comenzi seriale + logica modului activ.\ | + | * `loop()` – gestionează comenzi seriale + logica modului activ.\\ |
| **Pe PC (Python):** | **Pe PC (Python):** | ||
| - | * `detect_target()` – caută cercuri și validează poziția.\ | + | * `detect_target()` – caută cercuri și validează poziția.\\ |
| - | * `detect_laser()` – localizează punctul roșu intens.\ | + | * `detect_laser()` – localizează punctul roșu intens.\\ |
| - | * `run_exploration_mode()` – mișcare servo stânga-dreapta și scanare automată.\ | + | * `run_exploration_mode()` – mișcare servo stânga-dreapta și scanare automată.\\ |
| - | * `send(cmd)` – trimite comenzile UART către Arduino cu întârziere minimă controlată.\ | + | * `send(cmd)` – trimite comenzile UART către Arduino cu întârziere minimă controlată.\\ |
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| Line 187: | Line 187: | ||
| Pe lângă valoarea educativă și tehnică, proiectul a fost și o provocare practică în a integra mai multe concepte: PWM, UART, ADC, protocoale de comunicație și prelucrare imagine în timp real. | Pe lângă valoarea educativă și tehnică, proiectul a fost și o provocare practică în a integra mai multe concepte: PWM, UART, ADC, protocoale de comunicație și prelucrare imagine în timp real. | ||
| - | 📌 *Notă importantă:* Aproximativ **jumătate din problemele întâlnite** în faza de prototipare s-au rezolvat rapid cu ajutorul **benzii adezive**. Fixările provizorii au devenit permanente, iar improvizația a făcut parte din procesul creativ. 😄 | + | 📌 **Notă importantă:** Aproximativ **jumătate din problemele întâlnite** în faza de prototipare s-au rezolvat rapid cu ajutorul **benzii adezive**. Fixările provizorii au devenit permanente, iar improvizația a făcut parte din procesul creativ. 😄 |
| ===== Download ===== | ===== Download ===== | ||