hamradioweb.org

 


Vai indietro   hamradioweb.org > Discussioni / Areas of discussion > Elettronica digitale rivolta al mondo Hamradio

Avvisi

Elettronica digitale rivolta al mondo Hamradio elettronica digitale, microcontrollori e schede di sviluppo destinate al campo radioamatoriale, funzionamenti/costruzione di strumenti di misura digitali, controllo hardware (motori passo passo, servomotori, encoders rotativi), beacon e sistemi automatizzati, schede di controllo remoto sia wireless che web e tutto quello che riguarda l'elettronica digitale orientata al nostro mondo.

Rispondi
 
Strumenti della discussione Cerca in questa discussione
Vecchio 26-05-15, 22:27   #1
iw7dmh
Senior Member
 
L'avatar di iw7dmh
 
Registrato dal: Dec 2007
ubicazione: Lecce
Messaggi: 356
Librerie Arduino per i Flex 6000

Da quando ho comprato il mio piccolo Flex 6300 sono stato subito attratto dalle grosse potenzialità offerte da questa radio ma anche frustrato dalla mancanza di qualsiasi collegamento fisico (tradizionale) verso l’hardware esistente. Mi riferisco a porte seriali, connettore Banda Data, ecc. Tutto ciò è praticamente assente nei nuovi Flex a dimostrazione che, nel bene o nel male, rappresentano un netto cambiamento di tendenza rispetto alle radio esistenti. Di fatto le funzionalità di controllo per porte seriali e band data sono ancora disponibili ma solo attraverso software aggiuntivi:
- un driver di porte seriali virtuali, incluso in SmartSDR,
- DDUTIL un software gratuito che consente di monitorare lo stato del Flex (e di molti altri dispositivi) e di pilotare altri software e/o schede hardware dotate di relè. In entrambi i casi, però, è indispensabile l’uso del pc.

FlexRadio, oltre al software ufficiale, mette a disposizione alcune librerie software che consentono di interagire con la radio senza conoscere i dettagli del collegamento con il pc. Le Flexlib API, questa è la denominazione ufficiale delle librerie, danno la possibilità di controllare la radio utilizzando un linguaggio di programmazione di alto livello della piattaforma .Net, pertanto sono disponibili solo per il mondo Windows. Almeno per ora.
Le librerie di collegamento si basano su protocolli di rete aperti che sono ben documentati sul sito wiki di FlexRadio, pertanto, facendo uso dei protocolli di rete, senza passare per le FlexLib, si riesce ad usare la radio senza il personal computer.
Ovviamente al suo posto è necessario utilizzare dell’hardware in grado di stabilire un collegamento fisico (ethernet) con la radio ed in grado di analizzare il protocollo di rete. Da qui la mia idea di realizzare una libreria software per Arduino Due equipaggiato con Ethernet Shield originale (W5100) in grado di fornire le funzionalità di base realizzare il proprio band decoder, antenna switch o altri dispositivo connessi al Flex 6000.

La libreria è composta da tre livelli (in pratica altre librerie):
- La libreria base, che si occupa del collegamento fisico verso la radio ed implementa i due protocolli più importanti;
- La libreria Band Data, che utilizza la libreria di base per informare l’utente che sono avvenuti dei cambiamenti all’interno della radio. Per ciascun cambiamento di stato, l’utente, attraverso il codice di Arduino, può attivare dispositivi hardware come relè, motori passo passo, display, ecc.
- La libreria CAT-RS232 che implementa i comandi più utili del protocollo seriale Flex (Kenwood) e può essere utilizzata soprattutto per il collegamento ad amplificatori lineari che usano il protocollo Kenwood.
Di seguito proverò ad illustrare il funzionamento delle tre librerie rimandandovi al sito iw7dmh.jmdo.com per ulteriori dettagli.

Libreria di base
Si tratta essenzialmente di un piccolo software che implementa lo SmartSDR Discovery Protocol. Il discovery protocol è un protocollo UDP (porta 4992) e viene utilizzato dai dispositivi FLEX 6000 per segnalare la propria presenza sulla rete. I software, o altri dispositivi che si vogliono collegare ad un Flex 6000, devono necessariamente catturare uno di questi pacchetti UDP e poi da esso estrarre tutte le informazioni necessarie per stabilire un collegamento.
Nella modalità standard la mia libreria cercare di individuare il primo FlexRig disponibile nella rete, ed una volta individuato stabilisce una connessione TCP-IP sempre sulla porta 4992. Questo approccio è corretto se si dispone di un solo Rig Flex (come nel mio caso).

Click the image to open in full size.

Se in rete ci sono più Flex 6000 è necessario impostare manualmente il numero di serie della radio che si vuole connettere.

Click the image to open in full size.

Quando la radio è stato individuata, la libreria apre una connessione TCP/IP sulla porta 4992. Ogni aggiornamento sullo stato interno della radio si riflette sugli oggetti logici presenti nella libreria secondo lo schema seguente:

Click the image to open in full size.

Utilizzando la libreria, è possibile accedere allo stato interno della radio, senza doversi preoccupare del protocollo di rete.

Molto bello, direte, ma a che serve? E’ necessario usare una delle altre due librerie per iniziare a divertirsi.

Libreria Band Data
Arduino DUE ha una quantità enorme di pin che possono essere utilizzati per pilotare relè, motori, servo, e così via. Inoltre, Arduino DUE supporta nativamente i protocolli I2C, SPI, RS232 e questo offre la possibilità di far interagire il Flex con l'hardware esistente come antenne, amplificatori, antenna switch e così via.

La libreria Band Data si basa sulla precedente libreria ed è programmata per generare eventi in risposta ad un qualsiasi cambiamento di stato del Flex: frequenza, banda, ampiezza filtri, ecc. Ovviamente non dovrete preoccuparvi della comunicazione con la radio e non sarete costretti a gestire tutta la tua logica della vostra applicazione nel routine principale loop().
Semplicemente, nella procedura di setup(), si deve registrare una funzione (handler) per ogni evento che è necessario gestire e la libreria farà il resto.
Per usare correttamente questa libreria è necessario familiarizzare con gli oggetti e relativi nomi presenti all’interno di SmartSDR, ma sicuramente i possessori dei nuovi Flex sanno benissimo di che cosa stiamo parlando.

In pratica è possibile gestire i seguenti eventi:

Qualsiasi aggiornamento su Slice (solo # 0/1)
Qualsiasi aggiornamento su Panadapter (solo # 0/1)
Qualsiasi aggiornamento su Waterfall (solo # 0/1)
Qualsiasi aggiornamento su Radio
Qualsiasi aggiornamento su Transmission
Qualsiasi aggiornamento su Interlock

Dopo aver registrato il gestore di evento, la libreria esegue una chiamata ad esso, ogni volta che si verifica quel particolare evento. Nella routine di gestione è possibile attivare/usare qualsiasi hardware che è supportato da Arduino.

Ultimo ma non meno importante, è il fatto che con la libreria di base si ha accesso a tutte le proprietà del Flex, e di fatto è possibile estendere il codice per aggiungere nuovi eventi basati su proprietà più specifiche. L'elenco completo delle proprietà che è possibile utilizzare è riportato di seguito:

Click the image to open in full size.

Libreria CAT-RS232
La libreria CAT-RS232 si basa sulle due precedenti librerie. Al momento sono implementati i comandi che possono essere utili per la sincronizzazione di dispositivi esterni, per lo più amplificatori e controller di antenne dinamiche.
Purtroppo non possedendo nessuno di tali dispositivi ho eseguito i test con altri software come Omnirig e LOG4om ed il funzionamento sembra corretto.

Di seguito è riportato l'elenco dei comandi implementati:
FA; - Reads Slice receiver A frequency
FB; - Reads Slice receiver B frequency.
IF; - Reads Transceiver Status
FR; - Receive VFO
FT; - Transmit VFO
AI; - Auto Information Mode
ZZFA; - Reads Slice receiver A frequency
ZZFB; - Reads Slice receiver B frequency
ZZIF; - Reads Slice Receiver A DSP filter

Questo per ora è tutto.
Se volete altre informazioni chiedete pure oppure visitate il sito iw7dmh.jimdo.com da cui è possibile scaricare il codice sorgente delle librerie.

Vi lascio anche un video che fa vedere come si usano.

73’ iw7dmh
Enzo

https://youtu.be/kcI3jm1opB0
Icone allegate
Clicca sull'immagine per ingrandirla

Nome:   Single.jpg‎
Visite: 426
Dimensione:   17.0 KB
ID: 14536   Clicca sull'immagine per ingrandirla

Nome:   multi.jpg‎
Visite: 501
Dimensione:   23.2 KB
ID: 14537   Clicca sull'immagine per ingrandirla

Nome:   TCP.jpg‎
Visite: 575
Dimensione:   29.5 KB
ID: 14538   Clicca sull'immagine per ingrandirla

Nome:   Properties.jpg‎
Visite: 565
Dimensione:   74.6 KB
ID: 14539  
__________________
Iscritto alla sezione ARI di LECCE www.arilecce.it

Ultima modifica di iw7dmh; 26-05-15 a 22:32
iw7dmh non  è collegato   Rispondi quotando
Vecchio 27-05-15, 06:02   #2
IK0VVE
Senior Member
 
L'avatar di IK0VVE
 
Registrato dal: Dec 2007
ubicazione: Latina
Messaggi: 593
Re: Librerie Arduino per i Flex 6000

Ciao Enzo,
bellissimo lavoro! Complimenti! Purtroppo non posseggo un Flex, mi piacerebbe il 6500, ma i costi per quanto mi riguarda sono un pochino alti, ma potendone possedere uno immagino che lo rivolterei come un calzino, HI.

Un sistema così con le librerie che hai sviluppato per Arduino ha una funzionalità infinita limitata solo dalla fantasia dell'utilizzatore. Già mi girano almeno una decina di idee per la testa...

Ti seguo nei tuoi progressi.
Buona continuazione.
__________________
73 de IK0VVE Max
www.ik0vve.net
IK0VVE non  è collegato   Rispondi quotando
Vecchio 27-05-15, 07:35   #3
IK7JWY
Senior Member
 
L'avatar di IK7JWY
 
Registrato dal: Aug 2007
ubicazione: Alezio-LE-
Messaggi: 4,485
Re: Librerie Arduino per i Flex 6000

Complimenti davvero, Enzo, per le tue sperimentazioni. Immagino che il discorso delle librerie sia stato alla base della autocostruzione del tuo controller per il Flexradio 6300. Sarei curioso di vedere qui qualche foto del suo interno e leggere una descrizione delle parti che lo compongono e del suo funzionamento.
Poi mi sa tanto che devo venire a trovarti a Lecce uno dei prossimi fine settimana..
__________________
73 de IK7JWY Art : "You don't need FT8 /FT4 to hear me in HF, I'm not a pulsar."
https://www.qrz.com/db/IK7JWY
(www.infinitoteatrodelcosmo.it)
IK7JWY non  è collegato   Rispondi quotando
Vecchio 27-05-15, 08:37   #4
iw7dmh
Senior Member
 
L'avatar di iw7dmh
 
Registrato dal: Dec 2007
ubicazione: Lecce
Messaggi: 356
Re: Librerie Arduino per i Flex 6000

Ciao Art,

sì, le librerie sono alla base del mio controller Arduino.
Qualche tempo fa', mentre ero impegnato nello sviluppo del controller, mi sono reso conto che attualmente non c'è alcuna possibilità di integrare i nuovi Flex, se non attraverso un personal computer, e in ottica "remotizzazione" questo non è il massimo.
Quindi ho estratto le parti essenziali del mio codice per consentire un minimo di integrazione usando solo dispositivi hw (anche se pre-programmati). L'uso di Arduino Due si è reso necessaro perchè il codice che implementa il parser dei pacchetti TCP-IP deve essere il più veloce possibile. Al momento la scelta si sta rivelando giusta perchè non ho ancora raggiunto il limite del fantastico processore ARM Cortex-M3 e penso che potrò ancora chiedergli molto (facendo i dovuti scongiuri).
Per quanto riguarda il mio controller appena avrò una versione stabile dell'intero progetto farò in modo di condividerla nel forum per fare in modo che l'esperimento sia ripetibile . Renderò disponibile solo il firmware compilato (.hex)
In ogni caso, le librerie, rendono possibile qualsiasi esperimento simile al mio, pertanto anche implementare un qualcosa di molto vicino al FlexControl diventa un gioco da ragazzi.

A me non piace implementare le interfacce utente anche perchè per progettare una buona interfaccia utente sono necessarie delle competenze molto specifiche. Mi diverto molto di più con il codice di back-end, le librerie appunto, e tutto questo è venuto fuori solo dal mio desiderio di studiare i protocolli di rete del Flex.

Pertanto, sperimentatori dotati di Flex 6000, fatevi avanti!

Per i prossimi fine settimana nessun problema, fammi sapere

73' Enzo
iw7dmh

@Max: magari puoi evolvere il tuo sistema per interfacciarsi nativamente ai nuovi Flex, non è difficile
__________________
Iscritto alla sezione ARI di LECCE www.arilecce.it

Ultima modifica di iw7dmh; 27-05-15 a 10:01
iw7dmh non  è collegato   Rispondi quotando
Vecchio 27-05-15, 14:00   #5
swl-Adur
Senior Member
 
Registrato dal: May 2009
ubicazione: Genova ITALY
Messaggi: 79
Re: Librerie Arduino per i Flex 6000

Innanzitutto complimenti per il tuo progetto.
Io ho costruito assieme ad un amico il TRX SDR ADTRX2 di YU1LM e lo sto gestendo con il sw Power SDR 40 che gestisce anche l'oscillatore locale QRP2000 che equipaggia il chip Si570.
Il mio obbiettivo sarebbe quello di renderlo indipendente dal pc.
Pensi possa essere possibile sfruttando, col tuo permesso le librerie che hai fatto, gestire il mio HW?

73 de IZ1QXJ
Antonio

Ultima modifica di swl-Adur; 27-05-15 a 15:18
swl-Adur non  è collegato   Rispondi quotando
Vecchio 28-05-15, 08:09   #6
iw7dmh
Senior Member
 
L'avatar di iw7dmh
 
Registrato dal: Dec 2007
ubicazione: Lecce
Messaggi: 356
Re: Librerie Arduino per i Flex 6000

Ciao Antonio,

le mie librerie sono on-line e possono essere scaricate liberamente, però nel tuo caso, non possono andare bene. Non conosco il ricevitore ADTRX2 ma penso che si tratti di un SDR di prima generazione e pertanto sei costretto a fare uso della scheda audio di un pc o di un altro tipo di convertitore D/A.
Per quanto riguarda il controllo della radio, ti consiglio di dare un'occhiata al software che viene utilizzato per i due RTX di Tentec il Rebel 506 e ed il Patriot 507. Si tratta anche qui di codice per Arduino ed anche se il DDS è diverso, penso che si possa adattare.

73' Enzo
iw7dmh

http://www.rkrdesignsllc.com/product...p-transceiver/
__________________
Iscritto alla sezione ARI di LECCE www.arilecce.it

Ultima modifica di iw7dmh; 28-05-15 a 08:27
iw7dmh non  è collegato   Rispondi quotando
Vecchio 28-05-15, 09:58   #7
swl-Adur
Senior Member
 
Registrato dal: May 2009
ubicazione: Genova ITALY
Messaggi: 79
Re: Librerie Arduino per i Flex 6000

Ti ringrazio Enzo.
Confermo, si tratta di un trx SDR di prima generazione che necessita di un ottima scheda audio esterna.
Ho comprato un chipKIT Uno32 che viene usato nel sw che comandano le radio Tentec che mi hai indicato, cercherò di adattarlo.

73
Antonio
swl-Adur non  è collegato   Rispondi quotando
Rispondi

Segnalibri

Strumenti della discussione Cerca in questa discussione
Cerca in questa discussione:

Ricerca avanzata

Regole d'invio
Non puoi inserire discussioni
Non puoi inserire repliche
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è attivo
Le smilie sono attive
Il codice IMG è attivo
il codice HTML è disattivato

Salto del forum


Tutti gli orari sono GMT +1. Attualmente sono le 21:18.


Powered by vBulletin versione 3.8.6
Copyright ©: 2000 - 2019, Jelsoft Enterprises Ltd.
Traduzione italiana Team: vBulletin-italia.it