Sistema de coordenadas ultrassônicas 2.0

Sistema de coordenadas ultrassônicas 2.0


Sobre o que é este artigo: Este artigo descreve os princípios de operação do meu sistema de determinação de coordenadas e minha experiência em sua fabricação. Este artigo não é uma instrução para a fabricação de um sistema de navegação, porque não é tão simples de descrever em um artigo.



Este artigo é um desenvolvimento das idéias do meu artigo anterior:
habr.com/en/post/451408

Estrutura do sistema


O sistema de determinação de coordenadas possui o seguinte diagrama estrutural:


Fig. 1 - Diagrama esquemático do sistema de ultrassom para determinação das coordenadas.

Vamos considerar cada elemento mais de perto.

Receptor de ultrassom







Fig. 2 - Desenvolvimento do receptor de ultrassom (de cima para baixo).

Inicialmente, os receptores eram constituídos por um módulo e tinham uma área de cobertura muito pequena da sala; naquela época, eu não digitalizava o sinal, mas simplesmente recebia do sensor o comprimento que o controlador comum fornecia.

Então, para aumentar a cobertura, decidi fazer um módulo de três sensores, cujos dados foram simultaneamente digitalizados e transmitidos para um PC, onde foram calculadas a distância e as coordenadas. Depois de testar um receptor de três componentes, vi que um receptor é suficiente se você processar o sinal sozinho.

Como resultado, o receptor tornou-se novamente um componente, mas devido ao fato de eu estar processando o sinal atualmente, a área de cobertura tornou-se bastante grande. O sinal agora é processado no STM32 após a digitalização, emite apenas a distância até a saída.

Composição:
  • STM32 - usado para digitalizar o sinal ultrassônico e calcular a distância do emissor;
  • HC-SR04 - Modifiquei um pouco e agora posso receber o sinal de sua entrada, mostrado na Figura 3;
  • RS485 - para transmitir a distância do emissor ao PC.


Fig. 3 - Sinal ultrassônico digitalizado.


Fig. 4 - sinal de ultrassom na área 4700 - 5200 da figura acima.

Emissor ultrassônico







Fig. 5 - Desenvolvimento do emissor (de cima para baixo).

Como você pode ver na Figura 5, no começo eu apenas puxei o pé Trig no sensor HC-SR04, não era o melhor sistema, apenas porque não consegui determinar quantas ondas de ultrassom eu poderia criar, não consegui mudar sua potência e esse emissor era volumoso o suficiente.

Então criei uma segunda versão, que era muito mais complicada, mas eu já podia regular tudo com o STM32 e o L293D, que estavam diretamente conectados ao alto-falante de ultrassom. Agora, em vez dos 5 volts padrão, apliquei 17, e isso aumentou muito a área de trabalho. Também adicionei um módulo de rádio e uma interface RS485, que tornaram esse módulo independente.

Após uma série de testes, decidi reduzir o emissor para um tamanho decente e montá-lo com mais força, como resultado do que você vê na última foto.

Composição:
  • STM32 - recebe o comando Trig (iniciar a medição das distâncias) via canal de rádio e emite um sinal ultrassônico, também transmite comandos recebidos do módulo de rádio para o RS485 (eu o uso para controle remoto da plataforma móvel);
  • RS485 - interface de informações do dispositivo para o usuário;
  • DC-DC boost - converte a fonte de alimentação 5V em 17V para o emissor;
  • L293D - Utilizo para gerar um forte sinal ultrassônico com tensão de 17V;
  • nRF24 - canal de rádio;
  • Emissores - 6 emissores que são retirados do módulo HC-SR04.

Módulo base



Fig. 6 - O módulo básico.

Composição:
  • STM32 - envia Trig ao emissor e receptores, recebe comandos USB do PC para transmissão pelo canal de rádio ao emissor (também conhecido como módulo móvel);
  • nRF24 - transmitindo Trig para o emissor e transmitindo comandos para o emissor.

Módulo PC


O PC através do adaptador RS485 está conectado a todos os receptores ultrassônicos, nessa interface recebe todos os comprimentos deles e calcula as coordenadas do módulo móvel. Via USB, ele é conectado ao módulo base e, através dele, transfere os comandos de controle para o módulo móvel.

Localização dos módulos na área de trabalho


O mapa de uma sala com receptores de ultrassom colocados nos cantos é assim:


Fig. 7 - A ideia geral da localização dos sensores.


Fig. 8 - Vista superior em uma escala (círculos, com números dentro, sensores são indicados).

