Pages: 1 ... 24 25 [26] 27 28 ... 30   Go Down
Author Topic: Automação residencial em módulos  (Read 50539 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Todos os componentes principais chegaram (fotos em anexo)! Faltam apenas alguns soquetes, conectores, pinos, resistores e capacitores. Além de alguns ATMega328. Além da paciência de montar, soldar e testar tudo, hehehe.

Muito bom! Esta semanam chegam alguns componentes por aqui também... é triste a espera das encomendas da china, né? Mas é feliz ver o quanto economizamos =)

Eu fiquei enrolando para mandar fazer umas PCBs, como coloquei todas as minhas dentro das caixas de interruptor tive de montar dois 328 na veroboard (isso sim exige paciência rs).

Comparei o link que você passou da Lib alternativa para o nRF, mas ainda tenho alguns problemas (e mais umas dead zones/zonas de interferência vindo da casa do vizinho rs), mas ainda não cheguei onde quero... verifique diversos loops dentro das libs radio e network, ia começar a mexer neles quando resolvi dar uma pausa e vadiar um pouco pela net, fui no insidegadgets e encontrei uns tutoriais bem limpos smiley-lol. Vamos ver se neste final de semana ou no próximo consigo terminar os estudos e testes.

Paciência por ai! rs
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Estou achando que o meu "Mega" está ruim... não estou conseguindo fazer o nRF24L01+ funcionar, pensei que poderia ser o shield que eu fiz, mas mesmo sem o shield e mais nada conectado, o resultado do pingpair.pde é o mesmo:

Code:
RF24/examples/pingpair/
ROLE: Pong back
STATUS = 0x00 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=0 TX_FULL=0
RX_ADDR_P0-1

Segue o resultado de um slave também com o nRF24L01+ desconectado:

Code:
RF24/examples/pingpair/
ROLE: Pong back
STATUS = 0xff RX_DR=1 TX_DS=1 MAX_RT=1 RX_P_NO=7 TX_FULL=1
RX_ADDR_P0-1 = 0xffffffffff 0xffffffffff
RX_ADDR_P2-5 = 0xff 0xff 0xff 0xff
TX_ADDR = 0xffffffffff
RX_PW_P0-6 = 0xff 0xff 0xff 0xff 0xff 0xff
EN_AA = 0xff
EN_RXADDR = 0xff
RF_CH = 0xff
RF_SETUP = 0xff
CONFIG = 0xff
DYNPD/FEATURE = 0xff 0xff
Data Rate = 1MBPS
Model = nRF24L01
CRC Length = 16 bits
PA Power = PA_MAX

A boa notícia é que aparentemente as placas slaves estão OK. Segue resultado com o nRF24L01+ conectado:

Code:
RF24/examples/pingpair/
ROLE: Pong back
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xf0f0f0f0d2 0xf0f0f0f0e1
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xf0f0f0f0d2
RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x7f
DYNPD/FEATURE = 0x3f 0x04
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX

Ainda não consegui fazer dois slaves se comunicarem, mas acho (espero) que é questão de tempo. Seguem os testes!
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se você estiver a usar o pino 3.3v do mega, use um capacitor de 100 para ajudar. Eu resolvi adicionar num "shield" o LM1117, alimentando-o com 7.6v (antes dos reguladores do arduino).

Amanhã farei testes sem usar as livrarias (sem loops travando os loops do arduino e atrapalhando os nRF) para ver no que dá ^^
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Então, mesmo sem nada conectado ele não aparece nada, fica do jeito que postei acima. É como se travasse, algo assim...
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

LegendBR,

Mal o meu comentário, é certo que você já tinha testado o que comentei...

Amanhã faço uns testes com o meu mega (eles não estão comigo agora)... Você tinha algo mais conectado no mega, ou apenas a placa e o sketch?
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Consegui fazer funcionar, o problema pelo jeito está no printf no Mega, de resto aparentemente ele está ok.

O problema agora está nos slaves. Já consegui fazer eles se comunicarem, mas por algum motivo, o slave só transmite se eu colocar o dedo na antena. Se eu tirar o dedo, ele para de funcionar. Testei com um nRF24L01+ que tem uma antena conectada, e ele também funcionou. No Mega, não tem esse problema.

