Sommario:

Arduino: Lib di precisione per motore passo-passo: 19 passaggi
Arduino: Lib di precisione per motore passo-passo: 19 passaggi

Video: Arduino: Lib di precisione per motore passo-passo: 19 passaggi

Video: Arduino: Lib di precisione per motore passo-passo: 19 passaggi
Video: Tutorial Mach3 - POLOLU A4988 Stepper Motor Driver + CNC shield 2024, Dicembre
Anonim
Image
Image
Variabili globali
Variabili globali

Oggi ti mostrerò una libreria per un driver per motori passo-passo completo con finecorsa e movimento del motore con accelerazione e micro passo. Questa Lib, che funziona sia su Arduino Uno che su Arduino Mega, permette di muovere i motori in base non solo al numero di passi, ma anche ai millimetri. Ed è anche abbastanza preciso.

Una caratteristica importante di questa libreria è che ti permette di costruire la tua macchina CNC, che non è necessariamente solo X, Y, ma anche un cambio di sezione, ad esempio, perché non è un GRBL pronto, ma piuttosto la programmazione che ti permette di realizzare la macchina ideale per te.

Tuttavia, la seguente affermazione è un dettaglio importante! Questo video è solo per chi è già abituato alla programmazione. Se non hai familiarità con la programmazione Arduino, dovresti prima guardare altri video introduttivi sul mio canale. Questo perché sto discutendo un argomento avanzato in questo video specifico e spiegando in modo più dettagliato il Lib utilizzato nel video: Step Motor con accelerazione e fine corsa.

Passaggio 1: libreria StepDriver

Questa libreria copre i tre tipi di driver più comuni sul mercato: A4988, DRV8825 e TB6600. Configura i pin dei driver, consentendo loro di eseguire il reset e il posizionamento in modalità Sleep, nonché di attivare e disattivare le uscite motore agendo sul pin Enable. Imposta anche gli ingressi dei pin micro-step del driver e limita gli interruttori e il loro livello di attivazione (alto o basso). Dispone inoltre di codice movimento motore con accelerazione continua in mm/s², velocità massima in mm/s e velocità minima in mm/s.

Per coloro che hanno visto le parti 1 e 2 del video Step Motor with Acceleration and End of Stroke, scarica questa nuova libreria disponibile oggi, perché ho apportato alcune modifiche a quel primo file per facilitarne l'uso.

Passaggio 2: variabili globali

Mostro esattamente a cosa serve ciascuna delle variabili globali.

Passaggio 3: funzioni - Impostazione dei pin del driver

Funzioni - Impostazione dei pin del driver
Funzioni - Impostazione dei pin del driver

Qui, descrivo alcuni metodi.

Ho impostato l'impostazione Pinout e i pin Arduino come output.

Passaggio 4: Funzioni - Funzioni di base del conducente

Funzioni - Funzioni di base del conducente
Funzioni - Funzioni di base del conducente

In questa parte, lavoriamo con la configurazione del driver e le sue funzioni di base.

Passaggio 5: Funzioni - Impostazione del passo del motore

Funzioni - Impostazione del passo del motore
Funzioni - Impostazione del passo del motore
Funzioni - Impostazione del passo del motore
Funzioni - Impostazione del passo del motore

In questo passo del codice, configuriamo la quantità di passi per millimetro che il motore deve eseguire.

Passaggio 6: Funzioni - Impostazione della modalità passo motore

Funzioni - Impostazione della modalità passo motore
Funzioni - Impostazione della modalità passo motore
Funzioni - Impostazione della modalità passo motore
Funzioni - Impostazione della modalità passo motore
Funzioni - Impostazione della modalità passo motore
Funzioni - Impostazione della modalità passo motore

Questa tabella mostra le impostazioni per la modalità passo motore. Ecco alcuni esempi.

Passaggio 7: Funzioni - Impostazione dei finecorsa

Funzioni - Impostazione dei finecorsa
Funzioni - Impostazione dei finecorsa

Qui, devo leggere i valori interi e booleani. E' necessario impostare se la chiave attiva è su o giù, mentre si imposta il limite massimo e minimo di finecorsa.

Fase 8: Funzioni - Lettura dei finecorsa

Funzioni - Lettura Finecorsa
Funzioni - Lettura Finecorsa
Funzioni - Lettura Finecorsa
Funzioni - Lettura Finecorsa
Funzioni - Lettura Finecorsa
Funzioni - Lettura Finecorsa

Questa parte è diversa da quella in Lib che ho reso disponibile la scorsa settimana. Perché l'ho cambiato? Bene, ho creato eRead per sostituirne altri. Qui, l'eRead leggerà il LVL, il digitalRead (pin) e restituirà TRUE. Tutto questo deve essere eseguito in alto. Il successivo lavoro con la chiave attiva sarà al livello basso. Lo userò qui per mostrarti la tabella "Verità".

Nell'immagine del codice, ho inserito un diagramma che aiuterà a capire che, in questa parte del codice sorgente, mi sto muovendo verso l'Ascendente e non ho ancora premuto il tasto di fine corso.

Ora, in questa immagine con il codice del sistema operativo bool DRV8825, mostro il motore ancora in movimento nella direzione della crescita. Tuttavia, si è attivato il finecorsa massimo. Il meccanismo, poi, deve fermare il movimento.

Per ultimo, mostro lo stesso movimento, ma nella direzione opposta.

Qui hai già attivato l'interruttore di fine corso.

Passaggio 9: Funzioni - Configurazione movimento

Funzioni - Configurazione movimento
Funzioni - Configurazione movimento

L'utilità principale del metodo motionConfig è convertire i millimetri al secondo (una misura utilizzata nelle macchine CNC) in passi, per soddisfare il controller di un motore passo-passo. È in questa parte, quindi, che istanziamo le variabili per capire i passi e non i millimetri.

Passaggio 10: Funzioni - Funzione di movimento

Funzioni - Funzione di movimento
Funzioni - Funzione di movimento

In questo passaggio, trattiamo il comando che sposta un passo nella direzione desiderata in un periodo in microsecondi. Impostiamo anche il pin di direzione del driver, il tempo di ritardo e la direzione dei finecorsa.

Passaggio 11: Funzioni - Funzione di movimento - Variabili

Funzioni - Funzione di movimento - Variabili
Funzioni - Funzione di movimento - Variabili

In questa parte, configuriamo tutte le variabili che coinvolgono periodi di velocità massima e minima, distanza di traiettoria e passaggi necessari per interrompere la traiettoria, tra gli altri.

Passaggio 12: Funzioni - Funzione di movimento - Accelerazione

Funzioni - Funzione di movimento - Accelerazione
Funzioni - Funzione di movimento - Accelerazione
Funzioni - Funzione di movimento - Accelerazione
Funzioni - Funzione di movimento - Accelerazione

Qui, presento alcuni dettagli su come siamo arrivati ai dati di accelerazione, che sono stati calcolati tramite l'equazione di Torricelli, poiché questa tiene conto degli spazi per lavorare l'accelerazione e non del tempo. Ma qui è importante capire che l'intera equazione riguarda solo una riga di codice.

Abbiamo identificato un trapezio nell'immagine sopra, perché gli RPM iniziali sono dannosi per la maggior parte dei motori passo-passo. La stessa cosa accade con la decelerazione. Per questo motivo, visualizziamo un trapezio nel periodo tra l'accelerazione e la decelerazione.

Passaggio 13: Funzioni - Funzione di movimento - Velocità continua

Funzioni - Funzione di movimento - Velocità continua
Funzioni - Funzione di movimento - Velocità continua
Funzioni - Funzione di movimento - Velocità continua
Funzioni - Funzione di movimento - Velocità continua

Qui manteniamo il numero di passaggi utilizzati nell'accelerazione, continuiamo a velocità continua e manteniamo con la velocità massima, che può essere vista nell'immagine qui sotto.

Passaggio 14: Funzioni - Funzione di movimento - Decelerazione

Funzioni - Funzione di movimento - Decelerazione
Funzioni - Funzione di movimento - Decelerazione
Funzioni - Funzione di movimento - Decelerazione
Funzioni - Funzione di movimento - Decelerazione

Qui abbiamo un'altra equazione, questa volta con un valore di accelerazione negativo. Viene anche visualizzato in una riga di codice, che rappresenta, nell'immagine sottostante, il rettangolo etichettato Decelerazione.

Passaggio 15: Funzioni - Funzione di movimento - Velocità continua

Funzioni - Funzione di movimento - Velocità continua
Funzioni - Funzione di movimento - Velocità continua
Funzioni - Funzione di movimento - Velocità continua
Funzioni - Funzione di movimento - Velocità continua

Torniamo a velocità continua per lavorare la seconda metà della traiettoria, come visto sotto.

Passaggio 16: Funzioni - Funzione di spostamento - Sposta turni

Funzioni - Funzione di spostamento - Sposta turni
Funzioni - Funzione di spostamento - Sposta turni

In questa parte spostiamo il motore di un certo numero di giri nella direzione desiderata, convertendo il numero di giri in millimetri. Infine, spostiamo il motore nella direzione richiesta.

Passaggio 17: Grafico del movimento - Velocità di posizione

Grafico del movimento - Velocità di posizione
Grafico del movimento - Velocità di posizione

In questo grafico, ho i dati estratti dall'equazione che abbiamo usato nella parte di Accelerazione. Ho preso i valori e ho giocato sul seriale Arduino, e sono passato da questo a Excel, che ha portato a questa tabella. Questa tabella mostra lo stato di avanzamento della fase.

Passaggio 18: grafico del movimento - Posizione vs. Posizione

Grafico del movimento - Posizione vs. Posizione
Grafico del movimento - Posizione vs. Posizione

Qui prendiamo la posizione, in passi, e la velocità e la convertiamo in periodo, in microsecondi. Notiamo in questo passaggio che il periodo è inversamente proporzionale alla velocità.

Passaggio 19: grafico del movimento - Velocità vs. Momento

Grafico del movimento - Velocità vs. Momento
Grafico del movimento - Velocità vs. Momento

Infine, abbiamo la velocità in funzione dell'istante, e per questo abbiamo una retta, poiché è la velocità in funzione del tempo.

Consigliato: