Problema di trasmissione dati con modulini Aurel

Sezione dedicata al sistema di sviluppo BASCOM-AVR per i micro AVR
At90s, Attiny, Atmega e Xmega

Problema di trasmissione dati con modulini Aurel

Postby Fagos » 13 Sep 2012, 08:13

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
Last edited by Fagos on 13 Sep 2012, 11:17, edited 1 time in total.
User avatar
Fagos
 
Posts: 100
Joined: 31 Aug 2011, 15:01

Re: Problemi con trasmissione dati con modulini Aurel

Postby flz47655 » 13 Sep 2012, 08:24

Ciao, che modello di ricetrasmettitori hai?
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16


Re: Problemi con trasmissione dati con modulini Aurel

Postby flz47655 » 13 Sep 2012, 09:29

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
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Problemi con trasmissione dati con modulini Aurel

Postby Fagos » 13 Sep 2012, 09:52

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
User avatar
Fagos
 
Posts: 100
Joined: 31 Aug 2011, 15:01

Re: Problemi con trasmissione dati con modulini Aurel

Postby deluca » 13 Sep 2012, 10:27

@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
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Problemi con trasmissione dati con modulini Aurel

Postby Fagos » 13 Sep 2012, 10:46

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?
User avatar
Fagos
 
Posts: 100
Joined: 31 Aug 2011, 15:01

Re: Problemi con trasmissione dati con modulini Aurel

Postby zillo89 » 13 Sep 2012, 11:11

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.
zillo89
 
Posts: 23
Joined: 18 Feb 2012, 10:18

Re: Problema di trasmissione dati con modulini Aurel

Postby flz47655 » 13 Sep 2012, 13:19

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.html

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Problema di trasmissione dati con modulini Aurel

Postby deluca » 13 Sep 2012, 13:29

è 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
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Problema di trasmissione dati con modulini Aurel

Postby deluca » 13 Sep 2012, 13:38

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
'-------------------------------------------------------------------------------
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Problema di trasmissione dati con modulini Aurel

Postby Fagos » 13 Sep 2012, 20:41

deluca ?
funziona. :P
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 :o
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
User avatar
Fagos
 
Posts: 100
Joined: 31 Aug 2011, 15:01

Re: Problemi con trasmissione dati con modulini Aurel

Postby legacy » 31 Oct 2012, 09:29

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
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30


Return to BASCOM-AVR

Who is online

Users browsing this forum: No registered users and 3 guests

cron