Costruisci un plotter a penna: due assi passo-passo che arrivano
Un plotter che esegue il proprio homing, disegna un quadrato di 100 mm che si chiude entro pochi decimi di millimetro e lo ripete.
Cosa stai costruendo
Un plotter cartesiano a penna: due assi a cinghie ad angolo retto, una penna che si solleva e un controllore che sa dove si trova la penna perché ha eseguito l’homing contro un interruttore all’accensione e da allora ha contato ogni impulso.
Vale la pena chiarire perché questa è una buona prima macchina di precisione, perché non è il progetto più spettacolare di questo sito. Tutto ciò che c’è qui — seguitore di linea, evitatore di ostacoli, robot che si bilancia — ha una retroazione. Un sensore osserva il mondo, il codice reagisce, gli errori vengono corretti in continuo. Questa macchina non ha nulla di tutto ciò. Nulla su di essa misura dove si trova la penna. L’unico motivo per cui una linea tracciata sulla carta finisce nel posto giusto è che ogni ipotesi su cui hai costruito il sistema si è rivelata vera.
Questo la rende un maestro insolitamente onesto. Un seguitore di linea che deriva continua comunque a seguire la linea. Un plotter che deriva disegna un quadrato che non si chiude, e il divario è proprio lì, a penna su carta, in millimetri, e ti dice esattamente quanto hai sbagliato.
Il numero che governa il progetto
Disegna un quadrato di 100 mm e misura il divario nel punto in cui l’ultimo angolo dovrebbe incontrare il primo.
Quella singola misurazione è l’intero tabellone del progetto, e il suo valore è che la forma dell’errore ne indica la causa:
| Cosa fa il quadrato | Causa | Dove viene affrontato |
|---|---|---|
| Costantemente più grande o più piccolo di una certa percentuale | Passi/mm errati | Calibrazione |
| Si apre sempre della stessa quantità, a ogni dimensione | Gioco meccanico | Tensione delle cinghie e viti senza testa |
| Si apre di una quantità diversa ogni volta | Perdita di passi | Corrente, velocità, accelerazione |
| Si chiude ma è un parallelogramma | Assi non perpendicolari | Il telaio |
| Si chiude a freddo, si apre ad alta velocità | Oltre il regime di sincronizzazione o la velocità in curva | Accelerazione, oppure 24 V |
Quattro di queste cinque cause sono impostazioni. Una è un problema del telaio. Sapere quale hai prima di iniziare a modificare le cose costituisce gran parte della competenza.
Lista dei componenti
| Componente | Quantità | Costo | Note |
|---|---|---|---|
| Motore passo-passo NEMA 17, 1.5–1.8 A | 2 | £18–28 | Corpo da 40 mm. Evita i pancake da 20 mm. |
| Driver A4988 | 2 (+1 ricambio) | £6–12 | Oppure DRV8825 — controlla la formula diversa per Vref |
| Arduino Uno | 1 | £4–20 | Anche Nano funziona ed è più piccolo |
| CNC shield v3 | 1 | £5 | Opzionale ma consigliato — include il condensatore di grosso capacità |
| Servo SG90 | 1 | £2 | Sollevamento della penna |
| Microswitch a leva | 2 | £1 | Uno per asse, all’estremità minima |
| Cinghia GT2, 6 mm | 2 m | £5 | Con nucleo in fibra di vetro. Solo gomma si allunga. |
| Puleggia GT2 a 20 denti, foro da 5 mm | 2 | £4 | Da qui derivano gli 80 passi/mm |
| Puleggia di rinvio GT2 | 4 | £5 | Foro liscio, non dentato, per le tratte di ritorno |
| Asta liscia da 8 mm, 400 mm | 4 | £10 | Oppure profilato 2020 con rotelle |
| Cuscinetti lineari LM8UU | 8 | £6 | Due per estremità dell’asta |
| Alimentatore 12–24 V, 2 A+ | 1 | £8–15 | 24 V se desideri velocità |
| Condensatore elettrolitico 100 µF, 35 V+ | 1 | £0.20 | Non è opzionale; se rinunci allo shield ti serve |
| Multimetro | 1 | £10–25 | Obbligatorio per Vref. Non ha un sostituto. |
| Viteria M3, staffe stampate | — | £5 | Oppure compensato tagliato al laser |
Circa £90–130. Il multimetro e l’alimentatore sono riutilizzabili; le parti per il movimento costano circa £60.
Ci sono due risparmi fasulli che vale la pena nominare. Una cinghia GT2 solo in gomma si allunga abbastanza da manifestarsi come gioco meccanico, mentre quella con nucleo in fibra di vetro costa una sterlina in più. E acquistare esattamente due driver invece di tre significa che il primo che distruggi dimenticando il condensatore blocca il progetto per una settimana.
Come è collegato tutto
12–24 V ──┬── 100 µF ──┬── VMOT (X driver)
│ └── VMOT (Y driver)
└── GND ─────┬── Arduino GND
│
Arduino Uno │
D2 ── X STEP D5 ── Y STEP │ X driver ── coil A ── motor X
D3 ── X DIR D6 ── Y DIR │ └ coil B
D8 ── ENABLE (both, active low) │ Y driver ── coil A ── motor Y
D9 ── X endstop (INPUT_PULLUP) │ └ coil B
D10 ── Y endstop (INPUT_PULLUP) │
D11 ── pen servo signal ────────────┴── servo 5 V from the Arduino
La regola non ovvia è una sola: instrada i fili dei finecorsa lontano dai cavi dei motori. Il cavo di un motore passo-passo è una sorgente di corrente a treno d’onda e un filo di finecorsa che lo affianca per 300 mm diventa un’antenna. Una macchina che esegue l’homing correttamente con i motori disabilitati e fallisce mentre sono in funzione ha questo problema e nessun altro.
Costruiscilo per traguardi
Ogni traguardo termina con una prova. Non saltarli — ognuno intercetta un guasto molto più difficile da trovare in seguito, quando anche altre tre cose saranno sbagliate.
1. Un motore sul banco. Driver cablato, Vref impostato, ENABLE basso, 3200 impulsi comandati.
→ Superato: l’albero compie esattamente una rivoluzione e il segno su di esso torna nello stesso punto, per dieci volte.
2. Vref su entrambi i driver. Calcola in base alla corrente nominale del motore e ai resistori di sensore della tua scheda — controlla la marcatura, R100 o R050.
→ Superato: entrambi i multimetri indicano un valore entro 0.02 V rispetto al valore di riferimento e, dopo dieci minuti di eccitazione, i motori sono caldi ma puoi tenere un dito su di essi.
3. Il telaio, entrambi gli assi in movimento. Cinghie montate e tese — sode, ma non tese come la corda di una chitarra. → Superato: spingendo a mano con i motori spenti, ogni asse si muove in modo fluido da un’estremità all’altra senza punti duri. Correggi ora eventuali blocchi; in seguito si fingeranno sempre come perdita di passi.
4. Passi per millimetro. Comanda 100 mm su ciascun asse, misura con un righello, correggi in base al rapporto e rimisura. → Superato: 100 mm comandati danno 99.5–100.5 mm su entrambi gli assi, due volte.
5. Gioco meccanico. Avvicinati a un segno da sinistra e annotalo; avvicinati da destra e annotalo. → Superato: meno di 0.2 mm. Se supera tale valore, tendi le cinghie e controlla che le viti senza testa delle pulegge siano sulle superfici piane dell’albero.
6. Trova il limite, poi arretrati. Aumenta velocità e accelerazione finché un asse salta un passo, poi imposta entrambe al 50–60% di tale valore. → Superato: venti cicli di andata e ritorno con le impostazioni scelte tornano allo stesso segno entro 0.1 mm.
7. Homing. Finecorsa montati, ricerca in tre fasi implementata, dieci cicli di homing con un segno tracciato ogni volta. → Superato: tutti e dieci i segni rientrano in 0.05 mm. E: scollega un finecorsa, esegui l’homing e verifica che si arresti segnalando un errore invece di continuare a spingere.
8. Il sollevamento della penna. Servomotore montato, angoli di salita e discesa determinati per prova. → Superato: la penna tocca la carta con una pressione leggera e uniforme su tutto il piano. Una penna montata rigidamente penetrerà su un lato di un piano non in livello — sospesa elasticamente o per gravità è molto più tollerante.
9. Il quadrato. Esegui l’homing, poi disegna 100 mm sulla carta. → Superato: l’ultimo angolo incontra il primo entro 0.3 mm e, disegnandolo tre volte, ottieni tre quadrati nello stesso posto.
Come appare un risultato buono
| Misura | Prima costruzione funzionante | Dopo la calibrazione | Il limite |
|---|---|---|---|
| Chiusura del quadrato a 100 mm | 1–3 mm | 0.2–0.3 mm | Ortogonalità del telaio |
| Ripetibilità dell’homing | 0.3 mm | 0.02–0.05 mm | Ripetibilità dell’interruttore |
| Gioco meccanico | 0.5 mm | 0.05–0.15 mm | Accoppiamento cinghia-puleggia |
| Velocità di disegno | 20 mm/s | 100–200 mm/s | Regime di sincronizzazione, poi velocità in curva |
| Passo del microstep | — | 0.0125 mm | Molto più fine di qualsiasi altro elemento |
Le ultime due righe insieme sono la lezione dell’intero progetto. La risoluzione del motore — 0.0125 mm — è all’incirca venti volte più fine dell’errore che realizzerai davvero. Nessuna parte della precisione finale è limitata dal motore passo-passo. Tutto dipende da cinghie, telaio e ortogonalità.
Vale la pena interiorizzarlo prima di acquistare un motore migliore per risolvere un problema di tracciatura, ed è il motivo per cui il simulatore di motore passo-passo è nel percorso: ti mostra che sotto un carico realistico il rotore si trova già tre o quattro microstep dietro rispetto a dove il driver pensa che sia, qualunque microstepping scelga.
Note sull’hardware che contano
Preferisci 24 V a 12 V, se puoi. Funzionano entrambi. La differenza è il punto in cui la coppia inizia a diminuire: circa 280 rpm a 12 V contro 600 rpm a 24 V per lo stesso motore e limite di corrente. Su una puleggia GT2 a 20 denti corrisponde all’incirca a 190 mm/s contro 400 mm/s prima che la macchina inizi a soffrire. Se il plotter dovrà sempre procedere lentamente, 12 V bastano.
Porta i jumper MS1–MS3 alti. Lo stepping a sedicesimi non rende la macchina più precisa, ma impedisce ai motori di rimbombare a ogni passo, il che su un telaio leggero fa la differenza tra una macchina che suona come una macchina e una che suona come un’vespa arrabbiata. Il costo è di 8 000 impulsi al secondo a 100 mm/s, che un Uno gestisce.
Tendi le cinghie in modo sodo, non teso. Le cinghie troppo tese caricano i cuscinetti del motore e aggiungono attrito che consuma il margine di coppia. Quelle troppo allentate aggiungono gioco meccanico. Devono essere abbastanza tese da suonare ovattamente quando le fai vibrare.
Entrambe le viti senza testa sulla superficie piana della puleggia. Una puleggia a 20 denti che scivola sull’albero produce un errore identico alla perdita di passi, che non risponde a nessuno dei rimedi per la perdita di passi. La Loctite non è eccessiva.
Quando va storto
| Sintomo | Causa | Rimedio |
|---|---|---|
| Il motore ronziona ma non gira | Coppie di avvolgimento incrociate o assenza di rampa di accelerazione | Ricoppia con un multimetro; aggiungi una rampa |
| Un asse deriva un po’ di più a ogni passaggio | Perdita di passi sulle rampe | Riduci l’accelerazione, aumenta Vref oppure rallenta |
| Funziona bene lentamente, salta ad alta velocità | Oltre la velocità in curva | Passa a 24 V — più corrente non aiuterà |
| Quadrato sempre del 2% più grande | Passi/mm errati | Calibra rispetto a un righello e correggi il rapporto |
| Quadrato aperto di una quantità costante | Gioco meccanico | Tendi le cinghie; controlla le viti senza testa |
| L’homing termina in un punto diverso ogni volta | Nessuna seconda passata lenta | Aggiungi la nuova ricerca a 1–3 mm/s |
| L’homing da solo funziona, ma fallisce durante il tracciamento | Filo del finecorsa che raccoglie il rumore del driver | Riprova; aggiungi 100 nF a massa sul pin |
| Il driver si distrugge all’accensione | Nessun condensatore di grosso capacità su VMOT | 100 µF, vicino alla scheda |
| I driver si disattivano durante il tracciamento | Spegnimento termico | Riduci Vref; aggiungi dissipatori e flusso d’aria |
| La penna strascica su un lato della pagina | Piano non in livello o penna montata rigidamente | Livella il piano; sospendi la penna elasticamente, senza fissarla |
| Le linee oscillano a una velocità precisa | Risonanza nella banda intermedia | Cambia leggermente la velocità oppure aggiungi massa al portale |
| Tutto è corretto, ma le forme restano deformate | Assi non ad angolo retto | Raddrizza il telaio — nessuna impostazione risolve il problema |
Dove portarlo in seguito
Sostituisci il firmware con GRBL. Una volta dimostrata la funzionalità della macchina, installare GRBL ti dà un vero interprete G-code con homing, limiti software, sistemi di coordinate e accelerazione già implementati. Configura $100 e $101 con i passi/mm calibrati e potrai comandarlo da qualsiasi strumento CAM.
CoreXY. Gli stessi due motori, entrambi fissati al telaio, con cinghie instradate in modo che X e Y siano combinazioni dei due motori anziché uno per ciascuno. Minore massa in movimento, quindi maggiore velocità e precisione — al costo di un livello cinematico di mescolamento tra coordinate e motori.
Un laser invece di una penna. Meccanicamente è la stessa macchina con un utensile diverso, ma un laser a diodo introduce reali requisiti di sicurezza per gli occhi, un’involucro e dispositivi di interblocco. Trattalo come un progetto separato anziché come una sostituzione.
Un asse Z con vite senza fine. Se vuoi tracciare su qualcosa dotato di altezza, oppure passare a incisioni leggere, una vite T8 fornisce 400 passi/mm e mantiene la posizione anche a tensione spenta.
Motore passo-passo a ciclo chiuso. L’unico potenziamento che elimina completamente la modalità di guasto più critica di questo progetto. Un encoder sul retro di ogni motore trasforma una silenziosa perdita di passi in una correzione o in un allarme. Costa tre o quattro volte tanto ed è davvero superfluo se hai superato tutti i traguardi sopra riportati.
Roadmap del progetto
Il percorso di costruzione
Segui l'albero tecnologico dai componenti fino a un robot funzionante. Ogni nodo si sblocca quando i suoi prerequisiti sono completati, e i tuoi progressi vengono salvati su questo dispositivo.
0 / 20 completati
Componenti
- AttuatoreMotore passo-passo NEMA 17Posizionamento ad anello aperto senza encoder, purché non si richieda mai più coppia di quanta ne disponga.
- DriverDriver per motore passo-passo A4988Un regolatore di corrente con un trimmer: imposta bene quel numero e tutto il resto funziona.
- ControllerArduino UnoLa scheda a 8 bit tollerante con cui la maggior parte delle persone scopre la robotica.
- SensoreMicroswitch a levaL'unico bit di sensazione che dice a un robot che ha già colpito qualcosa.
- AttuatoreServomotore SG90Il servomotore da nove grammi presente nella maggior parte di bracci robotici, pinze e sterzi.
- AlimentazionePacco batteria e alimentazione del robotLa differenza tra un robot che funziona e uno che continua a riavviarsi.
Tutorial in questo percorso
- Intermedio · 35 minMotori passo-passo: angolo di ritardo e passi persiL'angolo di ritardo spiega il funzionamento di un motore passo-passo, il microstepping e la perdita di passi.
- Principiante · 30 minA4988: Vref e limite di corrente del motore passo-passoL'unica regolazione che decide se il motore passo-passo funziona o si brucia: impostare Vref con un multimetro.
- Principiante · 25 minPassi per millimetro: cinghie, viti, risoluzioneUn solo numero collega gli impulsi ai millimetri. Ricavalo, poi dimostralo con una misurazione.
- Intermedio · 30 minHoming con finecorsa: coordinate macchina e lavoroPerché ogni macchina CNC avanza verso un interruttore all'accensione e che cosa significa davvero il numero che imposta.
- Intermedio · 40 minProfili di movimento: accelerazione trapezoidale e a curva SScala un movimento invece di comandarlo direttamente: profili trapezoidali, limiti di jerk e costo reale della curva S.
- Intermedio · 30 minGioco di inversione nei riduttori: come misurarlo e correggerloOgni riduttore ha un gioco. Scopri quanto ha il tuo e quanto ti sta costando in silenzio.
- Principiante · 30 minPerché delay() blocca i robot: temporizzazione con millis()Un robot fermo dentro delay() è cieco. Sostituiscilo con millis() ed esegui correttamente il confronto durante l'overflow ciclico.
- Principiante · 30 minPerché il robot si riavvia all'avvio dei motoriIl riavvio che sembra un bug del codice è quasi sempre la batteria. Calcola il fabbisogno di corrente, poi misura il collasso.
Esercitati prima di cablare
Mettilo a punto nel simulatore
Il percorso di costruzione passa per un laboratorio nel browser. Ottieni qui il comportamento giusto, poi trasferisci le tue impostazioni sul robot reale.
Domande frequenti
Quanto può essere preciso un plotter a penna hobbistico?
Un plotter a cinghie costruito con cura riproduce il movimento entro circa 0.1–0.2 mm e chiude un quadrato di 100 mm entro pochi decimi. I limiti non sono il motore: con stepping 1/16 su una puleggia GT2 a 20 denti un microstep è 0.0125 mm, molto più fine di qualsiasi altro elemento della macchina. A stabilire l'errore sono in realtà la tensione delle cinghie, la rigidità del telaio, il gioco alle pulegge e l'ortogonalità degli assi. Se ottieni un errore superiore a mezzo millimetro, misura questi quattro elementi prima di modificare qualsiasi impostazione del firmware.
Serve uno CNC shield o posso usare una breadboard?
Funziona in entrambi i casi. Uno CNC shield costa circa cinque sterline, offre connettori per i driver, porta in uscita i pin dei finecorsa e del mandrino e include il condensatore di grosso capacità — che elimina il modo più comune di distruggere un driver. La breadboard va bene per due assi se aggiungi tu 100 µF tra VMOT e tieni il cablaggio dei motori lontano dai segnali di step, ma lo shield costa meno del secondo driver che altrimenti distruggeresti.
Perché usare un servomotore per la penna invece di un terzo motore passo-passo?
Perché la penna richiede solo due posizioni, su e giù, e non ha bisogno di precisione in nessuna delle due. Un servomotore hobbistico lo fa con un solo pin di segnale e senza alcun driver, che è esattamente il compito per cui è progettato. Un asse Z con motore passo-passo richiederebbe un terzo driver, un terzo insieme di pin, una vite senza fine e un interruttore di homing, tutto per riprodurre ciò che un servomotore da due sterline fa in una riga di codice.
Cinghie o vite senza fine per gli assi X e Y?
Cinghie, senza esitare. Una cinghia GT2 fornisce 80 passi/mm e funziona volentieri a 200 mm/s o più; una vite senza fine T8 fornisce 400 passi/mm, ma richiede cinque volte più impulsi per la stessa distanza, il che su un Arduino Uno ti limita a circa 30 mm/s. Un plotter trasporta quasi nulla e deve spostarsi rapidamente su una pagina, ed è esattamente il caso in cui le cinghie sono efficaci. Le viti si guadagnano il posto su un asse Z che deve sostenere un peso.
Perché il mio quadrato non si chiude?
Quattro cause, distinguibili tra loro. Se l'errore è una percentuale fissa della distanza, i passi per millimetro sono sbagliati — calibra rispetto a un righello. Se è un valore costante indipendentemente dalla dimensione, è gioco meccanico, quindi tendi le cinghie e controlla le viti senza testa delle pulegge. Se è diverso ogni volta, perdi passi, quindi riduci l'accelerazione o aumenta la corrente. E se il quadrato è un parallelogramma invece di restare aperto, i due assi non sono perpendicolari, un problema del telaio che nessuna impostazione può correggere.
Posso usare GRBL invece di scrivere il firmware?
Sì, ed è la soluzione sensata una volta che la macchina funziona. GRBL trasforma l'Uno in un interprete G-code con homing, limiti software, accelerazione e sistemi di coordinate già implementati, e imposti i passi per millimetro con $100 e $101. Il motivo per cui scrivere prima la versione semplice è che eseguire il debug di una macchina e quello di una configurazione del firmware contemporaneamente è molto più difficile che farli uno dopo l'altro.