Sistemul Automat de Țintire este un Auto-Turret construit pe platforma Arduino UNO, care urmărește o țintă vizuală identificată cu ajutorul unui algoritm OpenCV rulat pe un calculator. Acesta simulează un mecanism defensiv automat, capabil să orienteze un dispozitiv pe două axe (orizontal și vertical) și să acționeze un trăgaci mecanic în momentul în care ținta este centrată.
Detecția se face cu o cameră web și recunoaștere de cercuri roșii (țintă) și punct laser (vizor), iar comenzile sunt transmise prin UART către microcontroler. Sistemul folosește 3 servomotoare: două pentru mișcare și unul pentru trăgaci. Feedback-ul de stare este oferit printr-un LED RGB și un buzzer, pentru semnalizare vizuală și sonoră în timp real. Există și un mod MANUAL, controlat cu ajutorul unui joystick analogic, pentru testare și calibrare.
Scopul acestui proiect este de a realiza un sistem embedded interactiv, care să combine:
- controlul fizic al componentelor (servo, LED, buzzer),
- comunicarea serială între calculator și microcontroler,
- procesarea imaginii în timp real pentru decizie automată.
Proiectul a fost gândit ca o aplicație funcțională, cu o componentă vizuală spectaculoasă, dar și cu valoare educativă ridicată, ideală pentru aprofundarea noțiunilor din laboratorul de Proiectarea cu Microprocesoare (PM). Auto-Turret-ul ilustrează perfect o situație practică de integrare a mai multor concepte fundamentale din electronica digitală și programare bare-metal.
Proiectul este modular, educativ și ușor de adaptat pentru alte scopuri. El oferă un cadru concret pentru exersarea unor concepte importante precum PWM, ADC, UART, control pe interuperi și manipulare bare-metal a registrelor.
Combinând partea de hardware cu un algoritm vizual extern, sistemul devine o platformă flexibilă pentru extinderi: poate fi dotat cu afișaj LCD, senzori de mișcare, module wireless sau chiar inteligență artificială. LED-ul RGB, buzzer-ul și joystick-ul adaugă o interfață intuitivă pentru utilizator, iar comenzile seriale permit integrarea ușoară cu orice aplicație de PC. Sistemul poate fi transformat ușor într-un modul autonom sau într-un robot interactiv.
Sistemul Automat de Țintire este împărțit în două componente principale:
Comunicarea între cele două se face prin interfață UART (USB ↔ Serial),
prin care calculatorul transmite comenzi text către microcontroler.
către microcontroler.
1. Cameră Web (input video)
Captează imaginea în timp real și o trimite spre procesare.
2. Procesare OpenCV (Python)
– Detectează cercuri roșii (ținte) și punctul laser (vizor)
– Compară pozițiile pentru a determina dacă ținta este aliniată
– În funcție de poziții, trimite comenzi seriale către Arduino:
PANU=…, TILTU=…, FIRE=1, MODE=… etc.
1. Control servomotoare (PWM)
– Servo Pan (D9): control stânga-dreapta
– Servo Tilt (D10): control sus-jos
– Servo Fire (D11): acționează trăgaciul
2. LED RGB + Buzzer (feedback stare)
– Indică vizual și sonor starea sistemului:
• Alb = liber (FREE)
• Verde = scanare (SCAN)
• Galben = țintă găsită (LOCK)
• Roșu = avertizare (FIRE_WARN)
• Albastru = control manual (MANUAL)
3. Joystick (mod MANUAL)
– Control manual pentru Pan și Tilt (A4, A5)
– Buton pentru tragere (D13)
4. Butoane fizice (D5, D6, D7)
– Permite schimbarea modurilor prin apăsare:
• D5 = FREE
• D6 = SCAN
• D7 = MANUAL
Microcontroler: Arduino UNO R3
Servomotoare: 3× SG90 (Pan, Tilt) + MG996R (trăgaci)
Joystick: modul PS2 (A4 – X, A5 – Y, D13 – buton)
LED RGB: cu 3 pini (conectat la D2, D3, D4)
Buzzer pasiv: conectat la D12
Buton moduri: 3× push-button pe D5, D6, D7 (cu rezistență pull-up)
Cameră Web: conectată la PC (pentru OpenCV)
Alte piese: Breadboard, fire jumper, rezistențe 10kΩ, sursă externă 5V/2A
Diagrame semnal:
Simulare și testare
• Fiecare componentă a fost testată individual înainte de integrare.
• Comenzile UART au fost validate cu Serial Monitor înainte de rularea OpenCV.
• S-au utilizat delay-uri controlate pentru sincronizarea trăgaciului și LED/buzzer.
Pe Arduino:
Pe PC (Python):
Performanță:
Demonstrație video:
▶️ Vizualizează un Demo
Proiectul Sistem Automat de Țintire a reușit să combine eficient hardware-ul de tip embedded cu procesarea vizuală de pe PC. Am integrat cu succes controlul prin UART, logica de moduri, interfață vizuală (LED RGB), feedback acustic (buzzer), control manual (joystick) și funcționalitate completă de tragere automată.
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. 😄
📦 Arhivă completă proiect: descarcă Auto-Turret-System.zip
🔗 Repository GitHub: github.com/AntonescuAlbert/AutoTurret-PM2025