This is an old revision of the document!


Sistem Autonom de Scanare si Avertizare (Radar Ultrasonic)

Introducere

Proiectul consta in realizarea unui sistem inteligent de tip radar / turela defensiva, capabil sa scaneze mediul inconjurator la 180 de grade si sa detecteze obstacole in timp real.

Sistemul utilizeaza un senzor cu ultrasunete montat pe un micro-servomotor pentru a scana zona, iar datele culese (distanta si unghiul) sunt prelucrate de microcontroler si afisate local pe un ecran OLED. Spre deosebire de proiectele clasice de tip radar care depind de un PC pentru afisarea grafica, acest sistem este 100% independent.

Elementul de interactivitate consta in implementarea unui mod de alerta: in momentul in care un obiect patrunde intr-un perimetru de siguranta predefinit (de exemplu, o distanta mai mica de 20 cm), sistemul intrerupe secventa de scanare, blocheaza senzorul pe unghiul tintei si declanseaza instantaneu o alarma acustica (buzzer) si vizuala (LED RGB).

Scopul proiectului este de a consolida cunostintele de programare hardware a microcontrolerelor, combinand mai multe concepte fundamentale: generarea de semnale PWM, comunicarea pe magistrala I2C si utilizarea timerelor interne pentru calculul distantei.

Descriere generala

Arhitectura proiectului este formata dintr-o unitate centrala de procesare si mai multe module periferice de intrare/iesire.

Schema bloc a sistemului:

  Creierul (Microcontrolerul): Placa de dezvoltare ATMEGA328P-XMINI coordoneaza intregul sistem. Trimite semnale catre actuatori, proceseaza datele de la senzor si comunica cu display-ul.
  Modulul de Miscare (Actuator): Micro-servomotorul SG90. Acesta primeste un semnal PWM de la microcontroler pentru a se pozitiona la unghiul dorit (intre 0 si 180 de grade), asigurand miscarea de "maturare" a radarului.
  Modulul de Detectie (Input): Senzorul ultrasonic HC-SR04+. Primeste un puls de "Trigger" de la microcontroler, emite ultrasunetele, si intoarce un semnal "Echo". Microcontrolerul foloseste un Timer pentru a masura durata semnalului si a calcula distanta.
  Modulul de Afisare (Output): Ecranul OLED 0.96". Comunica cu microcontrolerul prin protocolul I2C (pinii SDA si SCL) si actualizeaza in timp real interfata grafica cu distanta masurata si unghiul curent.
  Modulul de Alerta (Output): Format dintr-un Buzzer activ si un LED RGB. Sunt actionate direct prin pinii GPIO atunci cand microcontrolerul intra in starea de "ALARMA".

Hardware Design

Lista de piese:

  Placa de dezvoltare ATMEGA328P-XMINI
  Senzor Ultrasonic de Distanta HC-SR04+ (Compatibil 3.3V si 5V)
  Micro-servomotor SG90 (180 grade)
  Display OLED 0.96" I2C (controler SSD1306)
  Buzzer Activ (5V)
  LED RGB (Catod Comun) + 3x Rezistente 330 ohm
  Breadboard 400 puncte
  Fire de conexiune Dupont (Tata-Tata si Mama-Tata)

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 intreruperi externe sau Input Capture).
  OLED I2C: Pinul SDA la pinul SDA al placii, pinul SCL la pinul SCL al placii.
  Buzzer & LED: Conectate la pini GPIO standard, cu rezistentele de rigoare pentru protectia LED-ului. Alimentarea (VCC/GND) pentru toate modulele se face de la pinii de 5V si GND ai placii XMINI.

(Schema electrica detaliata va fi incarcata in etapa urmatoare)

Software Design

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

Algoritmi si mod de implementare: Logica principala a programului se va baza pe un automat de stari (State Machine) cu doua stari principale: SCANARE si ALARMA.

  Controlul Servomotorului: Se va utiliza un Timer configurat in modul Fast PWM pentru a genera un semnal cu frecventa de 50Hz. Prin modificarea factorului de umplere (Duty Cycle) folosind registrul OCR, se va seta unghiul bratului.
  Citirea Distantei: Se va genera un puls de 10us pe pinul TRIG al senzorului HC-SR04+. Se va folosi un Timer pentru a cronometra latimea pulsului primit pe pinul ECHO, transformand timpul in centimetri.
  Comunicatia I2C: Se vor configura registrii TWI (Two Wire Interface) pentru a initializa ecranul OLED si a trimite datele formatate spre afisare.
  Logica de alerta: La fiecare pas al servomotorului, se verifica distanta. Daca distanta calculata este < 20 cm, se blocheaza incrementarea/decrementarea unghiului PWM, se seteaza starea pinilor GPIO pentru Buzzer si LED pe HIGH si se afiseaza un mesaj de avertizare pe ecran.

Rezultate Obtinute

Va fi completat in etapa 3.

Concluzii

Va fi completat la finalizarea proiectului.

Download

Arhiva cu sursele codului si fisierele de proiect va fi adaugata la final.

Jurnal

  Saptamana X: Alegerea temei, achizitia componentelor si realizarea paginii wiki (Etapa 1).
  Urmeaza: Conectarea componentelor pe breadboard si testarea modulelor independente.

Bibliografie/Resurse

Resurse Hardware:

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

Resurse Software:

  Laboratorul 3 PM (Timere si PWM)
  Laboratorul 6 PM (Comunicatia I2C)
pm/prj2026/tarik_ilhan.omer/sergiu.ivan.1777971297.txt.gz · Last modified: 2026/05/05 11:54 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