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