Sunteți pe pagina 1din 19

Studiul privind atasarea unui senzor de masurare

a distantelor la RPi
Utilizarea senzorului ultrasonic cu Raspberry Pi

Tanase Daniela-Elena
Grupa:354
Generalitati Raspberry PI

Raspberry PI este un calculator de dimensiunea unui card de credit


Ruleaza un sistem de operare de tip Linux, si poti face cu el
(aproape) tot ceea ce poti face si cu un calculator obisnuit
Datorita avantajelor legate de dimensiunea mica si pretul de cost
foarte scazut, s-a raspandit in foarte multe domenii si aplicatii:
roboti, imprimante 3D, servere web, statii meteo, jocuri 3d, acestea
fiind doar cateva exemple.
Placa Raspberry PI
Senzorii Ultrasonici

Senzorii ultrasonici sunt dispositive electrice care emit si


receptioneaza semnale acustice de scurta durata si de frecventa
inalta propagate in aer cu viteza sunetului
Viteza sunetului este de aproximativ 341m/s, astfel senzorul
utilizeaza aceasta informatie impreuna cu diferenta de timp intre
trimiterea si primirea impulsului de sunet pentru a determina distanta
la un obiect
Semnalul ultrasonic nu este afectat de culoarea sau masa
materialului obiectului care-l reflecta (material transparente sau folii
subtiri)
Senzorii Ultrasonici

Senzorii ultrasonici ofera o precizie ridicata in aplicatiile in care sunt


utilizati ,au o gama larga de aplicabilitate: industria alimentara,
industria constructoare de masini ,roboti industriali
Popularitatea acestor tipuri de senzori se datoreaza costurilor
ieftine, greutatii si consumului redus de energie si mai ales efortului
de calcul redus in comparatie cu alte tipuri de senzori.
Sonarele sau senzorii ultrasonici sunt folositi in general pentru
evitarea obstacolelor, mapari ale mediului sau recunoastere de
obiecte.
Senzorii Ultrasonici

Viteza sunetului este de aproximativ 341m/s, astfel senzorul


utilizeaza aceasta informatie impreuna cu diferenta de timp intre
trimiterea si primirea impulsului de sunet pentru a determina distanta
la un obiect. Aceasta se foloseste de urmatoarea ecuatie
matematica:
Distanta=(Timp x viteza sunetului) /2
Timp= variatia timpului de la emitere si receptionare a semnalului.
Se efectueaza impartirea la 2, deoarece semnalul se deplaseaza
spre obiect si inapoi.
Senzorul ultrasonic HC-SR04

Acest tip de senzor este compatibil cu Raspberry PI prezentand pini


de I/O digitali cu imunitate ridicata la zgomot.
Senzorul functioneaza prin transmiterea unui puls ultrasonic de
aproximativ 40Khz si receptioneaza pulsul ecou pentru calcularea
timpului de receptie necesar (masurat in microsecunde).
Pentru masuratori cuprinse intre 3cm 3m senzorul are o precizie
de 3mm si masoara la un unghi de 15 grade, consuma putina
energie fiind alimentat la 5V.
Senzorul este foarte usor de utilizat, avand doar 4 pini: VCC
(Power), Ground, Trigger (unda emisa ) si Echo (unda receptionata).
Senzorul ultrasonic HC-SR04
Specificatii tehnice

Tensiunea de lucru: 5V (DC)


Curentul de functionare: maxim 15 mA
Frecventa de lucru: 40Khz
Semnalul de iesire: 0-5V
Unghiul de functionare: maxim 15 grade
Distanta de functionare: 2cm-500cm
Precizia de masurare: 0.3cm
Semnalul de intrare trigger: 10us impuls TTL
Semnalul de iesire echo: semnal TTL
Dimensiuni: 45*20*15mm
Senzorul ultrasonic HC-SR04 Secventa de lucru

Pasul 1: un puls cu durata de 10us se aplica pe pinul Trigger.


Pasul 2: senzorul v-a genera un semnal ultrasonic de 40Khz (8
cicluri de ceas)
Pasul 3: Se v-a receptiona un semnal pe pinul Echo care
corespunde timpului in microsecunde necesar calatoriei semnalului
ultrasonic de la emisie pana la receptie.
Asamblarea circuitului

In primul rand trebuie sa luam in considerare faptul ca semnalul de


