Go Down

Topic: [PEDIDO AJUDA] Nào consigo fazer funcionar modulos de radio de 1000m (NRF24L01+P (Read 339 times) previous topic - next topic

WeiderAju

Galera,

   Tô precisando de ajuda pra valer, e dessa vez é pra mim, pois tenho que entregar um prototipo a um cliente de um controle remoto que alcançe 500m no minimo, de e tô meio que no desespero.

   
   Tentei aqueles controles de carro de 1000m, mas eles se mostraram afetáveis por iterferencias em algumas áreas(resumindo, testei e não serviu).
   Pensei em utilizar os Xbee,  mas o preço dos modulos de alta potência são proibitivos pra o projeto, visto que são vários.
   A solução foi partir pra os modulos de radio nRF24l01, que tem de dois tipos, os de baixa potëncia( nrf24l01+ ) que pelo datasheet dá uns 100m  e a versão nRF24l01+PA+LNA que pelo datasheet dá 1000m.

Veja nas imagens anexas a imagem dos dois tipos.



Criei uma shield pra usar esses radios no arduino UNO, ela foi feita pra uso com a biblioteca RF24.h, anexei uma imagem dela tambem, da uma olhada no fim do topico.




O DESAFIO:

  Preciso que quando um dos lados for energizado(o transmissor), ele automaticamente mande um codigo pra o segundo modulo(receptor) que estará aguardando,  se o codigo bater ele acende um led por um tempo,  só isso,  parece fácil né ?    Mas não é! 


O PROBLEMA:

  O problema é que apesar do fabricando dizer que os dois modelos (de 100m e 1000m) serem iguais tendo como única diferença um amplificador no mais potentente,  o que ocorre é que quando executo os sketchs abaixo, no radio mais simples( nrf24l01+ ),   tudo acontece bem,ele não falha nunca,   já quando executo no modelo de maior potëncia (nRF24l01+PA+LNA)   ALGUMAS VEZES ELE FUNCIONA, OUTRAS NÃO ! e depois de um tempo, para de funcionar completamente.


PEDIDO DE AJUDA:

  Peço que se alguem já mexeu com esses rádios e souber alguma coisa que possa ser feita para eles funcionarem , que me dêem uma luz, pois já tentei várias coisas, inclusive colocar um capacitor de 4.7uF entre o VCC(3.3V) e o GND e nada.   Já tentei aumentar a tensão usando LM317 para o pico de 3.6V,  funcionou um tempo e parou,  dai quando aumentei mais ainda, queimei dois dos radios.

  Tô precisando de ajuda mesmo.


os sketchs usados são esses:



// *********************************************************** TRANSMISSOR **
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

int comunica[1];

RF24 radio(9,10);

const uint64_t pipe = 0x88E8F0F0E1LL;

void setup(void)
{ Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe(pipe);
  pinMode(3, OUTPUT); 
  comunica[0]=0;
  delay(100);}


void loop(void){
 
    comunica[0]=123;
    radio.write( comunica, sizeof(comunica) );
    digitalWrite(3, HIGH);
 
}








//  **************************************** RECEPTOR**
#include <avr/wdt.h>

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

int comunica[1];

RF24 radio(9,10);
const uint64_t pipe = 0x88E8F0F0E1LL;

void setup(void){
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(1,pipe);
  radio.startListening();
  pinMode(3, OUTPUT); 
 
wdt_enable(WDTO_4S);  // habilita o watchdog
 
}

void loop(void){
  if ( radio.available() ){
    bool done = false;
      while (!done){
        done = radio.read( comunica, sizeof(comunica) );
      if(comunica[0]==123){
        digitalWrite(3, HIGH);
        delay(1000);
        digitalWrite(3, LOW);     
      }
      else{
        digitalWrite(3, LOW); }
    }
  }
 
   delay(100);
    wdt_reset();  //  reseta o watchdog,
}





   

bubulindo

Isto ja foi aqui discutido antes e pode ser o que te esta a afectar, mas a biblioteca do maniacbug (a RF24.h) tem varios bugs...

Um deles tem a ver com a potencia... outros tem a ver com a maneira como o radio envia dados (colocando logo o radio em sleep de seguida).
Eu tambem estava a nora com esses radios ate que abri a biblioteca e descobri o tal bug de colocar o radio a dormir. comentei uma linha (infelizmente nao te sei dizer ao certo qual, mas esta aqui no forum) e passou a funcionar melhor.

Depois pesquisei na net e eis que descobri uma biblioteca dum tal de Greg Copeland que fez um estudo a serio e emendou muita coisa.

http://maniacalbits.blogspot.com/2013/04/new-rf24-driver-release-fork.html

Quanto ao condensador... 4.7uF nao faz cocegas sequer. Mete algo maior tipo 100 (tambem te posso dizer o valor que fez o meu Mega comecar a funcionar, mas so para a semana que vem).

O shield podera estar correcto. Eu desenhei um ha tempos e esta a funcionar. Se quiseres daqui a cerca de uma semana posso colocar aqui o desenho.

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

WeiderAju

Bubulindo,

   Cara, muuuuuuuuuuuito obrigado por me dar alguma resposta.
   Tava maluco pois parecia que eu era o único aqui no Brasil e estar buscando entender esses radios, visto que se você falar em xbee tem uma porrada de gente mexendo, já quando se toca no assunto dos nrf24l01,  a coisa vira um tremendo silencio.

   Dei uma olhada no link que vocÊ postou ( http://maniacalbits.blogspot.com.br/2013/04/new-rf24-driver-release-fork.html )    pelo que entendi o Greg copeland não criou uma nova biblioteca,  ele fez como vocÊ, ou seja, ele pegou a rf24 do maniacbug e saiu corrigindo defeitos,    outra coisa que notei,  é que mesmo fazendo alterações, os comandos continuam absolutamente os mesmos.

   Bem,  vou dar uma testada pra ver,  e vou querer sim saber qual capacitor você usou.

   Muuuito obrigado, amigo.

FernandoGarcia

haha!

Se prestar um pouco mais de atenção no que bubulindo escreve vai perceber que ele é português.


Por exemplo, ele escreveu "afectar" se fosse brasileiro seria "afetar". :)
Conheça uma nova opção Open Source para controlar seu aquário: www.ferduino.com

See a new option Open Source to control your aquarium: www.ferduino.com

WeiderAju

Olá Fernando garcia,

   Cara, seja o bubulindo Brasileiro ou irmão portugues,  eu só tenho a agradecer a ele por apontar um caminho a serguir.

   VocÊ já mexeu com os nrf24l01  ???

bubulindo

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

FernandoGarcia

Conheça uma nova opção Open Source para controlar seu aquário: www.ferduino.com

See a new option Open Source to control your aquarium: www.ferduino.com

bubulindo

Eu perguntei acerca do nRF com a biblioteca do greg copeland.

Sem saber qual e o problema ou onde falha e impossivel de dar uma ajuda melhor. :/
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

FernandoGarcia

Conheça uma nova opção Open Source para controlar seu aquário: www.ferduino.com

See a new option Open Source to control your aquarium: www.ferduino.com

WeiderAju

Olá Bubulindo e fernandogarcia,


   O projeto começou a funcionar,  agora preciso colocar ele em teste mais exaustivos pois da ultima vez ele funcionou por um tempo,  algo como uma semana e ai os rádios pararam.

   Bem,  para funcionar tive que seguir 2 dos conselhor do bubulindo e criar mais um artificio:

 O que fiz para funcionar:

1º -  Seguindo o conselho do bubulindo eu troquei a RF24 do maniabug pela do Greg Copeland, mas só isso não resolveu,  percebi que usando os nrf24l01+ (a versão menor do radio)   ele realmente ficava mais estável,  mas quando parti para o nrf24l01+pa+lna  ele continuou funcionando de forma intermitente.

2º - Tambem seguindo o conselho do bubulindo, procurei aumentar o capacitor, pois estava usando um de 4.7uF , dai exagerei e coloquei logo um de 100uF,  dai o radio nrf24l01+pa+lna começou a funcionar, mas dava algumas intermitencias.

3º - Agora foi por minha conta,  criei uma rotina em que o radio faz uma varredura começando pela potencia menor,  e fica aguardando uma resposta,  se não vier, tenta naquela potencia por 10 vezes,  não vindo resposta ele vai aumentando a potencia e tenta mais 10 varreduras,   nisso ele vai fazendo até chegar ao nível MAX de potencia.

   Juntando as 3 soluções os radios passaram a funcionar e dar resultados melhores e mais estáveis, os quais agradeço a vocês dois.
   Porem, terei que fazer mais testes pra ver se realmente foi encontrada a solução definitiva.


   Mesmo assim desejo aqui especialmente ao Bubulindo meu muito obrigado.

npaulo

Deve-se tomar cuidado que a china está mandando um monte de nrf24l01+   fakes...

bubulindo

Ja perguntei isto anteriormente, mas ninguem respondeu... como e que se sabe se e um fake ou nao?
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

gepd

Não é tão fácil de saver quál é o fake, neste site: http://hackaday.com/2015/02/23/nordic-nrf24l01-real-vs-fake/

Falam que as diferenças são que os fake usam tecnologia de 350nm para criar seus chips, e a original 250nm (um pouco mais pequenos), por causa disso, o fake tem um consumo um pouco maior e é menos sensivel.

Lendo o blog do cara que fiz o fork da biblioteca, achei a linea que fala sobre desligar o modulo:

Na linha 498 do atual estado da biblioteca de maniacbug
Code: [Select]
powerDown();


ele desliga o modulo e nunca coloca um PowerUp() para voltar, pelo tanto na teoría só o primeiro envío ia ser o correcto.

Eu estou fazendo minhas proprias modificacões da bibliteca pra tentar optimizar com meus requisitos. Muito obrigado por esse link bubulindo.

Weideraju, você acha que conseguiu uma melhora e estabilidade com os módulos?

bubulindo

Se pesquisares por essa função vais encontrar um post meu a referir o mesmo.
Ainda assim, é bom ver que existe quem veja o que está dentro das bibliotecas. ;)
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy