This is an old revision of the document!


Sistem Autonom de Scanare și Avertizare (Radar Ultrasonic)

Introducere

Proiectul constă în realizarea unui sistem inteligent de tip radar / turelă defensivă, capabil să scaneze mediul înconjurător la 180 de grade și să detecteze obstacole în timp real.

Sistemul utilizează un senzor cu ultrasunete montat pe un micro-servomotor pentru a scana zona, iar datele culese (distanța și unghiul) sunt prelucrate de microcontroler și afișate local pe un ecran OLED. Spre deosebire de proiectele clasice de tip radar care depind de un PC pentru afișarea grafică, acest sistem este 100% independent.

Elementul de interactivitate constă în implementarea unui mod de alertă: în momentul în care un obiect pătrunde într-un perimetru de siguranță predefinit (de exemplu, o distanță mai mică de 20 cm), sistemul întrerupe secvența de scanare, blochează senzorul pe unghiul țintei și declanșează instantaneu o alarmă acustică (buzzer) și vizuală (LED RGB).

Scopul proiectului este de a consolida cunoștințele de programare hardware a microcontrolerelor, combinând mai multe concepte fundamentale: generarea de semnale PWM, comunicarea pe magistrala I2C și utilizarea timerelor interne pentru calculul distanței.

Descriere generală

Arhitectura proiectului este formată dintr-o unitate centrală de procesare și mai multe module periferice de intrare/ieșire.

Schema bloc a sistemului:

  Creierul (Microcontrolerul): Placa de dezvoltare ATMEGA328P-XMINI coordonează întregul sistem. Trimite semnale către actuatori, procesează datele de la senzor și comunică cu display-ul.
  Modulul de Mișcare (Actuator): Micro-servomotorul SG90. Acesta primește un semnal PWM de la microcontroler pentru a se poziționa la unghiul dorit (între 0 și 180 de grade), asigurând mișcarea de "măturare" a radarului.
  Modulul de Detecție (Input): Senzorul ultrasonic HC-SR04+. Primește un puls de "Trigger" de la microcontroler, emite ultrasunetele, și întoarce un semnal "Echo". Microcontrolerul folosește un Timer pentru a măsura durata semnalului și a calcula distanța.
  Modulul de Afișare (Output): Ecranul OLED 0.96". Comunică cu microcontrolerul prin protocolul I2C (pinii SDA și SCL) și actualizează în timp real interfața grafică cu distanța măsurată și unghiul curent.
  Modulul de Alertă (Output): Format dintr-un Buzzer activ și un LED RGB. Sunt acționate direct prin pinii GPIO atunci când microcontrolerul intră în starea de „ALARMĂ”.

Hardware Design

Lista de piese:

  Placă de dezvoltare ATMEGA328P-XMINI
  Senzor Ultrasonic de Distanță HC-SR04+ (Compatibil 3.3V și 5V)
  Micro-servomotor SG90 (180 grade)
  Display OLED 0.96" I2C (controler SSD1306)
  Buzzer Activ (5V)
  LED RGB (Catod Comun) + 3x Rezistențe 330 ohm
  Breadboard 400 puncte
  Fire de conexiune Dupont (Tată-Tată și Mamă-Tată)

Conexiuni hardware de principiu:

  Servomotor SG90: Pinul de semnal conectat la un pin cu capabilitate PWM al ATmega328P.
  Senzor HC-SR04+: Pinul TRIG conectat la un pin digital (Output), pinul ECHO conectat la un pin digital (Input - preferabil cu suport pentru întreruperi externe sau Input Capture).
  OLED I2C: Pinul SDA la pinul SDA al plăcii, pinul SCL la pinul SCL al plăcii.
  Buzzer & LED: Conectate la pini GPIO standard, cu rezistențele de rigoare pentru protecția LED-ului. Alimentarea (VCC/GND) pentru toate modulele se face de la pinii de 5V și GND ai plăcii XMINI.

(Schema electrică detaliată va fi încărcată în etapa următoare)

Software Design

Mediu de dezvoltare: Dezvoltarea codului (firmware-ului) se va realiza în C, folosind Microchip Studio (sau un alt mediu compatibil avr-gcc).

Algoritmi și mod de implementare: Logica principală a programului se va baza pe un automat de stări (State Machine) cu două stări principale: SCANARE și ALARMA.

  Controlul Servomotorului: Se va utiliza un Timer configurat în modul Fast PWM pentru a genera un semnal cu frecvența de 50Hz. Prin modificarea factorului de umplere (Duty Cycle) folosind registrul OCR, se va seta unghiul brațului.
  Citirea Distanței: Se va genera un puls de 10us pe pinul TRIG al senzorului HC-SR04+. Se va folosi un Timer pentru a cronometra lățimea pulsului primit pe pinul ECHO, transformând timpul în centimetri.
  Comunicația I2C: Se vor configura regiștrii TWI (Two Wire Interface) pentru a inițializa ecranul OLED și a trimite datele formatate spre afișare.
  Logica de alertă: La fiecare pas al servomotorului, se verifică distanța. Dacă distanța calculată este < 20 cm, se blochează incrementarea/decrementarea unghiului PWM, se setează starea pinilor GPIO pentru Buzzer și LED pe HIGH și se afișează un mesaj de avertizare pe ecran.

Rezultate Obţinute

Va fi completat în etapa 3.

Concluzii

Va fi completat la finalizarea proiectului.

Download

Arhiva cu sursele codului și fișierele de proiect va fi adăugată la final.

Jurnal

  Săptămâna X: Alegerea temei, achiziția componentelor și realizarea paginii wiki (Etapa 1).
  Urmează: Conectarea componentelor pe breadboard și testarea modulelor independente.

Bibliografie/Resurse

Resurse Hardware:

  Datasheet ATmega328P
  Datasheet senzor ultrasonic HC-SR04
  Datasheet controller SSD1306 (OLED)

Resurse Software:

  Laboratorul 3 PM (Timere și PWM)
  Laboratorul 6 PM (Comunicația I2C)
pm/prj2026/tarik_ilhan.omer/sergiu.ivan.1777971044.txt.gz · Last modified: 2026/05/05 11:50 by sergiu.ivan
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