O algoritmo de trabalho do sistema de determinação de coordenadas ultrassônicas


  1. O módulo base envia um comando Trig ao emissor (over the air) e aos receptores (over the wire).
  2. O emissor começa a emitir e os receptores começam a ouvir a transmissão.
  3. Cada receptor, depois de ouvir o sinal ultrassônico, registra o tempo entre o comando Trig e o tempo de recebimento desse sinal e o converte à distância.
  4. Os receptores RS485 enviam distâncias do emissor para si mesmos em um PC.
  5. O PC calcula as coordenadas do emissor.

Operação do sistema


Executando tudo isso, obtemos as coordenadas do objeto, a precisão depende do local na sala. Nos melhores lugares, o erro não excede alguns centímetros e, no pior dos casos ... bem, você pode ver tudo na Figura 9.


Fig. 9 - Movendo o emissor pela sala.

Existem quatro conjuntos de coordenadas nesta figura, já que temos quatro receptores e, para determinar as coordenadas no espaço tridimensional, precisamos apenas de três; então, temos quatro combinações de receptores.

Como pode ser visto na figura, em geral, o sistema determina as coordenadas corretamente, mas em locais diferentes o erro é diferente. Movi o emissor paralelamente aos eixos X e Y, em algum lugar com um intervalo entre as linhas em um metro, em algum lugar no meio metro, isso pode ser visto na figura. A melhor precisão está no centro, e nas bordas tudo está ruim, porque a partir daí o sinal ultrassônico cai sobre o receptor em um ângulo grande e isso cria distorções no sinal digitalizado.

Após filtrar e calcular a média de quatro pares de coordenadas, obtemos a seguinte imagem:


Fig. 10 - Trajetória média.

Não é gelo, mas o que está lá.

Por diversão, mostrarei como tudo fica em 3D, porque também temos uma terceira coordenada, embora não seja necessária no meu projeto, porque um robô móvel se move apenas em um avião.


Fig. 11 - trajetória 3D.

Como podemos ver, todos os pontos estão aproximadamente no mesmo plano, e isso está correto, porque eu dirigi o emissor pelo chão sem retirá-lo.

E aqui está um exemplo de uma passagem malsucedida de uma plataforma móvel com um emissor, sua trajetória é claramente visível. De acordo com o plano, a plataforma deveria retornar ao ponto de partida, tendo passado por um caminho retangular, mas não deu certo, nos artigos a seguir, explicarei por quê.


Fig. 12 - A trajetória de movimento da plataforma móvel.

Problemas reais


Atualmente, tenho vários problemas urgentes e, se alguém puder sugerir algo, escreva nos comentários ou no VK:
vk.com/b__s__v

1. Qual é a melhor maneira de receber um sinal de ultrassom? Os sensores HC-SR04 que agora uso para receber e amplificar um sinal de ultrassom não são a melhor opção. Primeiro, porque eles sempre recebem um sinal com apenas uma frequência e você não pode fazer uma separação de frequências das fontes de sinal delas (o que é interessante para mim tentar); além disso, elas são muito volumosas e eu sou muito dependente delas.
2. Como remover distorções de coordenadas em diferentes cantos da sala? Na grade que desenhei no chão, pode-se ver que, às vezes, as linhas retas começam a se desviar, embora eu sempre movesse o módulo móvel sem problemas e, de alguma forma, precisasse me livrar dele.
3. Para o nRF24, o sinal desaparece. Quando os módulos estão próximos, não há problemas, mas vale a pena estendê-los alguns metros e ficar entre eles, à medida que as mensagens chegam através de um. Não preciso reenviar mensagens para lá, porque transmito sinais de relógio neste canal e eles devem sempre aparecer no mesmo segundo. Eu tenho módulos com uma antena externa, e o módulo base funciona melhor sem uma antena do que com ela. Eu não entendo nada, a potência é máxima.
4. Locais de promoção do projeto. Se alguém conhece sites internacionais como o Habr em inglês, descarte os links; caso contrário, não encontrei nada decente, mas o stackoverflow, são apenas perguntas e respostas, não exatamente para publicar esses artigos.
5. Comentários e sugestões. Se alguém quiser falar, terei prazer em receber críticas e sugestões.

Isso está longe do final do meu projeto, embora o tempo esteja chegando ao fim, mas se houver interesse, escreverei um artigo sobre como um robô móvel viaja com base nesse sistema nas coordenadas fornecidas no meu quarto.

Source: https://habr.com/ru/post/pt479530/


All Articles