iesire al senzorului (ECHO) pe HC-SR04 este evaluat la 5V, iar PIN-
ul de intrare de pe RPI GPIO este evaluat la 3.3V astfel se trimite un
semnal de 5V in acel port neprotejat de intrare 3.3V care ar putea
deteriora pinii GPIO

Pentru a putea evita acest lucru vom avea nevoie sa utilizam un


divisor de tensiune ce consta in 2 rezinstente pentru a reduce
tensiunea de iesire a senzorului.
Asamblarea circuitului

Divizorul de tensiune:
- este format din 2 rezistente (R1 si R2)
conectate in serie, la o tensiune de
intrare (Vin), ce trebuie sa fie redusa la
tensiunea noastra de iesire Vout.

-in circuitul nostru, Vin va fi ECHO, care


trebuie sa fie scazut de la 5V la Vout al
nostru de 3.3V
Asamblarea circuitului

Pentru realizarea circuitului vom folosi urmatoarele ecuatii:

Cunoastem tensiunea de intrare 5V si tensiunea de iesire necesara de


3.3V , astfel putem determina ce valori ale rezistentelor sa folosim.
Asamblarea circuitului

Cunoscand toate aceste date calculele sunt urmatoarele:

In concluzie o sa folosim 1k pentru R1 si 2k pentru R2!


Asamblarea circuitului
Rassberry Pi 3 GPIO
GPIO 5V -> Pin 2
Vcc 5V -> GPIO GND Pin 6
GND -> 0V Ground
GPIO 23 -> Pin 16
TRIG -> GPIO Output
GPIO 24-> Pin 18
ECHO -> GPIO Input
Asamblarea circuitului
Programarea platformei

-> se importa libraria Python GPIO si libraria


timp, pentru a putea pune un delay intre pasi.
-> numim pinii nostri de intrare/iesire
-> afisam un mesaj pentru a atentiona userul ca
masurarea distantei este in progress
->ne asiguram ca pinul Trigger este setat LOW si
asteptam 1 secunda ca sensorul sa se stabilizeze
-> HC-SR04 are nevoie de un puls de 10uS pentru
a declansa(trigger) modulul, ce va determina
senzorul sa porneasca. Deci pentru a creea pulsul
nostru trigger, setam pinul trigger HIGH timp de
10 s apoi il setam LOW din nou.
-> Acum ca am trimis impulsul, trebuie sa
ascultam pinul nostru de intrare ce este
connectat la ECHO.
-> sensorul seteaza ECHO la HIGH atat timp cat
dureaza sa se intoarca, deci trebuie sa ne setam
codul sa masoare timpul cat ECHO ramane HIGH
Programarea platformei

-> folosim while, pentru a ne asigura ca semnalul


este inregistrat in ordinea corecta.
-> functia time.time() , inregistreaza ultimul
timestamp ( ultimul timp de cand pin-ul a fost
low)
-> deci prima etapa este sa inregistram LOW
timestamp de la ECHO ( puls_start) chiar inainte
ca semnul sa fie primit si pinul sa ajunga HIGH
-> odata primit, valoarea se schimba de la low(0)
la high(1), si semnalul ramane high pe durata
impulsului echo. Deci avem nevoie ultimul HIGH
timestamp de la ECHO (pulse_end)
-> se calculeaza diferenta dintre cele 2 inregistrari
timestamp . Speed=distance/time;
Stiinda ca viteza sunetului = 34300 avem:
34300=(distance)/ (time/2) deci,
17150=distance/time deci,
17150 x time=distance
-> rotunjim apoi cu 2 zecimale si afisam valoarea
in cm.
Materiale necesare
Raspberry Pi -198,99 lei
https://www.optimusdigital.ro/placi-cu-bluetooth/1113-raspberry-pi-3-model-
b-1gb-ram.html
Senzor ultrasonic 4,99 lei
https://www.optimusdigital.ro/senzori-senzori-ultrasonici/9-senzor-
ultrasonic-hc-sr04-.html?search_query=hc-sr04&results=8

Breadboard 5,99 lei


https://www.optimusdigital.ro/prototipare-breadboard-uri/44-breadboard-
400-points.html?search_query=breadboard&results=41

Fire pentru Breadboard -9,99 lei


https://www.optimusdigital.ro/fire-fire-mufate/12-set-de-cabluri-pentru-
breadboard.html?search_query=fire&results=89
Bibliografie

https://tutorials-raspberrypi.com
https://electrosome.com/hc-sr04-ultrasonic-
sensor-raspberry-pi/
http://www.robofun.ro/

S-ar putea să vă placă și