Ciao a tutti,
costretto dalle avverse condizioni atmosferiche di questi giorni a stare a casa, sto dedicando un pò di tempo alla realizzazione di un fuocheggiatore elettronico.
Prendendo spunto dall'ottima realizzazione del Serial Focus di SergioTD presentata in questo forum, avevo inizialmente considerato la possibilità di utilizzare come attuatore un servomotore. Successivamente ho recuperato dei motori passo passo e quindi ho deciso di utilizzare uno di questi per la mia realizzazione.
Il primo passo è stato quello di adattare meccanicamente il motore al mio SW 80ED, allo scopo ho utilizzato una staffa metallica a L.
Allegato:
Commento file: Staffa di sostegno del motore
Staffa.jpg [ 69.87 KiB | Osservato 3429 volte ]
Come potete vedere dalla foto la meccanica non è il mio forte.
Successivamente mi sono occupato della parte elettronica e qui fortunatamente me la cavo un pò meglio. La scelta di utilizzare un motore passo passo ha comportato l'utilizzo di un'elettronica leggermente + complessa, questo perchè c'è la necessità di utilizzare un apposito driver per il motore e un microcontrollore per gestire i vari segnali. Avendo a disposizione un tool di sviluppo della Atmel ho deciso di utilizzare come micro un AtMega32 mentre come driver del motore, essendo questo di tipo bipolare, ho utilizzato l'integrato SAA1042.
Inizialmente l'idea era quella di realizzare un sistema che mi permettesse con dei pulsanti di spostare il fuocheggiatore avanti e indietro, pertanto ho montato su delle millefori tutto il necessario e dopo aver realizzato il programm necessario il tutto funzionava abbastanza bene.
Però, com'è ben noto, l'appetito vien mangiando ed ho così deciso di migliorare il sistema aggiungendo nuove funzionalità:
1. Possibilità di gestire il movimento tramite PC utilizzando la porta USB
2. Ridurre le vibrazioni generate durante il movimento del motore passo passo
3. Possibilità di utilizzare software esistenti per la gestione
Per quanto riguarda il primo punto, non avendo porte seriali disponibili sul mio notebook e non volendo utilizzare convertitori esterni ho acquistato l'integrato della FTDI FT232R. In questo modo installando i driver reperibili sul sito del produttore, quando collego il mio sistema al PC mi viene aggiunta una porta COM virtuale.
La soluzione del secondo problema invece si è rivelata un pò più complessa. Il motore che sto utilizzando, infatti, si muove di 1,8° per step, quindi per fare un giro completo sono necessari 200 passi (full step) e posso garantire che durante il movimeto il passaggio da uno step all'altro si fa sentire in termini di vibrazioni. Per migliorare la situazione ho utilizzato la modalità half step che il driver SAA1042 mette a disposizione il che implica una gestione del motore a 400 passi per giro e devo dire che le vibrazioni si sono ridotte anche se comunque avvertibili.
In seguito facendo delle ricerche in rete ho trovato un driver per motori passo passo con delle caratteristiche fantastiche, parlo del TMC222 della Trinamic, questo chip è dotato di una propria intelligenza e permette tramite bus I2C di ricevere comandi per la movimentazione da un microcontrollore oltre che inviare allo stesso micro informazioni sullo stato e la posizione corrente del motore. Elenco di seguito le principali caratteristiche del chip:
- Possibilità di gestire il movimento in modalità microstepping, ogni full step del motore può essere suddiviso in 16 microstep
quindi posso far compiere un giro completo al motore utilizzando 3200 microstep con una notevole precisione
- Possibilità di gestire ogni fase del movimento con una accelerazione e una decellerazione entrambe programmabili
- Possibilità di programmare la coppia sia in fase di movimento che in fase di motore fermo
- Possibilità di conoscere in qualsiasi momento la posizione assoluta del motore.
Considerato che la Trinamic mette a disposizione dei campioni gratuiti di questi integrati ne ho approfittato e ne ho ordinato 1.
Dopo un pò di tempo passato a risolvere tutti i problemi di comunicazione sul bus I2C e implementare tutto il relativo firmware
ho realizzato un prototipo della scheda di controllo che vedete in foto.
Allegato:
Commento file: Scheda prototipo
Scheda.jpg [ 128.17 KiB | Osservato 3429 volte ]
Con questo sistema il movimento è molto fluido, inoltre grazie al sistema dell'accelerazione e della frenata preprogrammate il fuocheggiatore non subisce grossi scossoni.
Per quanto riguarda il terzo punto, dopo aver fatto un pò di ricerche ho scoperto il Software FocusMax che permette di automatizzare il processo di messa a fuoco utilizzando Maxim DL ed un fuocheggiatore elettronico. A questo punto perciò mi sono detto, perchè invece di realizzare un mio software per la gestione non utilizzo questo già bello e fatto che tra l'altro permette anche l'autofocus?
E qui è partita una nuova impresa... Tra i vari fuocheggiatori disponibili sul mercato e supportati da FocusMax c'è il Robofocus.
Ho quindi scaricato tutta la documentazione e dopo un pò di tempo sono riuscito a ricavari tutti i comandi che il software del robofocus invia al fuocheggiatore per gestirne il movimento.
Dopo aver implementato la gestione dei suddetti comandi sul firmware del mio prototipo sono riuscito a comandare il mio sistema
con il software del robofocus. Praticamente il software del robofocus crede a tutti gli effetti di comunicare con un fuocheggiatore
della stessa marca.
E veniamo al punto in cui sono arrivato (finalmente, direte voi...). Ieri sera ho provato il mio sistema con il sofware FocusMax,
dopo aver selezionato il driver ASCOM del robofocus, con mia grande gioia il fuocheggiatore ha fatto tutta la procedura di calibrazione che permette di gestire poi l'autofocus.
Appena avrò un pò di tempo metterò in rete un video per farvi vedere come funziona tutto il sistema.
Ovviamente sono graditi suggerimenti.
Vito