This is an old revision of the document!


Sistem Garaj

Introducere

Am ales acest proiect de implementat deoarece mi se pare ca are foarte mare aplicabilitate si in vita reala. Sistemul facut este unul complet pentru un garaj si are toate elementele necesare.

Pentru ca, de exemplu, in Bucuresti, este o problema mare cu locurile de parcare, acest sistem iti poate arata daca un loc este liber, si te poate ajuta sa parchezi.

Descriere generală

Proiectul meu este format dintr-o suita de componente care interactioneaza intre ele.

Astfel, in momentul in care un obiect (o masina) se apropie de primul senzor de proximitate, se trimite un semnal catre servomotor (bariera) care ofera accesul masinii in garaj - mai precis bariera se va deschide pentru 10 secunde si pe ecran se va afisa acest lucru.

In garaj exista un alt senzor de proximitate, care testeaza daca masina este in garaj, iar daca masina este in garaj, se afiseaza pe ecran “OCUPAT”, iar ledul de sub garaj se face rosu, in caz contrar, pe ecran va scrie “LIBER”, iar ledul va fi verde.

In proiect, toate componentele sunt legate intre ele, conform schemei de mai jos:

Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html

Hardware Design

Schema proiectului hardware

Lista de componente

  • 1 x Placuta Arduino Uno
  • 1 x Led RGB
  • fire de legatura
  • 1 x LCD Interface I2C 16×2
  • 1 x Senzor ultrasonic distanta HC-SR04
  • 1 x Senzor ultrasonic HY-SRF05
  • 1 x Micro Servo Motor SG90 Arduino
  • 2 x Breadboard
  • 1 x Rezistenta 220 ohm

Software Design

Pentru dezvoltarea partii software am folosit: Arduino IDE (1.8.19).

Biblioteci externe folosite:

  • #include <Wire.h>
  • #include <LiquidCrystal_I2C.h>
  • #include <Servo.h>

Am incercat pe cat posibil sa modularizez cat mai tare codul, astfel, acesta a fost impartit pe functii.

In prima parte a fisierului am declarat variabilele global si am inclus bibliotecile de care avem nevoie.

In partea de setup am initializat servomotorul, lcd-ul si restul pinilor de care aveam nevoie.

Ulterior, in partea de loop, apelam functiile de care avem nevoie, in ordine logica.

Functiile impartite sunt:

  1. calcul_distanta_bariera - care calculeaza daca in fata barierei exista o masina, iar daca exista deschide bariera pentru 10 secunde
  2. actiune_parcare - care testeaza daca in parcare exista o masina, iar daca exista schimba culoarea ledului si seteaza textul de pe ecran
  3. RGB_color - care seteaza culoarea ledului
  4. calculate_distance - care este o functie auxiliara pentru actiune_parcare

Codul integral poate fi regasit pe github: https://github.com/sKzRO/proiect-pm.

Rezultate Obţinute

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2022/rtilimpea/garajautomat.1654083726.txt.gz · Last modified: 2022/06/01 14:42 by andrei_leonard.ilie
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