This shows you the differences between two versions of the page.
pm:prj2025:aluca:dan_andrei.tunsoiu [2025/05/06 11:07] dan_andrei.tunsoiu |
pm:prj2025:aluca:dan_andrei.tunsoiu [2025/05/25 18:39] (current) dan_andrei.tunsoiu [Software design] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | =====Radar===== | ||
=====Introducere===== | =====Introducere===== | ||
+ | Prezentare pe scurt a proiectului: | ||
+ | * Este un sistem care detecteaza obiectele intr-un arc de cerc, apoi acesta anunta ca a observat un lucru atat printr-un sistem de LED-uri cat si printr-un ecran LCD. | ||
+ | * Scopul proiectului este de a ma familiariza cu lucrul cu diferite componente, cum ar fi un senzor de distanta, un servo-motor si placa Arduino. | ||
+ | * Ideea de la care am pornit a fost data de un joc video care contine astfel de dispozitive pentru a atentiona jucatorul de posibilele pericole care il asteapta. | ||
+ | * Cred ca acesta este un proiect interesant si distractiv care poate fi modificat eventual pentru a ajuta lumea sa verifice daca au intrat intrusi in casa sau in alte situatii periculoase. | ||
+ | =====Descriere generala===== | ||
+ | Proiectul foloseste o placuta de tipul Arduino cu procesorul ATMega328P care este conectata la un servo-motor, un senzor de distanta, mai multe led-uri pe un breadboard si un LCD display. Senzorul de distanta se afla pe sermo-motor pentru a se putea misca intr-un arc de cerc, ceea ce ii da abilitatea de a detecta obiectele intr-o arie larga. | ||
+ | |||
+ | ===== Hardware design ===== | ||
+ | Componentele necesare realizarii proiectului: | ||
+ | ^ Nume Componenta ^ Link Sursa ^ | ||
+ | |Arduino UNO |[[https://www.optimusdigital.ro/ro/placi-avr/1685-uno-r3-atmega328p-atmega16u2-placa-de-dezvoltare- compatibila-cu-arduino.html?search_query=0104110000016980&results=1|External Link]] | | ||
+ | |LCD 1602 |[[https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html?search_query=0104110000026989&results=1|External Link]] | | ||
+ | |Senzor de Distanță Ultrasonic IOE-SR05 |[[https://www.optimusdigital.ro/ro/senzori-senzori-de-distanta/8152-senzor-de-distana-ultrasonic-ioe-sr05-cu-interfaa-seriala-3-55-v.html?search_query=0104110000053152&results=1|External Link]] | | ||
+ | |Micro Servomotor SG90 |[[https://www.optimusdigital.ro/ro/motoare-servomotoare/26-micro-servomotor-sg90.html?search_query=%090104110000001368&results=1|External Link]] | | ||
+ | |2xBreadboard | [[https://www.optimusdigital.ro/ro/prototipare-breadboard-uri/44-breadboard-400-points.html?search_query=+%090104110000000156&results=1|External Link]] | | ||
+ | |LED-uri |[[https://www.optimusdigital.ro/ro/kituri/11970-set-led-uri-asortate-plusivo-500-buc-led-uri-100-buc-rezistoare-i-pcb-bonus.html?search_query=%09X00138I4IV&results=1|External Link]] | | ||
+ | |Fire mama-tata si tata-tata | [[https://www.optimusdigital.ro/ro/toate-produsele/877-set-fire-mama-tata-40p-15-cm.html?search_query=0104210000007817&results=1|Mama-Tata]] + [[https://www.optimusdigital.ro/ro/fire-fire-mufate/890-set-fire-tata-tata-40p-30-cm.html?search_query=Tata-tata&results=692|Tata-Tata]] | | ||
+ | |||
+ | Schema proiectului: | ||
+ | |||
+ | {{:pm:prj2025:aluca:schema_bloc_pm.drawio.png?600|}} | ||
+ | |||
+ | Schema circuit: | ||
+ | |||
+ | {{:pm:prj2025:aluca:schema_electrica_pm.png?600|}} | ||
+ | |||
+ | Descrierea functionalitati hardware: | ||
+ | * Folosesc un LCD display cu un adaptor I2C integrat pentru a comunica cu placa Arduino UNO si a afisa datele masurate de senzorul de distanta. | ||
+ | * Pentru miscarea senzorului intr-un arc de cerc folosesc un servo-motor SG90 care este conectat printr-un pin de GPIO care poate genera/transmite mesaje de tip PWM. | ||
+ | * Senzorul de distanta este conectat la pinul RX pentru ca comunica cu Arduino UNO prin USART. | ||
+ | * Avem si 4 LED-uri conectate la pini de GPIO pentru a afisa din ce directie a fost detectat un inamic. | ||
+ | |||
+ | ===Pini folositi de componente=== | ||
+ | ==LCD:== | ||
+ | * SDA -> A4 (pinul de SDA de pe Arduino UNO) | ||
+ | * SCL -> A5 (pinul de SCL de pe Arduino UNO) | ||
+ | ==SG90:== | ||
+ | * IN -> D9 (pin de GPIO cabapil de PWM) | ||
+ | ==IOE-SR05:== | ||
+ | * EN/TRIG -> D2 | ||
+ | * TXD/ECHO -> D0 (pinul de RX) | ||
+ | ==LED-uri:== | ||
+ | Sunt conectate la pini de GPIO de la D7 la D4. | ||
+ | |||
+ | ===Poza componenta Hardware functionala (LCD): | ||
+ | |||
+ | {{:pm:prj2025:aluca:d412d23d-a089-43f9-a00f-4748971ee1d3.jpg?400|}} | ||
+ | |||
+ | ===== Software design ===== | ||
+ | === Stadiul Implementarii == | ||
+ | Proiectul este complet functional si are la baza codul [[https://github.com/Danut1445/PM-Project|Link GitHub]] scris in platforma ArduinoIDE, cu toate functionalitatile acestuia testate si validate: [[https://www.youtube.com/watch?v=Ki03OREaW8k|Link video YT]]. | ||
+ | |||
+ | === Motivatie bibloteci folosite === | ||
+ | * LiquidCrystal_I2C.h - pentru a controla LCD-ul. | ||
+ | * Wire.h - pentru optiunile de baza din Arduino IDE. | ||
+ | * Servo.h - pentru a controla servo-motorul. | ||
+ | |||
+ | === Elemente de nautate === | ||
+ | * Combinarea a senzorului de distanca cu servo-motorului cu a senzorului de distanta pentru a putea detecta obiecte intr-un arc de cerc de 180 de grade. | ||
+ | * Combinarea LCD-ului cu senzorul de distanta pentru a informa utilizatorul la ce distanta se afla obiectul detectat. | ||
+ | * Combinarea LED-urilor amplasate in formatie de semicerc pentru a informa utilizatorul in ce directie a fost detectat obiectul. | ||
+ | * Controlarea servo-motorului prin semnal PWM. | ||
+ | |||
+ | === Laboratoare utilizate === | ||
+ | * Labul 0: GPIO -> folosit pentru LED-uri. | ||
+ | * Labul 1: USART -> folosit pentru a transmite date atat de la senzorul de distanta la ATMega328 cat si de la ATMega328 la calculator. | ||
+ | * Labul 3: PWM -> utilizat pentru controlul servo-motorului. | ||
+ | * Labul 6: I2C -> utilizat pentru transmiterea datelor la LCD. | ||
+ | |||
+ | === Scheletul proiectului === | ||
+ | * Distance() -> functie care extrage datele de la senzorul de distanta prin USART si le afiseaza atat pe LCD cat returneaza si distanta calculata. | ||
+ | * setup() -> initializeaza pinii pentru LED-uri, interfata seriala (USART) si LCD-ul. | ||
+ | * loop() -> functia principala a programului, intr-un loop se modifica rotatia servo-motorului de la 0 la 180 de grade si invers, in acelasi timp se calculeaza si distanta detectata de senzor si se aprind LED-urile aferente pozitiei corecte. | ||
+ | |||
+ |