Bouw Je Eigen $15 Muurplotter: Betaalbare DIY met Arduino
Onderdelen en benodigdheden
| Onderdeel | Aantal | Opmerkingen |
|---|---|---|
| Arduino UNO | 1 | Hoofdcontroller |
| 28BYJ-48 Stappenmotor met Driver | 2 | Links en rechts (zeer goedkoop) |
| TSOP 4838 IR-ontvanger | 1 | Voor afstandsbediening |
| SPI Micro SD Kaartlezer | 1 | Voor SVG bestanden opslaan |
| SG90 Micro-servomotor | 1 | Pen optillen/neerzetten |
Benodigde tools en machines
- 3D-printer – Voor chassis delen (optioneel, zie MacGyver versie)
- Soldeerbout – Voor elektronica
Software en online diensten
- Arduino IDE – Programmeeromgeving
Over dit project
Achtergrond
Het begon rond 1999. Een vriend (robotica/electronica fan) en ik droomden van een robot die op whiteboards tekent. Tijd en ecosysteem waren toen niet rijp.
2002 toonde mijn vriend me Hektor van Jürg Lehni en Uli Franke – precies wat we wilden bouwen! Ik was tevreden.
Later realiseerde ik me dat Hektor één eigenschap miste die ik essentieel vond: zelfstandig, alles in één unit met alleen draden naar de muur. Stapstermotoren waren toen te zwaar.
2014: ik had Arduino/RC-servo ervaring, toegang tot 3D-printen, en... vrije tijd! De ontdekking van de ultra-goedkope 28BYJ-48 stappenmotor maakte het duidelijk: de goedkoopst mogelijke minimalistische muurplotter bouwen.
Eerste poging
Na 5 weken wachten op Chinese onderdelen begon de bouw. Ik probeerde een zo compact mogelijke chassis voor Arduino, steppers, servo, batterij. Na vele "minder slimme" ontwerpen in OpenSCAD viel de kwartje: Je MOET de draden laten kruisen!
Kruisende geometrie geeft enorme stabiliteit in positiebehoud. Nadeel: minder rotatiestabiliteit rond verticale as. Opgelost met tyraps in hoeken die rotatie voorkomen.
Eerste plotter gebruikte naaigaren voor navigatie en zwaartekrachtcompensatie. Draden kreuzden bovenaan chassis via gaatjes in 3D-print. Pen wordt opgeheven door servo die hele plotter van muw duwt.
Werkt, maar rommelig in gebruik: Arduino herflashen bij ontwerpwisseling, vastgelegde 1 meter afstand tussen ankers. Wel goed platform om probleemruimte te begrijpen. Lessen:
- Steppers niet zo krachtig – spoelen te groot
- Pen offset van draadkruising – Wikked Wobbliness
Goed nieuws: deze problemen deden me versnelling/afremming implementeren...
Evolutie
Plotter #2 (witte in cover foto)
- Kleinere spoelen
- Spoelen boven pen voor betere draadrouting, minder pendelbeweging
- Elektronica toegankelijker
- SD-kaart voor plotbestanden
- Nieuwe setup: variabele ankerafstand
- IR-ontvanger voor afstandsbediening
SD-kaart en IR waren makkelijker dan verwacht – "waarom deed ik dit niet direct?" moment. Setup werkt prima, grootste plot: ~2,5 meter breed.
Setup: navigeer met remote. Markeer positie A, ga naar B, markeer. 20cm markeringen op draden voor meting. Afstand m = stappen tellen linker stepper van A naar B. Eenmaal plotter weet d en dat hij op B staat, kun je overal tussen/onder ankers plotten.
Plotter #3 (oranje in video)
- Alle elektronica als shield op Arduino
- Batterij watchdog: "pauze - batterij wisselen - hervatten"
Goede bedoelingen, maar: stuurdrivers direct op shield = geen knipperende LEDs meer (saai!). Arduino on-board LED verborgen achter shield = onzeker of IR knop ingedrukt. Batterij monitoring leek slim, maar ik gebruikde altijd kabelvoeding voor lange plots.
Plotter #4 (De Fabuleuze!)
Cadeau voor mijn broer. Mooiste versie met shield-electronica MAAR knipperende drivers zichtbaar. Kabels exprès lang gelaten voor de look!
Plotter #5 (MacGyver editie)
Proof-of-concept zonder fancy tools. In garage gekeken wat er lag: binddraad (zacht metaaldraad voor wapeningsstaven), duct-strap (scheelt tijd, meer stabiliteit), tyraps, gaffatape. Spoelen? Melkpakje dopje! Frame bouwen ging sneller dan 3D-printen. Werkt bijna even goed.
Plotter #6
Nog een! Verbeteringen op basis van feedback:
- 3D-print te groot en traag
- Pen bewegen ipv hele plotter (waarde experiment)
- Servo en IR naar analoge pinnen → digitale pinnen 0-1 vrij voor serial debugging! (Dank jrcTexas)
Hoe goed werkt het? Goed en slecht. Voelt overal beter, MAAR: pen zit niet vast aan frame → wiggle bij plotten → slechtere nauwkeurigheid. Voordeel: digitale pinnen 0-1 vrij voor debugging = leven gered!
Strestests op steppers voor stapverlies:
Uitkomst: iets langzamer voor voldoende koppel. Trekracht op draden berekend per plotter positie. Misschien later vervolg op stapsequenties en spanning.
De plotter gebruiken
Video toont setup en plotten in realtime. Setup is simpel en snel. Uitdaging: goede ankers vinden. Op whiteboards: kleine zuignappen met naaigaren lus, paperclip als hanger. Belangrijk: draad zo dicht mogelijk aan muur voor betere pen-druk.
Let op: Hoog plotten op brede plots vereist meer koppel → steppers missen stappen → plotter verliest positie (geen encoders). Advies: Hang hoog, print laag.
Plotter Hardware
Bouw is straight-forward: Arduino Uno, componenten, kabels. Schema's tonen gebruik van bijna alle digitale pinnen. Let op: pin 0-1 zijn TX/RX – los wat er op zit AFVOER je programmeert om schade te voorkomen! Daarom bouwde ik recentere plotters met shield die ik voor programmeren afkoppelde.
RC-servo: elke afmeting werkt, montage moet plotter van muw duwen/loslaten.
Steppers/drivers: 28BYJ-48 zijn handig maar niet krachtig. Rated 5V, ik geef 5-9V zonder problemen (lopen wel warm).
Micro-SD module: via SPI (pinnen 10-13) of digitale pinnen.
IR-ontvanger TSOP 4838: direct op Arduino.
Batterij watchdog (spanningsdeler op analoge in) en temperatuur monitoring: mijn advies, sla over.
Aanbevolen bouwvolgorde:
- Test IR-ontvanger (IRRecvDump voorbeeld uit IRRemote lib – nodig voor remote codes)
- Test servo (Sweep voorbeeld uit Servo lib)
- Test SD-kaart (SD lib voorbeelden)
- Test steppers (Stepper lib voorbeelden)
- Flash plotter programma, koppel alle componenten (nog niet mooi maken)
- Power up – servo zou sweep moeten doen
- Test steppers via remote – check links/rechts, REEL_IN trekt daadwerkelijk draad in (50% kans op omgedraaide pinnen – connectoren omdraaien is trivial)
- Als alles werkt: assembleer tot plotter vorm en test aan muur!
Geen super gedetailleerde assemblage instructies – ontdek je hardware, vind jouw oplossingen. Laat je inspireren door MacGyver plotter: houd het simpel. Later kun je altijd fancy maken.
Plotter Software
Alle software op GitHub. Excuses voor code kwaliteit – het is een hack. Misschien schoon ik het op, maar je kijkt er waarschijnlijk eerder naar. Sorry.
Software doet twee dingen:
- Navigatie en setup via remote
- Tekent inhoud van SVG bestand op SD-kaart
Arduino Uno programma geheugen is beperkt → veel lelijke shortcuts. Vooral eerste plotter (geen SD) had graphics in code. SVG parsing is minimaal: alleen paden met lijnen (geen curves), specifieke Inkscape SVG dialect.
SVG bestanden in root van SD als 1.svg, 2.svg, etc. Selectie via remote knoppen – paar favorieten klaarstaan voor whiteboard versiering.
Arduino IDE + IRRemote library (by shirriff).
Een plotteerbaar bestand maken
- Gebruik Inkscape
- Teken wat je wilt, converteer naar paden: Path → Object to Path
- Kies Edit paths by nodes (F2)
- Selecteer alle paden/nodes: Ctrl+A tweemaal
- Converteer naar lijnen: Extensions → Modify Path → Flatten Beziers
- Opslaan als Inkscape SVG
- Test in simulator (zie onder)
De Simulator
Vereist! Draai elke plot eerst door simulator – SVG parsing is zo slecht dat kans groot is dat plotter het misinterpreteert.
Simulator compileert plotter code voor OSX/Linux, vervangt digitalWrite calls met prints naar stdout (timestamp, pin, state) die in visualisatie UI worden gepiped.
Ontstaan na bug die 2-uurs print na 95% liet mislukken. Float parsing bug door absurd aantal decimalen in SVG. (Eigen parsing want lib functies pasten niet in geheugen). Geweldige bug – dwingde simulator tot stand!
Simulator draait veel sneller dan realtime – handig voor development. Toont ook reële plottijd. README bij simulator code voor gebruiksaanwijzing.
Toekomstige verbeteringen
- Geen SVG parsing op plotter – echte parser op PC, goed formaat voor plotter
- Betere afremming – nu 1 segment vooruitkijken, te weinig voor scherpe bochten
- Encoders/feedback tegen stapverlies
- Schone, nette software schrijven
- WiFi controller + telefoon ipv remote
Laatste woorden
Ik besteedde veel tijd (vooral lang geleden). Nog steeds leuk, heel veel verbeterideeën, nieuwe muren om te versieren. Maar geen tijd – familie, werk, andere projecten.
Wat ik hoop: dat jullie inspiratie opdoen voor eigen projecten. En dat sommigen hun eigen plotter bouwen en werkend krijgen!
Kostendoel <$10 gehaald? Nog niet, maar onderdelen worden goedkoper – over een jaar wel.
Oh, en: moord me niet over de spaghetticode. Nooit bedoeld te delen, ik was bezig met muurschilderen en kon niks om code. Toch gedeeld – wees blij!
Bon Voyage,
Fredrik
Broncode
Stringent – Code, documentatie, CAD tekeningen op GitHub
Aangepaste onderdelen
Nieuw STL voor basis (oude was gebroken). Kleinere voetafdruk → minder printtijd. Servo beweegt nu pen ipv plotter van muw duwen.
Schema's
Simpel elektronica schema:
Productieproces
- Maximaliseren van Onderhoudsproductiviteit door Multiskill-Training
- Kwaliteitscontrole: De Hoeksteen Van Motor Betrouwbaarheid
- Hoe Trending de Betrouwbaarheid van Elektrische Motoren Verbetert
- De juiste tandwielkoppeling kiezen: Expert tips voor optimale koppel en efficiëntie
- Proactieve Gezondheidsmonitoring Voor Fabrieksmachines: Downtime Voorkomen & Betrouwbaarheid Verhogen
- Motorwikkelingen begrijpen: Belangrijkste verschillen en industriële toepassingen
- De Juiste Explosieveilige Motor Kiezen: Een Uitgebreide Gids
- Elektromotor Opslag Best Practices: Levensduur & Prestaties Maximaliseren
- DC vs. AC Motoren: Belangrijkste Verschillen en De Juiste Keuze voor Uw Toepassing
- De juiste motor kiezen: cruciale verschillen tussen AC en DC motors
- Factoren Die De Snelheid Van Hydraulische Motoren Beïnvloeden: Een Uitgebreide Gids