Paper Plane Radar

Introducere

Despre ce este proiectul? Paper Plane Radar este un sistem de urmărire bazat pe distanță, care folosește senzori ultrasonici și un microcontroler. Acesta detectează zborul unui avion de hârtie și calculează atât viteza, cât și unghiul de deplasare, afișându-le pe o matrice LED simplă. Un LED de avertizare simulează comportamentul unui radar atunci când este detectată o „țintă”.

Care este scopul proiectului? Scopul proiectului este de a simula un sistem radar minimalist folosind componente cu cost redus și de a exersa măsurători și reacții în timp real într-un mediu embedded.

Ce a inspirat ideea? Inspirația a venit din fascinația pentru sistemele radar și urmărirea mișcării. Adaptând acest concept la ceva amuzant, precum un avion de hârtie, proiectul face ideile legate de radar mai ușor de înțeles și interactive, rămânând în același timp relevante și accesibile din punct de vedere tehnic.

De ce este util acest proiect? Conceptul poate fi extins și aplicat la scară mai mare, în sisteme radar reale sau alte aplicații ce implică monitorizarea și analizarea mișcării obiectelor. Astfel, proiectul poate servi atât ca o demonstrație tehnică practică, cât și ca bază pentru dezvoltări ulterioare în domeniul sistemelor de detecție și urmărire.

General Description

Block Diagram

Hardware Design

Utilizare PINI

Arduino Mega:

Pin Funcție
—————- ——————————————————————————————
D4–D7 (PD4 – PD7) – ieșiri digitale către pinii Trig ai celor 4 senzori ultrasonic HC-SR04
D8, D9, D10, D12 (PB0, PB1, PB2, PB4) – intrări digitale de la pinii Echo ai celor 4 senzori ultrasonic
D20, D21 (SDA, SCL) – magistrala I2C pentru controlul LCD-ului
D3 ieșire PWM către buzzer piezoelectric pentru semnal sonor proporțional cu viteza
5V, GND alimentare și masă pentru toate componentele

Senzori Ultrasonic HC-SR04 (x4):

Pin Conectare
—- ——————————————–
Trig Pini digitali D4 – D7 de la Arduino
Echo Pini digitali D8, D9, D10, D12 de la Arduino
Vcc Alimentare 5V de la Arduino
GND Masă comună

LCD I2C:

Pin Conectare
——————–
SDA Arduino Mega pin D20
SCL Arduino Mega pin D21
Vcc 5V
GND Masă

Buzzer Pasiv:

Pin Conectare
—— ——————–
Semnal PWM – conectat la D3
GND Masă

Bill of Materials

