Índice:
- Etapa 1: Como funciona?
- Etapa 2: como configurar as três estações de sensor e os objetos
- Etapa 3: Como configurar a estação mestre
- Etapa 4: Lista de Material
Vídeo: Sistema de posicionamento baseado em ultrassom: 4 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
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?
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
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
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
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:
Controle remoto IR baseado em Arduino automático baseado em temperatura: 7 etapas
Controle remoto IR baseado em Arduino automático baseado em temperatura: Ei, e aí, pessoal! Akarsh aqui da CETech. Cansado de acordar no meio de um sono profundo só porque a temperatura ambiente está muito baixa ou muito alta por causa do seu AC mudo. Então este projeto é para você. Neste projeto, vamos fazer o nosso
Sistema de acesso baseado em ultrassom: 6 etapas (com imagens)
Sistema de acesso baseado em ultra-som: Desta vez eu apresento a vocês um sistema de acesso baseado em ultra-som que eu acho que poderia ser interessante. É baseado em ondas ultra-sônicas, então é um sistema de acesso sem contato que não precisa de nenhum outro dispositivo eletrônico, mas qualquer objeto, até mesmo suas mãos tentar t
Conselhos sobre técnica e posicionamento do microfone para o vocalista: 5 etapas
Conselhos sobre técnica e posicionamento do microfone para o vocalista: Para os inexperientes, usar um microfone pode inicialmente parecer uma operação bastante fácil. Você simplesmente fala ou canta na parte redonda na parte superior e um som perfeitamente claro e equilibrado será emitido dos alto-falantes, com grande aclamação do a
Usando o Arduino Uno para posicionamento XYZ de 6 braços robóticos DOF: 4 etapas
Usando o Arduino Uno para o posicionamento XYZ do braço robótico 6 DOF: Este projeto é sobre a implementação de um esboço Arduino curto e relativamente fácil para fornecer o posicionamento cinemático inverso XYZ. Eu tinha construído um braço robótico de 6 servo, mas quando se tratava de encontrar software para executá-lo, não havia muito lá fora, exceto para cust
Posicionamento do servo com um teclado: 3 etapas
Posicionamento Servo com Teclado: Neste instrutível estaremos criando um projeto que controlará um Micro-Servo com um teclado rodando-o com um Arduino Uno. Materiais usados: Arduino UnoBreadboard4x4 KeypadMicro-Servo