Bariera Auto - Zecheru Andreea

Introducere

  • Proiectul implementeaza o bariera auto pe care o vom putea controla prin intermediul modulului Bluetooth, de la o distanta maxima de 10m.
  • Scopul acestuia este de a oferi o modalitate usoara si sigura de a controla accesul vehiculelor la o anumita locatie. Ideea a pornit de la dorinta de a crea o solutie de acces simpla si sigura.
  • Consider ca acest proiect este util atat pentru proprietarii de cladiri, parcari si alte locatii care doresc sa ofere o solutie de acces automatizata, cat si pentru persoanele care doresc sa invete cum sa foloseasca Arduino si sa construiasca proiecte utile si practice.

Descriere generală

  • Bariera se va putea controla printr-un dispozitiv mobil cu ajutorul unui modul Bluetooth care transmite informatiile serial. Pentru a converti tensiunea intre Arduino si modulul bluetooth am folosit un translator de nivel.
  • Distanta la care se afla masina se va determina cu ajutorul unui senzor ultrasonic care se interfateaza prin GPIO.
  • Odata ajunsa masina la o distanta minima, bariera se va deschide cu ajutorul unui servomotor. Ledul verde se va aprinde cand bariera este deschisa, iar cel rosu cand este inchisa.
  • Am adaugat si un buton care va putea deschide bariera manual in cazul in care ti-ai uitat telefonul la serviciu.
  • Schema bloc a proiectului:

Hardware Design

Lista componenete folosite :

  • Arduino UNO
  • Servomotor SG90
  • Modul Bluetooth HC-05
  • Modul senzor Ultrasonic - HC-SR04
  • Modul Convertor nivel logic 3.3V 5V TTL
  • 2 x leduri
  • 1 x buton
  • breadboard
  • fire
  • rezistente

  • Schema hardware este facuta in tinkercad. Tin sa precizez ca in locul modulului bluetooth am folosit un modul Wi-fi, deoarece nu l-am gasit pe cel care-mi trebuia. Insa, cele doua au aproape aceleasi porturi.
  • A doua mentiune ar fi ca am folosit un divizor de tensiune intre modul si arduino, insa in schema fizica si in proiect voi folosi un convertor de nivel logic. Motivul este acelasi: nu am gasit piesa in tinkercad.

Software Design

  • Mediul de dezvoltare folosit: Arduino IDE.
  • Biblioteci folosite:
    • SoftwareSerial.h - pentru a permite comunicarea seriala pe pinii digitali Arduino (folosit pentru comunicarea Blueooth);
    • Servo.h - pentru a permite controlarea servomotorului de catre Arduino;
  • Pentru initializare s-au efectual urmatoarele operatii:
    • Comunicare seriala pentru Arduino si pentru Bluetooth sunt setate la o rata de transmisie de 9600.
    • Setarea pinilor pentru modului bluetooth (Rx si Tx), servomotor, senzorul ultrasonic, leduri si buton.
  • In implementare avem urmatorii pasi:
    • Masurarea distantei : Se calculeaza distanta pana la un obiect cu ajutorul unui senzor ultrasonic. Dupa ce se declanseaza senzorul este masurata durata impulsului ecou, iar distanta este calculata folosind viteza sunetului.
    • Comunicarea seriala: Se verifica date primite de la monitorul serial si modulul Bluetooth. Daca exista date de la monitorul serial, acestea sunt citite si transmise la modulul Bluetooth si viceversa. Se verifica daca input-ul primit de la bluetooth este “open”, iar daca acesta este se seteaza flag-ul barrierOpenRequested la true.
    • Starea butonului : Verificam daca starea butonului a fost schimbata. Daca s-a schimbat de la HIGH la LOW, indica faptul ca butonul a fost apasat si setam flag-ul barrierOpenRequested la true.
    • Controlul barierei: Verificam daca flag-ul barrierOpenRequested este setat. Daca este setat, inseamna ca este ceruta deschiderea barierei. Bariera se deschide daca masina este la o distanta mai mica de 15 cm si timeout-ul este mai mic de 3 secunde (au trecut mai putin de 3 secunde de cand masina a ajuns la distanta < 15 cm), iar in caz contrar bariera se inchide (adica timeout-ul a expirat). La deschiderea barierei se aprinde ledul verde si se stinge cel rosu, iar la inchidere se aprinde cel rosu si cel verde se stinge.
  • Descrierea functiilor:
    • setup() → partea de initializare;
    • loop() → calculam distanta pana la obiect, verificam comunicarea seriala, starea butonului si controlam bariera.
    • openBarrier() → functie care roteste gradual servomotorul de la 0 la 90 de grade, pentru a deschide bariera;
    • closeBarrier() → functie care roteste gradual servomotorul de la 90 la 0 grade, pentru a inchide bariera;

Rezultate Obţinute

Concluzii

  • TO DO

Download

Jurnal

  • 07.05.2023 : realizare documentatie initiala
  • 18.05.2023 : realizare documentatie hardware
  • 24.05.2023 : finalizare parte hardware
  • 26.05.2023 : finalizare parte software

Bibliografie/Resurse

pm/prj2023/fstancu/andreea.zecheru.txt · Last modified: 2023/05/29 20:22 by andreea.zecheru
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