No. Component Description Quantity Unit Price Total Price Product Link / Datasheet
———————————- ———————————————————————– ——– ———- ———– —————————————————————————————————————————————————————————————————————————————————————————————
1 HC-SR04+ Ultrasonic Sensor Measures distance to the paper airplane 4 14.99 lei 59.96 lei [Link](https://www.optimusdigital.ro/ro/senzori-senzori-ultrasonici/2328-senzor-ultrasonic-de-distana-hc-sr04-compatibil-33-v-i-5-v.html) [Datasheet](https://www.optimusdigital.ro/ro/index.php?controller=attachment&id_attachment=1)
2 Arduino UNO Main controller for the system *(not Mega, modify dacă folosești Mega)* 1 34.99 lei 34.99 lei [Link](https://www.optimusdigital.ro/ro/compatibile-cu-arduino-uno/1678-placa-de-dezvoltare-compatibila-cu-arduino-uno-atmega328p-i-ch340.html?search_query=0104110000016997&results=1) [Datasheet](https://www.optimusdigital.ro/ro/index.php?controller=attachment&id_attachment=143)
3 USB AM-BM Cable 30 cm Power and programming for Arduino 1 3.60 lei 3.60 lei [Link](https://www.optimusdigital.ro/ro/cabluri-cabluri-usb/3146-cablu-albastru-usb-am-la-bm-30-cm-pentru-arduino-mega-i-uno.html?search_query=0104210000027792&results=1)
4 LCD 1602 with I2C Interface Displays the angle and speed of the detected plane 1 16.34 lei 16.34 lei [Link](https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/2894-lcd-cu-interfata-i2c-si-backlight-albastru.html?search_query=0104110000003584&results=1) [Datasheet](https://www.handsontec.com/dataspecs/module/I2C_1602_LCD.pdf)
5 3V Passive Buzzer Emits sound signals corresponding to speed 1 0.99 lei 0.99 lei [Link](https://www.optimusdigital.ro/ro/audio-buzzere/12247-buzzer-pasiv-de-33v-sau-3v.html?search_query=0104210000081527&results=1)
6 Breadboard Platform for prototyping 1 5.99 lei 5.99 lei [Link](https://www.ardumarket.ro/ro/product/mb102-830-puncte-fara-lipire-breadboard)
7 Male-to-Male Jumper Wires (10 pcs) Connects components together 4 1.70 lei 6.80 lei [Link](https://www.optimusdigital.ro/en/wires-with-connectors/885-wires-male-male-10p-10cm.html)

Total Cost: 128.68 lei

Electrical Diagram

``

Software Design

Mediu de dezvoltare

  • Platformă: Arduino UNO ATmega328p
  • IDE: PlatformIO cu Visual Studio Code
  • Limbaj: AVR, Arduino

Biblioteci externe utilizate

  • LiquidCrystal_I2C.h – pentru afișajul pe ecranul LCD prin interfață I2C
  • Wire.h – necesară pentru comunicarea I2C
  • stdlib.h, util/delay.h – pentru conversii, manipulare de date și întârziere precisă

Laboratoare folosite

  • Laboratorul 0 – GPIO
    • Configurarea pinilor pentru senzori (trig și echo) și buzzer-ul
  • Laboratorul 1 – UART
    • Afișarea informațiilor de debug prin consola serială
  • Laboratorul 2 – Întreruperi externe
    • Folosirea vectorului de întrerupere PCINT0_vect pentru detectarea precisă a semnalelor echo
  • Laboratorul 3 – Timere / PWM
    • Timer1 – configurat în modul CTC pentru generarea trigger-ului periodic către senzori
    • Timer2 – folosit ca cronometru hardware pentru măsurarea timpului dintre două detecții
    • PWM – generat pentru buzzer în funcție de viteza detectată
  • Laboratorul 6 – I2C
    • Folosit pentru afișajul pe ecranul LCD I2C

Funcționalitate generală

  1. Scanare ciclică a senzorilor ultrasonici: fiecare senzor este activat pe rând cu semnal trigger generat de Timer1
  2. Măsurare distanță: comparație între distanțele curente și anterioare pentru detecția unei scăderi bruște
  3. Calcul viteză: dacă două perechi de senzori detectează scăderi succesive, se calculează timpul și viteza
  4. Afișare pe LCD: viteza este afișată pe ecran cu două zecimale
  5. Semnalizare buzzer: ton generat proporțional cu viteza (frecvență mai mare pentru viteză mai mare)

Pseudocod general

setup():
  - Configurează pinii pentru trigger (OUTPUT) și echo (INPUT)
  - Inițializează LCD-ul I2C și UART-ul
  - Setează întreruperile pentru echo (PCINT)
  - Configurează Timer1 pentru trigger periodic
  - Configurează Timer2 pentru măsurarea timpului
 
loop():
  - Pentru fiecare pereche de senzori:
      dacă ambele au citiri noi:
          - Calculează distanțele
          - Verifică dacă a avut loc o scădere bruscă
          - Dacă ambele perechi detectează:
              - Calculează timpul dintre evenimente
              - Calculează viteza
              - Afișează viteza pe LCD
              - Generează ton pe buzzer
 
ISR(TIMER1_COMPA):
  - Trimite un impuls trigger către următorul senzor din ciclu
 
ISR(TIMER2_OVF):
  - Incrementează contorul de timp (folosit pentru calculul vitezei)
 
ISR(PCINT0_vect):
  - Detectează fronturile pe pinul de echo (rising/falling)
  - Calculează durata impulsului ultrasonic pentru a deduce distanța

Rezultate Obținute

În urma realizării proiectului, am dezvoltat un sistem capabil să detecteze și să măsoare viteza unui obiect în mișcare (ex: avion de hârtie), folosind senzori ultrasonic și timere hardware. Sistemul poate:

  • Măsura simultan distanțele cu 4 senzori ultrasonic, folosind întreruperi externe;
  • Genera semnalele TRIG pentru toți senzorii în paralel, prin Timer1;
  • Măsura timpul dintre două scăderi bruște de distanță cu Timer2;
  • Detecta evenimente pe oricare senzor din fiecare pereche;
  • Calcula și afișa viteza obiectului pe un ecran LCD I2C;
  • Emite un semnal acustic (buzzer) proporțional cu viteza;
  • Reseta automat măsurătoarea dacă nu apare o a doua detecție în timp util.

Sistemul a funcționat conform așteptărilor, fiind fiabil și suficient de rapid pentru aplicația propusă.

Concluzii

Proiectul a demonstrat integrarea eficientă a mai multor tehnologii hardware, precum întreruperi, timere, senzori ultrasonic și afișaj I2C. Am consolidat cunoștințe despre sincronizarea precisă a evenimentelor și controlul paralel al mai multor componente. A fost o experiență practică utilă în dezvoltarea și testarea sistemelor automate simple, cu aplicabilitate reală.

pm/prj2025/eradu/mihai.strejaru.txt · Last modified: 2025/05/30 04:45 by mihai.strejaru
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