Pages: 1 [2]   Go Down
Author Topic: Moduli 433mhz  (Read 3242 times)
0 Members and 1 Guest are viewing this topic.
Dueville (VI)
Online Online
Edison Member
*
Karma: 28
Posts: 1722
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Per trasmettere basta fare uno XOR col clock del segnale..
Per ricevere il codice diventa un pò più complesso.. ma non impossibile da scrivere, in una mezz'ora dovresti farcela

Ciao
ho paura che per un ragazzo di 13 anni quella mezz'ora diventi 7 giorni.
Comunque, non c'è nessun chip che si collega via seriale ad arduino e ci pensa lui alla modulazione?
xbee o nrf24l01+ hanno una librerie dedicata  smiley-mr-green
gli nrf24l04+ ce gli ho già, gli xbee non mi piacciono: troppo costosi.

Vorrei semplicemente usare i modulini che ho già, non è che eseste un chip che codifica e decodifica i dati x mandarli al modulino?
Logged

Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield.
Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586

Offline Offline
Full Member
***
Karma: 4
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@cece
visto che non demordi quello che posso fare per aiutarti è allegarti un semplicissimo stralcio di codice C che realizza l'algoritmo.
il codice Encode converte in manch un byte, mentre l'encode riporta il  codice in un byte....

la parte encoder manchester:
Code:
void EncodeData(BYTE txbyte)
{
int i,j,b,me; //me=manchester encode int
b = txbyte;

for (i=0; i<2; i++) {
me = 0; // txbyte codificato manchester
for (j=0 ; j<4; j++) {
me >>=2;
if (bit_test(b,0) )
me |= 0b01000000; // 1->0
else
me |= 0b10000000; // 0->1
b >>=1;
}
putc(me);
}
}

questa è la parte decoder manchester:
Code:
BYTE DecodeData(BYTE encoded)
{
BYTE i,dec,enc,pattern;
enc = encoded;

if (enc == 0xf0) // start/end condition encountered
return 0xf0;
dec = 0;
for (i=0; i<4; i++) {
dec >>=1;
pattern = enc & 0b11;
if (pattern == 0b01) // 1
bit_set(dec,3);
else if (pattern == 0b10)
bit_clear(dec,3); // 0
else
return 0xff; // codice illegale
enc >>=2;
}
return dec;
}

esistono codici che ho scritto in altri linguaggi ..... ma questo è il più semplice che potresti utilizzare per la tua applicazione.
ciao
« Last Edit: September 14, 2012, 10:33:35 am by cyclone » Logged

Dueville (VI)
Online Online
Edison Member
*
Karma: 28
Posts: 1722
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@cece
visto che non demordi quello che posso fare per aiutarti è allegarti un semplicissimo stralcio di codice C che realizza l'algoritmo.
il codice Encode converte in manch un byte, mentre l'encode riporta il  codice in un byte....

la parte encoder manchester:
Code:
void EncodeData(BYTE txbyte)
{
int i,j,b,me; //me=manchester encode int
b = txbyte;

for (i=0; i<2; i++) {
me = 0; // txbyte codificato manchester
for (j=0 ; j<4; j++) {
me >>=2;
if (bit_test(b,0) )
me |= 0b01000000; // 1->0
else
me |= 0b10000000; // 0->1
b >>=1;
}
putc(me);
}
}

questa è la parte decoder manchester:
Code:
BYTE DecodeData(BYTE encoded)
{
BYTE i,dec,enc,pattern;
enc = encoded;

if (enc == 0xf0) // start/end condition encountered
return 0xf0;
dec = 0;
for (i=0; i<4; i++) {
dec >>=1;
pattern = enc & 0b11;
if (pattern == 0b01) // 1
bit_set(dec,3);
else if (pattern == 0b10)
bit_clear(dec,3); // 0
else
return 0xff; // codice illegale
enc >>=2;
}
return dec;
}

esistono codici che ho scritto in altri linguaggi ..... ma questo è il più semplice che potresti utilizzare per la tua applicazione.
ciao

cyclone, di dove sei, che ti devo proprio offrire una pizza?
Logged

Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield.
Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586

Dueville (VI)
Online Online
Edison Member
*
Karma: 28
Posts: 1722
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

scusa, cyclone ma non riesco a compilare  smiley-confuse
errore dell' encoder con l'ide 0022:
Quote









sketch_sep14a.cpp:18:9: error: macro "putc" requires 2 arguments, but only 1 given
sketch_sep14a:-1: error: variable or field 'EncodeData' declared void
sketch_sep14a:-1: error: expected `)' before 'txbyte'
sketch_sep14a:0: error: variable or field 'EncodeData' declared void
sketch_sep14a:0: error: expected `)' before 'txbyte'
Logged

Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield.
Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586

Offline Offline
Full Member
***
Karma: 4
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@cece,
ti ricordi cosa avevi chiesto? se non ricordo male uno stralcio di codice.... io ne ho postati 2  smiley-lol
naturalmente scherzo e capisco le tue difficoltà smiley

il codice che ti ho postato è in formato standard C .... e si tratta del pseudo-codice per mostrarti l'agoritmo di
encode e decode manchester.... non puoi prenderlo e compilarlo senza adattarlo al tuo SV.

Hai capito come funziona?
Se SI allora prova a riadattarlo.... se è no, devi trovare altre soluzioni o scopiazzare dalla rete.


Logged

Dueville (VI)
Online Online
Edison Member
*
Karma: 28
Posts: 1722
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@cece,
ti ricordi cosa avevi chiesto? se non ricordo male uno stralcio di codice.... io ne ho postati 2  smiley-lol
naturalmente scherzo e capisco le tue difficoltà smiley

il codice che ti ho postato è in formato standard C .... e si tratta del pseudo-codice per mostrarti l'agoritmo di
encode e decode manchester.... non puoi prenderlo e compilarlo senza adattarlo al tuo SV.

Hai capito come funziona?
Se SI allora prova a riadattarlo.... se è no, devi trovare altre soluzioni o scopiazzare dalla rete.



ok, allora scarico un compilatore x C standard, compilo il tutto e carico l'hex sull' atmega col pickit2 smiley-grin
Logged

Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield.
Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586

Parma
Offline Offline
Edison Member
*
Karma: 19
Posts: 2322
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma non ti conviene cercare di capire il codice? Impari qualcosa e ne trai sicuramente più soddisfazione che stare a perdere tempo con compilatori C magici..
Logged

Dueville (VI)
Online Online
Edison Member
*
Karma: 28
Posts: 1722
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma non ti conviene cercare di capire il codice? Impari qualcosa e ne trai sicuramente più soddisfazione che stare a perdere tempo con compilatori C magici..
eh si, scherzavo, quando ho dempo do un occhio al codice (e ringrazio ancora cyclone).
Se non ci rieco invito harry potter a cena, che ieri sera ha fatto miracoli smiley-grin
Logged

Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield.
Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586

Dueville (VI)
Online Online
Edison Member
*
Karma: 28
Posts: 1722
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

oggi ho trovati questa libreria: https://github.com/mchr3k/arduino-libs-manchester
non ci sono esempi e quindi non capisco bene come usarla, qualcuno mi aiuta?
Logged

Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield.
Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586

Teramo
Offline Offline
Jr. Member
**
Karma: 0
Posts: 76
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

un "esempio" lo trovi in basso, basta scorrere la pagina smiley-wink
Logged

Dueville (VI)
Online Online
Edison Member
*
Karma: 28
Posts: 1722
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

un "esempio" lo trovi in basso, basta scorrere la pagina smiley-wink
Grazie, ma l'avevo già visto, il casino è mettere insieme tutto
Logged

Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield.
Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,
anch'io recentemente ho avuto a che fare con questi moduli.
Per il test che ho condotto, ho usato oltre all'Arduino (per ricevere) anche un secondo Atmega328 in standalone (in trasmissione).
Ho utilizzato la libreria VirtualWire con i seguenti codici:

<...>

Vedi se riesci a far funzionare il tutto.

Un saluto,
Tredipunta.

Pensate sia possibile utilizzare questa libreria con un attiny85 ?
Se provo a selezionarlo come destinazione, anche eliminando i riferimenti alla seriale, ho errori di compilazione:
C:\Program Files (x86)\arduino-1.0.1\libraries\VirtualWire\VirtualWire.cpp: In function 'void vw_setup(uint16_t)':
C:\Program Files (x86)\arduino-1.0.1\libraries\VirtualWire\VirtualWire.cpp:263: error: 'TCCR1A' was not declared in this scope
C:\Program Files (x86)\arduino-1.0.1\libraries\VirtualWire\VirtualWire.cpp:264: error: 'TCCR1B' was not declared in this scope
C:\Program Files (x86)\arduino-1.0.1\libraries\VirtualWire\VirtualWire.cpp:264: error: 'WGM12' was not declared in this scope


stranamente con un attiny84 invece sembra ok

Anche io volevo utlizzare questi moduletti per dei sensori remoti di temperatura e volevo stare compatto ...
Logged

_____
MazE

Pages: 1 [2]   Go Up
Jump to: