3D-tulostin

Rakensin oman 3D-tulostimen osana Aalto-yliopiston sähköpaja-kurssia. Työ alkoi sopivan rakennussarjan etsimisellä ja sen tilaamisella. Sarjan saatuani oli edessä paljon kokoamista, säätämistä, koodaamista ja lisäksi vielä eri ominaisuuksien parantelua. Kaikkiaan 3D-tulostimen rakentaminen oli hyvin opettava kokemus, jonka avulla 3D-tulostuksen perusasioiden hallinta tuli opiskeltua perinpohjaisesti ja pääsin lisäksi myös tarkastelemaan tulostinkokonaisuutta suunnittelun näkökulmasta parantelemalla toiminnallisuuksia. Tein esimerkiksi uudet kiinnikkeet z-akselille, jotta sain askelmoottorit käännettyä  tulostimen alaosaan, sillä alkuperäisen suunnittelun mukaan moottorit olivat yläpuomissa ja kiinnitys oli hutera. Tein myös myös telineet tulostusmateriaalille sekä joitain yksittäisiä kiinnikkeitä. Alla vielä tekemäni tarkempi dokumentaatio tulostimesta.

Ominaisuudet:

  • 3-akselinen FDM-tulostin
  • Alumiinirunko
  • Tulostusalue 200x200x200 mm
  • Ulkomitat 520x460x520 mm
  • Lämmitetty tulostuspeti
  • Kaksi suutinta (Chimera)
  • Autolevel-toiminto
  • SD-muistikortti
  • Ohjaus LCD-näytöltä tai tietokoneelta

Projektin tavoitteena oli rakentaa 3D-tulostin, joka toiminnaltaan vastaa kaupasta saatavia valmiita tulostimia. Ideana oli kuitenkin päästä huomattavasti edullisempaan ratkaisuun. Tulostintyypiksi valikoitui FDM-tulostin (Fused Deposition Modeling), jossa tulostumateriaali sulatetaan kuuman suuttimen avulla ja ajetaan oikeaan paikkaan kolmen lineaarisen akselin avulla. Malli tulostetaan kerros kerrokselta, jolloin päällekkäisten kerrosten muodostama kokonaisuus on tulostettu osa.

Mekaniikka

Tulostimen runko rakennettiin 20x20 mm alumiiniprofiilista. Alumiiniprofiilin etuna on suuri lujuus, jonka ansiosta ohuellakin profiililla voi tehdä kohtuullisen pitkiä rakenteita ilman, että taipumista tarvitsee pelätä. 3D-tulostimen kannalta on myös olennaista, että runko ja sen akselit ovat mahdollisimman tarkasti kohtisuoria. Alumiiiniprofiilin ja 90 asteen kulmapaloilla tällaisen rakenteen valmistaminen on melko helppoa. Toinen päämeteriaali tulostimen mekaniikkaosissa on musta, 5 mm paksu akryylilevy. Akryylilevyt olivat valmiiksi muotoon leikattuja, ja niiden avulla eri kokoonpanojen tekeminen oli sen vuoksi oli yksinkertaista. Kyseisen akryylilevyn heikkous kuitenkin oli sen alttius halkeilulle. Liian kovassa jännityksessa levy särkyy pilalle. Tämän vuoksi tulostimesta hajosikin z-akselin toinen kelkka. Onneksi akryylilevyä voi kuitenkin leikata esimerkiksi laserleikkurilla, joten varaosien tekeminen on suhteellisen helppoa. Alumiiniprofiilin ja akryylilevyn lisäksi käytin tulostimessa myös muutamia 3D-tulostettuja osia, jotka suunnittelin ja tulostin itse.

X-akseli

X-akseli vastaa tulostuspään poikittaista liikettä. Liike tuotetaan askelmoottorilla, jonka akselin päässä oleva hammasratas välittää pyörimisliikkeen hammashihnan välityksellä tulostuskelkan lineaariseksi liikkeeksi. Askelmoottorin yksi askel vastaa 1.8° kulmamuutosta ja kokonaisessa kierroksessa on tällöin 200 askelta.

X-akselin lineaarijohteena toimii 20X20 mm alumiiniprofiili: Tulostuskelkassa olevaan akryylilevyyn on kiinnitetty neljä laakeroitua pyörää alla olevan kuvan mukaisesti. Ne ovat juuri sopivalla etäisyydellä toisistaan niin, että kelkka istuu tiukasti alumiiniprofiilin uraan. Pyörien ollessa alumiiniprofiilin urassa varmistutaan siitä että liike tapahtuu vain x-akselin suhteen. Laakeroinnin, muovipyörien ja alumiiniprofiilin sileän pinnan ansiosta liike on erittäin tasaista ja kitkatonta. Hammashihna on kiinnitetty päistään tulostukelkan vastakkaisiin reunoihin, ja se ohjataan ohjausrullien avulla askelmoottorille, joka sijaitsee tulostimen oikeassa reunassa. X-askelin askelmoottori liikkuu z-akselin mukana, kuten tulostuspääkin. Hammashihnan kireyden lisäämiseksi siihen on lisätty kiristinjousi.

Y-akseli

Y-akseli puolestaan vastaa tulostimen pituussuuntaa. Tämän akselin liike totetutettu liikkuvan tulostuspedin avulla tulostuspään pysyessä paikallaan tässä suunnassa. Tulostuspeti liikkuu kahden sylinterimäisen, halkaisijaltaan 8 mm teräsjohteen varassa ja se on laakeroitu johteisiin neljällä lineaarilaakerilla. Laakerit on kiinnitetty yhtenäiseen akryylilevyyn kiinni, johon puolestaan itse tulostusalusta on kiinnitetty. Lämmitettävä tulostusalusta on erotettu akryylilevystä neljän jousen avulla, joiden kireyttä säätämällä alusta voidaan myös asettaa vaakasuoraan. Alusta kannattaakin suoristaa vatupassin avulla. Myös y-akselin liike on toteutettu hammashihnan avulla. Askelmoottori on kiinnitetty alumiinirunkoon tulostimen takaosaan kun hammashihnan ohjauspyörä puolestaan on kiinni tulostimen etuosassa. Ohjauspyörän etäisyyttä voidaan säätää tavallisen siipimutterin avulla, jonka myötä hammashihnan kireys säätyy.

Z-akseli

Tulostimen pystysuuntainen liike tapahtuu nostamalla tulostuspäätä eli itse tulostusalusta pysyy vakiokorkeudella. Z-liike on toteutettu kahdella askelmoottorilla, joista voima välitetään tulostuspuomiin kuularuuvien avulla. Kuularuuvit on kiinnitetty askelmoottorien akseleihin joustavien alumiinikytkimien avulla. Joustoa ei kuitenkaan tapahdu akselin pyörimissuunnassa, vaan sen tarkoitus on kompensoida akselin ja kuularuuvin välinen yhdensuuntaisuusero. Z-akselin askelmoottorit on kytketty kontrolleriin y-johdon avulla, minkä vuoksi ne liikkuvat aina tismalleen yhtä paljon. Ennen tulostusta onkin hyvä varmistaa, että z-akselin eri puolet on asetettu samalle korkeudelle, jotta se olisi yhdensuuntainen tulostusalustan kanssa. Jos sekä tulostusalusta, että z-akseli suoristetaan tarkalla vatupassilla, niin monet ongelmat tulostuksen ensimmäisessä kerroksessa voidaan välttää. Tämän asian opettelin itse kantapään kautta.

Tulostuspää

Halusin rakentaa tähän tulostimeen kaksi suutinta (dual extruder), koska sen avulla tulostettavien mallien monimutkaisuutta voidaan kasvattaa huomattavasti. Tämä perustuu erillisen tukimateriaalin käyttöön, joka voi olla esimerkiksi jotain veteen liukenevaa materiaalia, kuten kokeilemani Atlas Support (PVA). Toisen suuttimen avulla voidaan myös käyttää samassa tulosteessa kahta eri väriä. Suuttimien käyttö määritellään viipalointia tehdessä.

Valitsin omaan tulostimeeni Chimera-tulostuspään, jossa on kaksi erillistä suutinta ja lämmitintä. Toinen vaihtoehto, jota harkitsin, oli Cyclops-tulostuspää, jossa on vain yksi suutin ja lämmitin. Tässä mallissa kahden eri materiaalin käyttö olisi tapahtunut syöttämällä niitä vuorotellen samaan suuttimeen kahta eri tulolinjaa pitkin. Päädyin kuitenkin valitsemaan Chimeran, koska pelkäsin että kahden eri materiaalin sekoittuminen samassa suuttimessa voisi aiheuttaa ongelmia, jos niillä olisi kovin erilaiset sulamisominaisuudet. Kahden erillisen suuttimen haasteena kuitenkin oli niiden hienosäätäminen täsmälleen samalle korkeudelle.

Tulostuspään toiminta perustuu siis materiaalin sulattamiseen. Tulostuslanka syötetään alla olevassa kuvassa näkyvällä askelmoottorin syöttöpyörällä jäykkää putkea pitkin liikkuvalle tulostuspäälle. Vaihtoehtoisesti askelmoottorit voisivat olla tulostuspään mukana, jolloin syöttöputkia ei tarvittaisi, mutta tällöin tulostuspään massa kasvaisi merkittävästi. Tällöin tulostuksen kiihtyvyyksiä tarvitsisi rajoittaa, mikä pidentäisi jo muutenkin pitkiä tulostusaikoja. 

