Page 1 of 1
Problema di trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 08:13
by Fagos
ciao a tutti,
avrei problemi di questo tipo:
dopo aver acquistato due modulini, trasmettitore e ricevitore a 433Mhz della aurel, mi sembra siano in modulazione di ampiezza e costati relativamente poco, ho tentato di far comunicare 2 atmel tra di loro collegandoli alla seriale. il trasm a txd del primo atmel e il ricev al rxd del secondo atmel.
sono certo che l'alimentazione e i collegamenti sono giusti, ma quando provo a trasmettere il ricevitore fa cose strane e i dati che ricevo non sono uguali a quelli trasmessi o nel caso peggiore non ricevo nulla. li sto monitorando per mezzo di led che ho collegato ad una porta dell' atmel ricevitore.
no so proprio da dove iniziare, pensavo sarebbe stato più facile realizzare questa comunicazione.
ho provato a tutte le velocità anche a 300baud ma nulla da fare.
mi potreste aiutare?
ciao
Re: Problemi con trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 08:24
by flz47655
Ciao, che modello di ricetrasmettitori hai?
Re: Problemi con trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 08:44
by Fagos
Re: Problemi con trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 09:29
by flz47655
I moduli utilizzano la trasmissione OOK.. non molto immune ai disturbi!
Hai provato tenendo i moduli a distanze e in posizioni diverse?
Il primo datasheet ha anche un errore: High logic level 5.5v sia min che max..
Ciao
Re: Problemi con trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 09:52
by Fagos
ho fatto un sacco di prove,
condensatori sull' alimentazione,
l'antenna è 17.3 cm ed è vicinissima al pin del modulo, l'ho fatta con un filo rigido.
sto provando a velocità diverse, ogni tanto quache dato sembra che arrivi giusto,
quindi penso che i moduli funzionano. giusto?
ciao
Re: Problemi con trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 10:27
by deluca
@fagos,
secondo me non dipende nè dalla alimentazione, nè dalla radiofrequenza,
quello che dici tu capita con questo tipo di modulini con modulazione ook che di norma non vengono pilotati con il protocollo standard della rs232.
questi moduli quasi sempre vengono accoppiati a chip dedicati che codificano e decodificano i dati in modo diversi, appunto OOK.
posso sapere che tipo di dati vuoi trasmettere attraverso la seriale,
sono comandi formati da stringhe alfanumeriche? tipo: "test1234"
se così fosse non puoi trasmettere in questo formato... avrai bisogno di convertire ognuno dei tuoi caratteri ascii in codice manchester in formato binario.
fammi sapere.
poi ti spiego il perchè
ciao
Re: Problemi con trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 10:46
by Fagos
proprio così
voglio mandare dei comandi tipo parole: accendi, spegni, apri, chiudi...
con la seriale uso l'istruzione Print a 9600bps che mi sembra bassa
Print "apri"
oppure
Print "1234"
con input dovrei ricevere i dati ma purtroppo arrivano cose strane
cosa dovrei fare allora?
Re: Problemi con trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 11:11
by zillo89
prima o dopo sta cosa potrà interessare anche me, visto che sto realizzando un braccio robotico.
pensavo di controllarlo tramite wireless o moduli rf 433.
vorrei costruire un telecomando per comandarlo da lontano attraverso un joystick e quindi avrei la necessità di inviare le posizioni al braccio robotico tramite appunto una trasmissione senza fili.
così facendo potrei mettere il braccio su una base mobile con ruote e manovrare anche il robot da lontano.
Re: Problema di trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 13:19
by flz47655
Penso che sia così: in pratica se devi trasmettere delle stringhe ascii può capitare che i bit siano ad esempio così 00000111, la modulazione OOK funziona così: quando è 0 non trasmette, quando è 1 trasmette la portante (ovvero un segnale con ampiezza costante a 433 MHz)
Il problema è che sequenze di 1 e 0 difficilmente possono essere discriminate in quanto è facile confondere quanti 0 e quanti 1 sono stati trasmessi (problema di sincronizzazione) in quanto la trasmissione può ritardi non costanti.
Una codifica come manchester
http://it.wikipedia.org/wiki/Codifica_Manchester permette di eliminare lunghe sequenze di 0 o 1, in questo modo elimini il problema (il lato negativo è che la banda per forza di cose diminuirà).
Non ti devi scervellare molto per implementare la codifica, basta una porta XOR col clock della trasmissione
http://www.microst.it/tutorial/manchester_3.htmlCiao
Re: Problema di trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 13:29
by deluca
è vero che basta l'xor per codificare ma per decodificare è sempre necessario il micro e senza voler aggiungere nulla esternamente si può fare tutto con il codice.
nella trasmissione OOK i dati da trasmettere, codificati in codice manchester, inoltre devono essere preceduti da un codice che viene chiamato di preambolo...normalmente si utilizza precedere con il famoso "AAAA" che corrisponde a 2 volte "10101010" in binario, così da iniziare l'instaurazione del sincronismo tra il tx e l'rx. provo a vedere se trovo un codice bascom che ho scritto tempo fa per dimostrare quanto detto fin qui.
ciao
Re: Problema di trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 13:38
by deluca
Trovato....
puoi simularlo con il sim integrato di bascom-avr lasciando la direttiva $sim
chiaramente la parte encode_manchester la implementerai sul micro per il TX mentre la
decode_manchester sul micro che gestisce la ricezione.
ciao
- Code: Select all
$sim
'*******************************************************************************
' Studio ed Implementazione del codice Manchester per la trasmissione dati con
' Moduli Rx E Tx 433mhz AM che usano modulazione OOK
' -----------------------------------------------------------------------------
' autore: Giovanni De Luca - INFN-LNS
'*******************************************************************************
$regfile "m328pdef.dat"
$crystal = 16000000
$baud = 2400 '1200
'-------------------------------------------------------------------------------
Declare Function Encode_manchester(byval Temp As Byte) As Word
Declare Function Decode_manchester(byval Tempw As Word ) As Byte
Dim Comando As String * 20
Dim Char As String * 1
Dim Numero(20) As Byte
Dim Num As Byte
Dim Tempword As Word
Dim Data_error As Bit
Dim Len_cmd As Byte
Dim J As Byte
'------------------------------[ Demo prog ]------------------------------------
Do
Input "Char:" , Comando
Len_cmd = Len(comando)
For J = 1 To Len_cmd
Char = Mid(comando , J , 1)
Numero(j) = Asc(char)
Next J
For J = 1 To Len_cmd
Tempword = Encode_manchester(numero(j))
Print Bin(tempword)
Num = Decode_manchester(tempword)
Print Chr(num)
Next J
Loop
End
'----------------------------[ Make_manchester ]--------------------------------
Sub Encode_manchester(byval Temp As Byte) As Word
Local Bit_number As Byte
Local Manchester As Word
Bit_number = 8
Do
Shift Manchester , Left , 2
Decr Bit_number
If Temp.bit_number = 1 Then
Manchester = Manchester + 1 '01
Else
Manchester = Manchester + 2 '10
End If
Loop Until Bit_number = 0
Encode_manchester = Manchester
End Sub
'-------------------------[ Decode_manchester ]---------------------------------
Sub Decode_manchester(byval Tempw As Word ) As Byte
Local Bit_number As Byte
Local Manchester As Word
Local Temp_1 As Word
Bit_number = 8
Data_error = 0
Do
Shift Manchester , Left , 1
Decr Bit_number
Temp_1 = Tempw And &B1100_0000_0000_0000
If Temp_1 = &B0100_0000_0000_0000 Then Incr Manchester '01
If Temp_1 = &B1100_0000_0000_0000 Or Temp_1 = 0 Then Set Data_error '11 or 00
Shift Tempw , Left , 2
Loop Until Bit_number = 0
If Data_error = 0 Then
Decode_manchester = Manchester
Else
Decode_manchester = 0
End If
Reset Data_error
End Sub
'-------------------------------------------------------------------------------
Re: Problema di trasmissione dati con modulini Aurel

Posted:
13 Sep 2012, 20:41
by Fagos
deluca ?
funziona.
prima ho simulato, certo non capisco il funzionamento però funziona.
ho messo su atmega16 il codice encode e su un atmega328p il decode.
ho aggiunto come mi hai suggerito "AA" all'inizio della stringa, anche se ho visto che funziona comunque anche senza
ora devo creare i comandi e poi filtrarli in ricezione con gli IF o Selectcase (almeno penso) ma questa è un'altra cosa.
ti ringrazio sempre per la disponibilità.
PS. ho provato anche con baud 4800 e funziona, devo provare quale è il limite del baud.
ciao
Re: Problemi con trasmissione dati con modulini Aurel

Posted:
31 Oct 2012, 09:29
by legacy
zillo89 wrote:prima o dopo sta cosa potrà interessare anche m
io per tele-controllare robot sto usando il pad della playstation1
esiste anche la versione wireless (non ufficiale SONY)
e' particolarmente ergonomico ed ha tutto quelle che mi serve
2 pad analogici/digitali, e pulsanti a suff
nel caso, apriamo topic su sez robotica