collapse

* Links de Robótica

* Posts Recentes

Palavras Cruzadas por LVirtual
[Hoje às 20:54]


[Projecto] Bomba Airsoft por jm_araujo
[Hoje às 19:01]


Apresentação por Tech_JA
[23 de Setembro de 2017, 09:19]


Medir Agua que está no Poço por filjoa
[21 de Setembro de 2017, 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Preços e fabricantes de pcb por Sérgio_Sena
[19 de Setembro de 2017, 10:20]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]


Ideias para construir um quadrúpede simples por zordlyon
[15 de Setembro de 2017, 10:18]

Autor Tópico: Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda  (Lida 39347 vezes)

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

Offline Fifas

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 2.060
  • El RoboSapiens
Ultimamente têm-me pedido frequentemente ajuda com módulos RF…Vou então criar este "pequeno" texto para tentar ajudar quem tem duvidas…

Normalmente, quando pensamos em comunicações sem fios para os nossos MCU’s vem-nos à mente os famosos Xbee. Mas nem todos tem possibilidades para comprar uns xbee pois são um pouco “caros”…Vem então a segunda solução: Módulos RF.
O conceito dos módulos RF é bastante simples….O emissor envia dados por série e o receptor recebe-os. ;D Mas sendo assim também se pode tornar uma má escolha. Precisamos então de um encoder e um decoder. O que eles vão fazer é receber, por exemplo, 8 bits “paralelos”, codifica-los e envia-los por série. O decoder vai receber esses dados, analisa o endereço e caso esteja certo, descodifica esses dados e faz uma determinada acção que enviamos pelo encoder. Por exemplo, se metermos 5V nos pinos de dados 1 e 2 do encoder, o decoder vai “ligar” os pinos 1 e 2 de saída de dados. Até agora, simples certo? Vamos passar à explicação pormenorizada. :)

Módulos RF
Os módulos RF mais conhecidos e utilizados são o emissor RT4 e receptor RR3 fabricados pela italiana Telecontrolli, depois existem os “marca branca” que são muito mais baratos. Os primeiros módulos que comprei (muito por culpa de não conhecer as compras pela net) foram precisamente os da telecontrolli. Ficaram-me por 30€ (Balúrdio! Dava para um xbee!). Depois de uns tempos de utilização deixaram de funcionar sem motivo para tal. Depois comprei uns que a Sparkfun tem e ficaram perto de 12€. Nota-se a pior qualidade de construção em relação aos da telecontrolli e os componentes são diferentes….no entanto, até hoje ainda não me falharam. :)

Vou escrever um pouco sobre os módulos da telecontrolli.
Seguindo as recomendações do fabricante, com alimentação, etc. estes módulos têm um alcance até 100 metros sem obstáculos, mas vai sempre depender do tipo de antena que possuímos. Para mais informações sobre antenas, etc. aconselho a lerem este documento.
Cada módulo pode ter várias frequências. Aqui penso que o único requesito seja o emissor e receptor terem a mesma frequência. :D
A largura de banda do RT4 é de 4KHz, mas a do RR3 é de 2KHz, por isso deverá ficar limitada a 2 KHz.

Para lerem um pouco mais sobre os módulos deixo o link dos datasheet's:
RR3
RT4

Para o caso de outros módulos, normalmente é tudo idêntico mudando apenas os pinos.
Encoder e Decoder
Datasheets:
http://www.freescale.com/files/rf_if/doc/data_sheet/MC145026.pdf

Para que possamos transmitir dados com a mínima segurança e sem “interferências” necessitamos de um encoder e um decoder. No meu caso, uso os MC145026(Encoder) e o MC145027(decoder).

Cada um destes CIs tem 5 pinos para indicar o endereço. Pinout deles:

