Articoli

Link alla parte I – Introduzione

Link alla parte II – La Critical Focus Zone

Dopo aver visto un pò l’introduzione di questo splendido progetto di R.Brown ed aver affrontato alcuni aspetti relativi alla Critical Focus Zone e alla risoluzione dei motori, abbiamo compreso come sia necessario (per lavorare in maniera precisa) ottenere un buon accoppiamento tra focheggiatore e motore.

In questo articolo ci spostiamo un pò piu in “la” andando quindi a vedere un altro accoppiamento opportuno da valutare, che è quello tra motore e driver di pilotaggio.

Ebbene si, non solo dobbiamo tenere presente delle caratteristiche meccaniche del sistema, ma dovremmo porre un pò in valutazione anche le caratteristiche di pilotaggio del motore dal momento che questo avviene tramite una schedina contenente un chip, comunemente chiamato DRIVER o DRIVER MOTORI.

I MOTORI PASSO PASSO

Ho scelto di spendere due parole sula tecnologia dei motori passo passo perchè in questi anni di passione ci siamo tutti resi conto come questa tipologia di motori rappresenti da almeno un ventennio la soluzione preferita per tutti gli organi di movimento di precisione, che siano quelli di una montatura, di un focheggiatore, di un rotatore di campo e in alcuni (rarissimi) casi anche di una ruota portafiltri (sebbene queste ultime di solito hanno sensori magnetici di posizione o ottici)

Da quando è stato inventato arduino e tutta la miriade di controllori ad esso associati, sicuramente si è sviluppato in larghissima scala anche il contesto hobbystico di questa tipologia di dispositivi e di motori, portando cosi questa bellissima tecnologia a portata di qualsiasi casalinga di Voghera che voglia controllare con passi numerici determinati meccanismi e che abbia bisogno di sapere precisamente a che punto si trovi uno scorrimento di un organo di rotazione senza dover ricorrere all’encoder seppur quest’ultimo rimane a tutt’oggi l’unico vero sistema di controllo preciso di rotazione. Se pensiamo ad esempio alle stampanti 3D, abbiamo il quadro completo di come siano sfruttabili questi aggeggi..

Il funzionamento di un motore passo passo (o stepper) è relativamente semplice e si può identificare nello schema seguente ma con un’attenzione particolare…non è l’unico schema possibile, è solo quello piu elementare. Di motori passo passo (o stepper) ne son state costruite milioni di versioni con diverse logiche di funzionamento seppur il ragionamento base è sempre lo stesso.

Quello che vediamo sopra, è il tipico funzionamento di un motore passo passo. Ed è piuttosto semplice intuirne il funzionamento seppur possiamo spiegarne in modo elementarissimo la logica di funzionamento…in parole povere, prendendo a riferimento uno degli innumerevoli testi che si trovano online:

Date queste premesse, si immagini di fornire tensione al conduttore A, collegando B a massa e lasciando scollegate le fasi C eD: a causa della magnetizzazione delle espansioni polari connesse alle fasi A e B il magnete permanente del rotore ruoterà, orientandosi in modo da allineare le proprie espansioni polari Nord e Sud nella direzione A-­‐‑B, come mostrato in figura.Se successivamente si toglie tensione alla fase A e la si commuta alla fase C in modo da alimentare il percorso di corrente da C a D, il rotore ruoterà in senso orario di un quarto di giro allineandosi lungo la direzione C-­‐‑D. Per provocare un ulteriore avanzamento sifornirà tensione alla fase B, poi alla D e così via, provocando una continua rotazione dell’asse del motore.La sequenza degli impulsi elettrici da fornire è quella evidenziata in figura(corrispondente a due giri del motore), dove le varie sequenze sono sincronizzate da un clock, il cui periodo determina ovviamente la frequenza di ripetizione degli impulsi, e quindi la velocità di rotazione del motore

Altro aspetto interessante dei motori passo passo è la loro capacità di mantenere la posizione quando sono alimentati, bloccandosi in un determinato punto fino a che non avviene appunto un cambio di stato sulle bobine che ne consenta il movimento.

Risultato immagini per stepper gif

Da qui comprendiamo bene che

a) c’è una sequenza ben precisa con cui fornire alimentazione alle bobine

b) Se io fornissi corrente al motore come ad un normale motore elettrico senza costruirmi un’elettronica di controllo, il motore non si muoverebbe

c) tornando all’immagine di cui sopra, esiste un “clock” con cui alternare le varie fasi, ed agendo su questo clock io determino la velocità con cui ruoterà il mio motore, se ruoterà avanti o indietro e sfruttando determinate peculiarità del clock, posso avere anche passi intermedi aumentando cosi il numero di passi per rotazione (funzione denomianta HALF STEP ovvero Mezzo Passo)

Bene, chi è deputato a fare questo?

IL DRIVER MOTORI E IL CONTROLLER

ESATTAMENTE! Il driver motori. insieme al controller…Ogni volta che sentiamo parlare di motore passo passo, non ci si dovrebbe riferire solo al motore in sè ma a tutta l’elettronica che ne gestisce il movimento e quindi per ogni motore c’è il driver che ne gestisce frequenze, rotazione, alimentazioni e la corrente di alimentazione al motore.

Il driver motori è costituito generalmente da uno o piu Chip saldati su un PCB il quale contiene tutta quella serie di resistenze, diodi di protezione, led etc.etc. che ne permettono il regolare funzionamento. Essendo questo deputato a fornire appunto anche la corrente in transito verso il motore, ha un problemino: se il motore va molto sotto sforzo, il driver scalda. E se scalda troppo, frigge. E se frigge, ciao rotazione perchè chiaramente il motore senza il corretto driver non può funzionare.

Il driver in buona sostanza potremmo associarlo da una serie di interruttori (4) che si aprono e chiudono in maniera consequenziale in base al proprio clock interno e la cui attivazione di un ciclo di sequenza avviene tramite l’ingresso di un segnale di corrente in un determinato piede del chip. Leggendo segnale elettrico in ingresso su quel pin, fa partire la sequenza di On/Off per ogni uscita verso al motore (4 nel nostro caso). Quindi, se arduino , ipotesi, apre il pin XY a cui è collegata l’entrate del chip apposita, il driver lo riconosce e attiva il primo interruttore alla cui uscita è collegato il cavo n.1 del motore, in un altro dei 4 cavi ci sarà il polo negativo e questo stato di cose genererà il primo movimento del motore e quindi il primo passo. Nella sequenza successiva, sarà il cavo n.2 ad essere deputato al ruolo di fornire corrente, e il corrispettivo cavetto diventerà il polo negativo, ripetendo il ciclo per un altro passo, come abbiamo visto in precedenza.

Per citare esempi che facciano vedere un pò le schede di controllo dei motori passo passo, quello che allego qua sotto è un esempio del driver motori di una Heq5 costituito da due chip per asse

Risultato immagini per neq6 motor driver

Mentre questa ad esempio è la motor board di un LX 200

Risultato immagini per vixen motor board

Per capire ancora meglio, penso si aopportuno affidarsi anche ad uno schema generico di funzionamento di un driver motori, in dettaglio questo che sarà il driver di cui ci occuperemo durante la costruzione. In Dettaglio il DRV8825, un driver piuttosto performante, minuscolo, che fornisce tutte le opzioni che ci servono e consente il transito di 0,4 ampere per ogni ciclo…ed è veramente tanto, considerando l’alimentazione a 12V a cui collegeremo la Vmot. Il costo di un driverino del genere si attesta intorno alle 3,5 euro, si trovano a piu e si trovano a meno, ma grosso modo tutti viaggiano intorno a ste cifre.

DRV8825 SCHEMA

Come possiamo vedere, abbiamo un pò di pin sul lato sinistro, che andranno collegati ad arduino. Mentre i pin sul lato destro andranno collegati al motore. In dettaglio, partendo dalla sinistra

LATO ARDUINO

a) ENABLE: Questo pin se alimentato (o quando alimentato) consente l’abilitazione o la disabilitazione del driver. E’ utile qualora si voglia, ad esempio, togliere corrente al motore quando questo è a riposo anche se è preferibile gestirlo non spegnendo l’elettronica (come in questo caso) ma mettendola a riposo, con il pin Sleep che vediamo successivamente

b) da M0 a M2 . Questi pin, consentono una gestione dei passi. Alimentati in certe combinazioni, consentono la divisione dei passi in 1/2, 1/4, 1/8 etc. Praticamente la gestione di questi pin consente di combinare le uscite verso il motore in modo tale da causare una rotazione piu small per passo. Ad esempio potremmo passare da 200 passi giro a 400 passi giro o a 800 passi giro, agendo elettricamente su questi pin. Personalmente, lo sconsiglio perchè io sono un pò antico e preferisco dotarmi di un bel motore ridotto e lasciare il full step. L’half step ha come contropartita quella di diminuire sensibilmente la coppia del motore che opporrà meno resistenza al movimento quando fermo e contestualmente avrà meno spunto quando dovrà iniziare la rotazione per spostarsi verso il fuoco.

c) Reset: non in uso

d) Sleep: fa quello che avevamo anticipato al punto a). In dettaglio…siccome i motori passo passo quando alimentati continuano a mantenere uno stato di blocco, questo pin permette (quando alimentato) di mettere in stand by il driver e di togliere corrente al motore. Questo può essere utile ad esempio se non si vuole che il motore scaldi troppo, perchè anche qualora il motore sia fermo ma l’elettronica di controllo sia attiva, il motore continuerà a scaldarsi pur non muovendosi. Siccome stiamo parlando però di un sistema di focheggiatura su cui ci mettiamo del peso, è consigliabile non gestire funzioni di sleep affinchè il motore rimanga in uno stato di blocco assoluto. Sviluppando la comprensione di questo concetto (cioè di NON disattivare il motore) ed affiancandolo ad un motore con riduttore che a sua volta ha una coppia molto molto alta, ecco dove troviamo la possibiltià di avere un sistema di focheggiatura che sposti fortissimi carichi e che mantenga il fuoco anche in posizioni piu complesse

e) STEP: Questo è il pin che farà partire la sequenza. Quando questo pin rileverà un segnale elettrico consentirà la partenza di un ciclo di movimento. Piu impulsi arriveranno a questo pin e piu il ciclo andrà avanti. Supponiamo che i lmotore si trovi a 5000 passi debba andare a 6.000 passi, arduino conterà per 1000 volte l’apertura del pin che porterà per 1000 volte un impulso di entrata al driver, il quale per 1000 volte completerà il ciclo di rotazione.

f) DIR: questo è il pin piu banale…se non alimentato, consentirà una sequenza di alimentazione verso i 4 fili del motore in una direzione sequenziale, mentre se alimentato invertirà la sequenza.

LATO MOTORE

Visto cosa succede in entrata al driver, adesso è il momento di osservare cosa avviene in uscita dal chip

a) Vmot: Questa è l’alimentazione che arriverà al motore, può viaggiare su questo driver dagli 8 volt ai 45 volt. Ma a noi serve la 12V, e quindi qua dovrà essere collegata la 12V in entrata dal nostro controller Ascom che a questo punto, come potremo intuire, non avrà piu una sola tensione all’interno ma 2: la prima è la 5Volt fornita da Arduino, la seconda è la 12V fornita al motore e al driver (ebben si, questo segnale alimenta anche il driver). In realtà nel progetto come l’ho fatto io ho modificato un pò anche questo aspetto, nel mio controller girano ben 3 voltaggi: 12 Volt, 8 Volt e 5 Volt, poi nei prossimi tutorial vediamo perchè ho adottato questa soluzione

b) GND: qua bisogna prestare attenzione…questo Ground rappresenta il polo NEGATIVO deI segnali del motore, quindi non è da confondere con il GND che troviamo in fondo alla scheda che ha un’altro scopo. In parole povere, questo ground è quello diretto al motore, è quel polo negativo che causerà la chiusura del circuito della tensione in transito verso il motore e che viene fornita attraverso i 4 pin che andiamo a spiegare ora

c) B2, B1, A1, A2: Eccoli qua i pin a cui collegare i nostri motori. Qua bisogna prestare un pò di attenzione perchè andranno collegati in maniera corretta altrimenti il motore non girerà, farà rumore, scalderà e in taluni casi potrà portare a fusione il driver a causa di un cortocircuito!! In dettaglio basterà affidarsi alla scheda tecnica del motore dove solitamente viene specificata (per questo motivo consiglio di dotarsi si motori nuovi e non di quelli trovati sotto al cuscino di zia..)

Come si vede chiaramente…avremo...A e /A del motore che saranno A1 e A2 sul driver mentre B e /b del motore saranno B1 e B2 del driver.

Collegato in questo modo, avremo mantenuto la corretta piedinatura delle bobine del motore al nostro driver.

d) Fault;: non in uso

e) GND: ecco questo GROUND è piuttosto importante, perchè qua andrà collegata la Ground di Arduino. Siccome, come stiamo intuendo, tutto il pilotaggio si svolge tramite segnali elettrici, dovremo avre un ground comune tra arduino e il driver altrimenti il segnale in entrata dai pin posti lato arduino andranno a scaricarsi su una GND non corretta non consentendo cosi la chiusura del circuito tra Arduino e il Driver Motori e la risultante sarà che non ci sarà corrente in transito tra arduino e il driver.

CONCLUSIONE

In conclusione, adesso penso che si stiano facendo un pò piu chiare le cose. I driver motori presenti sul mercato sono una miriade, io personalmente mi trovo molto bene con questo, siglato appunto DRV8825. Questo fornisce 0,4 ampere al motore che sono ben sufficienti allo scopo, costa poco, ha una grande versatilità e consente di operare in tutte le condizioni necessarie costituendo cosi un particolare piuttosto importante e ben costruito di questo progetto. Unica raccomandazione che fornisco è di considerare il montaggio di un dissipatore sul driver perchè scalda, ma di solito viene fornito col driver stesso.

Raccomandazione: si tratta di componentistica cinese, il che significa che non tutti i prodotti siano buoni alla stessa maniera. Compratene piu di uno e potrete sostituire qualora un driver non funzioni e ad ogni modo è sempre bene averne qualcuno in piu per scongiurare il blocco del progetto a causa di errori di montaggio.

Nel prossimo articolo, inizieremo a parlare di schemi elettrici e di costruzione.

Stay Tuned

Fabio Mortari