giovedì 25 maggio 2017

Volpino - trasmettitore ARDF basato su Arduino e DDS

Grazie ai modulini a basso costo che arrivano dall'oriente oggi è possible realizzare trasmettitori per ARDF agili in frequenza, a basso costo e in pochissimo tempo, se escludiamo quello necessario alle poste per recapitarci il pacchettino.
La realizzazione minima mette a disposizione un oscillatore dalla ridotta potenza di uscita (regione di -12dBm / 0,06mW) che occorrerà integrare con un finale per uso sul campo.

Ingredienti:
  • Arduino Nano - circa €3 al pezzo per i cloni cinesi.
  • modulo DDS. Nel mio caso basato su AD9850. Quando li acquistai io si trovavano a circa €3 al pezzo, forse perché si trattava di uno stock con il filtro passabanda in uscita mal disegnato. Oggi lo stesso costa attorno ai €10. Con ogni probabilità si possono usare anche altri moduli più economici, per esempio ne vedo al momento in vendita basati su AD9833 a meno di €5: la copertura in frequenza è limitata a 12,5MHz e quindi idonea per le "volpi" in 80 metri.

Le connessioni tra Arduino e modulo DDS si limitano a tre pin:
Il DDS può essere alimentato direttamente dai 5V regolati in uscita dall'Arduino.
Sul mio modulo il segnale RF sinusoidale è prelevabile dal piedino "ZOUT1".

La modulazione in CW viene ottenuta, all'atto pratico, generando una FSK piuttosto lenta: nei momenti di riposo del trasmettitore in realtà viene irradiata una portante a una frequenza arbitraria che potremo sopprimere con un filtro passa basso. Già impostando la frequenza di riposo al doppio di quella di operazione l'antenna ci darà una mano, con il suo disadattamento, a sopprimere il secondo segnale.
Nel video qui sotto ho impostato l'offset a pochi kHz in modo da renderlo visibile sul waterfall.


Queste sono le specifiche richieste dai trasmettitori ARDF 80m nella regione 1 IARU:

Perché lo sketch funzioni è necessario installare nell'ambiente Arduino la libreria di "radio Artisan" K3NG.

Frequenza e testo da trasmettere si possono modificare in queste righe del codice:
// Declare variables...
#define strBeacondID "MOE"
long frequency = 3580000LL;
long offset = 7160000LL;
Lo sketch può essere scaricato da GitHub all'indirizzo qui sotto.
Per il momento ho implementato soltanto la trasmissione in loop, ma conto di renderlo anche conforme alle specifiche IARU.

https://github.com/Sinager/Volpino.git