Índice:

Radar infravermelho com Arduino: 6 etapas
Radar infravermelho com Arduino: 6 etapas

Vídeo: Radar infravermelho com Arduino: 6 etapas

Vídeo: Radar infravermelho com Arduino: 6 etapas
Vídeo: How to make Radar | SONAR RADAR using Ultrasonic sensor Stepper Motor GLCD display AVR ATMEGA16 2024, Novembro
Anonim
Image
Image

Neste pequeno projeto, gostaria de mostrar como você pode criar um radar simples em casa com o Arduino. Existem muitos projetos semelhantes na internet, mas todos eles usam um sensor ultrassônico para medir a distância. Neste projeto utilizo um sensor infravermelho para medição de distâncias.

Meu objetivo é criar um sistema LIDAR muito simples e barato com ele e implementar um dispositivo de mapeamento.

Suprimentos

  • Arduino (usei um Maple Mini)
  • Sensor de distância Sharp (usei Sharp GP2Y0A02YK0F)
  • Micro Servo (9g)
  • Placa de ensaio, fios
  • Opcional: Resistor de 4,7k, Capacitor 100nF

Etapa 1: Sensor ultrassônico VS infravermelho

Esquemático
Esquemático

A principal diferença entre os sensores de distância ultrassônicos e infravermelhos é que o sensor ultrassônico mede a distância em uma faixa mais ampla. Portanto, não é capaz de localizar com precisão a posição de um obstáculo. Isso significa que ele mede a distância do objeto mais próximo que está localizado dentro de um intervalo de ângulo de ~ + -30 °.

Claro, isso não significa que o sensor Sharp seja melhor. Às vezes, essa propriedade pode ser muito útil (por exemplo, usada por drones para medir a altura do solo). A escolha certa depende totalmente dos requisitos do seu projeto.

Etapa 2: Esquemático

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

É muito simples fazer a conexão entre as partes. Selecione uma saída PWM e uma entrada analógica em sua placa Arduino e conecte os sensores de distância Servo e Sharp a esses pinos. Usei os seguintes pinos para este propósito:

  • PA0: entrada analógica para sensor de distância Sharp
  • PA9: Saída PWM para Servo

Às vezes, o Sharp IR Sensor pode ter uma saída ruidosa, portanto, você deve colocar um filtro passa-baixas simples nele. Usei um resistor de 4,7k e um capacitor de 100nF para reduzir o ruído no pino analógico. Além disso, também filtrei o valor medido no código, lendo-o várias vezes e calculando a média.

Etapa 3: característica do sensor

Característica do Sensor
Característica do Sensor
Característica do Sensor
Característica do Sensor

Infelizmente, o sensor de distância infravermelho usado tem característica não linear. Isso significa que, para obter a distância, não é suficiente multiplicar o valor medido do ADC por um valor constante e adicionar outro valor constante a ele.

Embora o datasheet do sensor forneça a característica, prefiro medi-la sozinho no projeto específico (pode depender da tensão utilizada). Para isso, fiz pares a partir do valor medido do ADC e da distância a cada 10 cm. (Meu sensor foi capaz de medir a distância correta de 12 cm).

Usei esses pares no código para obter a distância correta com a interpolação linear.

Você encontrará um código Arduino simples no final do documento, para medir o valor ADC durante a medição de característica.

Etapa 4: comunicação serial

Comunicação em série
Comunicação em série

Usei a comunicação serial para enviar os valores medidos de ângulo-distância para o PC. Como tenho que enviar vários bytes e diferentes tipos de mensagens, desenvolvi um protocolo de comunicação simples.

Este procotol permite definir diferentes tipos de mensagens de uma forma genérica. Neste projeto, usei 2 tipos de mensagem:

  • Parâmetros: usado para enviar parâmetros para o aplicativo de PC, definidos no Arduino como distância máxima e número de obstáculos em uma rodada.
  • Obstáculo: usado para enviar um obstáculo detectado. É identificado pelo ângulo do servo e distância medida. A posição x-y será calculada pelo aplicativo do PC.

Etapa 5: Aplicativo Qt

Aplicativo Qt
Aplicativo Qt

Para me comunicar com o Arduino e desenhar os pontos medidos como um radar, fiz um aplicativo para PC em Qt (C ++). Ele recebe alguns parâmetros (definidos no Arduino) e os pontos de distância medidos.

Você pode baixar o aplicativo e seu código-fonte também.

Etapa 6: Código-fonte do Arduino

Você pode personalizar alguns parâmetros no topo do código com macros.

Observe que se você alterar a característica do sensor de distância Sharp, terá que modificar os valores do array distAdcMap !

  • InfraRadar.c: Código de radar. Copie e cole em seu projeto Arduino.
  • InfraRadarMeasurement.c: Código para medição de característica. Copie e cole em seu projeto Arduino. Use o console serial para verificar os valores ADC.

Recomendado: