BouwrouteGevorderdEen weekend

Bouw een penplotter: twee stappenmotorassen die op de plek komen

Een plotter die zichzelf homed, een vierkant van 100 mm tekent dat binnen enkele tiende millimeter sluit, en dat herhaalt.

Technisch schema: Bouw een penplotter: twee stappenmotorassen die op de plek komenFIELDROTORCARRIAGE80 STEPS/MM · 1.8° · 1/16LAG ANGLE DECIDES WHETHER IT ARRIVES

Wat je bouwt

Een cartesische penplotter: twee door riemen aangedreven assen die loodrecht op elkaar staan, een pen die omhoog kan, en een besturingseenheid die weet waar de pen is, omdat die bij het opstarten tegen een schakelaar de nulpositie heeft bepaald en sindsdien elke puls heeft geteld.

Het is de moeite waard duidelijk te zeggen waarom dit een goede eerste precisiemachine is, want het is niet het spectaculairste project op deze site. Al het andere hier — lijnvolgers, obstakelvermijders, balancers — heeft terugkoppeling. Een sensor ziet de wereld, de code reageert, fouten worden voortdurend gecorrigeerd. Deze machine heeft daar niets van. Niets erop meet waar de pen is. De enige reden dat een lijn op papier op de juiste plek terechtkomt, is dat elke aanname die je hebt ingebouwd klopte.

Daarmee is het een ongewoon eerlijke leermeester. Een lijnvolger die afdrijft volgt de lijn nog steeds. Een plotter die afdrijft tekent een vierkant dat niet sluit, en de kloof ligt er in pen op papier, in millimeters, en vertelt je precies hoe verkeerd je zat.

Het getal waar het hele project om draait

Teken een vierkant van 100 mm en meet de kloof waar de laatste hoek de eerste zou moeten raken.

Die ene meting is de volledige scorekaart van het project, en de waarde ervan is dat de vorm van de fout je de oorzaak vertelt:

Wat het vierkant doet Oorzaak Waar het wordt aangepakt
Consistent een paar procent te groot of te klein Verkeerde stappen/mm Kalibratie
Bij elke grootte evenveel open Speling Riemspanning en borstelschroeven
Elke keer anders open Stappenverlies Stroom, snelheid, versnelling
Sluit, maar vormt een parallellogram Assen niet loodrecht Het frame
Sluit koud, gaat open bij snel rijden Boven de aanloopsnelheid of de snelheid bij richtingswissels Versnelling, of 24 V

Vier van die vijf zijn instellingen. Eén is een frameprobleem. Weten welke van de twee je hebt voordat je iets verandert, is het meeste van de vaardigheid.

Onderdelenlijst

Onderdeel Aantal Prijs Opmerkingen
NEMA 17-stappenmotor, 1,5–1,8 A 2 £18–28 Motorhuis van 40 mm. Vermijd de pannenkoeken van 20 mm.
A4988-driver 2 (+1 reserve) £6–12 Of DRV8825 — controleer de andere Vref-formule
Arduino Uno 1 £4–20 Een Nano werkt ook en is kleiner
CNC-shield v3 1 £5 Optioneel maar aan te bevelen — bevat de grote condensator
SG90-servomotor 1 £2 De penoplaat
Microswitch met hefboog 2 £1 Eén per as, aan de minimale kant
GT2-riem, 6 mm 2 m £5 Met glasvezelkern. Alleen rubber rekt uit.
GT2-riemschijf, 20 tanden, as van 5 mm 2 £4 Hier komen de 80 stappen/mm vandaan
GT2-spanrol 4 £5 Glatte as, niet getand, voor de retourloops
Gladde staaf, 8 mm, 400 mm 4 £10 Of 2020-aluminium met wielen
LM8UU-lagerblokken 8 £6 Twee per uiteinde van de staaf
12–24 V-voeding, 2 A+ 1 £8–15 24 V als je snelheid wilt
Elektrolytcondensator 100 µF, 35 V+ 1 £0,20 Niet optioneel; zonder shield heb je deze nodig
Multimeter 1 £10–25 Nodig voor Vref. Er is geen alternatief.
M3-bevestiging, geprinte brackets — £5 Of een lasersnede in multiplex

Ongeveer £90–130. De multimeter en de voeding zijn herbruikbaar; de bewegingsonderdelen kosten zo’n £60.

Twee valkuilen die het noemen waard zijn. Een GT2-riem met alleen rubber rekt genoeg uit om zich als speling te tonen, en de variant met glasvezelkern kost een pond meer. En wie precies twee drivers koopt in plaats van drie, ziet de eerste die hij vergeet af te dekken met een condensator het project meteen een week lang stillig liggen.

Hoe alles samenhangt

                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

De enige niet-vanzelfsprekende regel: leid de draden van de eindstopschakelaars weg van de motorkabels. Een stappenmotorkabel is een choppende stroombron, en een eindstopdraad die er 300 mm naast loopt is een antenne. Een machine die goed homt met de motoren uitgeschakeld en het niet doet terwijl ze draaien, heeft precies dit probleem en niets anders.

Bouw het in mijlpalen

Elke mijlpaal eindigt in een test. Sla ze niet over — elke test vangt een fout die later veel lastiger te vinden is, als er al drie andere dingen ook kapot zijn.

1. Eén motor op de werkbank. Driver bedraad, Vref ingesteld, ENABLE laag, 3200 pulsen gestuurd. → Criterium: de as draait precies één omwenteling en een markering erop komt tien keer na elkaar op dezelfde plek terug.

2. Vref op beide drivers. Reken het uit op basis van de nominale stroom van je motor en de meetweerstanden op jouw bord — controleer de aanduiding, R100 of R050. → Criterium: beide meters lezen binnen 0,02 V van de doelwaarde, en na tien minuten vasthouden zijn de motoren warm maar kun je er nog je vinger op houden.

3. Het frame, met beide assen in beweging. Riemen gemonteerd en gespannen — strak, maar niet gitaarsnaarstrak. → Criterium: met uitgeschakelde motoren met de hand geduwd, beweegt elke as soepel van het ene uiteinde naar het andere zonder plekken waar het vastloopt. Verhelp dit meteen; anders doet het zich later altijd voor als stappenverlies.

4. Stappen per millimeter. Stuur 100 mm op elke as aan, meet met een liniaal, corrigeer met de verhouding en meet opnieuw. → Criterium: een aangestuurde 100 mm levert op beide assen 99,5–100,5 mm, twee keer.

5. Speling. Nader een markering van links, noteer hem; nader van rechts, noteer hem. → Criterium: minder dan 0,2 mm. Daarboven: riemen aanspannen en controleren of de borstelschroeven op het vlak van de as zitten.

6. Zoek de grens en neem gas terug. Verhoog snelheid en versnelling tot een as stappen overslaat en zet beide op 50–60% daarvan. → Criterium: twintig heen-en-weercycli op je gekozen instellingen komen binnen 0,1 mm op dezelfde markering terug.

7. Homing. Eindstopschakelaars gemonteerd, zoeken in drie fasen geïmplementeerd, tien homingcycli met telkens een markering. → Criterium: alle tien markeringen binnen 0,05 mm. En: haal een eindstop eruit, hom, en controleer dat hij met een foutmelding opgeeft in plaats van te blijven wrijven.

8. De penoplaat. Servomotor gemonteerd, bovenste en onderste stand gevonden door te proberen. → Criterium: de pen raakt het papier met lichte, gelijkmatige druk over het hele bed. Een pen die je stijf monteert graaft zich aan één kant in een bed dat niet waterpas staat; monteer je hem aan een veer of laat je hem aan de zwaartekracht hangen, dan is dat veel vergevingsgezinder.

9. Het vierkant. Hom, en teken dan 100 mm op papier. → Criterium: de laatste hoek raakt de eerste binnen 0,3 mm, en drie keer tekenen geeft drie vierkanten op dezelfde plek.

Hoe goed het eruit moet zien

Meting Eerste werkende build Na kalibratie De grens
Sluiting van het vierkant bij 100 mm 1–3 mm 0,2–0,3 mm Loodrechtheid van het frame
Herhaalnauwkeurigheid van homing 0,3 mm 0,02–0,05 mm Herhaalnauwkeurigheid van de schakelaar
Speling 0,5 mm 0,05–0,15 mm Passing van riem en riemschijf
Tekensnelheid 20 mm/s 100–200 mm/s Aanloopsnelheid, daarna snelheid bij richtingswissels
Microstapgrootte — 0,0125 mm Veel fijner dan al het andere

De laatste twee rijen samen zijn de les van het hele project. De resolutie van de motor — 0,0125 mm — is ongeveer twintig keer fijner dan de fout die je in de praktijk haalt. Geen enkel deel van de uiteindelijke nauwkeurigheid wordt door de stappenmotor begrensd. Het is allemaal riem, frame en loodrechtheid.

Dat is de moeite waard te begrijpen voordat je een betere motor koopt om een tekenprobleem op te lossen, en daarom staat de stappenmotor-simulator op het pad: hij laat zien dat de rotor onder een realistische belasting al drie of vier microstappen achter de positie zit die de driver denkt te hebben, ongeacht welk microstappen je kiest.

Hardwaretips die ertoe doen

24 V in plaats van 12 V, als je kiezen mag. Allebei werken. Het verschil is waar het koppel wegvalt: ongeveer 280 rpm bij 12 V tegenover 600 rpm bij 24 V, voor dezelfde motor en dezelfde stroomgrens. Op een GT2-riemschijf met 20 tanden is dat ruwweg 190 mm/s tegenover 400 mm/s voordat de machine begint te tobben. Als de plotter maar langzaam kruipt, is 12 V prima.

Zet jumper MS1–MS3 hoog. Stappen in zesten maakt de machine niet nauwkeuriger, maar het voorkomt dat de motoren bij elke stap nazingen, wat op een licht frame het verschil is tussen een machine die klinkt als een machine en een die klinkt als een boze wesp. Dat kost 8 000 pulsen per seconde bij 100 mm/s, en een Uno kan dat aan.

Span de riemen strak, maar niet klem. Te strak gespannen riemen belasten de lagers van de motor en voegen wrijving toe die je koppelmarge opslokt. Te los gespannen riemen geven extra speling. Strak genoeg om dof te tokken, maar niet verder, is goed.

Beide borstelschroeven op het vlak van de as. Een riemschijf met 20 tanden die op de as kruipt levert een fout die er precies uitziet als stappenverlies en op geen enkele oplossing daarvoor reageert. Loctite is hier niet overdreven.

Wat er misgaat

Symptoom Oorzaak Oplossing
Motor gonst maar draait niet Spoelparen omgekruist, of geen versnellingshelling Controleer de spoelparen met een meter; voeg een helling toe
Eén as drijft per ronde iets verder door Stappenverlies op de hellingen Verlaag de versnelling, verhoog Vref, of ga langzamer
Bij langzaam fijn, bij snel stappen overslaan Boven de snelheid bij richtingswissels Ga naar 24 V — meer stroom helpt niet
Vierkant is consistent 2% te groot Verkeerde stappen/mm Kalibreer tegen een liniaal en corrigeer de verhouding
Vierkant is steeds evenveel open Speling Span de riemen aan; controleer de borstelschroeven
Homt elke keer naar een andere plek Geen langzame tweede gang Voeg het opnieuw zoeken toe op 1–3 mm/s
Homt prima alleen, faalt tijdens het tekenen Eindstopdraad pikt ruis van de driver op Leid hem opnieuw; zet 100 nF naar massa op de pin
Driver gaat kapot bij het opstarten Geen grote condensator op VMOT 100 µF, dicht bij de print
Drivers vallen uit tijdens het tekenen Thermische beveiliging Verlaag Vref; zet koellichaammen en luchtstroom
Pen schuurt aan één kant van het papier Bed niet waterpas, of pen stijf gemonteerd Maak het bed waterpas; hang de pen aan een veer in plaats van vast te zetten
Lijnen wiebelen bij één bepaalde snelheid Resonantie in de middenband Verander de snelheid licht, of geef het portaal meer massa
Alles klopt, vormen blijven scheef Assen niet loodrecht op elkaar Maak het frame loodrecht — geen instelling helpt

Waar je hierna mee verder kunt

Zet GRBL erin. Zodra de machine bewezen werkt, geeft het flashen van GRBL je een echte G-code-interpreter met homing, zachte limieten, coördinatensystemen en versnelling al geschreven. Stel $100 en $101 in met je gekalibreerde stappen/mm en je kunt hem vanuit elke CAM-tool aansturen.

CoreXY. Dezelfde twee motoren, allebei vast aan het frame, met riemen zó gelegd dat X en Y combinaties van de twee motoren zijn in plaats van elk één motor. Minder bewegende massa, dus sneller en nauwkeuriger — tegen de prijs van een kinematische menglaag tussen de coördinaten en de motoren.

Een laser in plaats van een pen. Mechanisch is het dezelfde machine met een ander gereedschap, maar een diodelaser voegt echte eisen voor oogveiligheid, een behuizing en vergrendelingen toe. Behandel het als een apart project, niet als een uitwisseling.

Een Z-as met schroefspindel. Wil je tekenen op iets met hoogte, of overstappen op licht graveren, dan geeft een T8-schroefspindel 400 stappen/mm en houdt de positie vast met de voeding uit.

Stappenmotoren met gesloten lus. De enige upgrade die de gevaarlijkste storingsmodus van dit project volledig wegneemt. Een encoder op de achterkant van elke motor maakt van een stilzwijgend verloren stap een correctie of een alarm. Drie tot vier keer de kosten, en werkelijk overbodig als je alle mijlpalen hierboven hebt gehaald.

Projectroadmap

De bouwroute

Volg de techboom van onderdelen tot een werkende robot. Elk knooppunt wordt ontgrendeld zodra de voorwaarden klaar zijn, en je voortgang wordt op dit apparaat opgeslagen.

0 / 20 klaar

100%
Doel

Een plotter die een vierkant tekent dat sluit

Het hele project

Leerroute

Precisiebeweging met stappenmotoren

Leerroute

Route openen
Bouw

Bouw op, kalibreer, teken

Een weekend

Componenten

Tutorials in deze route

Oefen voordat je bedraadt

Stem het af in de live simulator

De bouwroute loopt via een lab in de browser. Krijg het gedrag hier goed en zet je instellingen daarna over naar de echte robot.

Veelgestelde vragen

Hoe nauwkeurig kan een hobby-penplotter zijn?

Een zorgvuldig gebouwde riemaangedreven plotter haalt een herhaalnauwkeurigheid van ongeveer 0,1–0,2 mm en sluit een vierkant van 100 mm binnen enkele tiende millimeter. De grens ligt niet bij de motor: bij 1/16 stappen op een GT2-riemschijf met 20 tanden is een microstap 0,0125 mm, veel fijner dan al het andere in de machine. Wat de fout werkelijk bepaalt, is de riemspanning, de stijfheid van het frame, de speling bij de riemschijven en hoe loodrecht de twee assen op elkaar staan. Wordt de fout groter dan een halve millimeter, meet dan die vier dingen voordat je een firmware-instelling aanraakt.

Heb ik een CNC-shield nodig of kan ik het op een breadboard bouwen?

Allebei werkt. Een CNC-shield kost ongeveer vijf pond, geeft je sockets voor de drivers, brengt de eindstop- en spindelpinnen naar buiten en bevat de grote condensator — en daarmee neemt het de meest voorkomende manier weg om een driver te slopen. Bouwen op een breadboard gaat prima voor twee assen als je zelf 100 µF over VMOT zet en de motorbedrading uit de buurt van de stapelsignalen houdt, maar het shield kost minder dan de tweede driver die je anders kapotmaakt.

Waarom een servomotor voor de pen en geen derde stappenmotor?

Omdat de pen maar twee standen nodig heeft, omhoog en omlaag, en in geen van beide nauwkeurig. Een hobby-servomotor doet dat met één signaalpin en zonder driver, en dat is precies het werk waar hij goed in is. Een stappenmotor op de Z-as vraagt een derde driver, een derde set pinnen, een schroefspindel en een homingschakelaar, allemaal om iets te reproduceren wat een servomotor van twee pond in één regel code doet.

Riem of schroefspindel voor de X- en Y-as?

Riem, zonder veel aarzelen. Een GT2-riem geeft 80 stappen/mm en rijdt probleemloos 200 mm/s of meer; een T8-schroefspindel geeft 400 stappen/mm maar vraagt vijfmaal zoveel pulsen voor dezelfde afstand, waarmee je op een Arduino Uno rond 30 mm/s blijft steken. Een plotter draagt bijna niets en moet snel over een pagina, en dat is precies waar riemen goed in zijn. Schroefspindels verdienen hun plek op een Z-as die gewicht moet vasthouden.

Waarom sluit mijn vierkant niet?

Vier oorzaken, en ze zijn van elkaar te onderscheiden. Is de fout een vast percentage van de afstand, dan zijn je stappen per millimeter verkeerd — kalibreer tegen een liniaal. Is de fout een vaste hoeveelheid, onafhankelijk van de grootte, dan is het een speling: span de riemen aan en controleer de borstelschroeven van de riemschijven. Is de fout elke keer anders, dan verlies je stappen: verlaag de versnelling of verhoog de stroom. En is het vierkant een parallellogram in plaats van open, dan staan de twee assen niet loodrecht op elkaar, en dat is een frameprobleem dat geen enkele instelling oplost.

Kan ik GRBL draaien in plaats van firmware te schrijven?

Ja, en dat is de verstandige route zodra de machine werkt. GRBL maakt van de Uno een G-code-interpreter met homing, zachte limieten, versnelling en coördinatensystemen al geïmplementeerd, en je stelt de stappen per millimeter in met $100 en $101. De reden om eerst de eenvoudige versie te schrijven is dat een machine debuggen en een firmwareconfiguratie debuggen tegelijk veel lastiger is dan ze na elkaar te doen.