Amanhã continuo os testes, depois posto as novidades.
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Estranho, no meu mega o exemplo pingpair funcionou... usei a ide 1.0.5 do arduino... como o erro ocorria na segunda linha do método RF24::printDetails(void) olhei os métodos print_address_register e print_byte_register, mas como aqui funcionou fiquei sem saber...

kkkk, esse negócio de usar o dedo como antena me lembrou o bombril na antena da TV

Esse que tem a antena é o PA+LNA? Encomendei dois, um para usar na central, já que a promessa de transmissão/recepção é de um quilometro, vamos ver...

Hoje não consegui tempo para mais testes, se eu tiver sorte amanhã tocamos mais informações ^^

Sucesso nos teus testes! smiley
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Esse com antena é o PA+LNA mesmo. Pelos meus testes, o alcance não mudou nada  significativamente, talvez se for um par até funcione melhor, mas...

Estou pensando em soldar um fio para servir de antena, o que acham? Qual o comprimento do fio que devo usar?
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Fala ai Legend,

Verdade? Poxa, pensei que que os amplificadores (energia e sinal) melhorassem a recepção razoavelmente...

Sobre a antena, vi alguns caras por ai colocando um fio de 5 cm e dizendo que o sinal melhorou, mas outras pessoas dizem pode atrapalhar, como radio frequência é um assunto que pouco pesquisei, ainda não ouso opinar, mas esse post me fez repensar.

Neste momento tenho dois nRF rodando dentro das caixas do interruptor (da sala e da cozinha) e a central fica no corredor (4 metros de distancia da estação na sala e 5 metros de distância da estação na cozinha), depois posto um desenho. O problema esta em relação ao andar de cima, o comodo mais próximo à posição central perde um pacote ou outro, o comodo mais distante não pode ser encontrado na maior parte do tempo.

Bom, tudo o que consegui fazer hoje foi dissecar um pouco mais as libs, quero descartar qualquer possibilidade de software.

Depois testarei a antena do link que citei.
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tem algum outro ponto próximo deste ponto do primeiro andar? Porque a RF24Network é boa justamente por isso, essa rede tem a topologia de árvore. Se dois pontos estão muito distantes, coloque um nó entre eles para "repassar a mensagem".

Estava lendo sobre o meu problema, falam para colocar um capacitor eletrolítico entre o VCC e o GND. Estou usando um capacitor cerâmico, poderia ser esse o problema? Será que o eletrolítico vai fazer diferença?

Também pensei que o problema poderia ser por todas as linhas do nRF24L01+ estarem com 3.3v, diferente de como está no Mega, que as linha do SPI do nRF24L01+ estão com 5v e somente a alimentação do nRF24L01+ é 3.3v. Mas acho que não é este o problema...
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Respondendo minha pergunta: coloquei um capacitor eletrolítico de 16v 100 uF na placa e sucesso! A comunicação foi estabelecida! Só não sei se foi devido ao capacitor diferente (eletrolítico ao invés de cerâmico) ou com mais capacitância (100 uF ao invés de 10 uF).

Só fiquei com a impressão de que o alcance piorou consideravelmente em relação aos meus testes anteriores... mas depois testo com a biblioteca RF24Network, tenho o sentimento de que ela funciona melhor do que o exemplo do pingpair. Também mudar os parâmetros (250 kbps ao invés de 1 Mbps, por exemplo) e ver como fica o alcance. Mas por enquanto, problema resolvido! smiley-grin.
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tem algum outro ponto próximo deste ponto do primeiro andar? Porque a RF24Network é boa justamente por isso, essa rede tem a topologia de árvore. Se dois pontos estão muito distantes, coloque um nó entre eles para "repassar a mensagem".

Estava lendo sobre o meu problema, falam para colocar um capacitor eletrolítico entre o VCC e o GND. Estou usando um capacitor cerâmico, poderia ser esse o problema? Será que o eletrolítico vai fazer diferença?

Também pensei que o problema poderia ser por todas as linhas do nRF24L01+ estarem com 3.3v, diferente de como está no Mega, que as linha do SPI do nRF24L01+ estão com 5v e somente a alimentação do nRF24L01+ é 3.3v. Mas acho que não é este o problema...

