collapse

* Posts Recentes

Desenvolver em Rust com inline em Python por blabla
[22 de Outubro de 2021, 23:47]


A oficina do mestre Dan Gelbart: mecânica e electrónica por blabla
[22 de Outubro de 2021, 23:13]


Identificador Via Verde por KammutierSpule
[19 de Outubro de 2021, 14:33]


Visualizing memory layout of Rust's data types por blabla
[15 de Outubro de 2021, 14:01]


Ligação desconhecida por jm_araujo
[14 de Outubro de 2021, 00:35]


Electrónica em palpos de aranha por SerraCabo
[13 de Outubro de 2021, 15:46]


Pistola de Dessoldar por dropes
[08 de Outubro de 2021, 14:45]


KiCad stable release 5 por KammutierSpule
[06 de Outubro de 2021, 16:00]


Assemblagem de PCBs - JLCPCB por fergas
[06 de Outubro de 2021, 10:12]


Tarifas carta postal Correos.ES por jm_araujo
[05 de Outubro de 2021, 23:16]

Autor Tópico: Dúvida sobre o sensor RCWL-0516  (Lida 357 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline luisjustin

  • Mini Robot
  • *
  • Mensagens: 161
    • Meu site
Dúvida sobre o sensor RCWL-0516
« em: 16 de Julho de 2021, 21:24 »
Olá, estou com algumas dúvidas sobre esse sensor RCWL-0516 esse sensor,



Eu pesquisei e dizia que pega distancia aproximada de 7 metros, eu preciso de no máximo de 0,6 metros a 1 metro. eu irei colocar em uma porta, no caso eu tenho 1 porta de entrada no local e uma de saída para contar a média de pessoas que entraram e saíram.

Se poderem me ajudar sobre isso pois hoje uso sensor IR e não está se mostrando eficaz mas esse pelo que pesquisei é por micro-ondas e para bem mais eficaz.


Atualmente o sensor que utilizo é o E18-d80nk que uso é esse da imagem abaixo:



Alguém já utilizou ele ? Poderia me dar feedback ?

Offline blabla

  • Mini Robot
  • *
  • Mensagens: 69
Re: Dúvida sobre o sensor RCWL-0516
« Responder #1 em: 17 de Julho de 2021, 22:39 »
Boa noite Luis Justin,

penso que uma boa forma de aprenderes como funciona este sensor de micro-ondas de efeito doppler e como podes usá-lo com um Arduino é veres o artigo seguinte com atenção e o vídeo que está no artigo.

Experiments with the RCWL-0516 – Doppler Radar Distance Sensor
https://dronebotworkshop.com/rcwl-0516-experiments/

Como vais conseguir contar pessoas com precisão com ele já é um outro problema :-D
Imagina alguns casos de exemplo, imagina que tens duas pessoas a passar na porta ou zona estreita onde queres por o sensor, como as vais conseguir distinguir com um sensor de micro-ondas de efeito doppler que o que vai detetar é se te estas a aproximar ou a afastar e vai colocar um pino a high se detetar pelo menos um desses dois tipos de movimento?

Eu se não me engano já disse num e-mail anterior que uma solução que tem mais probabilidade de funcionar é uma simples zona de estreitamento da passagem e um corte de um feixe de luz. Pensa num LED (que pode ser de infravermelhos com um pequeno tubo preto fino) e de um foto-transistor recetor. Normalmente o feixe está em funcionamento e quando vai a zero então detetas o impulso no teu microncontrolador. Fazes deboucing e depois terás de filtrar para falsos alarmes coisa como impulsos muito rápidos por exemplos dos braços a andarem para a frente e para trás. E algo assim. Terás de fazer em código alguma espécie de filtro, terás de testar, terás de ajustar. É uma coisa relativamente simples de se fazer sem grande precisão, mas com muita precisão não é muito fácil por isso é que se usam torniquetes para contar pessoas e garantir que só passa um de cada vez.

O sensor de radar doppler de microondas que indicas funciona como um sensor PIR de infravermelhos, mas também podes fazer algo idêntico com um PC com um speaker (geras um tom inaudível acima dos 18KHz e a menos dos 22KHz) e com um microfone (fazes uma FFT - transformada de Fourier rápida, subtrais uma prévia FFT sem movimento e procuras por amplitude à direita e à esquerda do teu bucket ou bin da tua frequência do ton, se tiveres amplitude nesse bin maior do que um threashold acabaste de detetar pessoas a afastarem-se ou a aproximarem-se, consoante elas vem ou vão mais depressa ou mais devagar, com um pouco de jeito e com uma FFT longa de 1 segundo (menos precisão temporal, mas mais precisão espectral) consegues inclusive calcular a sua velocidade média nesse segundo) e assim detetas o movimento por alteração da velocidade dos objetos, ou seja não deteta objetos parados.


No meu github  tenho uma implementação disso de um paper que apareceu da Microsoft à uns anos.

Computer Doppler RADAR
https://github.com/joaocarvalhoopen/computer_Doppler_RADAR

Mas o problema é sempre o mesmo como garantir que duas pessoas não andaram em simultâneo em direção ao sensor ou a afastar-se do sensor, ou uma a aproximar-se e outra a afastar-se?

Uma versão mais avançada de um contador de pessoas consegue-se fazer com uma camara e OpenCV (vem com um detetor de faces para rostos sem mascaras) ou com Machine Learning (Deep Learning com CNN’s ou mais avançado com o modelo do Yolo) e existem empresas que fazem software que faz isto, mas a complexidade sobe muito e as mascaras usadas em pandemia vieram complicar muito o criar destes detetores. Tinhas de criar um dataset e de treinar um classificador, detetar a posição da cara na camara e seguir as pessoas no que consideravas ser a zona de passagem na imagem de dentro para fora do recinto.

Por tudo isto se fosse eu, talvez usa-se a solução de um corte de um feixe de luz que é a versão mais fácil mas como é óbvio terá sempre um certo erro aleatório associado, se o afinares e filtrares diminuirás o erro, mas terá sempre um certo erro. Podes sempre passar uns dias à porta do espaço a medir com um contador de mão o numero de pessoas real e depois comparar com o numero que o teu sistema obteve e assim balizar um erro médio da tua contagem e talvez de o conseguir afinar um pouco melhor com vista a diminui-lo.

Podes inclusive fazer uma coisa engraçada que é fazer essa contagem ligada ao microcontrolador a um switch e depois gravares um log para PC por porta serie-USB do que o teu sistema contou em termos de impulsos temporais e o que tu contaste sempre no mesmo ponto e assim depois com esses dados tentar melhorar o teu filtro (os seus tempos). Por fim podes treinar um algoritmo de ML num PC e depois colocá-lo a correr no teu microcontrolador como uma função (o teu filtro inteligente ou classificador) que recebe a lista de impulsos e os seus deltas temporais e que determina se é uma contagem e de quantos, estilo classificador. Ex output: 0 pessoas, 1 pessoa, 2 pessoas, 3 pessoas, 4 pessoas, algo assim.

Cumprimentos,
João