Cuprins:

Radar cu infraroșu cu Arduino: 6 pași
Radar cu infraroșu cu Arduino: 6 pași

Video: Radar cu infraroșu cu Arduino: 6 pași

Video: Radar cu infraroșu cu Arduino: 6 pași
Video: Dorian este speriat de un interlop când face poze 😱🥊🤣 #timisoara #dorianpopa #cluj #bucuresti 2024, Iulie
Anonim
Image
Image

În acest mic proiect aș dori să vă arăt cum puteți crea un simplu radar acasă cu Arduino. Există multe proiecte similare pe internet, dar toate folosesc un senzor cu ultrasunete pentru a măsura distanța. În acest proiect folosesc un senzor cu infraroșu pentru măsurarea distanței.

Scopul meu este să creez un sistem LIDAR foarte simplu și ieftin cu acesta și să implementez un dispozitiv de cartografiere.

Provizii

  • Arduino (am folosit un Maple Mini)
  • Senzor de distanță ascuțită (am folosit Sharp GP2Y0A02YK0F)
  • Micro Servo (9g)
  • Pană, fire
  • Opțional: rezistor 4.7k, condensator 100nF

Pasul 1: senzor cu infraroșu cu ultrasunete

Schematic
Schematic

Principala diferență între senzorii de distanță cu ultrasunete și infraroșu este că senzorul cu ultrasunete măsoară distanța într-o gamă mai largă. Prin urmare, nu este capabil să localizeze cu precizie poziția unui obstacol. Înseamnă că măsoară distanța celui mai apropiat obiect care este situat într-un interval de unghi de ~ + -30 °.

Desigur, nu înseamnă că senzorul Sharp este mai bun. Uneori această proprietate poate fi foarte utilă (de exemplu, utilizată de drone pentru a măsura înălțimea de la sol). Alegerea corectă depinde în totalitate de cerințele proiectului dumneavoastră.

Pasul 2: Schematic

Schematic
Schematic
Schematic
Schematic

Este foarte simplu să faci conexiunea între piese. Selectați o ieșire PWM și o intrare analogică pe placa Arduino și conectați senzorii de distanță Servo și Sharp la acei pini. Am folosit următoarele pini în acest scop:

  • PA0: Intrare analogică pentru senzorul de distanță Sharp
  • PA9: ieșire PWM pentru servo

Uneori, senzorul IR Sharp poate avea o ieșire zgomotoasă, prin urmare trebuie să puneți un filtru simplu Low Pass pe el. Am folosit un rezistor de 4.7k și un condensator 100nF pentru a reduce zgomotul de pe pinul analogic. Pe lângă asta, am filtrat și valoarea măsurată în cod citind-o de mai multe ori și calculând media.

Pasul 3: Caracteristica senzorului

Caracteristica senzorului
Caracteristica senzorului
Caracteristica senzorului
Caracteristica senzorului

Din păcate, senzorul de distanță în infraroșu folosit are caracteristică neliniară. Înseamnă că pentru a obține distanța, nu este suficient să multiplicați valoarea ADC măsurată cu o valoare constantă și adăugând o altă valoare constantă.

Deși foaia tehnică a senzorului oferă caracteristica, prefer să o măsur singur în proiectul specific (ar putea depinde de tensiunea utilizată). Pentru aceasta, am făcut perechi din valoarea ADC măsurată și distanța pentru fiecare 10 cm. (Senzorul meu a putut măsura distanța corectă de la 12 cm).

Am folosit aceste perechi în cod pentru a obține distanța corectă cu Interpolare liniară.

Veți găsi un cod Arduino simplu la sfârșitul documentului, pentru a măsura valoarea ADC în timpul măsurării caracteristice.

Pasul 4: Comunicare în serie

Comunicare în serie
Comunicare în serie

Am folosit comunicarea serială pentru a trimite valorile măsurate ale unghiului-distanță la computer. Deoarece trebuie să trimit mai mulți octeți și diferite tipuri de mesaje, am proiectat un protocol de comunicare simplu.

Acest procotol permite definirea diferitelor tipuri de mesaje într-un mod generic. În acest proiect am folosit 2 tipuri de mesaje:

  • Parametri: Utilizați pentru a trimite parametri către aplicația PC, definită pe Arduino ca distanța maximă și numărul de obstacole dintr-o rundă.
  • Obstacol: folosit pentru a trimite un obstacol detectat. Este identificat prin unghiul servo și distanța măsurată. Poziția x-y va fi calculată prin aplicația PC.

Pasul 5: Aplicație Qt

Aplicație Qt
Aplicație Qt

Pentru a comunica cu Arduino și a desena punctele măsurate ca un radar, am făcut o aplicație pentru computer în Qt (C ++). Primește câțiva parametri (definiți pe Arduino) și punctele de distanță măsurate.

De asemenea, puteți descărca aplicația și codul sursă al acesteia.

Pasul 6: Codul sursă Arduino

Puteți personaliza niște paremetri în partea de sus a codului cu macrocomenzi.

Rețineți că, dacă modificați caracteristica senzorului de distanță Sharp, trebuie să modificați valorile matricei distAdcMap !

  • InfraRadar.c: Codul radarului. Copiați-l și lipiți-l în proiectul dvs. Arduino.
  • InfraRadarMeasurement.c: Cod pentru măsurarea caracteristică. Copiați-l și lipiți-l în proiectul dvs. Arduino. Utilizați Consola serială pentru a verifica valorile ADC.

Recomandat: