Differences

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

Link to this comparison view

pm:prj2025:iotelea:albert.antonescu [2025/05/30 09:06]
albert.antonescu [Bibliografie/Resurse]
pm:prj2025:iotelea:albert.antonescu [2025/05/30 14:05] (current)
albert.antonescu [Concluzii]
Line 120: Line 120:
 === Mediu de dezvoltare === === Mediu de dezvoltare ===
  
-  * **PlatformIO + Visual Studio Code** – pentru codul C++ pe Arduino UNO.\ +  * **PlatformIO + Visual Studio Code** – pentru codul C++ pe Arduino UNO.\
-  * **Python 3.10** – pentru scriptul de detecție și control al sistemului.\+  * **Python 3.10** – pentru scriptul de detecție și control al sistemului.\\
   * Testare interactivă cu **Serial Monitor** și **fereastră OpenCV**.   * Testare interactivă cu **Serial Monitor** și **fereastră OpenCV**.
  
 === Librării și surse externe === === Librării și surse externe ===
  
-  * **Servo.h** – pentru controlul servomotoarelor.\ +  * **Servo.h** – pentru controlul servomotoarelor.\
-  * **OpenCV** – pentru procesare imagine și detecție de forme.\ +  * **OpenCV** – pentru procesare imagine și detecție de forme.\
-  * **PySerial** – pentru comunicare UART între PC și Arduino.\ +  * **PySerial** – pentru comunicare UART între PC și Arduino.\
-  * **Numpy** – pentru calcule vectoriale și distanțe.\+  * **Numpy** – pentru calcule vectoriale și distanțe.\\
  
 === Structura codului === === Structura codului ===
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 178: Line 178:
  
 **Demonstrație video:**\\ **Demonstrație video:**\\
-▶️ [Vizualizează pe YouTube](https://​youtu.be/​r3NM0cNHf28)\\+▶️ [[https://​youtu.be/​r3NM0cNHf28|Vizualizează un Demo]]
  
  
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 =====
  
-<note warning>​ +**📦 Arhivă completă proiect:** 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +{{:pm:prj2025:iotelea:Auto-Turret-System.zip | descarcă Auto-Turret-System.zip}}
- +
-Fişierele se încarcă pe wiki folosind facilitatea ​**Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:​prj20??:​c?​** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +
-</​note>​ +
- +
-===== Jurnal ===== +
- +
-<note tip> +
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​+
  
 +**🔗 Repository GitHub:**
 +[[https://​github.com/​AlbertArt10/​Auto-Turret-System|github.com/​AntonescuAlbert/​AutoTurret-PM2025]]
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
pm/prj2025/iotelea/albert.antonescu.1748585167.txt.gz · Last modified: 2025/05/30 09:06 by albert.antonescu
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