Para haver comunicação entre eles, o endereço de cada um tem de ser igual. Por exemplo:
No Encoder temos a seguinte configuração:
Pino A1 – 5V
Pino A2 – 5V
Pino A3 – GND
Pino A4 – GND
Pino A5 – NC
Neste caso vamos ter o endereço 1100 (mais ou menos isto). O decoder ao receber os dados, vai ler o endereço. Caso não seja igual não faz nada. Podemos usar vários encoders com apenas um par de módulos, bastando mudar o endereço para comunicar entre eles. Temos então a possibilidade de ter 243 endereços diferentes! Muito bom :) Caso sejam muito “picuinhas” com a segurança, podem usar os pinos de dados para endereço e ai podem ter até 19.683 combinações diferentes! ;D
Existem os pinos de entrada e saída de dados, respectivamente. Mais uma vez, um exemplo.
Imaginemos os pinos D6, D7, D8 e D9 do Encoder. Estes são os pinos de entrada de dados. Se utilizarmos esta cofiguraçao:
Pino D6 – 5V (1)
Pino D7 – 5V (1)
Pino D8 – GND (0)
Pino D9 – GND (0)
Então, caso o endereço esteja certo, as saídas do decoder serão as mesmas que o enviado:
Pino D6 – 5V (1)
Pino D7 – 5V (1)
Pino D8 – GND (0)
Pino D9 – GND (0)

Para que exista uma comunicação “sem erros”, temos de informar ao encoder quando pode enviar os dados. Ou seja, imaginemos que queremos enviar 1010…Se o encoder estivesse sempre a enviar dados, ao metermos o 1º pino a 1, ele enviava logo os dados 1000, o que não é nada bom. Para isso temos no encoder um pino chamado Transmit Enable (TE), assim, para haver uma transmissão de dados, este pino tem de estar a 0 (GND). No decoder, temos um pino chamado Valid Transmisson (VT) que caso o endereço e tudo o resto esteja bem, ele irá ficar a 1 quando receber os dados. Podemos por exemplo ligar um led que vai acender sempre que receber dados.
Temos aqui uma imagem que explica o funcionamento básico do encoder e decoder.

Usando esta imagem, vamos fazer um pequeno teste aos nossos CIs. Utilizando exactamente este esquema, vamos ligar uma resistência de 470ohm e um led em cada saída de dados do decoder. Se estiver tudo bem, ao mandar os dados 1000 deverá ligar o led da saída D6, e por ai em diante.
Agora, pegamos nos nossos módulos e ligamos o pino 15 do encoder ao pino de entrada de dados do emissor, e o pino de saída de dados do receptor ligamos ao pino 9 do encoder. Se tudo estiver bem, irá funcionar. ;)

Uma particularidade deste decoder, é a “memoria” que possui. Ao enviarmos um dado, ele vai guardar esse dado até receber nova informação. Ou seja, se lhe dissermos para “ligar” a saída D6, ele vai deixá-la ligada até ter novas informações.

Agora vocês perguntam o porquê daquelas resistências e condensadores e porque não outros?
Bem, é simples. Com essas determinadas resistências e condensadores, o encoder/decoder vai trabalhar a uma certa frequência. Seguindo o datasheet do fabricante dos mesmos, vimos que a única frequência abaixo de 2KHz (disponível nos módulos RF) é utilizando estas resistências e condensadores. Caso queiram outras frequências, fica aqui a tabela.
No entanto, podem substituir a resistência de 50K por uma de 51K e o condensador de 5100pF pode ser um de 5,6nF de poliéster. Ficamos então com os seguintes componentes para a frequência de 1.71KHz:
RTc – 51K
CTc – 5,6nF
Rs – 100k
R1 – 51k
C1 – 22nF
R2 – 200k
C2 – 100nF

Mais tarde meto uns circuitos básicos para explicar o funcionamento. Qualquer duvida que tenham ou pedido em relação a este assunto estão a vontade para perguntar.

ATENÇÃO! Este tópico ainda está em atualização!  ;D

Fontes:
Datasheets e Rogercom


Offline msaleiro

  • Mini Robot
  • *
  • Mensagens: 691
    • Blog
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #1 em: 14 de Abril de 2009, 18:36 »
Informação muito interessante para quem está a aprender umas coisinhas sobre módulos RF. Bom trabalho!

No entanto deixo uma sugestão: em vez de utilizar por exemplo 8 pinos do emissor, 8 pinos do receptor, um codificador e um descodificador, pode-se utilizar as UARTs (Universal Asynchronous Receive Transmit) dos microcontroladores (a maioria dos MCUs tem uma, ou mais) e assim só se usa dois pinos do emissor, dois pinos do receptor e não é necessário usar codificadores e descodificadores, ficando o sistema mais simples e com menos componentes e ligações. No caso do MCU não ter UART por hardware pode-se sempre implementar uma por software :)
msaleiro - Mário Saleiro
UAlg FCT-DEI / VisLab - Instituto de Sistemas e Robótica / eLab Hackerspace
http://thebitbangtheory.com

Offline msr

  • Mini Robot
  • *
  • Mensagens: 793
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #2 em: 14 de Abril de 2009, 19:08 »
Muito bom! Obrigado. Fico à espera dos circuitos básicos.
Uma perguntinha de nabo: o Arduino trás alguma coisa "incorporada" que permita comunicações RF? O "TX" e "RX" suponho que tenham alguma coisa a ver com isso ou não?

Offline Fifas

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 2.060
  • El RoboSapiens
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #3 em: 14 de Abril de 2009, 19:35 »
Informação muito interessante para quem está a aprender umas coisinhas sobre módulos RF. Bom trabalho!

No entanto deixo uma sugestão: em vez de utilizar por exemplo 8 pinos do emissor, 8 pinos do receptor, um codificador e um descodificador, pode-se utilizar as UARTs (Universal Asynchronous Receive Transmit) dos microcontroladores (a maioria dos MCUs tem uma, ou mais) e assim só se usa dois pinos do emissor, dois pinos do receptor e não é necessário usar codificadores e descodificadores, ficando o sistema mais simples e com menos componentes e ligações. No caso do MCU não ter UART por hardware pode-se sempre implementar uma por software :)
tenho de "analisar" melhor isso :)

Muito bom! Obrigado. Fico à espera dos circuitos básicos.
Uma perguntinha de nabo: o Arduino trás alguma coisa "incorporada" que permita comunicações RF? O "TX" e "RX" suponho que tenham alguma coisa a ver com isso ou não?
sinceramente, nunca experimentei pois so tenho 1 arduino, mas penso que funcione bem, bastando um emissor para o tx e o receptor para o rx do outro arduino :)

Offline msaleiro

  • Mini Robot
  • *
  • Mensagens: 691
    • Blog
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #4 em: 14 de Abril de 2009, 19:46 »
Se o ATmega do arduino tem um pino Rx e um Tx então tem pelo menos uma UART. Há que ter em atenção que as velocidades de comunicação têm estar configuradas de igual forma no emissor e receptor (por ex: 2400 bps, 4800 bps, 9600 bps, 19200 bps, etc), têm que ter igual número de bits de paragem, e o bit de paridade se estiver activado num também tem que estar activado no outro.

Quando usei os módulos XBee utilizei as UARTs dos 8051 para enviar dados para o XBee pelo Tx e receber pelo Rx. Penso que para os módulos RF também deve funcionar :)

Se tiveres um conversor TTL <-> RS232 (MAX232, DS232, etc) utilizando também esses pinos podes ligar o arduino à porta série do computador (Podes visualizar o tráfego de dados no programa hyperterminal, que vem na parte de comunicações do windows)
msaleiro - Mário Saleiro
UAlg FCT-DEI / VisLab - Instituto de Sistemas e Robótica / eLab Hackerspace
http://thebitbangtheory.com

Offline Rebel

  • Mini Robot
  • *
  • Mensagens: 153
    • Raspberry Pi
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #5 em: 15 de Abril de 2009, 10:36 »
Por acaso estou interessado nessa opção pois comprei 2 Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF por 5€ à Digicontrole.
Como só tenho um Arduino, queria ligar um dos módulos directamente à porta Série do PC

Offline msaleiro

  • Mini Robot
  • *
  • Mensagens: 691
    • Blog
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #6 em: 15 de Abril de 2009, 10:50 »
Eu não conheço esses módulos, mas se são semelhantes aos que o Fifas referiu deve funcionar. Certifica-te se os níveis desses módulos são TTL(5V) ou LVTTL(3,3V), para saberes que transceiver de RS232 usar. No caso do TTL é o MAX232 ou DS232 como já tinha referido. No caso do LVTTL se não me engano é o MAX3232, mas não tenho a certeza.
msaleiro - Mário Saleiro
UAlg FCT-DEI / VisLab - Instituto de Sistemas e Robótica / eLab Hackerspace
http://thebitbangtheory.com

Offline Rebel

  • Mini Robot
  • *
  • Mensagens: 153
    • Raspberry Pi
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #7 em: 15 de Abril de 2009, 11:20 »
Aqui fica o link dos Módulos para quem estiver interessado:
http://www.hoperf.com/pro/RFM12.html

Offline Fifas

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 2.060
  • El RoboSapiens
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #8 em: 15 de Abril de 2009, 12:39 »
pelo que vi no datasheet, esses têm uma comunicaçao por SPI, o que é bem melhor (penso eu)

obrigado pelo link rebel ;) vou "estudar" esses bixos que parecem-me interessantes :D

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.641
    • Electronic Gear for Musicians
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #9 em: 15 de Abril de 2009, 12:45 »
Os modulos da HOPE funcionam muito bem.

Tenho cá vários a fazer uma rede de sensores sem fios, espalhados pela casa. Isto trabalho óptimo!
Liguei um mini painel solar a cada sistema, optimizei para gastar pouca energia, e trabalha sem carga de baterias externa.

Se precisarem de mais info, digam.

Estou para publicar um tutorial com esquemas, de como se trabalham com esses modulos.



Offline Rebel

  • Mini Robot
  • *
  • Mensagens: 153
    • Raspberry Pi
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #10 em: 15 de Abril de 2009, 14:01 »
Eu! Eu! Eu! ...
Eu estou interessado. Tenho lá dois desses encostados. Queria usa-los mas achei o Datasheet deles bastante confusos.
Podes-me arranjar mais informação de como os usaste?
Tens o processador para cada sensor/modulo rf?

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #11 em: 15 de Abril de 2009, 14:09 »
Primeiramente, bom trabalho fifas. Estão aí umas horitas a teclar, certamente vao ajudar muita gente.

Eu já fiz o link de 2 Arduinos por RF. Utilizei a biblioteca VirtualWire. ;)

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.641
    • Electronic Gear for Musicians
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #12 em: 15 de Abril de 2009, 23:46 »
Eu! Eu! Eu! ...
Eu estou interessado. Tenho lá dois desses encostados. Queria usa-los mas achei o Datasheet deles bastante confusos.
Podes-me arranjar mais informação de como os usaste?
Tens o processador para cada sensor/modulo rf?


É curioso que e até achei o datasheet demasiado simplificado, com agumas falhas em termos de informação em falta.

Uso PIC nos meus trabalhos, e as bibliotecas foram feitas em ASM e C. Para poder usar mesmo nos PICs 10F.
Vou publicar o tutorial com código em C, e bem explicado.


Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.726
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #13 em: 16 de Abril de 2009, 10:16 »
A vantagem destes encoders e decoders parece-me mesmo ser o facto se poder definir endereços.

asena - Tu tens vários emissores e um receptor, é isto? É possivel definir os endereços de cada um? Ou tiveste que usar um decoder e encoder?

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.641
    • Electronic Gear for Musicians
Re:Módulos RF, Encoders/Decoders - Explicação do Funcionamento e ajuda
« Responder #14 em: 16 de Abril de 2009, 10:46 »
Sim, podem definir-se endereços.
Bem como no protocolo que criamos, podemos usar sub-endereços, que dividem ainda mais os "individuos" na rede.

Para os trabalhos que desenvolvo, uso sempre um Mestre com multi-Escravo.
Os escravos vão enviando a informação toda para a base.

Cirei também sensores activos, ou seja, que podem receber comandos, e/ou actuar saidas, ou processar alguma informação, e depois enviá-la para a base outra vez.

Tudo em PIC.