Sistema de posicionamento baseado em ultrassom: 4 etapas (com imagens)
Sistema de posicionamento baseado em ultrassom: 4 etapas (com imagens)
Anonim
Sistema de posicionamento baseado em ultrassom
Sistema de posicionamento baseado em ultrassom

Todas as versões de radares ultrassônicos que encontrei para dispositivos arduino (Arduino - Radar / Detector Ultrasônico, Arduino Ultrasonic Radar Project) são radares muito legais, mas todos são "cegos". Quer dizer, o radar detecta algo, mas o que ele está detectando?

Portanto, proponho-me desenvolver um sistema capaz de detectar objetos e identificá-los. Em outras palavras, um sistema de posicionamento sem o uso de dispositivos GPS, mas com detectores ultrassônicos.

Este é o resultado que espero que gostem.

Etapa 1: Como funciona?

Como funciona?
Como funciona?

O sistema de posicionamento é formado por três estações sensores com detectores ultrassônicos e id_node 1, 2 e 3 formando um retângulo ou quadrado que varre um ângulo de 90º e onde as distâncias entre eles são conhecidas como mostrado na figura 1.

distância flutuante const entre 1 e 2 = 60,0;

distância flutuante const entre 2 e 3 = 75,0;

Esses sensores medem a distância e o ângulo de outros objetos com id_node maior que 3 que também têm um detector ultrassônico que varre um ângulo de 170 °.

Todos eles enviam as distâncias, ângulos medidos e o id_node para outra estação mestre usando comunicações sem fio para analisar, calcular a posição dos objetos usando cálculo de trigonometria e identificá-los.

Para evitar interferências, a estação mestre sincroniza todos os detectores ultrassônicos de forma que apenas um detector ultrassônico esteja medindo a cada momento

Depois disso e usando uma comunicação serial, a estação mestre envia as informações (ângulo, distância, id_object) para um esboço de processamento para plotar os resultados.

Etapa 2: como configurar as três estações de sensor e os objetos

Como configurar as três estações de sensor e os objetos
Como configurar as três estações de sensor e os objetos
Como configurar as três estações de sensor e os objetos
Como configurar as três estações de sensor e os objetos

A única função de cada estação sensora é detectar objetos e enviar a lista de distância, ângulo e nó de id medidos para a estação mestre.

Então você tem que atualizar a distância máxima de detecção (“valid_max_distance“) permitida e a mínima (“valid_min_distance“) (centímetros) para melhorar a detecção e limitar a zona de detecção:

int valid_max_distance = 80;

int distância_min_válida = 1;

O nó de id dessas estações sensoras (“this_node” no código abaixo) são 1, 2 e 3 e o nó de id da estação mestre é 0.

const uint16_t this_node = 01; // Endereço do nosso nó no formato Octal (Node01, Node02, Node03)

const uint16_t other_node = 00; // Endereço do nó mestre (Node00) em formato Octal

Cada estação de sensor faz uma varredura e um ângulo de 100º (“max_angle” no código abaixo)

# define min_angle 0

#define max_angle 100

Como acima, a única função de um objeto é detectar objetos e enviar a lista de distâncias, ângulos e id do objeto medidos para a estação mestre. O id de um objeto (“this_node” no código abaixo) deve ser maior que 3.

Cada objeto faz uma varredura e um ângulo de 170º e como acima, é possível atualizar a distância de detecção máxima e mínima.

const uint16_t this_node = 04; // Endereço do nosso nó no formato Octal (Node04, Node05, …)

const uint16_t other_node = 00; // Endereço do nó mestre (Node00) no formato Octal int valid_max_distance = 80; distância_min_válida int = 1; #define min_angle 0 #define max_angle 170

Etapa 3: Como configurar a estação mestre

Como configurar a estação mestre
Como configurar a estação mestre
Como configurar a estação mestre
Como configurar a estação mestre
Como configurar a estação mestre
Como configurar a estação mestre

A função da estação mestre é receber as transmissões das estações sensoras e dos objetos e enviar os resultados usando a porta serial para um esboço de processamento para plotá-los. Além disso, sincroniza todos os objetos e as três estações sensoras de forma que apenas uma delas esteja medindo por vez para evitar interferências.

Primeiro você tem que atualizar a distância (centímetros) entre os sensores 1 e 2 e a distância entre 2 e 3.

distância flutuante const entre 1 e 2 = 60,0;

distância do flutuador const entre 2 e 3 = 70,0;

O esboço calcula a posição dos objetos da seguinte maneira:

  • Para todas as transmissões dos objetos (id_node maior que 3) procure a mesma distância em cada transmissão dos sensores ultrassônicos (id_node 1, 2 ou 3).
  • Todos esses pontos formam uma lista de “candidatos” (distância, ângulo, id_node) para ser a posição de um objeto (“process_pointobject_with_pointssensor” no esboço).
  • Para cada "candidato" da lista anterior, a função "candidato_selected_between_sensor2and3" calcula do ponto de vista do sensor ultrassônico 2 e 3 qual deles corresponde à seguinte condição de trigonometria (veja as figuras 2 e 3)

float distancefroms2 = sin (radianos (ângulo)) * distance;

float distancefroms3 = cos (radianos (ângulo_candidato)) * distance_candidate; // Condição trigonométrica 1 abs (distânciade2 + distânciade3 - distânciaentre2e3) <= flutuante (distância_máx_diferença)

Como acima, para cada "candidato" da lista anterior, a função "candidato_selected_between_sensor1and2" calcula do ponto de vista do sensor ultrassônico 1 e 2 qual deles corresponde à seguinte relação de trigonometria (veja as figuras 2 e 3)

float distancefroms1 = sin (radianos (ângulo)) * distance; float distancefroms2 = cos (radianos (ângulo_candidato)) * distance_candidate; // Condição trigonométrica 2 abs (distânciade1 + distânciade2 - distânciaentre1e2) <= flutuante (distância_máx_diferença)

Apenas os candidatos (distância, ângulo, id_node) que correspondem às condições de trigonometria 1 e 2 são objetos identificados detectados pelas estações sensoras 1, 2 e 3

Depois disso, os resultados são enviados pela estação mestre para um esboço de processamento para plotá-los.

Etapa 4: Lista de Material

Image
Image

A lista de materiais necessários para uma estação sensora ou um objeto é a seguinte:

  • Placa nano
  • Sensor ultrasônico
  • Micro servo motor
  • Módulo sem fio NRF24L01
  • Adaptador NRF24L01

e a lista de material para a estação mestre é a seguinte:

  • Placa nano
  • Módulo sem fio NRF24L01
  • Adaptador NRF24L01

Recomendado: