LusoRobótica - Robótica em Português

Robótica => Projectos de robótica => Projectos Colectivos => Tópico iniciado por: metRo_ em 19 de Maio de 2009, 18:04

Título: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 19 de Maio de 2009, 18:04
Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.hoperf.com%2Fproimg%2F200672745448.jpg&hash=f00e220a3ae7302e403569e573dfeb475be140b8)

O TigPT conseguiu comunicar com os módulos, podem ver a informação aqui (http://lusorobotica.com/index.php/topic,885.msg8817.html#msg8817)

Biblioteca RFM12 (http://jeefiles.equi4.com/RF12.zip)

Características do Produto

Página do Produto (http://www.hoperf.com/pro/rfm12.html)
Datasheet (http://www.hoperf.com/pdf/RFM12.pdf)
RFM12 programming guide (http://www.hoperf.com/pdf/RF12_code.pdf) - Há um utilizador no fórum que já se disponibilizou para fazer um tutorial e que tem experiência com este módulo.
RF12 datasheet (http://www.hoperf.com/pdf/RF12.pdf)

Features:
   
    * Distance > 100m
    * low costing, high performance and price ratio
    * tuning free during production
    * PLL and zero IF technology
    * fast PLL lock time
    * high resolution PLL with 2.5KHz step
    * high data rate (up to 115.2 kbps with internal demodulator)
    * differential antenna input
    * automatic antenna tuning
    * Programmable TX frequency deviation (15 to 240 KHz)
    * programmable receiver bandwidth (67 - 400 kHz)
    * analog and digital signal strength indicater(ARSSI/DRSSI)
    * AFC
    * DQD
    * Internal data filtering and clock recovery
    * RX synchron pattern recognition
    * SPI interface
    * clock and reset signal output for external MCU use
    * 16 bit RX Data FIFO
    * Two 8 bit TX data registers
    * 10MHz crystal for PLL timing
    * wakeup timer
    * 2.2V - 5.4V power supply
    * low power consumption
    * stand by current less than 0.3µA

Links com Informação Adicional, projectos externos, etc
http://electronics-diy.com/electronic_schematic.php?id=725 (http://electronics-diy.com/electronic_schematic.php?id=725)
Arduino + RFM12 (1) (http://jeelab.equi4.com/2008/12/11/good-rf-with-rfm12b/)
Arduino + RFM12 (2) (http://jeelab.equi4.com/2009/02/10/rfm12b-library-for-arduino/)
http://blog.everythingrobotics.com/2008/01/08/rfm12-tutorial-part1/ (http://blog.everythingrobotics.com/2008/01/08/rfm12-tutorial-part1/)
Artigo da Elektor sobre RFM12 em português! (http://www.lusorobotica.com/ficheiros/RFM12_Elektor.pdf)

PCB's
Placa PCB por HyugaTS (http://lusorobotica.com/index.php?action=dlattach;topic=885.0;attach=170) - Post (http://lusorobotica.com/index.php/topic,885.msg7916.html#msg7916)

Eu criei este tópico na parte de Projecto colectivos para que toda a gente possa participar no desenvolvimento de ferramentas para se usarem estes módulos por isso todas as informações úteis que tenham serão bem-vindas como links para projectos com estes módulos, os vossos testes, resultados, etc.

EDIT: mudei o link para a biblioteca, que o antigo já não dava nada. (ricardo-reis)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 19 de Maio de 2009, 18:22
Aqui estão algumas fotos embora isto ainda não tenha dado nada :S e não liguem à qualidade das fotos.

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSg3v6p6v1kI%2FAAAAAAAAAeU%2FJF9v_GJsAn0%2Fs144%2Fimg_0424.jpg&hash=bc17218a377ede9e2ba7ae03cfa41bf9685c5387) (http://picasaweb.google.com/josescxavier/Rfm12#5336184924467615298)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_i2teYMYP9C0%2FSg3v_FKa5wI%2FAAAAAAAAAeY%2FEvmOaXJ0Xro%2Fs144%2Fimg_0426.jpg&hash=a22ac663712fb9a48e91973cecc7c75f3ec1c11f) (http://picasaweb.google.com/josescxavier/Rfm12#5336185000500586242)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSg3wE8xuqYI%2FAAAAAAAAAec%2FVMljFD6zXyo%2Fs144%2Fimg_0428.jpg&hash=f9cbd45f25fd101832903502d9fd0828404b5fe5) (http://picasaweb.google.com/josescxavier/Rfm12#5336185101328755074)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh5.ggpht.com%2F_i2teYMYP9C0%2FSg3wJkvVqlI%2FAAAAAAAAAeg%2FDCwfsr-yfw4%2Fs144%2Fimg_0429.jpg&hash=58c269d213198131b671d4279475e08254736128) (http://picasaweb.google.com/josescxavier/Rfm12#5336185180775623250)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh6.ggpht.com%2F_i2teYMYP9C0%2FSg3wOtimWmI%2FAAAAAAAAAek%2FQWvnpaTXpzg%2Fs144%2Fimg_0430.jpg&hash=1ba95f09d29a8b49f663f951495c9614d5a16c3b) (http://picasaweb.google.com/josescxavier/Rfm12#5336185269037455970)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSg3wT40iRQI%2FAAAAAAAAAeo%2FWK-s8_PKmlA%2Fs144%2Fimg_0431.jpg&hash=871729fdf1a2263340e51ff5e7bf189c7294c83d) (http://picasaweb.google.com/josescxavier/Rfm12#5336185357964821762)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_i2teYMYP9C0%2FSg3wY1FHBhI%2FAAAAAAAAAes%2FnnfHVF3u1-w%2Fs144%2Fimg_0433.jpg&hash=eaa2f1940bb4c6c880bd239ac2d51cd173290b11) (http://picasaweb.google.com/josescxavier/Rfm12#5336185442859943442)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_i2teYMYP9C0%2FSg3wdwFv-JI%2FAAAAAAAAAew%2FdqzApMJYFsI%2Fs144%2Fimg_0434.jpg&hash=7fd1298d1b4299b4c4d8683509755d592e4421fb) (http://picasaweb.google.com/josescxavier/Rfm12#5336185527419795602)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh5.ggpht.com%2F_i2teYMYP9C0%2FSg3wibBOy5I%2FAAAAAAAAAe0%2FRoYsml4CA-c%2Fs144%2Fimg_0435.jpg&hash=5716f0ebf1d2d7bb6d724cb2250e61ab67904269) (http://picasaweb.google.com/josescxavier/Rfm12#5336185607663045522)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh6.ggpht.com%2F_i2teYMYP9C0%2FSg3wnatfPRI%2FAAAAAAAAAe4%2Fs0Vmy7bfXA8%2Fs144%2Fimg_0437.jpg&hash=ccbe91dfa7da494f6862f8f1ea186c2fb0a34930) (http://picasaweb.google.com/josescxavier/Rfm12#5336185693479582994)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSg3wptU_0FI%2FAAAAAAAAAfA%2F-X_BWX9_43M%2Fs144%2F1.jpg&hash=2e3ecfafc6c34809cbbd88df30eee063d9558770) (http://picasaweb.google.com/josescxavier/Rfm12#5336185732836872274)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSg3wsP6lWwI%2FAAAAAAAAAfE%2FbWwMrKAso1k%2Fs144%2F2.jpg&hash=70c73683c3626775cf19a8291c2c49b31401c60a) (http://picasaweb.google.com/josescxavier/Rfm12#5336185776481065730)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh5.ggpht.com%2F_i2teYMYP9C0%2FSg3wuvkJsHI%2FAAAAAAAAAfI%2FVutBvFR5y1k%2Fs144%2F3.jpg&hash=fc6fff70b3c29de90e9d1a318e3d630f8fd667b7) (http://picasaweb.google.com/josescxavier/Rfm12#5336185819336650866)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Fifas em 19 de Maio de 2009, 21:03
metRo_ tenho uma duvida.....qual dos buracos é a antena? ;D é que no datasheet so vejo 1 :P
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 19 de Maio de 2009, 21:17
Isso tem dois buracos, um gnd e outro antena, vou tirar uma foto e ja posto mas é facil de ver. Pois o que esta a gnd ve-se bem qual é.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 20 de Maio de 2009, 00:48
Comecei a ler o guia de programação para comunicar com os módulos e tenho algumas duvidas.
Código: [Seleccione]
#define DDR_IN        0
#define DDR_OUT       1

#define PORT_SEL      PORTB
#define PIN_SEL       PINB
#define DDR_SEL       DDRB

#define PORT_SDI      PORTB
#define PIN_SDI       PINB
#define DDR_SDI       DDRB

#define PORT_SCK      PORTB
#define PIN_SCK       PINB
#define DDR_SCK       DDRB

#define PORT_SDO      PORTB
#define PIN_SDO       PINB
#define DDR_SDO       DDRD

#define PORT_DATA     PORTD
#define PIN_DATA      PIND
#define DDR_DATA      DDRD

#define PB7           7//--\
#define PB6           6//  |
#define RFXX_SCK      5//  |
#define RFXX_SDO      4//  |RF
#define RFXX_SDI      3//  |
#define RFXX_SEL      2//  |
#define NC            1//  |
#define PBO           0//--/

#define SEL_OUTPUT()  DDR_SEL |= (1<<RFXX_SEL)
#define HI_SEL()      PORT_SEL|= (1<<RFXX_SEL)
#define LOW_SEL()     PORT_SEL&=~(1<<RFXX_SEL)

#define SDI_OUTPUT()  DDR_SDI |= (1<<RFXX_SDI)
#define HI_SDI()      PORT_SDI|= (1<<RFXX_SDI)
#define LOW_SDI()     PORT_SDI&=~(1<<RFXX_SDI)

#define SDO_INPUT()   DDR_SDO&=~(1<<RFXX_SDO)
#define SDO_HI()      PIN_SDO&(1<<RFXX_SDO)

#define SCK_OUTPUT()  DDR_SCK |= (1<<RFXX_SCK)
#define HI_SCK()      PORT_SCK|= (1<<RFXX_SCK)
#define LOW_SCK()     PORT_SCK&=~(1<<RFXX_SCK)

#define RF12_DATA     4//PD4
#define DATA_OUT      DDR_DATA|=1<<RF12_DATA
#define HI_DATA       PORT_DATA|=1<<FR12_DATA

#define LEDG_OUTPUT() DDRD|=~(1<<6)
#define LEDR_OUTPUT() DDRD|=~(1<<7)
#define LEDG_ON()     PORTD&=~(1<<6)
#define LEDG_OFF()    PORTD|=~(1<<6)
#define LEDR_ON()     PORTD&=~(1<<7)
#define LEDR_OFF()    PORTD|=~(1<<7)

Suponho que tenha a ver com configuraçõs do SPI mas para que é que ele faz varias vezes PORT_SEL, PORT SDO, PORT_SDI e lhes atribui PORTb?

Ou por exemplo isto:
Código: [Seleccione]
#define SEL_OUTPUT()  DDR_SEL |= (1<<RFXX_SEL)
#define HI_SEL()      PORT_SEL|= (1<<RFXX_SEL)
#define LOW_SEL()     PORT_SEL&=~(1<<RFXX_SEL)

#define SDI_OUTPUT()  DDR_SDI |= (1<<RFXX_SDI)
#define HI_SDI()      PORT_SDI|= (1<<RFXX_SDI)
#define LOW_SDI()     PORT_SDI&=~(1<<RFXX_SDI)
o que faz?

Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: HyugaTS em 20 de Maio de 2009, 11:26
Uma vez que o RFM12 não é breadboard Friendly decidi fazer uma PCB para poder adaptar na breadboard. E como não encontrei sitio melhor decidi "pedir" emprestado o tópico do metRo_  ;)
os ficheiros feitos em Eagle (http://www.cadsoft.de/) estão em anexo.
Pus também algumas imagens. Não liguem ao estado da solda. Sou mau em trabalhos manuais :P
Enjoy ;D
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi133.photobucket.com%2Falbums%2Fq70%2FHyugaTS%2FSNC00027.jpg&hash=c1c557e25441b8805d87283f19ca501155be51c9)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi133.photobucket.com%2Falbums%2Fq70%2FHyugaTS%2FSNC00028.jpg&hash=df2c6f0f3ccd5dd4aa515492e84e184b05d69006)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi133.photobucket.com%2Falbums%2Fq70%2FHyugaTS%2FSNC00029.jpg&hash=1d9a324ac1c84dc4fdb6ea5fbf50fb39fbe48cb0)

Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 20 de Maio de 2009, 12:24
Muito bom, obrigado por partilhares HyugaTS.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 20 de Maio de 2009, 14:08
Adicionado ao primeiro post e parece que os conectores smd já deram jeito a alguém :)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Fifas em 20 de Maio de 2009, 14:47
metRo_ mi duvida...mi duvida ;D

nesta foto ve-se a antena no buraco de dentro
http://blog.everythingrobotics.com/wp-content/uploads/2008/06/2146382426_ce95ba0034_o.jpg (http://blog.everythingrobotics.com/wp-content/uploads/2008/06/2146382426_ce95ba0034_o.jpg)

no teu tens na de fora

aqui so tem 1 buraco
http://blog.everythingrobotics.com/wp-content/uploads/2008/06/image001.jpg (http://blog.everythingrobotics.com/wp-content/uploads/2008/06/image001.jpg)


tirem a minha duvida pf :P
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 20 de Maio de 2009, 14:51
Eu diria que era na de dentro pois a de fora é massa.

Se calhar é por isso que o metRo_ não os consegue meter a falar :P

Quando testar os meus posto ;)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 20 de Maio de 2009, 18:16
Na altura em que tirei as fotos ainda nao tinha soldado as antenas, confirma-se que é na de dentro pois a de fora é massa, foi assim que soldei!
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Njay em 22 de Maio de 2009, 02:42
Comecei a ler o guia de programação para comunicar com os módulos e tenho algumas duvidas.
Código: [Seleccione]
#define DDR_IN        0
#define DDR_OUT       1

#define PORT_SEL      PORTB
#define PIN_SEL       PINB
#define DDR_SEL       DDRB
(...)

Suponho que tenha a ver com configuraçõs do SPI mas para que é que ele faz varias vezes PORT_SEL, PORT SDO, PORT_SDI e lhes atribui PORTb?

É como estares a dizer que o pino SEL está no porto X, o pino SDO está no porto Y, etc. Por acaso, neste caso, todos estes pinos são no mesmo porto (PORTB), mas podia não ser. Desta forma, usando as constantes, podes facilmente mudar a localização de um pino, alterando apenas a respectiva constante e deixando o resto do código inalterado.

Ou por exemplo isto:
Código: [Seleccione]
#define SEL_OUTPUT()  DDR_SEL |= (1<<RFXX_SEL)
#define HI_SEL()      PORT_SEL|= (1<<RFXX_SEL)
#define LOW_SEL()     PORT_SEL&=~(1<<RFXX_SEL)

#define SDI_OUTPUT()  DDR_SDI |= (1<<RFXX_SDI)
#define HI_SDI()      PORT_SDI|= (1<<RFXX_SDI)
#define LOW_SDI()     PORT_SDI&=~(1<<RFXX_SDI)
o que faz?

Constantes como por exemplo RFXX_SEL têm o nº (ou indice) do bit. Quando fazes 1 << RFXX_SEL estás a criar uma "máscara" (um valor) em que apenas o bit índice RFXX_SEL activo (= 1). Por exemplo, se RFXX_SEL for 2 (que por acaso ;) até é), 1 << RFXX_SEL = 1 << 2 = 100b (em binário) = 4 (decimal).
As macros que têm o pipe | (ou-lógico bit-a-bit) estão a colocar no registo respectivo um bit a 1, as que usam o & (e-lógico bit-a-bit) estão a zerar um bit.

Examplos:

#define DDR_SEL  DDRB  // o registo DDRB define se cada bit do porto B é um input ou output
#define RFXX_SEL  2
#define SEL_OUTPUT()  DDR_SEL |= (1<<RFXX_SEL)

SEL_OUTPUT() -> coloca a 1 o bit índice 2 do registo DDRB
Como? Vamos ver os passos que dá o compilador na interpretação do código:

SEL_OUTPUT()
DDR_SEL |= (1 << RFXX_SEL)
DDRB = DDRB | (1 << RFXX_SEL)
DDRB = DDRB | (1 << 2)
DDRB = DDRB | 4
DDRB = DDRB | 100b    (note-se o "b" que indica que o nº esta no formato binário)

Portanto, fazendo um OR (OU) do registo DDRB com o valor 100b (binário) resulta sempre num valor em que o bit 2 fica a 1 e os restantes ficam inalterados.

No caso das macros com o & (AND, ou em pt, E), o que se faz é um AND com a máscara invertida. Isto resulta sempre em zerar o bit porque a máscara invertida é um valor em que todos os bits são 1 excepto o nosso bit de interesse (como o RFXX_SEL). Fazendo um AND com outro valor (neste caso, o valor do registo), resulta em que o nosso bit fica a zero e todos os outros ficam inalterados.

Tenho a certeza que a net tá cheia de tutoriais sobre isto, façam uma pesquisazita.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 23 de Maio de 2009, 01:18
Muito obrigado :)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Njay em 24 de Maio de 2009, 21:43
metRo_, na mensagem original do tópico falta um link para um doc importante:

http://www.hoperf.com/pdf/RF12.pdf (http://www.hoperf.com/pdf/RF12.pdf)

O RFM12 é o nome do módulo, que é baseado num chip chamado RF12 que a HOPE fabrica. O link acima é a datasheet do chip. Estava agora a dar uma olhada nos docs para começar a "atacar" este módulo e estava a ver que faltava alguma informação nos docs que aí tens (como por exemplo os timmings da interface SPI).
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 24 de Maio de 2009, 21:46
Obrigado Njay, já adicionei ;)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Njay em 25 de Maio de 2009, 00:04
metRo_, pelos printscreen parece que tens a configuração a 433MHz, mas os nossos módulos são de 868MHz...
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 25 de Maio de 2009, 22:20
Vou deixar aqui o código que tentei utilizar, não liguem aos  comentários. Depois de tudo o que andei a ver e a investigar parece ser um código básico e que deveria funcionar, pode servir para alguem tirar ideias.
Está em anexo.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 868MHz) da HOPERF
Enviado por: Njay em 25 de Maio de 2009, 23:56
No TX tenta
 rf12_xfer(0x8239) em vez de rf12_xfer(0x8209)

E no RX tenta:
 rf12_xfer(0x82D9) em vez de rf12_xfer(0x8209)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 868MHz) da HOPERF
Enviado por: metRo_ em 26 de Maio de 2009, 15:04
No TX tenta
 rf12_xfer(0x8239) em vez de rf12_xfer(0x8209)

E no RX tenta:
 rf12_xfer(0x82D9) em vez de rf12_xfer(0x8209)


Se reparares eu tenho esses comandos quando inicializo a transferencia ou a recepção.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 28 de Maio de 2009, 21:23
Há uns dias atrás mandei um email para a hoperf para tirar algumas duvidas sobre o guia de programação, as minhas perguntas encontram-se no pdf que está em anexo e as respostas foram as seguintes:

Citar
Question 1)  Page: 3;
Yes,

Question 2)  Page: 4;
typo of the document,
s = 0 for digital filter,
s = 1 for analog RC filter,

Question 3)  Page: 4;
choose f = 8.

Question 4)  Page: 5;
choose rl1 = rl0 = 1;

Question 5)  Page: 5;
mp
Question 6)  Page: 5;
please select the deviation according to the data rate and bandwidth.

Question 7)  Page: 6;
Yes
Question 8)  Page: 6;
That bit is in the power management command,
Yes, you can use the default value.
Question 9)  Page: 6;
Zero.

Question 10) Page: 8;
to control that bit in  power management command,

Pode dar jeito alguém.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 28 de Maio de 2009, 21:45
Vou deixar aqui o código que tentei utilizar, não liguem aos  comentários. Depois de tudo o que andei a ver e a investigar parece ser um código básico e que deveria funcionar, pode servir para alguem tirar ideias.
Está em anexo.

eu não o consigo abrir...?

alguem poderia fazer copy paste, e colar no topico, ou enviar-me uma PM por favor?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 28 de Maio de 2009, 22:01
http://paginas.fe.up.pt/~ee06091/RF12_code.rar (http://paginas.fe.up.pt/~ee06091/RF12_code.rar)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 28 de Maio de 2009, 22:07
http://paginas.fe.up.pt/~ee06091/RF12_code.rar (http://paginas.fe.up.pt/~ee06091/RF12_code.rar)


que programa abre ficheiros .rar?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: msaleiro em 28 de Maio de 2009, 22:55
winrar?  ;D
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Fifas em 28 de Maio de 2009, 23:25
ou uma soluçao gratuita: 7-zip ;)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 28 de Maio de 2009, 23:33
não se pode dizer que a versão gratuita do winrar não chegue, pelo menos não tem o aviso do winzip lol
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 29 de Maio de 2009, 00:17
já tenho :)

e agora .pde???


 :-X  :-[  :-X  :-[  :-X  :-[


desculpem lá estive fora uns tempos ando maluco...
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 29 de Maio de 2009, 00:36
.pde são os ficheiros do arduino, mas podes abrir também com notepad ;)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 30 de Maio de 2009, 18:12
.pde são os ficheiros do arduino, mas podes abrir também com notepad ;)

opbrigado :) tentei com o IDE do arduino mas não deu ??? mas com o notepad deu :)

bem só preciso doutro arduino pa por mão á obra  ;D


então e é necessário mais alguma coisa para por os modulos interfacing com o arduino? ou mesmo só

arduino> modulo > modulo >arduino?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 30 de Maio de 2009, 18:35
É só os módulos e os arduinos ou outro tipo de micros.

Quando meter mãos à obra, depois posto como fazer ;)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 30 de Maio de 2009, 21:04
É só os módulos e os arduinos ou outro tipo de micros.

Quando meter mãos à obra, depois posto como fazer ;)

Deu-me vontade rir essa confiança toda como se quando fores por mãos à obrar isso fosse logo funcionar :P :D
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 30 de Maio de 2009, 21:11
era para caso de ser necessário mais alguma coisa comprar logo com o arduino para não pagar portes duas vezes...  ::)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 31 de Maio de 2009, 15:52
É só os módulos e os arduinos ou outro tipo de micros.

Quando meter mãos à obra, depois posto como fazer ;)

Deu-me vontade rir essa confiança toda como se quando fores por mãos à obrar isso fosse logo funcionar :P :D
Mas duvidas? (eu também, mas a confiança é meio caminho para o sucesso! :P)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 06 de Junho de 2009, 12:05
Novidades?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 06 de Junho de 2009, 13:21
Ainda nem olhei para os meus lol, não tenho tempo mesmo... se não tiver nenhum projecto para a universidade nem recursos ou melhorias em julho começo a dar nisto  :)

cumpzz
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 06 de Junho de 2009, 13:50
pois, estás como eu, agora só para Julho por causa da faculdade.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Fifas em 06 de Junho de 2009, 14:25
eu ainda não peguei nos meus pq nao tenho microcontrolador para comunicar com o arduino :P

estou a fazer um programador para pic16f84 para ver se os meto a comunicar....mas penso que esta pic nao tem SPI :P
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 06 de Junho de 2009, 21:10
só uma pergunta, há menira barata de tipo fazer um boost ao sinal destes gajos? tipo para terem alcance de 3000 metros ?  :-\

se não der não há problema... não faço este projecto...
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 07 de Junho de 2009, 17:16
Hoje agarrei nisto e tive a ler os datasheets, uns sites, fazer ligações e um bocado de código e já funcionam.

Ainda tenho alguns problemas de ruído mas já consigo mandar dados e receber respostas.

A ver se faço uns esquemas das ligações e o software para partilhar convosco.

Para já fica uma foto para lhe irem ganhado o gosto ;)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_Lt0JkvwRIwE%2FSivnqSgG16I%2FAAAAAAAAAeM%2FM5zYobHj6Yk%2Fs640%2FDSC00854.JPG&hash=08bff8fa4cce6f5a73795e7a14fcbf8bad96de7f) (http://picasaweb.google.pt/lh/photo/1oZfXTSVHcc9-5eItyfiug?feat=directlink)

Foto do esquema, o modulo é ligado onde estão os pins, com a parte da antena virada para o topo da breadboard.

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_Lt0JkvwRIwE%2FSivsBqcSt4I%2FAAAAAAAAAeU%2FQBT_XL-GEM4%2Fs800%2Frfm12.png&hash=2d0f5f94b0adf1d8f960877269c9dfd1f82f8d07)
Na imagem, vermelho é 5V, azul é GND.

Código: [Seleccione]
// Configure some values in EEPROM for easy config of the RF12 later on.
// 2009-05-06 <jcw@equi4.com> http://opensource.org/licenses/mit-license.php
// $Id: $

#include "RF12.h"
#include <util/crc16.h>
#include <avr/eeprom.h>

typedef struct {
    uint8_t nodeId;
    uint8_t group;
    char msg[RF12_EEPROM_SIZE-4];
    uint16_t crc;
} RF12Config;

static RF12Config config;

char cmd;
uint8_t value, arg;
uint8_t testbuf[RF12_MAXDATA];

static void addCh(char* msg, char c) {
    uint8_t n = strlen(msg);
    msg[n] = c;
}

static void addInt(char* msg, uint16_t v) {
    if (v > 10)
        addInt(msg, v / 10);
    addCh(msg, '0' + v % 10);
}

static void saveConfig() {
    // set up a nice config string to be shown on startup
    memset(config.msg, 0, sizeof config.msg);
    strcpy(config.msg, " ");
    
    uint8_t id = config.nodeId & 0x1F;
    addCh(config.msg, '@' + id);
    strcat(config.msg, " i");
    addInt(config.msg, id);
    if (config.nodeId & 0x20)
        addCh(config.msg, '*');
    
    strcat(config.msg, " g");
    addInt(config.msg, config.group);
    
    strcat(config.msg, " @ ");
    static uint16_t bands[4] = { 315, 433, 868, 915 };
    uint16_t band = config.nodeId >> 6;
    addInt(config.msg, bands[band]);
    strcat(config.msg, " MHz ");
    
    config.crc = ~0;
    for (uint8_t i = 0; i < sizeof config - 2; ++i)
        config.crc = _crc16_update(config.crc, ((uint8_t*) &config)[i]);

    // save to EEPROM
    for (uint8_t i = 0; i < sizeof config; ++i) {
        uint8_t b = ((uint8_t*) &config)[i];
        eeprom_write_byte(RF12_EEPROM_ADDR + i, b);
    }
    
    if (!rf12_config())
        Serial.println("config save failed");
}

static void showHelp() {
    Serial.println();
    Serial.println("Available commands:");
    Serial.println("  <nn> i    - set node ID (standard node ids are 1..26)");
    Serial.println("              (or enter an upper case 'A'..'Z' to set id)");
    Serial.println("  <n> b     - set MHz band (4 = 433, 8 = 868, 9 = 915)");
    Serial.println("  <nnn> g   - set network group (RFM12 only supports 212)");
    Serial.println("  <n> c     - set collect mode (advanced use, normally 0)");
    Serial.println("  <n> a     - send test packet of 5 x <n> bytes, with ack");
    Serial.println("  <n> s     - send test packet of 5 x <n> bytes, no ack");
    Serial.println("Current configuration:");
    rf12_config();
}

void setup() {
    Serial.begin(57600);
    Serial.print("\n[RF12DEMO]");

    if (rf12_config()) {
        config.nodeId = eeprom_read_byte(RF12_EEPROM_ADDR);
        config.group = eeprom_read_byte(RF12_EEPROM_ADDR + 1);
    } else {
        config.nodeId = 0x41; // node A1 @ 433 MHz
        config.group = 0xD4;
        saveConfig();
    }
    
    for (uint8_t i = 0; i < sizeof testbuf; ++i)
        testbuf[i] = i;
        
    showHelp();
}

void loop() {
    if (Serial.available()) {
        char c = Serial.read();
        if ('0' <= c && c <= '9')
            value = 10 * value + c - '0';
        else if ('a' <= c && c <='z') {
            Serial.print("> ");
            Serial.print((int) value);
            Serial.println(c);
            switch (c) {
                default:
                    showHelp();
                    break;
                case 'i': // set node id
                    config.nodeId = (config.nodeId & 0xE0) + (value & 0x1F);
                    saveConfig();
                    break;
                case 'b': // set band: 4 = 433, 8 = 868, 9 = 915
                    value = value == 8 ? RF12_868MHZ :
                            value == 9 ? RF12_915MHZ : RF12_433MHZ;
                    config.nodeId = (value << 6) + (config.nodeId & 0x3F);
                    saveConfig();
                    break;
                case 'g': // set network group
                    config.group = value;
                    saveConfig();
                    break;
                case 'c': // set collect mode (off = 0, on = 1)
                    if (value)
                        config.nodeId |= 0x20;
                    else
                        config.nodeId &= ~0x20;
                    saveConfig();
                    break;
                case 'a': // send test packet of 5 x N bytes, request an ack
                case 's': // send test packet of 5 x N bytes, no ack
                    cmd = c;
                    arg = value < 9 ? 5 * value : sizeof testbuf;
                    break;
            }
            value = 0;
        } else if ('A' <= c && c <= 'Z') {
            config.nodeId = (config.nodeId & 0xE0) + (c & 0x1F);
            saveConfig();
        } else if (c > ' ')
            showHelp();
    }

    if (rf12_recvDone()) {
        Serial.print(rf12_crc == 0 ? "OK" : " ?");
        for (uint8_t i = 0; i < rf12_len + 2 && i < 20; ++i) {
            Serial.print(' ');
            Serial.print((int) rf12_buf[i]);
        }
        Serial.println();
        
        if (rf12_crc == 0 && (rf12_hdr & ~RF12_HDR_MASK) == RF12_HDR_ACK) {
            Serial.println(" -> ack");
            uint8_t addr = rf12_hdr & RF12_HDR_MASK;
            rf12_sendStart(RF12_HDR_CTL | RF12_HDR_DST | addr, 0, 0);
        }
    }

    if (cmd && rf12_canSend()) {
        Serial.print(" -> ");
        Serial.print((int) arg);
        Serial.println(" b");
        rf12_sendStart(cmd == 'a' ? RF12_HDR_ACK : 0, testbuf, arg);
        cmd = 0;
    }
}

Depois de fazer upload deste código, fazer ligação por serial e enviar o comando "<1>i" para o arduino por serial, seguido do comando "<8>b" para que este fique configurado como defice 1 na frequência de 868Mhz

De seguida fazer upload para o segundo arduino do mesmo código e configurar com "<2>i" e "<8>b" para ficar como device 2 e a mesma frequência.

Depois disto, e de tudo ligado, basta enviar o comando de teste "<2>a" ao que o outro dispositivo de ve de responder com "10"

Se isto acontecer é porque tem tudo bem ligado e os módulos a funcionar.

Depois disto vamos fazer um código nosso para podermos enviar e receber dados à vontade, mas já dá para ver se está tudo ok.

Ahh em anexo está a biblioteca.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 07 de Junho de 2009, 18:09
GRANDE TigPT
Pelo que vi estava a fazer uma ligação diferente da tua, vou testar logo :) aiiii
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: ricardo-reis em 07 de Junho de 2009, 20:17
boa.. :) quem me dera poder brincar com isso já.. :)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 07 de Junho de 2009, 21:15
também já consegui :) Finalmente :)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 07 de Junho de 2009, 21:43
Tive a fazer um teste de distancia e embora não saiba distancias certas, aqui dentro do apartamento apanhou sempre :)
O apartamento tem cerca de 12 metros entre os pontos mais distantes o que já é bom e fui para as divisões e deu sempre. Depois abrir a porta e fui pelo corredor com uns 35 metros e deu sempre. Depois subi para o andar de cima e deixou de dar, uma placa de um prédio não é pequena lol, no entanto quando me aproximei do apartamento por cima do apart onde vivo voltou embora com alguns erros a conseguir fazer algumas comunicações.

GOSTEI :D
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Rebel em 08 de Junho de 2009, 10:21
Tenho lá os 2 módulos e os dois Arduinos mas ainda não fiz nenhum teste porque não arranjo fichas para os módulos e não queria estar a soldar.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Njay em 08 de Junho de 2009, 23:48
Porreiraço Tiago :)! Eu ainda ando a escrever o código (às "mejinhas").
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: DanBar em 09 de Junho de 2009, 17:13
Quem quizer adquirir este módulos onde se compram ?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 09 de Junho de 2009, 17:16
http://www.digicontrole.com/ (http://www.digicontrole.com/)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: jorge_rc em 18 de Junho de 2009, 15:57
Mais ninguem tem desenvolvimentos dos módulos?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 18 de Junho de 2009, 16:03
Mais ninguem tem desenvolvimentos dos módulos?

Época de exames... não deves de ver novidades nos próximos dias. :(
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 18 de Junho de 2009, 16:27
se eu já tivesse o outro arduino já estava ;D não tenho exames...

é posivel comunicar com o arduino atraves de circuitos logicos num dos modulos, e o arduino no outro? é que assim não tinha de gastar mas 30 €...  :P
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 18 de Junho de 2009, 17:04
não, pois os dados são enviados através de comunicação SPI.
Eu digo não a menos que consigas criar um circuito logico para fazer comunicação SPI.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 19 de Junho de 2009, 23:35
Tive a fazer mais uns testes,
Desta vez em casa e não no apartamento.
Coloquei um modulo ao pe do pc onde tenho o router e assim e apanhei em todos os cantos da casa, quando fui para fora se andar à volta da casa apanho, quando me afasto cerca de 2/3 metros começa a ser deixar de apanhar bem, ainda não tinha testado aqui em casa mas fiquei contente pois serve para o que quero :)

Andei a ver melhor a biblioteca e tal e fazer mais uns testes e aquilo da para enviar bastantes dados, mando cerca de 200 caracteres instantâneos e se calhar até dá mais, embora a biblioteca só permita enviar 66bytes de cada vez.

Quando acabar os exames vou começar a fazer a fazer os projectos que tenho em mente usando os módulos RFM12 até lá vou parar :(
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 07 de Julho de 2009, 17:24
Ora vamos lá começar a estudar a coisa xD
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 07 de Julho de 2009, 18:37
Começa a aliviar os exames, começa o ataque.. estou a ver que estas férias vão ser mt activas :D
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: antonio_jose em 07 de Julho de 2009, 19:14
Modulo interessante para o meu robo
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 08 de Julho de 2009, 03:05
Estes ultimos dias tenho andado a brincar um bocadinho com os módulos. Tenho usado a biblioteca que se encontra na net do jeelab. Tenho ver como será a melhor maneira para transferir texto com cerca de 250 caracteres, tenho dividido enviado, do outro lado recebe e vai guardando num vector, etc...

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_i2teYMYP9C0%2FSlP-QeUviWI%2FAAAAAAAAAi0%2Fv7RbWc9nu4g%2Fs400%2FUntitled-122.jpg&hash=3d73dcba62d4a278c90383c7400c21e1791f0923) (http://picasaweb.google.com/josescxavier/Rfm12#5355903940845078882)

Têm notas a vermelho.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: ricardo-reis em 08 de Julho de 2009, 03:34
metRo_ , mete lá uma pic com mais qualidade.. n se vê nd..
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 08 de Julho de 2009, 09:35
metRo_ , mete lá uma pic com mais qualidade.. n se vê nd..
Clica nela, e depois no picasa clica na lupa no canto superior direito ;)

Muito bem metro... qualquer dia o teu robot já anda atrás de ti a ler-te os mails :D
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 21 de Julho de 2009, 15:42
ahh chegaram os megas com bootloader, montei o breduino, e tive a ver o código de teste dos módulos, e reparei que preciso de ligar dois arduinos ao PC, mas o breaduino não pode ser ligado... e agora? lol
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Fifas em 21 de Julho de 2009, 15:49
fazes um programa para acender 1 led ao receber dados.....simples :)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 21 de Julho de 2009, 18:49
ahh chegaram os megas com bootloader, montei o breduino, e tive a ver o código de teste dos módulos, e reparei que preciso de ligar dois arduinos ao PC, mas o breaduino não pode ser ligado... e agora? lol

No que está ligado ao pc para testar podes enviar "2a" por exemplo na consola do Arduino, se receberes OK quer dizer que o outro recebeu, mas se leres o readme da biblioteca explica melhor.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 21 de Julho de 2009, 22:09
ahh, eu pensei que o outro recebia OK, obrigado por esclareceres :)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 21 de Julho de 2009, 22:20
Mas le o readme porque agora não tenho a certeza se é o "a" ou o "s"
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 21 de Julho de 2009, 22:28
falta-me o readme, devo ter apago sem quere :S

então ponho o xmit, no que está ligado ao PC?
e o recv no ''breaduino'' que não está ligado ao PC?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 21 de Julho de 2009, 23:24
coloca o RF12demo nos dois, depois ligas um e configuras-me como diz o readme, o readme está no site da biblioteca, ligas o outro configuras e tentas mandar.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 21 de Julho de 2009, 23:25
http://code.google.com/p/jeelabs/source/browse/trunk/libraries/RF12/examples/RF12demo/README
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 22 de Julho de 2009, 11:47
Não está a ir muito bem  :(

porque não percebi muito do site... outro dia repito, estou ligeiramente desatento hoje.

mais alguem conseguio comunicar?

poderia alguem dizer-me o que se envia a cada um dos módulos, por ordem. Por favor??
obrigado.

EDIT: sei porque não deu... configurei para comunicar a 433Mhz, não é possivel pois não?

depois pensei em muda-los de banda, consegui mudar um para os 866Mhz, mas o outro não me deixa mudar... porque?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 24 de Julho de 2009, 23:54
A minha linha nIRQ não está a querer baixar no receptor lol O problema pode ser do emissor que não envia logo no receptor não baixa pois não tem nada para sinalizar... vou tentar outro aprouch amanhã que hoje já só vejo fios lol
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: ghostbuster em 25 de Julho de 2009, 02:44
pessoal afinal da para funcionar a 433mhz ou nao?se nao porque q tem essa opção?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 25 de Julho de 2009, 03:14
O módulo pode funcionar nas três frequências, no entanto o circuito da antena foi concebido para funcionarem numa determinada frequência e no nosso caso é em 868, há países em que as antenas foram concebidas para outras frequências devido às leis locais.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: msaleiro em 25 de Julho de 2009, 03:19
O integrado que está no módulo permite trabalhar a 4 frequências diferentes. Contudo, a frequência usada depende dos valores de dois condensadores e duas bobines que estão no módulo. Resumindo.. nesse módulo só podem usar uma frequência, apesar de o integrado ser feito para suportar quatro frequências diferentes: 315, 433, 868 e 915 MHz
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: ghostbuster em 25 de Julho de 2009, 03:23
O módulo pode funcionar nas três frequências, no entanto o circuito da antena foi concebido para funcionarem numa determinada frequência e no nosso caso é em 868, há países em que as antenas foram concebidas para outras frequências devido às leis locais.
ok ja percebi, entao para trabalhar a 433 tinha que para alem de mudar a antena mudar os condensadores e bobines  :-\
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 25 de Julho de 2009, 03:34
exactamente :) Já li em alguns blogs pessoal que usando outras frequências consegue mas isso da no máximo para meia dúzia de metros se muito
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: ghostbuster em 25 de Julho de 2009, 03:37
esta aqui uma tabela com as peças e frequancias quem quiser mudar..
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 27 de Julho de 2009, 12:41
Bem, tá mau isto lol

O receptor recebe sempre zeros lol

Mas é estranho que mesmo tirando o emissor da placa, desligando e voltando a ligar a energia ele tmb recebe, isto é, a linha de irq baixa na mesma :| e tenho os códigos de inicialização etc tal como vejo de projectos já feitos...

Será o módulo que tá marado?? :S

EDIT: que interessante lol, mesmo metendo o SS a alto a linha baixa na mesma lol, só se os valores por defeito estiverem ok, mas acho que por defeito nem tem transmissão nem recepção ligadas...
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 27 de Julho de 2009, 12:54
Tens a ligação tal e qual como esta http://lusorobotica.com/index.php/topic,885.msg8817.html#msg8817 ?

Estás a testar o RF12demo?
Tens ambos os módulos na frequência 868?
Leste o readme e fizeste o teste que está lá?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 27 de Julho de 2009, 13:08
Sim tenho essa ligação e ainda meto o RES e o DATA a 1...

Pois quanto ao código não, não estou a usar arduinos...

Estou com um attiny26 e atmega8 para emissor e receptor, respectivamente... a maneira que tenho para debug como não tenho porta série a funcar é com led's e o atmega8 tmb vai mandando para um lcd o que recebe...

Sim tenho 868 ambos, já tentei várias configurações, do guia hoperf, de um zip que foi aqui postado e mesmo de outros sites...
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 01 de Agosto de 2009, 17:19
Fiz um adaptador e depois um cabo para simplificar a ligação dos módulos ao RFM12. Como podem ver na primeira imagem aqueles 5pinos juntos encaixam no Arduino todos seguidos :D
Tem também um foto de uns testes de transferência de um texto de um lado para o outro.

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh6.ggpht.com%2F_i2teYMYP9C0%2FSnRpm5G2YoI%2FAAAAAAAAArM%2FTJu-2bm5SLI%2Fs288%2Fimg_0268_info.jpg&hash=97a30bb1ee5b9a9cc675d2e46853e1cb7f54075c) (http://picasaweb.google.com/josescxavier/RFM12#5365029172990599810)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh6.ggpht.com%2F_i2teYMYP9C0%2FSnRpgH9VUTI%2FAAAAAAAAAq0%2F2Qm9XUU4GzQ%2Fs288%2Fimg_0267.jpg&hash=69ee6c75ff0d435c57cc368ab950384919765daa) (http://picasaweb.google.com/josescxavier/RFM12#5365029056718131506)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSnRph5RPFRI%2FAAAAAAAAAq4%2Fz2qf0MhsxTs%2Fs288%2Fimg_0268.jpg&hash=877b0ebecc55065f69ca706c60df9ba64b2a95f4) (http://picasaweb.google.com/josescxavier/RFM12#5365029087134815506)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh6.ggpht.com%2F_i2teYMYP9C0%2FSnRpjINZP7I%2FAAAAAAAAAq8%2FjL6tqwMkdYo%2Fs288%2Fimg_0269.jpg&hash=a44eee4c425afce59d9b7d57e2dd322ea0cbbc90) (http://picasaweb.google.com/josescxavier/RFM12#5365029108325105586)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSnRpkAyqzLI%2FAAAAAAAAArA%2FXenR7RRTeXU%2Fs288%2Fimg_0271.jpg&hash=638d433474f3f05709c5e0a019b5f54816a5f974) (http://picasaweb.google.com/josescxavier/RFM12#5365029123513830578)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_i2teYMYP9C0%2FSnRplh_1W-I%2FAAAAAAAAArI%2FJ9B0kGdPRpw%2Fs288%2Fimg_0272.jpg&hash=fe5057e4b59e3e3253ba76a41b7af5151dbdf06b) (http://picasaweb.google.com/josescxavier/RFM12#5365029149607287778)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh5.ggpht.com%2F_i2teYMYP9C0%2FSnRoM_ZteiI%2FAAAAAAAAAqw%2FzxCHLINnHJo%2Fs288%2Frfm12info.jpg&hash=475f58e9a8db40027e7fbcd3040c0fb7d827c679) (http://picasaweb.google.com/josescxavier/RFM12#5365027628492093986)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: TigPT em 02 de Agosto de 2009, 17:27
Como vai em termos de software? Temos que começar a descascar isto à séria :D
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 02 de Agosto de 2009, 18:16
Tá fixe  ;D

Eu ainda não saio da cepa torta lol

Ontem consegui apanhar qualquer coisa, mas dava caracteres estranhos, mas tmb não enviava sempre, mas como eu tava a enviar número hexadecimais à sorte até pensei ser disso... então desfiz a breadboard toda e voltei a montar, desta vez com todo o cuidado... e agora a linha de nIRQ não volta a baixar de novo loool, mas verifico os contactos todos e tal e tá tudo como devia estar estar acho...

quando ganhar mais paciência vou rever de novo o código todo lol embora pense não ser disso, pelo menos a parte 'técnica' tenho a enviar os comandos igual ao guia de programação excepto na freq que meti a 868...
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 02 de Agosto de 2009, 18:18
Tu estás-te a referir ao facto do pino 13 estar sempre ligado, ne?

Eu quando isso acontece desligo a fixa da USB(isto é o mesmo que desligar a alimentação) ligo e dá.

Se calhar algum daqueles pinos que não ligamos deviam estar ligados algures.
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 02 de Agosto de 2009, 18:31
O módulo não tem só 12 pinos?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 02 de Agosto de 2009, 18:41
eu queria dizer o led do pino13 do Arduino estar ligado, não era por ai que vias que a nIRQ estava em baixo ou nao?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 02 de Agosto de 2009, 19:00
Ah!!! não, eu não tenho um arduino... vejo que essa linha não baixa pelos dados que vejo no lcd que servem de output da zona do programa onde estou...

mas o problema pode ser do emissor, se não enviar nada a linha de irq provavelmente não se encontra numa situação de descer a low...

mas tenho notado que por vezes o no módulo emissor a linha não baixa tal como dizes e tenho de desligar e volta a ligar... mas isso acontece logo ao ligar a energia e por acaso ultimamente não tem ocorrido....

EDIT: hmm estou a analisar o conteúdo do número de 16bits que recebemos ao enviar em comando 0x0 e estou a tirar conclusões... o sinal forte suficiente e fifo empy vem sempre ambos a 1 (estou a verificar isto mesmo antes de do wait_irq_low...) mas é estranho porque mesmo sem o outro modulo ligado ele detecta sempre sinal forte?? :S
e mais, aparentemente a linha irq acaba por baixar, é preciso é esperar um bocado bem bom lol só que ao mostrar isto como 0's e 1's depois nao consigo ver qual a letra recebida lool, vou ter de limpar o lcd antes, depois vê-se no que dá...
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 04 de Agosto de 2009, 15:25
já dá lol :D :D

Já ao fazer o código emissor tinha a ideia da maneira usada pela application note da atmel para spi por usi era de duvidar.... e o problema era mesmo de lá lol

EDIT: mas.... só me recebe 2 bytes aquilo loool tipo envio 'T' ''i' 'a' 'g' 'o' e tou smp a receber 'T' 'i' 'T' 'i' lol mas já foi um começo receber algo :)
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 04 de Agosto de 2009, 20:46
Tu estás a fazer o código de novo em vez de usares a biblioteca jee-lab, certo?
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 04 de Agosto de 2009, 20:56
Sim, guiei-me pelo guia de programação, as diferenças notórias que tenho em relação a esse guia são o facto de usar o protocolo spi implementado por hardware spi no atmega e por usi no attiny e depois as funções de lidar com os dados fiz as minhas próprias tipo usar union's para poder aceder ao byte directamente para transparência e tal de resto a estrutura óssea está lá...

Mas penso que já topei o problema, ao mudar a velocidade que se define com o comando C6xx em vez de C606 ->57.6kb/s meti C647 -> 7.2kb/s e já recebo 'T''i''a''g',  terá sido só coincidência?? Não alterei mais nada no código!! Vou fazer mais testes... E sim tenho definida a mesma velocidade em ambos os módulos...

EDIT: Usei agora C671 -> 4.8 Kb's e já recebi 'Tiago!', só ficou o checksum perdido pelo caminho hehe, mas tira-se o '!' e resulta xD vou ver se descubro porque acontece isto :S
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 22 de Setembro de 2009, 00:08
Ora finalmente já dá!!!!!!

Agora que recebi o programador avrisp mkII, verifiquei mesmo que o attiny afinal estava bom de saude lol, o programador caseiro é que já falhava, então também meti o cristal (baixo, tou a usar de 4Mhz que era um valor pequeno para tentar a programação com o programador caseiro) no receptor e não é que deu logo looool

Afinal o código estava direito, tantas dores de cabeça ao matutar naquilo hehe

Cumprimentos
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 22 de Setembro de 2009, 15:07
Isto quer dizer que tens o teu próprio código para fazer comunicar os módulos? Será que dava para utilizar em C? é que o outro esta muito martelado para o que o gajo quer fazer com eles e se calhar o teu está melhor para quem quer perceber o código e coisas mais simples como enviar e receber dados só.

PS: Parabéns ;) É que eu uma vez tentei fazer o meu código e nada :(
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 22 de Setembro de 2009, 15:34
Obrigado  :)

Deves estar a fazer alguma coisa mal, às vezes até pode ser na própria inicialização do módulo ou assim, se quiseres posso dar uma olhadela a ver se tá tipo o meu.

O meu está feio e sem comentários quase lol já tantas voltas lhe tinha dado à conta de não funcionar xD

Vou ver se sei colocar aqui um rar...

Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 22 de Setembro de 2009, 15:46
Eu neste momento não tenho o meu, mas era muito baseado na biblioteca do gajo pois nunca consegui colocar a comunicar um dispositivo SPI com código feito por mim e depois acabo por ir buscar as bibliotecas. Esse código que tens é em C, certo?

Tenho que ver se encontro isso para dares uma vista de olhos. Mas tenho que tentar o teu aumentando a velocidade se funciona aqui. Isso visto estar em C deve funcionar sem grandes alterações no Arduino e sempre dá para aprender.
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 22 de Setembro de 2009, 17:17
Por spi tens duas maneiras de comunicar, ou implementas tu próprio spi em "quaisquer" pinos através de software sendo que tens de controlar manualmente tudo ou usas spi por hardware que é só usares os registos já para o efeito que fazem tudo por ti, basicamente só tens de programar o modo e ao carregar o registo de dados ele manda tudo automaticamente.

EDIT: ora que coisa, o meu attiny agora só funciona ligar directamente o pino de reset a 5v, se meter 5v->R->pino, o pino fica a 0,3v :S
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 22 de Setembro de 2009, 18:53
Essa R é de que valor? é mais por curiosidade que por efeitos práticos :p Pois o mais certo é ser uma resistencia de valores normais à volta dos k.

Isso é muito estranho, de certeza que o pino não está a curto-circuitar com nada?
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 22 de Setembro de 2009, 18:59
é de 10k.

Não está, so tenho aquilo no reset, é estranho porque foi de repente... deixou de dar o micro! andei a verificar e reparei que o reset que tá marado  :-\
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 22 de Setembro de 2009, 19:16
Troca de resistencia.
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 22 de Setembro de 2009, 19:24
Já troquei  :(

Parece que o pino está configurado para output  :-\
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 22 de Setembro de 2009, 19:32
estou :S
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 22 de Setembro de 2009, 19:57
Hmm, será algum fio pelo meio da breadboard a fazer a algum shunt? Vou ver...  :o
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: metRo_ em 22 de Setembro de 2009, 20:09
É o que me parece a mim :S

Já vi o código mt mt por alto. Vou assim que tiver um tempo analisar com muita calma e obrigado por disponiblizares.
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 22 de Setembro de 2009, 20:54
De nada, é verdade tmb meti nem disse nada, o tiny emite, o mega8 recebe. Como demorei muito tempo para meter a dar nem sei se vou ter tempo agora para meter os dois a fazer ambas as coisas  :(

Ora não me parece haver contacto algum por baixo da bread...
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 24 de Setembro de 2009, 21:19
é mesmo do tiny... meti outro, um tiny461 no mesmo sitio de encaixe e tá ok... poderá ter sido eu sem querer desabilitar do pino a função reset? se assim for, talvez só com high voltage parallel programming acho ou qualquer coisa assim... mas isso já só com uma dragon ou assim é que consigo fazer  :-\
vou ter de ir aos labs pedir para usar uma...

cumpzz
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Njay em 24 de Setembro de 2009, 22:29
poderá ter sido eu sem querer desabilitar do pino a função reset?

Sim, isso pode acontecer, às vezes até se ocorrer um erro na programação (devido por exemplo a um cabo que se solta ou um mau contacto num pino enquanto ele está a ser programado).
Título: Re:[Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: amando96 em 12 de Outubro de 2009, 13:44
Hoje agarrei nisto e tive a ler os datasheets, uns sites, fazer ligações e um bocado de código e já funcionam.

Ainda tenho alguns problemas de ruído mas já consigo mandar dados e receber respostas.

A ver se faço uns esquemas das ligações e o software para partilhar convosco.

Para já fica uma foto para lhe irem ganhado o gosto ;)

SNIP*
Foto do esquema, o modulo é ligado onde estão os pins, com a parte da antena virada para o topo da breadboard.
SNIP*

Código: [Seleccione]
// Configure some values in EEPROM for easy config of the RF12 later on.
// 2009-05-06 <jcw@equi4.com> http://opensource.org/licenses/mit-license.php
// $Id: $

#include "RF12.h"
#include <util/crc16.h>
#include <avr/eeprom.h>

typedef struct {
    uint8_t nodeId;
    uint8_t group;
    char msg[RF12_EEPROM_SIZE-4];
    uint16_t crc;
} RF12Config;

static RF12Config config;

char cmd;
uint8_t value, arg;
uint8_t testbuf[RF12_MAXDATA];

static void addCh(char* msg, char c) {
    uint8_t n = strlen(msg);
    msg[n] = c;
}

static void addInt(char* msg, uint16_t v) {
    if (v > 10)
        addInt(msg, v / 10);
    addCh(msg, '0' + v % 10);
}

static void saveConfig() {
    // set up a nice config string to be shown on startup
    memset(config.msg, 0, sizeof config.msg);
    strcpy(config.msg, " ");
   
    uint8_t id = config.nodeId & 0x1F;
    addCh(config.msg, '@' + id);
    strcat(config.msg, " i");
    addInt(config.msg, id);
    if (config.nodeId & 0x20)
        addCh(config.msg, '*');
   
    strcat(config.msg, " g");
    addInt(config.msg, config.group);
   
    strcat(config.msg, " @ ");
    static uint16_t bands[4] = { 315, 433, 868, 915 };
    uint16_t band = config.nodeId >> 6;
    addInt(config.msg, bands[band]);
    strcat(config.msg, " MHz ");
   
    config.crc = ~0;
    for (uint8_t i = 0; i < sizeof config - 2; ++i)
        config.crc = _crc16_update(config.crc, ((uint8_t*) &config)[i]);

    // save to EEPROM
    for (uint8_t i = 0; i < sizeof config; ++i) {
        uint8_t b = ((uint8_t*) &config)[i];
        eeprom_write_byte(RF12_EEPROM_ADDR + i, b);
    }
   
    if (!rf12_config())
        Serial.println("config save failed");
}

static void showHelp() {
    Serial.println();
    Serial.println("Available commands:");
    Serial.println("  <nn> i    - set node ID (standard node ids are 1..26)");
    Serial.println("              (or enter an upper case 'A'..'Z' to set id)");
    Serial.println("  <n> b     - set MHz band (4 = 433, 8 = 868, 9 = 915)");
    Serial.println("  <nnn> g   - set network group (RFM12 only supports 212)");
    Serial.println("  <n> c     - set collect mode (advanced use, normally 0)");
    Serial.println("  <n> a     - send test packet of 5 x <n> bytes, with ack");
    Serial.println("  <n> s     - send test packet of 5 x <n> bytes, no ack");
    Serial.println("Current configuration:");
    rf12_config();
}

void setup() {
    Serial.begin(57600);
    Serial.print("\n[RF12DEMO]");

    if (rf12_config()) {
        config.nodeId = eeprom_read_byte(RF12_EEPROM_ADDR);
        config.group = eeprom_read_byte(RF12_EEPROM_ADDR + 1);
    } else {
        config.nodeId = 0x41; // node A1 @ 433 MHz
        config.group = 0xD4;
        saveConfig();
    }
   
    for (uint8_t i = 0; i < sizeof testbuf; ++i)
        testbuf[i] = i;
       
    showHelp();
}

void loop() {
    if (Serial.available()) {
        char c = Serial.read();
        if ('0' <= c && c <= '9')
            value = 10 * value + c - '0';
        else if ('a' <= c && c <='z') {
            Serial.print("> ");
            Serial.print((int) value);
            Serial.println(c);
            switch (c) {
                default:
                    showHelp();
                    break;
                case 'i': // set node id
                    config.nodeId = (config.nodeId & 0xE0) + (value & 0x1F);
                    saveConfig();
                    break;
                case 'b': // set band: 4 = 433, 8 = 868, 9 = 915
                    value = value == 8 ? RF12_868MHZ :
                            value == 9 ? RF12_915MHZ : RF12_433MHZ;
                    config.nodeId = (value << 6) + (config.nodeId & 0x3F);
                    saveConfig();
                    break;
                case 'g': // set network group
                    config.group = value;
                    saveConfig();
                    break;
                case 'c': // set collect mode (off = 0, on = 1)
                    if (value)
                        config.nodeId |= 0x20;
                    else
                        config.nodeId &= ~0x20;
                    saveConfig();
                    break;
                case 'a': // send test packet of 5 x N bytes, request an ack
                case 's': // send test packet of 5 x N bytes, no ack
                    cmd = c;
                    arg = value < 9 ? 5 * value : sizeof testbuf;
                    break;
            }
            value = 0;
        } else if ('A' <= c && c <= 'Z') {
            config.nodeId = (config.nodeId & 0xE0) + (c & 0x1F);
            saveConfig();
        } else if (c > ' ')
            showHelp();
    }

    if (rf12_recvDone()) {
        Serial.print(rf12_crc == 0 ? "OK" : " ?");
        for (uint8_t i = 0; i < rf12_len + 2 && i < 20; ++i) {
            Serial.print(' ');
            Serial.print((int) rf12_buf[i]);
        }
        Serial.println();
       
        if (rf12_crc == 0 && (rf12_hdr & ~RF12_HDR_MASK) == RF12_HDR_ACK) {
            Serial.println(" -> ack");
            uint8_t addr = rf12_hdr & RF12_HDR_MASK;
            rf12_sendStart(RF12_HDR_CTL | RF12_HDR_DST | addr, 0, 0);
        }
    }

    if (cmd && rf12_canSend()) {
        Serial.print(" -> ");
        Serial.print((int) arg);
        Serial.println(" b");
        rf12_sendStart(cmd == 'a' ? RF12_HDR_ACK : 0, testbuf, arg);
        cmd = 0;
    }
}

Depois de fazer upload deste código, fazer ligação por serial e enviar o comando "<1>i" para o arduino por serial, seguido do comando "<8>b" para que este fique configurado como defice 1 na frequência de 868Mhz

De seguida fazer upload para o segundo arduino do mesmo código e configurar com "<2>i" e "<8>b" para ficar como device 2 e a mesma frequência.

Depois disto, e de tudo ligado, basta enviar o comando de teste "<2>a" ao que o outro dispositivo de ve de responder com "10"

Se isto acontecer é porque tem tudo bem ligado e os módulos a funcionar.

Depois disto vamos fazer um código nosso para podermos enviar e receber dados à vontade, mas já dá para ver se está tudo ok.

Ahh em anexo está a biblioteca.

o meu responde 10 b, é isso que devo receber?? obg :)
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: Tyran em 26 de Dezembro de 2009, 00:37
Bem andei a enviar umas coisitas por RF com o arduino com o código do jeelabs e deparo-me com a minha falha em configurar o arduino 0017 ou então o terminal de comunicações dele está básico demais que resulta em não conseguir converter para hexa por exemplo o que lá vejo e como não ser ler "Tiago" em decimal  ;D

Fica em anexo uma programa que fiz para ver, sei que existe aos pontapés mas assim tmb treinei o dedo  :)

Nota: Quem confiar tem o exe quem não confiar (e fazem muito bem!  ;D) tem o código também  :D
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: ricardo-reis em 19 de Janeiro de 2011, 16:24
venho pedir uma dica sobre um erro que me está a dar ao compilar o programa rf12demo, na versão 21 do ide do arduino.


C:\Program Files\arduino-0021\libraries\RF12\RF12sio.cpp:5:19: error: Ports.h: No such file or directory
In file included from C:\Program Files\arduino-0021\libraries\RF12\RF12sio.cpp:7:
C:\Program Files\arduino-0021\libraries\RF12/RF12sio.h:8: error: 'MilliTimer' does not name a type
C:\Program Files\arduino-0021\libraries\RF12\RF12sio.cpp: In member function 'void RF12::send(uint8_t)':
C:\Program Files\arduino-0021\libraries\RF12\RF12sio.cpp:100: error: 'sendTimer' was not declared in this scope
C:\Program Files\arduino-0021\libraries\RF12\RF12sio.cpp: In member function 'uint8_t RF12::poll()':
C:\Program Files\arduino-0021\libraries\RF12\RF12sio.cpp:136: error: 'ackTimer' was not declared in this scope
C:\Program Files\arduino-0021\libraries\RF12\RF12sio.cpp:153: error: 'ackTimer' was not declared in this scope
C:\Program Files\arduino-0021\libraries\RF12\RF12sio.cpp:153: error: 'sendTimer' was not declared in this scope
C:\Program Files\arduino-0021\libraries\RF12\RF12sio.cpp:155: error: 'sendTimer' was not declared in this scope
C:\Program Files\arduino-0021\libraries\RF12\RF12sio.cpp:172: error: 'ackTimer' was not declared in this scope

este aqui acima é o output do erro que dá ao tentar compilar, alguma sugestão acerca de como contornar isto?

a biblioteca foi copiada pra dentro da pasta libraries do ide. dentro da pasta da biblioteca rf12 estão os ficheiros: (como era suposto)
RF12.cpp
RF12.h
RF12sio.cpp
RF12sio.h
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: senso em 19 de Janeiro de 2011, 18:17
Diria que o primeiro erro que está a dar cabo de tudo é ele não encontrar o Ports.h , depois é uma cascata de tralha que acontece por causa de ele não encontrar esse mesmo .h
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: ricardo-reis em 19 de Janeiro de 2011, 18:28
pois, por isso postei os ficheiros que tenho na biblioteca.. mas suponho que estejam todos (da biblioteca) já que fiz o download no site da jeelabs. o ports.h fará parte desta biblioteca ou é preciso mais alguma?

EDIT: faltava-me a biblioteca Ports.. obrigado kast, pelo envio.. ;)
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: dropes em 21 de Abril de 2013, 19:55
Estando com 3 módulos na gaveta resolvi pegar neles já que os paguei.
Consegui esta semana pô-los a comunicar após alguma guerra entre linguagens, lá ficou em arduino por enquanto, depois mudo.

Segui os códigos desta página: https://github.com/LowPowerLab/RFM12B (https://github.com/LowPowerLab/RFM12B)
Quanto às ligações não houve problemas, o @TigPT tinha colocado aqui umas fotos mas desapareceram...
http://lusorobotica.com/index.php/topic,885.msg8817.html#msg8817 (http://lusorobotica.com/index.php/topic,885.msg8817.html#msg8817)

Então coloquei-os afastados 10metros com duas paredes a 115.2 kbps e CRC.
Não funcionou, depois aproximei um pouco só com uma parede e já deu bem.

A minha dúvida é que no manual diz poder ir até 200metros numa zona aberta, porque não aceita 10metros numa zona fechada, a potência de emissão é configurável ?!

ps: o módulo RFM12b trabalha com 3.3V mas pode ser alimentado a 5V sem o avariar (não vai funcionar), li isso na página oficial sobre versões.
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: senso em 21 de Abril de 2013, 21:23
Reduz o baud-rate, e tem atenção á configuração, que esses módulos têm muitas, muitas opções, e tens as antenas com o devido tamanho?
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: tarquinio em 21 de Abril de 2013, 22:28
Boas.
Eu tenho um projecto que usa 20 modulos desses. Não percebendo nada sobre antenas, li um pouco sobre o assunto e vi que era normal usar um fio especifico como antena, e que o comprimendo do fio deveria ser proporcional ao comprimento de onda (já n me lembro da fórmula). Com o tamanho certo o alcance aumentou um bocado, mas daí aos 200m... Nem perto disso, consegui praí uns 50 max. reduzindo a data rate imagino que seja jácil aumentar a distancia, mas nunca sequer mexi nisso porque nunca precisei...
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: dropes em 21 de Abril de 2013, 22:48
Sim, deve aumentar a distância baixando o baud-rate.
A antena está para 1/4 de onda (82.2mm), foram os fios que vieram juntamente.
As configurações até metem medo, então o que é preciso fazer antes de enviar ou receber...

@tarquinio, que linguagem usaste no teu projecto, tentei vários exemplos em bascom mas sem sucesso?
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: tarquinio em 21 de Abril de 2013, 23:41
Como na maioria dos meus projectos, foi em C num arduino... Com a library dos Jeelabs.
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: marciosilvabr em 30 de Março de 2014, 22:38
Pessoal tenho um arduino Leonardo e não consigo de jeito nenhum fazer um código para ler um sinal rf434, alguém poderia me ajudar com um código que funcione no Arduino Leonardo com as bibliotecas e tudo mais??

Primeiramente queria tentar ler o sinal de um equipamento que envia sinais  nesta frequencia, e depois queria montar um transmissor e um receptor mais não tenho tanto conhecimento assim estou apanhando demais, comprei a mais de 1 ano,  assim que comprei tentei por mais de 1 mês, não consegui então os guardei, agora estou precisando memo, e já faz 2 mees que tento comunicar e não consigo, alguém poderia me ajudar????
Título: Re: [Desenvolvimento] Módulos RFM12-868D (Emissor e Receptor a 866MHz) da HOPERF
Enviado por: senso em 30 de Março de 2014, 23:36
Abre um tópico novo e explica BEM o que queres fazer e especifica o que é que realmente queres ler e com que sensores e afins.