Tabla de contenido:
- Suministros
- Paso 1: Sensor infrarrojo VS ultrasónico
- Paso 2: esquema
- Paso 3: Característica del sensor
- Paso 4: comunicación en serie
- Paso 5: Aplicación de Qt
- Paso 6: Código fuente de Arduino
Video: Radar infrarrojo con Arduino: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
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
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
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
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
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
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:
DIY un termómetro infrarrojo para COVID-19 con MicroPython: 8 pasos
Bricolaje de un termómetro infrarrojo para COVID-19 con MicroPython: Debido al brote de la enfermedad del coronavirus (COVID-19), el departamento de RR.HH. de la empresa necesita medir y registrar la temperatura de cada trabajador. Esta es una tarea tediosa y que requiere mucho tiempo para RR.HH. Entonces hice este proyecto: el trabajador presionó el botón, esto en
Termómetro infrarrojo láser Arduino: 7 pasos (con imágenes)
Termómetro infrarrojo láser Arduino: En este proyecto, le mostraré cómo construir un termómetro infrarrojo láser digital con una carcasa impresa en 3D personalizada
Caja de MDF para pistola de termómetro infrarrojo Arduino: 4 pasos (con imágenes)
Caja de MDF para pistola de termómetro infrarrojo Arduino: este proyecto es para hacer un termómetro infrarrojo con Arduino, el circuito se coloca en una caja de MDF que parece un termómetro infrarrojo médico en el mercado.El termómetro infrarrojo del sensor GY-906 se usa para medir la temperatura del objeto sin contacto, puede significar
Termómetro infrarrojo sin contacto basado en Arduino - Termómetro basado en infrarrojos con Arduino: 4 pasos
Termómetro infrarrojo sin contacto basado en Arduino | Termómetro basado en infrarrojos con Arduino: Hola chicos, en este instructivo, haremos un termómetro sin contacto con arduino, ya que a veces la temperatura del líquido / sólido es demasiado alta o demasiado baja y luego es difícil hacer contacto con él y leer su temperatura entonces en ese escenario
Control remoto infrarrojo I2C con Arduino: 8 pasos (con imágenes)
Control remoto infrarrojo I2C con Arduino: preámbulo Este Instructable detalla cómo crear un control remoto universal usando I2C para la interfaz. ¿Qué tan extraño dices, usando un dispositivo esclavo I2C? Sí, un dispositivo esclavo I2C. Esto se debe a que la sincronización precisa de los paquetes IR es bastante exigente y