Elektroniikka

3D-tulostimen ohjaukseen voidaan periaatteessa käyttää mitä tahansa mikrokontrolleria, jossa on riittävästi laskentatehoa. Markkinoilla on kuitenkin monia tähän tarkoitukseen sopivia esimerkiksi Arduinon kehitysalustoja vastaavia ohjainkortteja, joissa tyhjien pinnipaikkojen sijaan on kullekin komponentille erikseen tarkoitettu liitin. Tässä tulostimessa ohjainkorttina oli Makerbasen MKS Gen L V1.0, joka on käytönnässä sama kuin Arduino Mega 2560, mutta valmiilla liittimillä RepRap 3D-tulostimeen. Liittimien ja muiden ylimääräisten komponenttien vuoksi MKS Gen L V1.0 on kuitenkin jonkin verran suurempi kuin Arduino Mega. MKS Gen L V1.0 näkyy alla olevissa kuvissa. Askelmoottoriohjainten jäähdytystä varten asensin ohjainkortin päälle lisäksi kaksi 40X40X20mm puhallinta (NMB-MAT 24V DC 0.13A), jotka ottavat käyttövirran suoraan 12V virtalähteestä. Pienenemmän jännitteen ansiosta niiden pitämä ääni on hyvin pieni.

MKS Gen L V1.0 ohjainkortin kytkennät tehdään alla olevan kuvan mukaisesti. Kortilla voidaan ohjata viittä eri askelmoottoria, joista kaksi on tarkoitettu filamentin syöttämiseen (suutin 1 ja suutin 2) ja kolme akseleiden liikuttamiseen. Tässä tulostiomessa käytettiin kuutta eri askelmoottoria, mutta z-akselin kaksi moottoria kytkettiin y-haaralla, ja ne tarvitsivat vain yhden paikan ohjainkortilta. Jokaisen askelmoottoriliittimen kohdalla ohjainkortilla on myös paikka askelmoottoriohjaimelle. Näiden lisäksi ohjainkortilta löytyvät paikat muun muassa akseleiden rajakytkimille (6kpl), LCD-näytön kaapaleille (2kpl), lämpötila-antureille (E1, E2, tulostusalusta), lämmittimille (E1, E2, tulostusalusta), puhaltimille ja tietokoneen USB-liitännälle.

Ohjelmisto

Tulostimen ohjaus

3D-tulostimen ohjainkortin ohjelmistona käytin Marlin firmwarea. Se on eri 3D-tulostimille tarkoitettu avoin lähdekoodi, jota räätälöimällä jokainen harrastajakin voi ohjata omaa tulostinta Arduinon avulla. Lisätietoja Marlinista löytyy sen kotisivuilta https://marlinfw.org/. Olennaista tässä projektissa oli Marlinin konfiguroiminen tälle tulostimelle. Konfigurointi tapahtuu muokkaamalla otsaketiedostoa configuration.h (katso sivun alalaita). Tämän otsaketiedoston avulla Marlin saa kaikki tarvittavat parametrit, kuten esimerkiksi tulostimen tyypin, tulostusalueen koon sekä tulostuspään ja muiden komponenttien olennaiset tiedot. Tärkeimmät kohdat, joita minun tarvitsi configuration.h tiedostosta muokata tai tarkistaa olivat:  

Viipalointi

3D-mallin lisäksi tulostin tarvitsee jonkinlaisen tulostusohjeen siitä, miten malli tulostetaan. Tämä ohje tehdään jollakin 3D-tulostusohjelmalla, ja se tallennetaan g-kooditiedostona. Näillä tulostusohjelmilla voi tavallisesti myös ohjata tulostinta tai tulostaa mallin suoraan USB:n välityksellä. Tulostaminen USB:n välityksellä ei kuitenkaan ole suositeltavaa, koska tulostus keskeytyy yhteyden katketessa tai tietokoneen siirtyessä lepotilaan. Tulostusta ei yleensä voi tällaisten tilanteiden sattuessa jatkaa, vaan se pitää aloittaa alusta. Varsinkin suurikokoisten tulosteiden kanssa g-koodi kannattaa siirtää SD-muistikortille ja tehdä tulostus siitä. 3D-tulostin ei tällöin tarvitse tietokoneyhteyttä lainkaan.

Käytin aluksi viipalointiin Repetier-Host ohjelmaa, mutta siirryin aika pian käyttämään Ultimaker Curaa, koska siinä tulostuksen säätömahdollisuudet olivat huomattavasti laajemmat. Kuitenkin Cura on yksinkertainen käyttää ja käyttöliittymältään helposti ymmärrettävä. Viipalointi eli tulostettavan mallin jakaminen tulostettaviin kerroksiin on tulostuksen tärkein vaihe, sillä se määrää suoraan onnistuuko tulostaminen ja millä tarkkuudella se onnistuu. Lisäksi viipaloinnissa tehtävät valinnat vaikuttavat kappaleen lujuuteen. Alla olevassa kuvassa on esitetty Curan päänäkymä. Keskellä ruutua näkyvät 3D-malli sekä tulostusalueen rajat. Vasemmasta reunasta malleja voidaan lisätä sekä niiden sijaintia säätää. Oikeassa reunassa puolestaan näkyvät käytettävä tulostin, eri suuttimien tulostusasetukset sekä tulostukseen arvioitu aika.

Tulostusasetukset eivät yleensä ole kopioitavissa muista tulostimista, vaan arvot pitää hakea itse kohdilleen. Vaikka tulostusmateriaali olisi sama, niin useissa tapauksissa tulostusasetukset ovat tulostinkohtaiset eikä niitä kannata yrittää ottaa sellaisenaan muista tulostimista. Hyvän alkuarvauksen niilä kyllä saa, mutta varsinkin viipalointiohjelmien oletusarvot saattavat olla hyvinkin kaukana järkevistä arvoista! Mutta kun tulostusasetukset saa haettua kohdilleen, niin myös tulostuslaatu on hyvää. Alla olevissa kuvissa on esimerkki hyvin onnistuneesta viipaloinnista ja tulostuksesta. 

3D-tulostettuja osia

Tulostimella on tulostettu jo jonkin verran erilaisia osia, ja suuri osa niistä on onnistunut melko hyvin. Monissa tapauksissa kuitenkin tulostus on vielä pitänyt aloittaa pari kertaa alusta, jos esimerkiksi ensimmäisessä kerroksessa on ilmennyt ongelmia. Alla olevissa kuvissa on muutama esimerkki onnistuneista tulostusosista.

Pohdinta

Projekti eteni kevään aikana hyvää vauhtia ja kokemuksia tällaisen laitteen rakentamisesta kertyi runsaasti. Positiivista oli huomata, että edullisillakin komponenteilla voi päästä kohtuullisen hyviin tuloksiin ja että tulostuslaatu muutenkin ylsi helposti esimerkiksi Ultimaker-tulostimien tasolle. Kääntöpuolena tietenkin tässä on se, että tulostimen rakentamiseen, säätämiseen ja testaamiseen kuluva aikamäärä on erittäin suuri. Kokemuksena tämä on ollut kuitenkin hyvin antoisa eikä tämäntyylisiä asioita opikaan oikein muuten kuin tekemällä. 3D-tulostimen kanssa esille nousivat neljä osa-aluetta, joiden parissa erityisesti töitä joutui tekemään:

  1. Mekaniikka: akseleiden liike, rungon jäykkyys ja kohtisuoruus, komponenttien sijoittelu jne.
  2. Elektroniikka: askelmoottoreiden, sensorien, ohjainkortin ja muiden komponenttien toiminta
  3. Koodi: Arduino IDE, tulostimen toiminta, funktioiden ja parametrien määrittely, koodin lukeminen
  4. Tulostus: Viipalointi, tulostusasetusten määrittely, testaaminen, asetusten vaikutus tulosteeseen

Kurssin jälkeen aion vielä jatkaa tulostimen rakentamista. Tavoitteena on parantaa tulostuksen laatua ja toimintavarmuutta. Käytännössä tämä tarkoittaa eri parametrien viilaamista sekä Marlin-lähdekoodissa että viipalointiohjelman viipalointiasetuksissa. Marliniin on saatavilla myös uudempi versio, jonka aion päivittää mahdollisimman pian, mutta se vaatii käytännössä configuration.h -tiedoston läpikäymisen ja uudelleenkirjoittamisen. Lisäksi aion pikkuhijaa vaihtaa akryylilevyt pois korvaamalla ne joko alumiinilevyillä tai 3D-tulostetuilla osilla. Varsinkin osittain rikki menneet levyt kaipaisivat pikaista korjausta. Haluaisin myös rakentaa tulostuspäähän vielä puhaltimen, joka jäähdyttää tulostetta. Puhaltimen nopeutta voitaisiin säätää viipaloinnissa tehtävien asetusten mukaan. Jäähdytyksellä erityisesti kapeiden ja korkeiden rakenteiden laatua voidaan parantaa, koska sen avulla muovin riittävä jäähtyminen voidaan varmistaa.