Taula de continguts:

Radar d'infrarojos amb Arduino: 6 passos
Radar d'infrarojos amb Arduino: 6 passos

Vídeo: Radar d'infrarojos amb Arduino: 6 passos

Vídeo: Radar d'infrarojos amb Arduino: 6 passos
Vídeo: 2ª Mini-aula Medidor de Velocidade com programação Arduino - Desafio Maker 2024, Juliol
Anonim
Image
Image

En aquest petit projecte, voldria mostrar-vos com podeu crear un senzill radar a casa amb Arduino. Hi ha molts projectes similars a Internet, però tots utilitzen un sensor d’ultrasons per mesurar la distància. En aquest projecte faig servir un sensor d’infrarojos per mesurar la distància.

El meu objectiu és crear un sistema LIDAR molt senzill i econòmic amb ell i implementar un dispositiu de mapatge.

Subministraments

  • Arduino (he utilitzat un Maple Mini)
  • Sensor de distància nítida (he utilitzat Sharp GP2Y0A02YK0F)
  • Micro Servo (9 g)
  • Taula de pa, cables
  • Opcional: resistència de 4,7 k, condensador 100nF

Pas 1: sensor d'infrarojos VS d'ultrasons

Esquema
Esquema

La principal diferència entre els sensors de distància ultrasònics i els infrarojos és que el sensor ultrasònic mesura la distància en un rang més ampli. Per tant, no és capaç de localitzar amb precisió la posició d'un obstacle. Vol dir que mesura la distància de l'objecte més proper que es troba dins d'un rang d'angle de ~ + -30 °.

Per descomptat, no vol dir que el sensor Sharp sigui millor. De vegades, aquesta propietat pot ser molt útil (per exemple, utilitzada pels drons per mesurar l’alçada des del terra). L’elecció correcta depèn totalment dels requisits del vostre projecte.

Pas 2: esquema

Esquema
Esquema
Esquema
Esquema

És molt senzill establir la connexió entre parts. Seleccioneu una sortida PWM i una entrada analògica a la vostra placa Arduino i connecteu els sensors de distància Servo i Sharp a aquests pins. He utilitzat els pins següents amb aquest propòsit:

  • PA0: entrada analògica per al sensor de distància nítida
  • PA9: Sortida PWM per al Servo

De vegades, el sensor IR Sharp pot tenir una sortida sorollosa, per tant, heu de posar-hi un senzill filtre de pas baix. He utilitzat una resistència de 4,7 k i un condensador de 100 nF per reduir el soroll del pin analògic. A més, també he filtrat el valor mesurat al codi llegint-lo diverses vegades i calculant la mitjana.

Pas 3: característica del sensor

Característica del sensor
Característica del sensor
Característica del sensor
Característica del sensor

Malauradament, el sensor de distància infraroig utilitzat té característiques no lineals. Vol dir que per obtenir la distància, no n’hi ha prou amb multiplicar el valor ADC mesurat per un valor constant i afegir-hi un altre valor constant.

Tot i que el full de dades del sensor proporciona la característica, prefereixo mesurar-lo jo mateix en el projecte específic (podria dependre del voltatge utilitzat). Per a això, vaig fer parelles a partir del valor i la distància ADC mesurats per cada 10 cm. (El meu sensor va poder mesurar la distància correcta des de 12 cm).

He utilitzat aquests parells al codi per obtenir la distància correcta amb Interpolació lineal.

Al final del document, trobareu un codi Arduino senzill per mesurar el valor ADC durant la mesura característica.

Pas 4: comunicació en sèrie

Comunicació en sèrie
Comunicació en sèrie

He utilitzat la comunicació en sèrie per enviar els valors mesurats de la distància d’angle al PC. Com que he d’enviar diversos bytes i diferents tipus de missatges, he dissenyat un protocol de comunicació senzill.

Aquest procotol permet definir diferents tipus de missatges de manera genèrica. En aquest projecte he utilitzat 2 tipus de missatges:

  • Paràmetres: s'utilitza per enviar paràmetres a l'aplicació de PC, definida a Arduino com a distància màxima i nombre d'obstacles en una ronda.
  • Obstacle: s’utilitza per enviar un obstacle detectat. S'identifica per l'angle del servo i la distància mesurada. La posició xy es calcularà mitjançant l’aplicació de PC.

Pas 5: aplicació Qt

Aplicació Qt
Aplicació Qt

Per comunicar-me amb Arduino i dibuixar els punts mesurats com un radar vaig fer una aplicació de PC en Qt (C ++). Rep alguns paràmetres (definits a Arduino) i els punts de distància mesurats.

També podeu descarregar l’aplicació i el seu codi font.

Pas 6: Codi font d'Arduino

Podeu personalitzar alguns paràmetres a la part superior del codi amb macros.

Tingueu en compte que si canvieu la característica del sensor de distància Sharp, heu de modificar els valors de la matriu distAdcMap.

  • InfraRadar.c: Codi del radar. Copieu-lo i enganxeu-lo al vostre projecte Arduino.
  • InfraRadarMeasurement.c: codi per a la mesura característica. Copieu-lo i enganxeu-lo al vostre projecte Arduino. Utilitzeu la consola sèrie per comprovar els valors ADC.

Recomanat: