Manopola di sintonia con encoder autocostruito

Manopola autocostruita
con encoder magnetico
Massimo Marinelli - ex iw0rde
Andrea Montefusco – iw0hdv
La radio con i numeri - Modena 2011
2.4.2011
Perche' un altra manopola ?
●
Studio di diverse forme di manopole
●
Manopole senza fori visibili
●
●
●
Studio di encoder incrementali autocostruiti ad alte
prestazioni
Software/firmware:
–
Multipiattaforma
–
Semplicita' di utilizzo con i software SDR (per
esempio Perseus) e con apparati commerciali
(conformita' agli standard industriali, per es. Icom)
Manopola per uso radioamatoriale: deve essere
possibile smontarla di frequente senza danneggiarla
Manopole senza fori visibili
●
Studio di diverse forme di manopole
●
Manopole senza fori visibili
●
Non e' solo una questione di estetica:
–
i grani di fissaggio prima o poi si allentano
–
le filettature di piccole dimensioni si usurano e
si danneggiano piu' facilmente
Prototipo manopola su cuscinetti
Prototipo manopola su cuscinetti
Lavorazioni meccaniche della
manopola
●
Si possono realizzare molte forme
●
La piu' semplice richiede solo un tornio manuale
●
●
●
Le piu' complesse richiedono anche una fresa con tavola
rotante
Nella realizzazione dei prototipi sono state impiegate
solo macchine utensili manuali (no CNC)
Il materiale utilizzato e' alluminio anticorodal (il piu'
economico ed il piu' facilmente disponibile, ma il
peggiore dal punto di vista meccanico)
Encoder incrementali
●
●
●
●
●
Gli encoder incrementali per uso industriale sono molto costosi: per le
nostre necessita' sono comunque sovradimensionati in termini di
numero di giri e condizioni ambientali di lavoro
Gli encoder per apparecchiature elettroniche professionali sono costosi
(70/100 EU per piccole quantita') e non sempre sono pensati per
sopportare il peso delle manopole autocostruite
I modelli ”consumer” sono economici ma hanno diversi inconvenienti
–
pochi step / giro (16-32)
–
clicks meccanici
–
non sono montati su cuscinetti
–
ingombri a volte eccessivi
Quindi gli encoder disponibili, nell'ambito dell' uso radioamatoriale, o
hanno un costo eccessivo o non hanno caratteristiche completamente
soddisfacenti
E' possibile autocostruirsi un encoder ?
Encoder autocostruiti: ottici
●
●
●
●
Rilevano la variazioni di luminosita' mediante
fototransistors o fotodiodi
La precisione dipende dal grado di finezza con
cui si e' in grado di lavorare una superficie
(per esempio riflettente) in modo da
suddividerla in zone della stessa dimensione
ma con caratteristiche ottiche opposte
Sono disponibili dei kits per robotica completi
di fotodiodi e amplificatori
Rimane il problema di produrre la superficie !
Encoder ottico Sparkfun
http://www.sparkfun.com/products/9014
Wheel Encoder
Encoder autocostruiti: sensori con
magnete incorporato
●
●
●
●
Allegro Microsystem ATS642LSH
Two-Wire True Zero Speed Miniature Differential Peak-Detecting
Gear Tooth Sensor IC with Continuous Calibration
contiene il magnete ed un sensore (effetto Hall) ed e' in grado di
rilevare variazioni del campo magnetico (generato internamente),
a causa, per esempio, del movimento di una ruota dentata posta
a breve distanza
Impieghi specifici: sensori ABS, controllo motoriduttori
Allegro Microsystem ATS642LSH
Allegro Microsystem ATS642LSH
Encoder autocostruiti: sensori con
magnete esterno
●
●
●
Austria Microsystems AS-5040
rileva la posizione angolare di un campo
magnetico esterno
Altri modelli sono in grado rilevare la posizione
di un magnete sul piano (uscita cartesiana XY)
AS-5040
●
●
●
The AS5040 e' un encoder rotativo
magnetico assoluto, senza contatti
meccanici, in grado di effettuare la
misura su un intero angolo giro. Nel
dispositivo sono contenuti i sensori
(effetto Hall), i preamplificatori
analogici, il DSP e la logica di
interfacciamento al microcontrollore
L'unico elemento esterno richiesto e' il
magnete (radiale): l'asse di rotazione
deve essere posto in corrispondenza
del centro geometrico del chip (sopra o
sotto il piano di saldatura)
La risoluzione e' di 1024 step/giro
(0.37°/step, linearita' 1.5%)
AS-5040: diagramma a blocchi
AS-5040: funzionamento
●
●
●
La tecnologia di fabbricazione e' CMOS standard
i sensori Hall sono posizionati intorno al centro geometrico del
dispositivo e convertono il valore del campo magnetico sulla
superficie del chip in una tensione.
Queste tensioni vengono convertite in formato numerico da quattro
convertitori A/D Sigma-Delta (posizionati in X{12} e Y{12}):
AS-5040: funzionamento
●
I valori numerici ottenuti dai quattro convertitori
A/D Sigma-Delta sono inviati all'ingresso del
Coordinate Rotation Digital Computer
(CORDIC) che calcola l' angolo mediante la
seguente funzione:
AS-5040: funzionamento
●
●
Il DSP produce anche due segnali in uscita
(MagINCn e MagDECn) che indicano se il
magnete si sta' avvicinando o allontanando
dal chip.
Il magnete deve essere cilindrico ed avere un
diametro di circa 6 mm: la direzione della
magnetizzazione deve essere parallela al
diametro delle facce.
AS-5040: funzionamento
●
●
Oltre alle normali uscite (incrementali ed
indice), la posizione assoluta puo' essere letta
con una risoluzione di dieci bits tramite una
Synchronous Serial Interface (SSI). Sono
anche disponibili altri formati di uscita (PWM e
per il controllo di motori trifase).
Il sistema tollera sia un certo grado di
disallineamento del magnete, che la presenza
di campi magnetici parassiti; e' disponibile
anche una modalita' di funzionamento per la
misura della precisione di posizionamento del
magnete.
Prototipo
●
Per interfacciare il sensore ad un qualunque
personal computer ho utilizzato un piccola
scheda con un microcontrollore Atmel AVR
AT90USB647 (64-pin USB).
Prototipo: Micropendous-3
●
●
Micropendous e' un progetto hardware Open
Source che, negli anni, ha sviluppato una serie di
schede basate su microcontrollori Atmel
http://code.google.com/p/micropendous/wiki/Micro
pendous3
Prototipo: Micropendous-3
●
●
●
I microcontrollori AVR sono progettati per essere
programmati in C con il compilatore AVR-GCC
GCC con generatore di codice adatto per AVR.
La gestione dell'interfaccia USB e' realizzata con il
pacchetto LUFA
LUFA (Lightweight USB Framework for AVRs)
●
●
●
●
E' uno stack USB open source per i
microprocessori USB-enabled
–
Atmel AVR AT90USBxxxx
–
ATMEGAxxUx AVR
Rilasciato con licenza MIT (una delle piu'
permissive, permette di essere incorporato in
prodotti commerciali)
Sono supportate le schede prototipali della
Atmel, e molte altre, mediante driver hardware
specifici
http://www.fourwalledcubicle.com/LUFA.php
LUFA (Lightweight USB Framework per AVRs)
dispositivi supportati
●
Audio In Device
●
Mass Storage Device
●
Audio Out Device
●
Mass Storage/Keyboard Device
●
Dual Virtual Serial Device
●
Mass Storage Host
●
Generic HID Device
●
MIDI Device
●
Generic HID Host
●
●
Joystick Device
MIDI Host
●
Printer Host
●
RNDIS (CDC) Ethernet Device
●
RNDIS (CDC) Ethernet Host
Still Image Host
●
●
●
Joystick Host
Keyboard Device
Keyboard/Mouse Device
Keyboard Host
●
●
Keyboard Host/Device Dual Mode
●
●
Virtual Serial Device
●
Mouse Device
●
Virtual Serial/Mouse Device
●
Mouse Host
●
Virtual Serial Host
Come controllare Perseus
●
●
●
●
Per default il software Perseus si connette alla seriale
COM10 ed interpreta un subset dei comandi CI-V
Il prototipo (Micropendous3) appare come una seriale
(COM7 nel mio sistema)
La prima volta che lo si collega e' necessario installare
il driver: in realta' si tratta di indicare al sistema il file
.inf, il driver usato e' gia' presente
Dopo aver collegato il microcontrollore ed aver
verificato nella lista dei dispositivi hardware di Windows
che numero e' stato attribuito alla seriale, e' sufficiente
modificare nel pannello Software Settings il numero
della porta seriale e far ripartire il software Perseus
Come controllare PMSDR su Linux
●
●
●
Collegando il microcontrollore ad una
interfaccia USB viene automaticamente
istanziata una interfaccia seriale /dev/ttyUSB0
Nella versione di sdr-shell per PMSDR c'e' gia'
il codice per la gestione di una manopola
hardware, basta valorizzare nel file di
configurazione la variabile HW_KNOB_FIFO
export HW_KNOB_FIFO="/dev/ttyUSB0”
Come controllare un qualsiasi altro
software o hardware SDR
●
●
●
Oltre al protocollo CI-V il codice supporta un
semplice protocollo ASCII
HAMLIB
Oppure si puo' eliminare il microcontrollore ed
usare solo l'encoder
–
Uscite incrementali
–
Alimentazione 5 o 3.3 Vdc
Protocollo applicativo: CI-V
●
Trasportato su link seriale asincrono
●
Framing implicito: non c'e' character stuffing
●
Non ci sono messaggi unsolicited ?
–
●
●
Polling per impostare la frequenza se modificata nel ricevitore
Test: Perseus
Documentazione disponibile online in http://www.plicht.de/ekki/civ/civp0a.html (Grazie a Martin IW3AUT per la segnalazione !)
Manopola autocostruita con encoder
magnetico
Grazie per l'attenzione
Massimo Marinelli – ex iw0rde
Andrea Montefusco – iw0hdv
La radio con i numeri - Modena 2011
2.4.2011