Radar infravermelho com Arduino: 6 etapas
Radar infravermelho com Arduino: 6 etapas
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.