Prima
di iniziare la descrizione della sperimentazione con questo modulo
vorrei mettere in guardia i lettori che non in tutti i paesi del
mondo questa frequenza è libera, in Italia, ad esempio, 170 MHz
risiedono nella banda che va da 169.8 MHz a 170.1125 MHz che viene
gestita dal MISE e utilizzata dai servizi di emergenza e dal soccorso
alpino. Consiglio a chi risiede in paesi dove questa frequenza
non è libera di effettuare prove sperimentali non durature e di
non andare oltre i 2.4K Air data rate per non eccedere troppo in larghezza di
banda.
La prova che ho voluto effettuare è di paragone tra questo modulo e il E32-433T30D presentato
qui,
i due moduli sono meccanicamente identici, pin - software compatibili,
erogano la stessa potenza e presentano gli stessi parametri di
default a parte la frequenza:
E32-433T30D
FREQUENZA: 433MHzINDIRIZZO: 00HBIT DI PARITA': 8N1BOUD RATE SERIALE: 9600AIR DATA RATE: 2.4KbpsPOTENZA: 30dBm (1W)
E32-170T30D
FREQUENZA: 170MHzINDIRIZZO: 00HBIT DI PARITA': 8N1BOUD RATE SERIALE: 9600AIR DATA RATE: 2.4KbpsPOTENZA: 30dBm (1W)Si
prestano quindi bene per fare un paragone legato al solo cambio di
frequenza, in particolare ho voluto toccare con mano quanto è influente
l'area efficace e la capacità di penetrazione (entrambi proporzionali
alla lunghezza d'onda) verificando la massima distanza raggiungibile in
ambiente urbano prima con uno e poi con l'altro modulo.
Per le prove ho
dotato il modulo mobile di un pulsante, un led e un buzzer e quello fisso di un led e
un buzzer.
Quando
si preme il pulsante il modulo mobile (in RX continuo in "void loop")
commuta
in TX e invia un dato (di valore 1) al modulo fisso, subito
dopo si
rimette in ascolto in attesa di eventuali messaggi in arrivo, il
modulo
fisso, ricevuto il dato e assicuratosi che è di valore 1,
risponde trasmettendo un dato sempre di valore 1, subito dopo illumina
il suo led e fa
suonare il suo buzzer per 500mS. Finito questo ciclo torna in ascolto.
Il modulo mobile ricevuta la risposta controlla se il dato
ricevuto è di valore 1 e se affermativo illumina il suo led e fa
suonare il suo buzzer per 500mS e il ciclo si ripete premendo di nuovo
il pulsante.Conoscendo
già le capacità eccellenti del modulo a 433 MHz di raggiungere notevoli
distanze per evitare di fare tanti chilometri a piedi per effettuare
questa prova ho sistemato l'antenna in casa (dove era collegato il
modulo fisso) in modo che il segnale risultasse molto attenuato sia in
ricezione che in trasmissione. Poi con il modulo mobile sono andato in
giro per il quartiere per verificare la distanza raggiunta, attenzione
l'antenna dei 170 MHz è lunga 83 cm quindi state attenti a non ficcarla negli
occhi dei passanti (che non si fanno mai i cazzi loro) se volete
effettuare le stesse prove.
Unica scocciatura è che mi è toccato
sostituire il modulo per passare da una frequenza ad un'altra,
operazione comunque abbastanza semplice dato che per toglierlo basta svitare il dado dell' SMA e sfilare il
connettore femmina a pettine e fare l'operazione inversa per montare
l'altro. Vedi foto sotto:
Ovviamente, cambiando frequenza,
vanno anche cambiate le lunghezze delle antenne, operazione anche
questa semplice perché esse sono costituita da stili telescopici (sia
la ground plane a casa che quella sul mobile).
Qui sotto i risultati in KM raggiunti:
A 433 MHz:450 metri
A 170 MHz:700 metri
Notevole
differenza, tenete conto che la zona dove abito io è fitta di palazzoni
(qualcuno in cemento armato) e che l'antenna del fisso era in casa.
Dato
che ero in ballo ho ballato ulteriormente e ho eseguito la prova di
collegamento in campo aperto ripetendo quella fatta per il modulo a 433
MHZ tra Passoscuro e Ladispoli. (vedi
qui), I risultati sotto:
A 433 MHz:7.3 Km
A 170 MHz:8.1 Km (addirittura superiore a quella dichiarata dal costruttore dei moduli che è di 8 Km)
SOFTWARE MODULO MOBILE
Nella foto precedente è visualizzato il mobile con su montato il modulo a 170 MHz (notare la lunghezza dell'antenna).#include <SoftwareSerial.h>SoftwareSerial loraSerial(3, 2);int input;void setup(){ pinMode(6, INPUT_PULLUP); pinMode(4, OUTPUT); pinMode(5, OUTPUT); loraSerial.begin(9600); digitalWrite(4, HIGH); digitalWrite(5, HIGH); delay(500); digitalWrite(4, LOW); digitalWrite(5, LOW); loraSerial.write(1);}void loop(){ if(digitalRead(6) == 0) { loraSerial.write(1); while(digitalRead(6) == 0); delay(300); } if(loraSerial.available() > 1) { input = loraSerial.read(); if(input == 1) { digitalWrite(4, HIGH); digitalWrite(5, HIGH); delay(100); digitalWrite(4, LOW); digitalWrite(5, LOW); } loraSerial.flush(); }}
#include <SoftwareSerial.h>Include la libreria SoftwareSerial.h
SoftwareSerial loraSerial(3, 2);
Crea l'oggetto "lora" (potete mettere qualsiasi nome a vostro piacimento per l'oggetto).
Il
primo numero nella parentesi (3) indica il pin di Arduino che riceverà
i dati seriali (dal modulo), mentre il secondo numero (2) indica il pin
di Arduino che trasmetterà i dati seriali (verso il modulo)
int input;
Crea una variabile "input" di tipo intero
pinMode(6, INPUT_PULLUP);pinMode(4, OUTPUT);pinMode(5, OUTPUT);Imposta il pin 6 di Arduino come ingresso con pullup (pulsante)Imposta il pin 4 di Arduino come uscita (led)Imposta il pin 5 di Arduino come uscita (buzzer)
loraSerial.begin(9600);Imposta la comunicazione seriale a 9600 boud
digitalWrite(4, HIGH);digitalWrite(5, HIGH);delay(500); digitalWrite(4, LOW);digitalWrite(5, LOW);Sequenza per accendere e far suonare il buzzer per 500 mS
loraSerial.write(1);Invia
il primo dato (valore 1) al ricevitore. Se quest'ultimo è acceso suona
il suo buzzer e si illumina il suo led. E' un semplice controllo di
funzionamento del sistema all'accensione.
if(digitalRead(6) == 0) { loraSerial.write(1); while(digitalRead(6) == 0); delay(300); } Se il pulsante viene premuto il mobile invia il dato di valore 1 tramite la funzione loraSerial.write(1);.Con while(digitalRead(6) == 0); il programma attende che il pulsante sia rilasciato.Al
rilascio del pulsante il programma attende ancora 300 mS per proseguire
(questo tempo ha la funzione di anti rimbalzo del pulsante).
if(loraSerial.available() > 1) { input = loraSerial.read(); if(input == 1) { digitalWrite(4, HIGH); digitalWrite(5, HIGH); delay(100); digitalWrite(4, LOW); digitalWrite(5, LOW); } loraSerial.flush(); }Se è disponibile un dato (spedito in risposta dal fisso) viene eseguito il corpo della "if". L'istruzione input = loraSerial.read(); salva nella variabile "input" il valore letto.La
"if" successiva confronta il valore contenuto nella variabile "input",
se è 1 esegue il suo corpo dove ci sono le istruzioni per fare
illuminare il led e suonare il buzzer per 100 mS.La funzione loraSerial.flush(); serve per svuotare il buffer della ricezione (è opzionale).
SOFTWARE MODULO FISSO
Nella foto precedente è visualizzato il fisso, il progetto dell'antenna lo trovate qui. #include <SoftwareSerial.h>
SoftwareSerial loraSerial(3, 2);
int input;
void setup()
{
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
loraSerial.begin(9600);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
void loop()
{
if(loraSerial.available() > 1)
{
input = loraSerial.read();
if(input == 1)
{
loraSerial.write(1);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(4, LOW);
digitalWrite(5,
LOW);
}
loraSerial.flush();
}
}
Il programma del modulo fisso è simile a quello del mobile con le seguenti differenze:non ha la parte delle istruzioni relative alla gestione del pulsanteil tempo ON del led e del buzzer dura un po' di più (500mS). COLLEGAMENTI
ANTENNEL'unica
antenna che ha bisogno di un piccolo accordatore è quella dei 170 MHz
montata sul mobile, alla groud plane basta regolare gli stili a
queste misura:
PER I 433 MHz:Centrale = 16.5 cm
Radiali = 15 cm (ai radiali va considerata la superfice offerta dal pannello metallico)
PER I 170 MHz:Centrale = 42 cm
Radiali = 44 cm (ai radiali va considerata la superfice offerta dal pannello metallico)
Per
l'antenna del mobile a 433 MHz è sufficiente portare la lunghezza
dello stilo a 16.5 cm e avvitarlo all'SMA direttamente (il piccolo
l'accordatore a questa frequenza non serve).
C'è stato un
lettore delle mie precedenti pagine (sempre relative ai moduli RF) che
mi ha scritto che oltre ad elencare tutte le sequenze di misura
dell'impedenza dell'antenna sarebbe stato utile fornire le procedure per
progettare l'accordatore usando software o applicazioni gratis.
Ok, farò così.
Per avere un minimo di piano di massa ho messo
nella scatolina (porta saponetta) che conterrà l'elettronica del mobile
una basetta di rame, vedi figura sotto:
Il modulo andrà messo così:
Per la misura della impedenza dell'antenna ho usato il NanoVna, i collegamenti sono rappresentati nella seguente figura:
Con l'antenna tutta estratta la misura tra l'apice di quest'ultima e la base ramata è 83 cm,
circa metà lunghezza d'onda a 170 MHz. Importantissimo avvolgere
il cavo coassiale attorno un adatto toroide in ferrite, questo evita
che lo stilo veda come piano di massa, oltre che la basetta ramata, anche
tutte le parti conduttive del NanoVna, se non ci fosse il toroide le misure
risulterebbero falsate. Ho usato un toroide materiale 68.
La
misura letta è raffigurata nella seguente immagine, nel diagramma di
Smith il luogo dell'impedenza dell'antenna si trova dove è posizionato il piccolo
triangolo giallo:
L'impedenza presentata da questa antenna è composta da una parte resistiva:
200 ohme una parte capacitiva:
6.6 pFOccorre
trasformare la capacità in reattanza capacitiva, per fare questo
personalmente uso una calcolatrice on line che si trova a questo
indirizzo:
https://www.endmemo.com/physics/reactance.phpNel
menù a tendina scegliete pF per la capacità e MHz per la frequenza e
premete "Calculate". Sotto la voce "Capacitive Reactance" apparirà il
valore della reattanza come nella seguente figura:
Quindi l'impedenza dell'antenna è:
Z = 200 - j142 ohm (ricordarsi che la reattanza capacitiva è sempre negativa)
Questa
antenna va accordata, in teoria dovrebbe presentare una impedenza di 50
+ j0 ohm, quindi bisogna inserire un accordatore, per calcolarne i
componenti reattivi personalmente uso l'applicazione " Smith Chart Calc". Vedi foto sotto:
Installate l'applicazione sul telefono (Android) e apritela, Nella schermata principale cliccate sulla icona come in figura:
Apparirà
la seguente schermata, immettete il valore della impedenza e della
frequenza nei campi cerchiati in rosso (ricordatevi di inserire
il meno davanti al valore della reattanza capacitiva).
Una volta inseriti i valori cliccate sulla freccetta a sinistra di "Design Details", apparirà la seguente schermata:
In
alto c'è il resoconto, in ordine; impedenza
dell'antenna in partenza (start), impedenza voluta (target), impedenza
ottenuta (final), ovviamente quest'ultima è dello stesso valore di quello in
partenza dato che ancora non abbiamo inserito alcun componente
reattivo. L'impedenza dell'antenna risiede sul punto A (che è nella
stessa posizione di quello visualizzato dal NanoVna), dobbiamo
inserire tra l'antenna e il modulo dei componenti reattivi affinché il
punto A si sposti in B (centro del cerchio).
Cliccare sul "+" (vedi figura sopra), apparirà la seguente schermata:
Se
avete dimestichezza con il diagramma di Smith non dovreste avere
difficoltà ad inserire il giusto componente reattivo nella modalità
giusta (in serie o in parallelo), se invece non siete esperti potete
andare a caso.
Ci
sono infiniti percorsi per collegare il punto A al punto B con
diverse combinazioni LC serie parallelo, per questo adattatore conviene
usare il minimo numero di elementi reattivi per non complicare la
realizzazione finale.
Inserisco uno
"Shunt Capacitor", una volta inserito il condensatore apparirà una piccola curva di color rosso partente dal
punto A, aumentate il valore del condensatore fino a far toccare la estremità della curva con il
cerchio nero passante per il centro (punto D), vedi figura sotto:
Cliccate
di nuovo sul simbolo "+" e aggiungete "serie Inductor", come
prima aumentate il valore dell'induttore fino a portare il punto D in
B. Vedi figura sotto:
In
alto è riportato lo schema elettrico, ovvero un condensatore ai
capi dell'antenna e un induttore in serie tra il polo caldo
dell'antenna
e quello del connettore SMA del modulo, il valore finale non è uguale
al target
ma dovete sapere che il programma lavora con incrementi e decrementi
dei
valori con step abbastanza larghi, comunque questo non
ha importanza in fase di collaudo dato che al posto del
condensatore fisso verrà messo un compensatore e il valore della
induttanza potrà essere diminuito allungando la bobina o
aumentato aggiungendo spire.
La
nostra rete dell'accordatore è composta da un condensatore da 4.8 pF
che sostituiremo con un compensatore BLU (1.5 - 10 pF) e un induttore
da
102 nH. Per determinare le spire dell'induttore per quel valore di
induttanza io uso l'applicazione "Coil32", vedi figura sotto:
Scaricare e installare l'applicazione sul telefono, la schermata principale è rappresentata nella seguente figura:
Cliccate sul testo cerchiato di bianco e apparirà la seguente schermata:
Inserire in ordine:
L = il valore di induttanza desiderato
D = il diametro del supporto
d = il diametro del filo
K
= lo inserisce automaticamente l'applicazione, questo valore tiene
conto dello spazio preso dalla sottile pellicola di smalto che ricopre
il filo
f = frequenza
cliccate poi su "CALCOLA", apparirà la schermata seguente:
Appaiono
diverse informazioni sotto "Risultato", a noi interessa solo in
"Numero delle spire" (7) e la "Lunghezza del filo senza terminazioni" (
8 cm), io normalmente aggiungo 3 cm di terminazioni. Nella foto
seguente il cacciavite che ho usato per avvolgere le spire:
Nella foto seguente l'accordatore completo:
Per finire nella foto seguente la misura dell'impedenza e dell'SWR fatta con NanoVna:
L'antenna
è adattata (perdendoci un po' di tempo si potrebbe adattare anche
meglio), un consiglio; per regolare il compensatore usate un
cacciavite in plastica e tenetevi il più lontano dall'antenna.
SoftwareFabio