Olá pessoal, estou com um projeto em mente, teoricamente funciona, vou soltar a ideia...

Como o titulo sugere o projeto consiste em fazer um tipo de "radar" tentando calcular a distância em que um Radio transmissor está de outro, pela teoria é possível calcular a distância de um radio transmissor para um radio receptor em função da potência do sinal recebido na antena, obvio sabendo a potência do sinal da antena emissora.

Pretendo utilizar o modulo conhecido NRF24L01+pa+lna, e a biblioteca RadioHead, a questão está em descobrir como medir a potência do sinal (db,dbm ou dbi) que está chegando no transmissor.

Futuramente a evolução desse projeto é fazer uma triangulação e identificar exatamente o local físico em que um determinado radio se encontra!.

Alguma, sugestão inicial?

Grato, pessoal 

Exibições: 7345

Responder esta

Respostas a este tópico

Oi AT, boa tarde,

concordo com você qdo diz:

"pela teoria é possível calcular a distância de um radio transmissor para um radio receptor em função da

potência do sinal recebido na antena, obvio sabendo a potência do sinal da antena emissora.

Não querendo apagar a lampada que acendeu na sua mente, que acho muito bom,

vou fazer minhas observações e sugestões.

Na prática é muito complicado, pois o sinal que chega no receptor é inversamente proporcional

à distancia, e se não me falha a memoria, é o inverso do quadrado.

E qualquer variação na emissão, irá falsear a medida.

Variações de temperatura também modificarão o nível do sinal emitido.

Construção de um wattímetro:  

http://www.luizbertini.net/EQUIPAMENTOS_DE_RF.pdf

Este site tem bastante informações sobre RF.

http://www.ni.com/rf-academy/measurements/pt/

O radar funciona assim:  

Ele emite um sinal de alta frequência e marca o tempo1, dai ele espera o retorno do mesmo.

Qdo o sinal retorna, e marca novamente o tempo2.  

Subtraindo Tempo1 de Tempo2 e dividindo por 2 (Tempo de ida e volta), você tem o tempo do

sinal até o alvo.

Sabendo que um sinal de RF viaja a 300.000 Km/s, conhecendo o tempo, sabe-se a distancia.

300.000 Km/s   =  300 km/ms  =  3.000 m/ms  = 300 m/us  = 30cm/ns

A triangulação é o uso de pelo menso três emissores (q podem ser radar) em lugares distintos

formando um triangulo conhecido,  que ao saber as 3 distancias. sabe-se a altitude e coordenadas do alvo.

O sistema GPS utiliza esta técnica com vários satélites com posições geoestacionárias.

Talvez funcione assim:

No emissor você tem um relógio altamente preciso na casa dos nanosegundos,  (30cm/ns)

e no  receptor também tem um relógio assim.

Os 2 relógios são sincronizados de tempo em tempo.

Depois no momento da medida você envia um sinal com o valor do relógio do emissor.

Ao receber este valor, você salva o relógio do receptor e compara os dois valores.

Com o tempo calculado aí, você calcula a distancia dos 2 dispositivos.

Rui

É bem por ai rui,

   Como vocês sabem tenho estudado bastante os NRF24L01 e como eles são tranceptores, dá pra fazer como você citou rui.

  Eu faria assim:  No emissor fora o arduino eu colocaria 2 leds de cores diferente, verde e vermelho,  no receptor/retransmissor colocaria um led amarelo.

    Funcionaria assim:

   O emissor seria colocado em estado de espera, nem emitindo nem recebendo,  aguardando o pressionar de um botão.

   O receptor ao contrario seria colocado em estado de recepção permanente.

   Quando pressionado um botão no emissor, esse acenderia o led vermelho e emitiria um codigo destinado ao receptor, e automaticamente se inverteria se transformando ele agora em um receptor.

   O receptor original que esta aguardando a chegada do sinal, quando visse o sinal chegando, se inverteria e se transformaria em transmissor e emitiria um comando de volta.

   Quando o comando voltasse ao emissor(que agora acabou de receber)  o led verde acenderia.

    Internamente seria usado a função micro(),  quando o sinal saisse do transmissor ele pegaria o valor do micros e colocaria na variável1  quando recebesse a resposta colocaria o valor de micros() na variavel2,  dai era só fazer a matematica.

   os NRF24L01 tem essa capacidade legal de você colocar eles como transmissor ou receptor a hora que bem quiser,  mas eu não conheço a biblioteca hadiohead  eu uso a RF24 e a RF24NETWORK.

   Vocês tambem podem estudar sobre a função CRC interna do proprio modulo.

Ah!  só mais uma dica,  começa utilizando os NRF24L01+  e não a versão PA+LNA   eles são instaveis pra caramba, e as vezes vocÊ acha que o erro é seu e não é.

  Quando tiver certeza que seu projeto tá funconando com a versão basica de 100m  parta então para a versão de 1.000m.

Rui, obrigado pela resposta!

Estive analisando sua resposta, e pensei no seguinte:

Vejo que é inviável essa minha solução então, e mesmo utilizando sua ideia calculando com clock sincronizado acredito que terei problemas, pois a escala é muito alta 300.000 km/s como vc mesmo disse o RF pode sofrer interferência, então o tempo de resposta com interferência pode variar o resultado em alguns bons metros, por isso não será preciso de qualquer forma.

Veja que, mesmo que os relógios seja altamente precisos (ns) e estejam perfeitamente sincronizados, qualquer atraso na comunicação devido a interferência(ruído) ou barreiras, esses atrasos ocorrem na escala de micros segundos, então meu resultado final sera calculado erroneamente, concorda?

Weider,obrigado pela resposta tmb.

Eu já utilizo a algum tempo os módulos NRF24l01+PA+LNA, no meu projeto, e está funcionando tudo ok essa funcionalidade de distância seria um plus.

Achei curioso seu comentário sobre PA+LNA pois eu utilizava o modulo NRF24l01+ os quais foram substituídos pelos PA+LNA e para o meu caso o comportamento somente melhorou principalmente pelo ganho em distância, obvio que não 1000m como é prometido mas em relação ao (+) o PA+LNA é muito melhor.

Para os meus projetos a comunicação é feita em ambiente fechado com barreiras (paredes de alvenaria e lajes de concreto).

Pessoal, de qualquer forma valeo a evolução da ideia, pelo menos vi que não é tão simples !!

vc ja conseguiu montar uma rede mesh com nrf24l01?

Josiel.

Sim o meu projeto é com Mesh, utilizando a biblioteca que mencionei!

poderia dar uma ajuda, preciso de rede mesh pra enviar string,e nao tenho experiencia com módulo, o orientador so passou e qr pronto em poucos dias

estou utilizando essa biblioteca,

http://www.airspayce.com/mikem/arduino/RadioHead/

essa biblioteca já trata a redeMesh, não precisa se preocupar, a biblioteca incorpora no cabeçalho o tratamento da REDE. (para rf22)

No meu caso eu fiz uma alteração na biblioteca para funcionar com NRF24, tanto como Client e/ou Server

ok obrigado, as conexoes são as padroes, dos pinos 9 ao 13?

Só pra ficar claro a minha necessidade na realidade é que eu tenho alguns objetos moveis circulando numa área de 5.000m2 aproximadamente, sendo que essa área tem vários obstáculos(casa, árvores, paredes), eu quero incorporar nesses objetos móveis algum tipo de localização, não posso usar GPS tem que ser outra tecnologia barata,pois são vários objetos. Doopler tmbém não dá, pois são determinados objetos rastreados, e não todos os objetos da área!

Complicado! mas é isso.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço