Radar
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:
Schema proiectului:
Schema circuit:
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:
SG90:
IOE-SR05:
LED-uri:
Sunt conectate la pini de GPIO de la D7 la D4.
===Poza componenta Hardware functionala (LCD):
Software design
Stadiul Implementarii
Proiectul este complet functional si are la baza codul Link GitHub scris in platforma ArduinoIDE, cu toate functionalitatile acestuia testate si validate: 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.