Índice:

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

Vídeo: Sistema de posicionamento baseado em ultrassom: 4 etapas (com imagens)

Vídeo: Sistema de posicionamento baseado em ultrassom: 4 etapas (com imagens)
Vídeo: Física da ultrassonografia – estudo teórico-prático da formação da imagem 2024, Novembro
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: