3d-printer - Deel 5 - Elektronica

Door Milosonator op donderdag 21 februari 2013 12:01 - Reacties (5)
Categorie: 3d Printen, Views: 4.176

Dit is deel 5 van de serie blogs over mijn 3d-printer. Deze keer ga ik het hebben over hoe de elektronica in een RepRap 3d printer werkt en hoe ik het heb geïmplementeerd. Hier is een lijstje links naar de vorige blogdelen:

Het maken van een 3d-printer - Deel 1
Deel 2 - Het frame
Deel 3 - XYZ
Deel 4 - Hot-end en Extruder
Deel 6

Hoe werkt de elektronica?


Dat is een hele goede vraag. En zoals op vele vragen is er een simpel en een ingewikkeld antwoord. Laat ik beginnen met het simpele antwoord. Om tot een succesvolle print te komen hebben we een aantal in- en outputs nodig:
  • Mechanische actualisatie door middel van stappenmotoren.
  • Mechanische sensatie om het begin of einde van de assen te kenmerken. Dit gebeurt met optische sensoren of microswitches.
  • Thermische actualisatie, dit wordt bereikt door een voltage op een weerstand te zetten.
  • Thermische sensatie door middel van thermistors.
  • Input van gebruiker/code. Dit gebeurd veelal met een USB aansluiting en een serieel protocol. Maar je kan ook van een SD-kaart printen en de printer volledig zonder computer gebruiken.
  • Terugkoppeling naar gebruiker. Via een LED en serieel over USB.
  • Het aansturen van randapparatuur zoals fans, buzzers en lopende banden.
Nu nog het ingewikkelde antwoord. Ik zal proberen de bovengenoemde punten wat duidelijker uiteen te zetten.

Algemene werking en concepten


Er bestaan ontzettend veel verschillende systemen om een 3d printer aan te sturen. De meeste systemen zijn op een ATMega achtige microcontroller gebouwd. Om stappenmotoren aan te sturen zijn op deze microcontrollers Allegro stappenmotorcontrollers aangesloten. Verder is er een USB<->serial chipje aanwezig voor de communicatie en als kers op de slagroomtaart nog wat MOSFET's om de verwarmingselementen en andere randapparatuur aan te sluiten. Voor de temperatuur-sensors worden een paar thermistors aangesloten op de analoge inputs van de microcontroller en verder is het allemaal digitale elektronica.

Een van de meest gebruikte systemen is RAMPS (RepRap Arduino Mega Pololu Shield). Dit systeem is een Arduino Mega aangevuld met een speciaal shield waarop Pololu (of StepStick) stappenmotor breakout boards worden aangesloten. Op dit shield zit alles wat je nodig hebt om je hele printer aan te sturen. Ik gebruik dit systeem zelf ook en zal aan de hand van dit systeem uitleggen hoe alles werkt. Een glimps van dit systeem is al een tijdje te zien in de header van deze pagina. Om het iets duidelijker te maken staat onderaan een aansluitschema van de RAMPS.

http://reprap.org/mediawiki/images/8/8c/RAMPS1-3_fin.JPG

Mechanische actualisatie

Zoals ik al eerder zei wordt voor het aansturen van de stappenmotors vaak Allegro (A4988) Stepper drivers op een Pololu of StepStick (open source variant) gebruikt. Wat deze controller in essentie doet is het omzetten van digitale aansturing naar ingewikkelde stappenmotor-aansturing met grotere voltages en stromen. Als je dit interessant vind is hier de datasheet of anders Mux blog over RepRap elektronica.

http://reprap.org/mediawiki/images/6/6f/Stepstick_single_macro.jpg

Mechanische sensatie

De printer moet op een of andere manier weten wat het uiterste bereik van de printer is. Dit gebeurt in twee delen, het minimum wordt bepaald door een sensor en het maximum wordt dan softwarematig bepaald. Dit kan uiteraard ook met een sensor maar door een simpele softwarematige oplossing is deze eigenlijk niet nodig. De sensoren die ik gebruik zijn optische sensoren. Deze hebben een infrarood-lichtbundeltje tussen twee staafjes. Als het bundeltje onderbroken wordt dan geeft de sensor een signaal af. Dan weet de printer dat het beginpunt bereikt is.

http://blog.stygia.nl/wp-content/uploads/IMAG0403.jpg

Thermische actualisatie

Er zijn 2 dingen die verhit dienen te worden. De hot-end en het printbed. De hot-end heeft een dikke powerweerstand waar 12V doorheen gePWM'd wordt. Het printbed (in mijn geval) bestaat uit een pcb met een hele lange dunne trace. Hierdoor is het mogelijk hier direct 12V op aan te sluiten. Hoewel dit niet erg efficiënt is werkt het prima. Meestal wordt het bed niet gePWM'd maar gewoon aan en uitgezet zodat er ook een relais gebruikt kan worden. Ik gebruik een wat stevigere MOSFET met een klein heatsinkje erop. Zo heb ik geen relais nodig.

Thermische sensatie

Om de temperaturen van bovengenoemde onderdelen te kunnen regelen moeten we deze kunnen meten. Dit kan heel eenvoudig door een thermistor aan te sluiten op een analoge ingang van de microcontroller. Deze kan worden uitgelezen en door middel van een ijktabel kan de temperatuur van de sensor worden bepaald.

Communicatie

De printer moet natuurlijk weten wat hij moet doen. Er zijn twee manieren om de printer dit te vertellen: door een computer aan te sluiten en sequentieel commando's te sturen of door deze van een SD-kaart af te lezen. Optie 1 is het meest eenvoudig: De microcontroller communiceert met een hostprogramma op de computer via een seriële verbinding. Het hostprogramma stuurt één voor één de commando's naar de printer. De printer stuurt niet uit zichzelf iets naar de host maar dit wordt altijd opgevraagd.

Ook is het mogelijk de printcommando's op een SD-kaart te zetten en de printer deze automatisch te laten uitlezen, dit kan ook zonder tussenkomst van een computer. Zelf gebruik ik meestal de computer om direct te printen. Voor prints die erg lang duren gebruik ik vaak de SD-kaart zodat ik niet het risico loop dat mijn computer roet in het eten gooit. De SD-kaartlezer is een optionele toevoeging aan RAMPS en kan gewoon in een AUX-poort op het bord ingeprikt worden. De microcontroller praat dan met de SD-kaart via SPI.

Randapparatuur

Vanwege het grote aantal aansluitingen op een Arduino Mega is het mogelijk veel randapparatuur aan te sluiten op de RAMPS. De meest gebruikte vorm van randapparatuur zijn fans, maar er zijn ook mensen die rollende banden hebben aangelegd om volautomatisch te kunnen produceren. Zelf heb ik hier nog niet zo veel ervaring mee. Alles is echter mogelijk.

Power

Power loopt op dit bordje in 3 circuits. Het 5V circuit (USB voeding in mijn geval, maar je kan de voltage regulator van de Arduino gebruiken). Eén 12V circuit voor het printbed (deze trekt tot 11A) en één 12V circuit voor de stappenmotoren en de andere verbruikers. Ik gebruik hiervoor een oude ATX voeding.

Eenvoudig te maken


Ik heb zelf mijn RAMPS bordje gemaakt. Ik heb een kale PCB besteld en alle losse onderdelen. Een paar uurtjes solderen en ik was erg tevreden. Desolderen kon ik echter toen niet dus ik heb één zeer enthousiaste weerstand boven de MOSFET's. Ach, niet slecht voor mijn eerste project al zeg ik het zelf! (Headers voor de Arduino en Pololu's ontbreken nog op de foto)

http://blog.stygia.nl/wp-content/uploads/IMAG0408.jpg

Na het bouwen is het bedraden van de printer ook nog een hele klus. Er zijn maarliefst 15 aansluitingen naar de RAMPS waarvan 5 stappenmotoraansluitingen nog uit 4 subkabeltjes bestaan. Het meeste wordt aangesloten via 0.1" header pins. Het voordeel hiervan is dat de connectors goedkoop en goed verkrijgbaar zijn. Het nadeel is dat ze niet 'vastklikken'. Je moet dus zorgen dat je kabels goed aansluiten. Voor de 12V outputs zijn er screw-terminals en voor de power een connector met screw-terminals. Op de Arduino sluit je de USB aan.

http://blog.stygia.nl/wp-content/uploads/P1020505.jpg

Het maken van het RAMPS systeem was voor mij een uitdagende klus. Ik had nog niet eerder een PCB gesoldeerd en het resultaat mag er wezen. Echter heb ik niet zoveel verstand van elektriciteit maar ik weet dat er een hoop te verbeteren valt wat betreft de elektronica. Gelukkig doen velen dat en er verschijnen dan ook vaak betere systemen.

http://blog.stygia.nl/wp-content/uploads/P1020501.jpg

Met dit deel van de blog is de printer 'af'. Wat ik hiermee bedoel is dat er altijd veel te verbeteren valt aan een opensource 3d-printer. Dit is dan ook nog niet het laatste deel van deze blogreeks! Volgende keer ga ik aan de slag en wordt er flink geprint. Ook ga in dan in op de software-toolchain die ik gebruik om ontwerpen te printen. Zelf ontwerp ik ook onderdelen en ook dat zal ik laten zien.

Bijlage:
http://reprap.org/mediawiki/images/e/e3/Rampswire13.svg

Volgende: 3d-printer - Deel 6 - Toolchain en Printen 04-'13 3d-printer - Deel 6 - Toolchain en Printen
Volgende: 3d-printer - Deel 4 - Hot-end en Extruder 02-'13 3d-printer - Deel 4 - Hot-end en Extruder

Reacties


Door Tweakers user Bartjezz, donderdag 21 februari 2013 17:53

Ik zag je enthausiaste weerstand op je RAMPS bordje, dat kun je gemakkelijk aanpassen, daar hoef je niet voor te desolderen. Knip 5mm boven de print de draadjes van de weestand af, hou de bout op het soldeer en trek met een tangetje de draadjes eruit. Als je dan de draadjes aan de weerstand ongeveer 10mm naar beneden laat uitsteken (ongeveer op de juiste maat al gebogen), kun je met het omgekeerde proces voorzichtig de weerstand weer in de solderen door het gaatje prikken.
Als het niet in 1x gaat, dan moet je één voor één de zijden verwarmen en de weerstand er een paar mm verder in drukken.
Ik zou echt dit aanpassen, want zo krijg je heel gemakkelijk een kortsluiting als je even niet oplet. Kan veel leed besparen!
Verder lees ik je blogs altijd met veel interesse, heb weleens met een vriend een cnc-machine in elkaar gezet, maar echt vanaf scratch. Ook met stappenmotoren e.d. We hadden daar geen juiste voeding voor, toen hebben we zelf maar een gestabiliseerde 12V 80A DC voeding gebouwd :P Een ringkern van 9kg, een zooi hele dikke condensators en flinke spanningsregelaars.

Door Tweakers user Milosonator, donderdag 21 februari 2013 18:35

Bedankt voor de nuttige tip! Ik zal binnenkort proberen dit te fiksen. Die CNC machine klinkt ook erg indrukwekkend. Maar waar gebruik je in godsnaam 80A voor?

Door Tweakers user Bartjezz, vrijdag 22 februari 2013 11:52

Haha, die 80A was bedoeld om alle apparatuur die erop zit te kunnen voeden. Dus niet alleen de stappenmotoren, maar ook alle elektronica eromheen en de freeskop en ventilator om de rotzooi van de freeskop weg te blazen.
We zijn eerst begonnen met motoren uit accuboormachines met zelfgemaakte schijfjes om de toeren te tellen met een infraroodbrugje en wat remmetjes, maar die waren lang niet nauwkeurig genoeg (die trokken 30A per stuk bij inschakelen).
Na een upgrade naar stappenmotoren en fatsoenlijke spindels (met trapeziumdraad) hadden we eindelijk de resolutie waar we naar opzoek waren: 0.025mm per puls.
Ik ben meer technisch aangelegd en heb het grootste gedeelte van de machine gebouwd, en hij heeft alle programmatuur en elektronica eromheen gebouwd. Er was letterlijk niet 1 printje dat standaar was, alles hebben we met de hand gebouwd.
Uiteindelijk hadden we een werkbaar vlak van 80cm lang, 65cm breed en 15cm hoog. We hebben toen stalen staven van 25mm (2 per zijde, 2 als brug) gebruikt voor de geleiding met glijlagers, trapezium spindels met bijbehorende "moeren", 4 stappenmotoren, een 12V frees en stalen beugels voor de opstelling gebruikt.

Door ruud, donderdag 11 april 2013 17:38

Mooi gebouwd, vindt het altijd prachtig dat mensen zoals deze masschiene op het net willen publiceren, super...
wat ik mijn nu afvraag at zijn de totale kosten voor deze printer geweest?
is de prijs die je in deel 1 gaf de juiste... iets minder dan 500,- euro of zijn er nog bijkomende kosten bijgekomen?

ik ben erg nieuwsgierig

Mvrg ruud

Door Tweakers user Milosonator, donderdag 11 april 2013 20:27

Er zijn volgens mij wel een paar dingen die ik inmiddels nog heb gekocht, die niet op het lijstje staan. In ieder geval het heated bed, met kabels en thermistor (¤30), de nieuwere hot-end (¤15). In ieder geval geen grote zaken die er bij gekomen zijn. Inmiddels heb ik flink geprint dus ik zal wel een eurotje of 70 uitgegeven hebben aan plastic.

Reageren is niet meer mogelijk