Eu pensei em colocar bem acima do master (apenas entre a parede a comunicação mantêm-se boa), mas eu não queria colocar mais um ponto.

Como vi que falha o "auto conhecimento" mas os pacotes são recebidos, colocarei duas validações baseadas em timeout e tentativas usando o loop do arduino (removerei todos os loops da RF24 e RF24Network) e o mínimo de delays possíveis, como referência para o loop penso em algo como o abaixo no master e apenas o LastBuffer no slave.

Code:
struct nodes_t {
  uint16_t Node;
  char Name[11];
  state State;
  unsigned long LastRequest;
  unsigned long LastResponse;
  uint8_t buffer[5] LastMessage;
}

Respondendo minha pergunta: coloquei um capacitor eletrolítico de 16v 100 uF na placa e sucesso! A comunicação foi estabelecida! Só não sei se foi devido ao capacitor diferente (eletrolítico ao invés de cerâmico) ou com mais capacitância (100 uF ao invés de 10 uF).

Só fiquei com a impressão de que o alcance piorou consideravelmente em relação aos meus testes anteriores... mas depois testo com a biblioteca RF24Network, tenho o sentimento de que ela funciona melhor do que o exemplo do pingpair. Também mudar os parâmetros (250 kbps ao invés de 1 Mbps, por exemplo) e ver como fica o alcance. Mas por enquanto, problema resolvido! smiley-grin.

kkkk nem deu tempo de responder a tua pergunta, você mesmo a respondeu...

Eu tinha citado o capacitor no post #385. A smiley-cool E creio que a resposta é maior capacitância.

Ah sim, para csn, no uno uso a porta 10 e no mega a porta 53

Eu fiz testes com 250 kbps, e não notei grande diferença em relação a 1 mega (dentro de casa), pareceu que com CRC de 8 melhorou um pouco, o ruim é que são mais impressões que certezas, seria bom ter equipamentos adequados =S

Estou nos 70% de um sketch sem libs comparando as lib do maniacbug, do insidegadgets e o datasheet

vamos ver o que vai dar =)
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nunca sei o valor do capacitor a utilizar, hehehe. Vou começar a exagerar, hehehe.

Mas não era para ser tanto... lembro que nos meus outros testes, usava uns capacitores pequenos, acho que 4.7 nF, e funcionava beleza...

Você já testou a biblioteca RF24 do Greg Copeland? Aqui ela funcionou melhor do que a do maniacbug, o Greg Copeland fez algumas modificações/melhorias na lib.
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nunca sei o valor do capacitor a utilizar, hehehe. Vou começar a exagerar, hehehe.

kkkk eu também não! Eu vi aqui a solução do problema, dá uma lida =)

Você já testou a biblioteca RF24 do Greg Copeland? Aqui ela funcionou melhor do que a do maniacbug, o Greg Copeland fez algumas modificações/melhorias na lib.

Eu comparei algumas coisas (por exemplo o caso "Discovered old debugging SPI bus clock setting. This horribly"), mas parece que o maniac já ajustou, mas preciso ver o resto.

Comecei a copiar método por método (verificando e estudando esses métodos e dependencias) para entender como a coisa funciona, mas isso toma muito tempo (tempo que não temos)...

Estava cansado aqui no trabalho e parei por alguns minutos, mas emperrei nos "pgm_read_byte", anda não me informei sobre o progmem =S

A ideia é evitar o abaixo ("RF24::write") e tratar isso no loop do arduino, para o meu projeto, esses loops parecem críticos  smiley-roll
Code:
do
  {
    status = read_register(OBSERVE_TX,&observe_tx,1);
    IF_SERIAL_DEBUG(Serial.print(observe_tx,HEX));
  }
  while( ! ( status & ( _BV(TX_DS) | _BV(MAX_RT) ) ) && ( millis() - sent_at < timeout ) );
« Last Edit: January 21, 2014, 07:07:53 pm by Mortis » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Acompanhando o forum tive uma dúvida com relação ao meio de comuncação de vocês, qual o protocolo que este chips wirelles se comunicam ?
Logged

Pages: 1 ... 24 25 [26] 27 28 ... 30   Go Up
Jump to: