Tabla de contenido:

Radar infrarrojo con Arduino: 6 pasos
Radar infrarrojo con Arduino: 6 pasos

Video: Radar infrarrojo con Arduino: 6 pasos

Video: Radar infrarrojo con Arduino: 6 pasos
Video: Como usar un Sensor Infrarrojo con Arduino 2024, Noviembre
Anonim
Image
Image

En este pequeño proyecto, me gustaría mostrarte cómo puedes crear un radar simple en casa con Arduino. Hay muchos proyectos similares en Internet, pero todos utilizan un sensor ultrasónico para medir la distancia. En este proyecto utilizo un sensor de infrarrojos para medir distancias.

Mi objetivo es crear un sistema LIDAR muy simple y económico con él e implementar un dispositivo de mapeo.

Suministros

  • Arduino (usé un Maple Mini)
  • Sensor de distancia nítido (usé Sharp GP2Y0A02YK0F)
  • Micro Servo (9g)
  • Protoboard, cables
  • Opcional: resistencia de 4,7 k, condensador de 100 nF

Paso 1: Sensor infrarrojo VS ultrasónico

Esquemático
Esquemático

La principal diferencia entre los sensores de distancia ultrasónicos e infrarrojos es que el sensor ultrasónico mide la distancia en un rango más amplio. Por lo tanto, no puede localizar con precisión la posición de un obstáculo. Significa que mide la distancia del objeto más cercano que se encuentra dentro de un rango de ángulo de ~ + -30 °.

Por supuesto, no significa que el sensor Sharp sea mejor. A veces, esta propiedad puede ser muy útil (por ejemplo, utilizada por drones para medir la altura desde el suelo). La elección correcta depende totalmente de los requisitos de su proyecto.

Paso 2: esquema

Esquemático
Esquemático
Esquemático
Esquemático

Es muy sencillo realizar la conexión entre las partes. Seleccione una salida PWM y una entrada analógica en su placa Arduino y conecte los sensores de distancia Servo y Sharp a esos pines. Usé los siguientes pines para este propósito:

  • PA0: Entrada analógica para sensor de distancia nítida
  • PA9: Salida PWM para Servo

A veces, el sensor de infrarrojos Sharp puede tener una salida ruidosa, por lo que debe colocarle un filtro de paso bajo simple. Usé una resistencia de 4.7k y un capacitor de 100nF para reducir el ruido en el pin analógico. Además de eso, también filtré el valor medido en el código leyéndolo varias veces y calculando el promedio.

Paso 3: Característica del sensor

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

Desafortunadamente, el sensor de distancia por infrarrojos utilizado tiene una característica no lineal. Significa que para obtener la distancia, no es suficiente multiplicar el valor ADC medido por un valor constante y agregarle otro valor constante.

Aunque la hoja de datos del sensor proporciona la característica, prefiero medirlo yo mismo en el proyecto específico (podría depender del voltaje utilizado). Para esto, hice pares a partir del valor ADC medido y la distancia por cada 10 cm. (Mi sensor pudo medir la distancia correcta desde 12 cm).

Usé estos pares en el código para obtener la distancia correcta con la interpolación lineal.

Encontrará un código Arduino simple al final del documento, para medir el valor ADC durante la medición de características.

Paso 4: comunicación en serie

Comunicación serial
Comunicación serial

Utilicé comunicación en serie para enviar los valores de distancia angular medidos a la PC. Como tengo que enviar varios bytes y diferentes tipos de mensajes, diseñé un protocolo de comunicación simple.

Este procotol permite definir diferentes tipos de mensajes de forma genérica. En este proyecto utilicé 2 tipos de mensajes:

  • Parámetros: se utiliza para enviar parámetros a la aplicación de PC, definidos en Arduino como la distancia máxima y el número de obstáculos en una ronda.
  • Obstáculo: se utiliza para enviar un obstáculo detectado. Se identifica por el ángulo del servo y la distancia medida. La posición x-y será calculada por la aplicación de PC.

Paso 5: Aplicación de Qt

Aplicación Qt
Aplicación Qt

Para comunicarme con Arduino y dibujar los puntos medidos como un radar hice una aplicación para PC en Qt (C ++). Recibe algunos parámetros (definidos en Arduino) y los puntos de distancia medidos.

También puede descargar la aplicación y su código fuente.

Paso 6: Código fuente de Arduino

Puede personalizar algunos parámetros en la parte superior del código con macros.

Tenga en cuenta que si cambia la característica del sensor de distancia de Sharp, debe modificar los valores de la matriz distAdcMap.

  • InfraRadar.c: Código de radar. Cópialo y pégalo en tu proyecto Arduino.
  • InfraRadarMeasurement.c: Código de medida característica. Cópialo y pégalo en tu proyecto Arduino. Utilice la consola serie para comprobar los valores de ADC.

Recomendado: