Componente: Senzori de distanta Sharp

Autor: Viorel -27/07/2010-

Senzorul de distanta Sharp este o componenta care poate fi utilizata impreuna cu Arduino pentru a masura distanta pana la diverse obiecte inconjuratoare.

Exista 3 tipuri de senzori, fiecare eficace pe o anumita zona din punct de vedere al distantelor masurate : senzor de apropiere, eficient pentru masuratori intre 3 cm si 40 de cm, senzor de departare medie, eficient intre 10 cm si 80 cm, si senzor de departare, eficient intre 15 cm si 150 cm.

Conectarea la Arduino este deosebit de simpla. Dispozitivul dispune de 3 pini, doi dintre ei fiind pini de alimentare (GND si VCC), iar cel de-al treilea fiind pinul care da indicatii asupra distantei, prin potentialul prezent pe acesta.







Urmeaza cateva poze care demonstreaza conectarea la Arduino.






Sigur ca firele pot fi conectate si la modul elegant, printr-un conector inteligent, dar in lipsa de asa ceva m-am multumit sa infasor firele peste cei trei pini ai dispozitivului. Tinand dispozitivul cu lentilele spre mine, de la stanga la dreapta am VCC (firul maro), GND (firul verde), si semnal (firul albastru).


Programul Arduino


int IRpin = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  float volts = analogRead(IRpin)* ((float) 5 / 1024);
  float distance = 65*pow(volts, -1.10);
  Serial.println(distance);
  delay(100);
}


Toate cele trei variante de senzori ii gasiti in oferta Robofun, astfel :

- senzor Sharp 3 – 40 cm

senzor Sharp 10 – 80 cm

senzor Sharp 15 – 150 cm



,

Despre... Viorel

Acest autor a publicat 137 articole.

Share

FacebookTwitterEmailWindows LiveTechnoratiDeliciousDiggStumbleponMyspaceLikedin

Comentarii


sebathorus
July 30th, 2010

Avand in vedere senzorii IR sunt probabil cei mai folositi in robotii homemade, consider binevenita acesta descriere a lor impreuna cu metoda de conectare si folosire.
Desi este una dintre cele mai accesibile categorii de senzori, utilizarea lor nu este chiar lipsita de probleme. Am si eu cateva precizari legate de folosirea lor, desprinse din utilizarea senzorului GP2Y0A21YK (10 – 80 cm).

Range-ul dat in fisa tehnica este obtinut probabil in conditii de laborator, in nici un caz pe un robot in miscare. Asta din cauza ca tensiunea de iesire fluctueaza destul de mult, este plina de spike-uri care afecteaza citirile – la distanta mare nu stii daca a detectat un obiect sau a fost un spike. Pentru a scapa de acest inconvenient se pot aplica mai multe metode:
- legati carcasa de plastic la masa :) Desi pare ciudat sfatul, la senzorii Sharp cel putin, carcasa este facuta dintr-un plastic conductor (se poate verifica cu un ohmmetru)
- puneti un condensator intre pinii de alimentare ai senzorului. Functionarea senzorului se bazeaza pe emiterea unor impulsuri IR, a caror reflexie este detectata ulterior de partea de receptie din senzor. Din pacate partea de emisie introduce paraziti in partea de receptie fapt care afecteaza receptia semnalelor mai slabe – de ex. provenite de la obiecte mai indepartate.

Eliminarea partiala a erorilor se poate face si din soft in paralel cu masurile hardware:
- Stabilirea unui treshold (prag). Prin realizarea mai multor citiri a valorilor de iesire ale senzorului se determina cam care ar fi valorile spike-urilor. Cunoscand aceasta valoare se stabileste un prag peste care citirea este considerata valida astfel incat sa nu mai fie influentata de erori. De ex. :

int IRpin = 0;
int citireIR;
int prag = 20; //este doar o valoare luata la intamplare pt exemplu

void setup()
{
Serial.begin(9600);
}

void loop()
{
if((analogRead(IRpin)) > prag) citireIR = analogRead(IRpin);
else citireIR = 0;

float volts = citireIR*((float) 5 / 1024);
float distance = 65*pow(volts, -1.10);
Serial.println(distance);
delay(100);
}

- o alta varianta este citirea mai multor valori succesive, eliminarea celei mai mari si a celei mai mici valori si calcularea mediei aritmetice a valorilor ramase. Valoarea obtinuta din calcul este acceptata ca rezultat al masuratorii.

Metodele prezentate mai sus pot fi folosite independent sau impreuna in functie de aplicatie.
O valoare realista a distantei de masurare a unui astfel de senzor este cam 2/3 din valoarea maxima data de producator.


Viorel
July 30th, 2010

Thanks, Seba ! Informatiile sunt foarte utile. Interesanta aia cu legarea carcasei la masa :)


Mihaiu
August 1st, 2010

Unde gasesc si eu schema unui astfel de senzor ?


Viorel
August 2nd, 2010

Mihai, aici este link-ul catre datasheet de pe site-ul Sparkfun, sper sa te ajute – http://www.sparkfun.com/datasheets/Sensors/Infrared/GP2D120XJ00F_SS.pdf

Trimite un comentariu