RepRap tiskárna

V tomto seriálu budu popisovat postup stavby své první RepRap 3D tiskárny s pracovním názvem Adam (jak jinak :-))).

Pokud se někdo do stavby budete chtít také pustit, a narazíte v mém popisu nebo obecně při stavbě na nějaké nejasnosti, neváhejte mi poslat mail. Pokud budu znát odpovědi na Vaše otázky, rád poradím.

 

Časový sled stavby:

RepRap - potřebný materiál

RepRep se staví z velmi levných a snadno dostupných součástek. Nicméně i tak vyjde stavba tiskárny minimálně na několik tisíc korun. V tomto článku budu shromažďovat svoje poznatky o levných a dostupných zdrojích materiálu na stavbu.

Když jsem se v roce 2010 dozvěděl o Open Source projektu na stavbu 3D tiskárny, okamžitě jsem věděl, že do toho musíme jít. Nejdřív jsem si myslel, že tiskárnu nechám postavit studenty v rámci některé (některých) dlouhodobých maturitních prací. Posléze mi ale došlo, že by to bylo příliš náročné a že bude lepší, když první postavím sám a na naší škole založím takové malé RepRap centrum, kde si další tiskárny budou moci stavět zájemci z řad studentů. Také počítám s tím, že v rámci zmíněných maturitních prací budeme moci v příštích letech do projektu různým způsobem přispívat.

Protože chci projektem oslovit hlavně naše studenty, dal jsem si u své první tiskárny za cíl pokud možno minimalizovat náklady. Zde budu uvádět kde a za kolik jsem sehnal jednotlivé součástky. Netvrdím, že jsem našel vždy tu úplně nejlevnější variantu, ale myslím, že se mi daří se s cenami držet na hodně nízké úrovni.  

Výběr modelu tiskárny

Základním požadavkem autora RepRap projektu bylo, aby tiskárna uměla zreprodukovat co největší počet součástí na výrobu sebe sama. Když jsem se na netu více ponořil do informací o RepRap projektu, bohužel jsem zjistil, že dokumentace tak trochu kopíruje tuto původní myšlenku a tím, jak se na projektu podílí řádově stovky lidí po celém světě, je potřeba trochu cviku a orientace, než se v tom guláši člověk vyzná. Je celkem běžné, že se u nějaké součásti dočtete například (názvy jsou smyšlené):

Tento extruder xy8 je vylepšenou verzí extruderu xy7, který vychází z extruderu rs6, ale převzal uchycení ložisek z původního extruderu ab3 :-)

A teď se v tom začátečníku vyznej a vyber si, co a proč budeš stavět...

Postupně jsem zjistil, že v projektu RepRap existují v tuto chvíli tři plus jedna základní větve (mimo RepRap existuje ještě několik podobných "konkurenčních" projektů).

Na jakém principu tiskárna vlastně pracuje

Tiskárna staví 3D objekty z roztaveného plastu. Představte si, že obyčejnou tavnou pistolí nakreslíte na podložku nějaký tvar. Počkáte až vychladne (zatuhne) a pokračujete kreslením druhé vrstvy, pak třetí, čtvrté ...

No a přesně tohle dělá RepRap. Termoplast ve tvaru jakéhosi silnějšího vlasce je vtlačován do takzvaného extruderu, kde se řízeně zahřívá a tryskou vytéká ven. Extruder je připevněn na tříosém plotteru řízeném krokovými motorky, a tak můžeme pokládat na přesná předem určená místa jednotlivé vrstvy hmoty a vytvářet tak 3D tvary.

Z čeho se tiskárna staví

Tiskárna má několik kategorií stavebních součástí.

Sada součástek

Moje sada součástek (nahoře většinou tištěné součásti, vpravo součástky pro extruder včetně ložisek, šroubu a topného tělesa, dole vitamíny (tyče již nařezané na potřebné délky).

 

Zakoupené součástky - ceny

V této tabulce (průběžně doplňuji) uvádím konkrétní součástky (sady součástek), které jsem na stavbu pořídil. Pod tabulkou ještě detailněji popisuji zkušenosti s jednotlivými nákupy.

Součásti Kde koupeno Cena
Tisknuté součásti: sada Prusa Mendel s Greg-Wade extruderem, tryskou a extruderovým šroubem reprap-fab.org 3779,- Kč
Kompletní sada vitamínů malinko přes 9 kg železa (chybí jen několik malých šroubků) www.ferona.cz 275,- Kč
Kuličková ložiska (sada 8 ks od velmi ochotného prodavače z nějakých starých neprodejných zásob) www.sportisimo.cz 50,- Kč
Krokové motory - SX17-0905 (5ks plus poštovné) www.microcon.cz 2220,- Kč
Řemínky - T5/6 - 840 a T5/6 - 1380 (plus poštovné) *) www.pikron.cz 451,- Kč
Elektronika - zatím neřešena    

*) Během stavby jsem zjistil, že v rozpisu je chyba u délek řemínků. U Mendela-Prusi stačí na obě osy řemínky dlouhé 840+, takže 1380ka je zbytečně dlouhá. Samozřejmě to nevadí (a rozdíl v ceně je také zanedbatelný), ale 840ka nebo 860ka se Vám bude snadněji shánět. 

Co se týká tisknutých součástek, nejdříve jsem se několikrát neúspěšně snažil kontaktovat samotného pana Průšu, pak hledat zdroje v ČR. Bohužel jsem v tom byl neúspěšný. Ze zahraničních zdrojů se mi nejvíce líbil německý web reprap-fab.org, který se zabývá dodáváním různých součástek na RepRapy.

Za jeho výhody považuji zejména:

Web je sice pouze v němčině, ale nebojte se komunikovat s prodejcem v angličtině. Je velmi ochotný poradit, u objednávky přemýšlí a když se mu něco nezdá, sám se iniciativně ozve s dotazem, zda je to tak schválně nebo jestli došlo k chybnému objednání. (Já jsem chybně objednal trysku extruderu, protože jsem si na webu nevšimnul možností výběru a i pokud bych si všimnul, nevěděl bych, které jsou ty správné.)  Správně je tedy pro začátečníka tryska s průměrem 0,5 mm (to je základ na který je kalibrován tiskový software) a průměrem izolátoru 10 mm (pasuje do extruderu v sadě). 

Vitamíny rozhodně doporučuji nakoupit ve specializované prodejně. Pokud je budete shánět po různých OBI nebo podobných marketech, sice to možná budete mít blíž, ale než seženete vše potřebné, strávíte nad tím mládí a utratíte spoustu peněz (např. metrová závitová tyč v OBI stojí 39 Kč, ve Feroně jsem jí koupil za cca 10 Kč). Já jsem si vybral prodejnu Ferony v pražských Holešovicích (na dojití ze stanice metra Nádraží Holešovice). Sortiment je obrovský, je to samoobsluha, takže můžete v klidu procházet regály, přemýšlet a vybírat a ceny jsou úžasné. Z celého seznamu mi schází jen několik typů M3 a M4 šroubků, jinak jsem tam sehnal vše potřebné.

Kuličková ložiska se používají běžného typu 608, která se normálně dávají do inline bruslí. Takže pro ložiska musíte do sportu. Ložiska 608 existují v provedeních 608, 608Z a 608ZZ. Písmenka Z označují prachové krytky ložiska. Pro naše účely je vpodstatě zcela jedno, který typ pořídíte, protože jednak tiskárna obvykle nepracuje v příliš prašném prostředí a jednak jsou ložiska v tiskárně ze stran kryta velkými podložkami. Také namáhání ložisek je v porovnání s provozem na kolečkových bruslích naprosto zanedbatelné. Z toho vyplývá, že můžete použít úplně jakákoliv nejlevnější ložiska, po kterých by bruslař zřejmě nikdy nesáhl. Na Internetu se dá najít blistr s osmi ložisky za cenu od 80,- Kč. Zašel jsem do nejbližšího obchodu Sportisimo a zeptal se na nejlevnější ložiska. Prodavač mi nabídl blistr za 199 Kč. Když jsem mu řekl, že to je moc a že sháním naprosto nejlevnější ložiska na jejichž kvalitě mi vůbec nezáleží, ochotně zašel kamsi dozadu a přinesl mi sadu nějakých ložisek ze starých neprodejných zásob za 50 Kč.  

Krokové motorky jsem se nakonec rozhodl koupit od českého prodejce Microcon. Sice z Číny by se určitě daly sehnat levněji, ale při současných problémech s proclíváním na ČP by se nakonec cena mohla blížit té od Microconu, a namísto dodávky příští den bych taky mohl čekat několik měsíců.

Ozubené řemínky se dají sehnat na různých místech prostřednictvím Internetu. Obával jsem se ovšem opět problémů s poštou, tak jsem se snažil hledat výrobce/prodejce v Čechách. Nakonec jsem skutečně našel. Sice jsem si díky své neznalosti toho, jak to ve světě řemínků chodí musel s lidmi v Pikronu vyměnit asi tak 65 tisíc mailů a několik telefonátů, ale byli velmi ochotní a nakonec jsme dospěli k výběru správných produktů. Také řemínky jsem měl hned druhý den po objednání na stole.

 

 

RepRap - stavba

Stavbu RepRapa můžeme zahájit v momentě, kdy máme tištěné díly a vitamíny. Zpočátku to jde velmi rychle, ale záhy zjistíte, že je to podobné jako se stavbou domu. Hrubá stavba se dá vyšvihnout za pár dní, ale dokončovací práce mohou trvat i několik let...

Začněme ale pěkně od začátku.

Dělení materiálu

Teoreticky na tom není nic složitého. Stačí pilka na železo a rozměry... V praxi to tak triviální není. Začíná to právě rozměrama. Když budete prohledávat různé weby, zjistíte, že tu a tam je v rozpisu nějaká tyčka delší, tu a tam kratší, někdy dokonce na stejné stránce nejdete dva rozpisy s odlišnými hodnotami. A teď babo raď!

Našel jsem si nakonec nějaké délky tyčí, pod kterými bylo napsáno - ověřeno stavbou a zdá se, že skutečně sedí. Proto je vypíšu i sem:

Počet Rozměry Typ Funkce
6 ks M8 x 370 mm závitová trojůhelníky kostry
4 ks M8 x 294 mm závitová přední/zadní tyče kostry
3 ks M8 x 440 mm závitová horní/dolní tyče kostry
2 ks M8 x 210 mm závitová *) vodící šrouby osy Z
1 ks M8 x 40 mm závitová nebo šroub M8 x 30 se šestihrannou hlavou
4 ks 8 mm x 410 mm hladká vodítka osy X a Y (původně bylo 2x 406 a 2x 495 mm)
2 ks 8 mm x 350 mm hladká vodítka osy Z

*) Vodící šrouby osy Z jsou přímo ovládány krokovými motory a svým otáčením způsobují vertikální pohyb extruderu. Proto pro tyto tyče vybírejte materiál s co možná nejkvalitnějším závitem. Já jsem volil nerezovou tyč, trerá byla sice znatelně dražší než obyčejné pozinkové použité na zbytek konstrukce (59 Kč namísto 11 Kč za metr), ale kvalita jejího závitu je oproti pozinkovaným úplně někde jinde. Ještě byla na výběr mosazná, ale její závit byl horší a cena ještě výrazně vyšší (tuším kolem 170 Kč za metr). 

Dalším oříškem, který musíte hledat (nebo řešit) před dělením je, jak uspořádat položky, abyste vyšli s co nejmenším počtem tyčí, které se obvykle prodávají jako metrové. Normálně vyjdete se 6 ks závitových tyčí a 3 ks metrových hladkých tyčí (nebo dvěma kusy hladké tyče uříznuté na délku 120 cm), já jsem koupil navíc jednu závitovou nerezovou. Rozpis dělení jsem popsal s alternativou nerez závitové tyče (zelené rozměry se pak neřežou z běžných tyčí) a alternativou pro 120 cm hladké tyče (azurově podbarvená řádka přičemž se nepoužijí tři předchozí řádky):

Tyč Předpis dělení (v mm)
závitová 1 370, 370, 210, 40
závitová 2 370, 370, 210
závitová 3 370, 294, 294
závitová 4 370, 294, 294
závitová 5 440, 440
závitová 6 440
nerez 1 210, 210
hladká 1 410, 410
hladká 2 410, 410
hladká 3 350,350
2 x hladká 120 cm 2x (410, 410, 350)

Samozřejmě že tyče lze řezat doslova na koleně, ale daleko lepších výsledků dosáhneme, máme-li možnost si je upnout do svěráku (pochopitelně mezi dvě prkénka, abychom nepoškodili závit respektive povrch hladkých tyčí). Po rozřezání pilníkem začistíme všechny konce abychom se o ně v budoucnosti nezranili a aby na ně šly hladce našroubovat matky (je dobré si jednu vzít přímo ke svěráku a každý závit po začištění pilníkem hned vyzkoušet a případně poopravit). Začistíme i konce hladkých tyčí, i zde je vhodné zabrousit jejich hrany pod 45° úhlem. Celé dělení a začištění materiálu mi zabralo cca 3 hodiny práce.

Stavba základní kostry

Pro vlastní stavbu doporučuji si stáhnout a na obrazovce otevřít (nebo případně vytisknout) tento geniálně udělaný step by step guide. Dále potřebujeme kus pevné vodorovné plochy. Zkontrolujte si vodováhou například stůl, na kterém budete pracovat (tiskárna má půdorys zhruba 40 x 50 cm, takže zapomeňte na typický bastlířský stůl plný hromad všeho možného materiálu nebo papírů s volným místem sotva 10x10 cm :-))). Pokud stůl není ve vodováze, než si rozložíte materiál, nejprve ho vypodložte třeba papírky nebo osvědčenými pivními tácky, tak aby v ní byl, a aby se nekýval.

Tištěné plastové díly mívají různé otřepy a nedokonalosti. Proto je potřeba je nejprve zkontrolovat. Připravte si k tomu ostré vrtáky 8mm a 3mm, jehlové pilníky a ostrý (například běžný lámací) nůž. Pomocí vrtáků (jen rukou) protáhněte všechny díry plastových dílů a případné další otřepy opatrně odstraňte nožem nebo pomocí pilníčků. 

Když máte vše začištěno, můžete se podle vizuálního průvodce pustit do stavby. Nikam nespěchejte, řiďte se pravidlem dvakrát měř, jednou řež a pečlivě vybírejte potřebný materiál (vím o čem mluvím, krásně jsem si sestavil přední a zadní tyče (nejsložitější sestava), abych v zápětí zjistil, že jsou sice hezké, ale na špatných délkách závitovek, takže ... všechno zase odšroubovat a zpátky na stromy :-). Na dotahování matek budete potřebovat dva (otevřené) klíče 13ky.

Pro měření rozměrů je velmi vhodné si vyrobit měřící přípravky - v návodu to nazývají frame jig (tyčku dlouhou 290 mm a druhou s délkou 234 mm). Doporučuji je uříznout z něčeho dobře a přesně opacovatelného a dostatečně pevného. Použil jsem kus zbylého profilu z plastových oken, ale pokud bych měl radit něco běžně dostupného, použil bych zaklapávací elektrikářskou lištu (volte raději širší, abyste si do ní mohli vyříznout zářezy tam, kde při měřeních překáží například našroubovaná ložiska s podložkami). Věřte, že dotáhnout přesně základní rám (současné seřízení cca 9 rozměrů při manipulaci "asi s miliónem" matic) je jen pomocí metru skoro nemožné a zabere Vám to tolik času, že kratší by byla i cesta do nejbližšího obchodu s nějakými vhodnými lištami a jejich uříznutí na správné délky přípravků.

Nicméně základní kostra jde pěkně od ruky, za takové 3 až 4 hodiny (při první stavbě) ji budete mít hotovou.

Základní kostra

Vodící tyče

Vodící tyče do značné míry ovliňují bezproblémový chod RepRapa. Dbejte na jejich kvalitu už při výběru během nákupu. Kontrolujte nejen jejich rovnost, ale také kvalitu jejich povrchu. Také při řezání dejte pozor, abyste jejich povrch neporušili (stačí aby Vám sjela pilka a je zaděláno na problémy). Po tyčích jezdí jezdce vytištěné buďto přímo z plastu nebo z plastu s mosaznými vložkami jako zrovna v případě sady, kterou jsem nakoupil já (mimochodem právě mosazné jezdce byly jedním z mých rozhodovacích kritérií při nákupu). Čím menšího tření na vodících tyčích dosáhnete, tím mají krokové motory snazží a přesnější práci, což samozřejmě ovlivní kvalitu tisku. 

Proto je velmi vhodné tyče před usazením do stroje vyhladit. Použil jsem k tomu nejjemnější brusný papír WaterProof, který jsem sehnal v nějakém bau... Ten můj má značení K1200, 100 - 900. Vhodný kousek tohoto nebo podobného papíru namočte před použitím tak na 3 minuty do studené vody. Hlazení tyčí si vyzkoušejte nejprve na nějakém odřezku. Tyč obtočte mokrým papírem a hlaďte podélnými pohyby při současném pomalém natáčení tyče druhou rukou. Jednu tyčku jsem takto hladil - leštil cca několik minut. V případě potřeby znovu namáčejte papír. Nejlepších výsledků jsem dosáhl, když jsem nakonec tyčku hladil do skoro vysušení papíru. Papír potom více leští než brousí. Kvalitu vyhlazení zkontrolujete nejlépe tak, když si na jednu vyhlazenou a jednu ještě nevyhlazenou tyč nasadíte mosazné jezdce a zkusíte je z vodorovné polohy současně postupně naklánět. Hádejte, na které tyči se jezdec rozjede dřív? :-)

Po vyhlazení z tyčí pečlivě smyjte zbytky brusiva a dobře vysušte (třeba papírovým ubrouskem). Já jsem pro jistotu ještě kápnul a rozetřel na tyče kapičku jemného oleje. abych tak omezil přístupu vody a degradaci povrchu tyčí. Ale nepřežeňte to, během stavby není dobré díly umastit - některé z nich budete později lepit!

Pokračování stavby

Pokračujte ve stavbě podle návodu, ale také u toho přemýšlejte! Například návod počítá s plastovými jezdci, které se ve vhodnou chvíli naklapnou na tyče, zatímco v případě mosazných jezdců je potřeba je nasadit ještě předtím, než tyče uvězníte mezi příslušné držáky. Na druhou stranu návod je opravdu dobře vyladěn, a tak se ho nesnažte "optimalizovat" nějakými svými zlepšováky ve smyslu "tohle už můžu utáhnout ať pak neztrácím čas". Když někde píší, že máte matice nechat povolené, věřte návodu a nechte je povolené, když řeknou, že něco máte seřídít a utáhnout, věřte návodu, seřiďte to a utáhněte. Dbejte na kvalitní seřízení vodících lišt tak, aby vozíky jezdily hladce po celé délce svých drah.

Pochopitelně můžete narazit na různé drobné odlišnosti, u kterých musíte vhodně zaimprovizovat (například já mám o kousek delší motory než se kterými počítá návod, takže jsem nakonec musel do jednoho plastového dílu vybrousit vhodný zářez, ale zde dvojnásobně platí: přemýšlet, dvakrát měřit, jednou řezat!

Úprava děr v pastorcích

Během stavby jsem narazil na jedno problematičtější místo. Vytištěná ozubená kolečka je potřeba nasadit na osy krokových motorků. Bohužel princip tisku RepRapa není natolik přesný, aby šlo pastorky připravit s přesností potřebnou pro hladké nasazení na osičky. Proto je třeba díry opatrně upravit. Po dlouhém přemýšlení jak vyvrtat díru aby byla přesně v ose a pokusech s různým upevňováním pastorku do vrtačky a vrtání proti upevněnému vrtáku se mi nakonec osvědčil jednoduchý způsob, kterým lze dosáhnout uspokojivých výsledků. Do díry se vloží vhodný trojúhelníkový nebo čtverhranný jehlový pilníček. Dobrý je takový, který se buďto vůbec nezužuje nebo má zůžení velmi pozvolné nebo má rovnou a zužující se část. S takto vloženým pilníčkem tvořícím provizorní osiču jezdíme pastorkem po nějakém měkčím a drsnějším povrchu (já jsem použil koberec na podlaze) sem a tam. Dáváme přitom pozor na to, abychom na pilník tlačili rovnoměrně z obou stran, aby se díra nezvětšovala příliš kónicky i když lehce kónický tvar je velmi vhodný pro snadné nasazení osy motorku. Osa musí jít do díry nasadit pevně, rozhodně zvětšování nepřežeňte!!! Takto jsem díry navržené pro 4 mm osu úspěšně zvětšil na 5 mm potřebných pro mé motorky. 

Stolek jsem si nechal přesně uříznout v bau... ze sololitu tlustého 5mm. Jako lepidlo jsem použil nejběžnější dvousložkové (Pattex koupený také v nějakém bau...).

Hotová mechanika tiskárny

Časová náročnost

Počítejte s tím, že stavba a seřízení os X, Y a Z trvá výrazně déle než stavba základního rámu. Při mé první stavbě jsem na ní strávil cca 16 hodin.

Takže celkem mi stavba trvala cca 3h dělení, 4h stavba rámu, 16h stavba os X, Y, Z a příprava extruderu, celkem tedy zatím necelých 25 hodin práce. Zbývá mi dodělat extruder a postavit elektroniku. 

 

RepRap - elektronika

Další kapitolou stavby RepRapa je výběr, stavba a naprogramování ovládací elektroniky. I zde panuje v různých verzích poměrně značný chaos a je potřeba dobře zvažovat všechna pro a proti, než provedete závěrečné rozhodnutí.

Ovladač krokových motorů

První na co člověk narazí je ovladač krokových motorů nazývaný Pololu. Je to malá destička se šestnácti vývody osazená integrovaným obvodem Alegro A4988. Tento obvod vyžaduje od hlavního procesoru pouze dva vstupy - řízení směru a krokování a o vše ostatní včetně spínání silového proudu do vinutí motoru se stará sám. Dá se u něj navolit požadované mikrokrokování 1, 1/2, 1/4, 1/8 nebo 1/16 a dá se regulovat proud cívkami motoru.

Pochopitelně by bylo možné si vyvinout vlastní ovladač motoru nebo si nakoupit samotné obvody A4988 (jsou ale poměrně drahé a v ČR jen velmi obtížně sehnatelné (pokud vůbec)) a vymyslet si jejich zapojení po svém. Bylo by to ale hrozně práce a rozhodně by se jen velmi těžko dosahovalo elegance a rozměrů, které mají hotové destičky Pololu. Navíc titěrné obvody s rozměry cca 5x5mm a s 28 vývody po celém obvodu součástky zvládne připájet opravdu jen velmi zkušený bastlíř s dobrým vybavením.

Proto jsem hned od začátku rozhodl, že si koupím Pololu destičky, i když pro čtyři motorky to docela leze do peněz (4 x 370 Kč). Ale levněji by to člověk tak jako tak nevyrobil.

Elektronika

Po tomto rozhodnutí se trošku zúží výběr použitelných elektronik na ty, které jsou navrženy na využití Pololu destiček.

Pokud bych měl elektroniku navrhovat sám, určitě bych jí navrhnul s některým z procesorů Microchip PIC, se kterými jsem zvyklý pracovat. Dokonce i první verze elektronik pro RepRapy s těmito procesory byly navrhované, ale zdá se, že z nějakých důvodů vývoj velmi brzy přešel na procesory ATmega a z pokusů s PIC procesory se alespoň prozatím stala spíše slepá větev.

Proto jsem se rozhodl zatím následovat větev, která je nejvíce živá a po pročítání různých stránek věnovaných RepRap elektronice jsem čím dál tím víc konvergoval k elektronice Sanguinololu. Je velmi dobře vymyšlená, procesor využívá úplně maximálně, umí obsloužit čtyři motory, dvě topná tělesa, dva termostaty a tři koncové spínače, a navíc všechny volné piny jsou vyvedeny na konektor pro pozdější další rozšiřování.  Deska je navíc krásně malinká (cca 5 x 10 cm) a její vývoj je velmi živý (já jsem vyráběl v danou chvíli poslední verzi 1.3a).

Jediná nevýhoda desky je plně využitý oboustranný plošný spoj, který se díky potřebě mnoha propojek na těžko dostupných místech téměř nedá v domácích podmínkách vyrobit. Pokusil jsem se o to, desku se mi podařilo vyleprtat velmi kvalitně a obě strany proti sobě seděly téměř optimálně, přesto jsem však ještě před pájením součástek při představě o realizaci propojek další práce vzdal a objednal jsem přímo u autora profi vyrobenou destičku (na serveru je lepší se nejprve zaregistrovat, pro anonymního čtenáře neukazuje správně vše co by měl). Pokud byste trvali na vlastní výrobě destičky, doporučuji najít si jinou elektroniku pododbných vlastností navrženou na větší jednostranné desce nebo alespoň sice oboustranné, ale s využitím minimálního počtu spojů na straně součástek (určitě se takové varianty najít dají).

Stavba elektroniky

Výroba je pro toho, kdo občas drží páječku v ruce, absolutně bezproblémová. Všechny součástky se dají nakoupit v GME nebo podobném obchodě. Jediné, co jsem nesehnal byl keramický rezonátor na 16 MHz, ale ten se dá nahradit obyčejným krystalem a dvěma kondenzátory 22pF a na destičku se to při troše improvizace krásně vejde. Pájení SMD integrovaného obvodu, které by snad méně zkušeným mohlo činit menší problém je krásně popsané v tomto videotutoriálu.

Jsem ještě připraven elektroniku doplnit o dvoubarevnou svítivou diodu, která bude indikovat tok dat z a do počítače, ale to dodělám až v momentě, kdy bude základní verze oživená. 

Programování firmwaru

Když máme elektroniku postavenou, je potřeba do řídícího procesoru nějak dostat příslušný program, který bude ovládat tiskárnu. V dřevních dobách jednočipových procesorů nezbývalo nic jiného, než vlastnit programátor pro příslušný typ procesoru, a pokaždé, když došlo k upgradu firmwaru, procesor z desky vyndat, připojit k programátoru a znova naprogramovat (teprve později byly procesory vybavené mechanizmy, které umožňují programovat přímo v desce ICSP (In-Circuit Serial Programing)).

Moderní procesory se ale posunuly ještě o kus dál, a jejich architektura umožňuje provádět programování pomocí sériového (nebo u některých typů i USB) portu přímo z počítače. (V případě Sangoinololu procesor sice komunikuje sériovým portem, ale přímo na desce je převodník USB-serial, takže k počítači se uživatel připojuje USB portem.)

Bootloader

Pouhá architektura procesoru ale pro tento proces nestačí, samotný procesor totiž musí spolupracovat. Zjednodušeně řečeno to funguje tak, že v něm je malý kousek jednoduchého programu, který po resetu zinicializuje příslušný port (sériový nebo USB) a chvilku čeká, jestli mu na něj počítač posílá nějaké instrukce. Pokud zjistí, že ano, přepne se do režimu programování, začne informace načítat a zároveň zapisovat do své paměti programu. Pokud ovšem příslušné instrukce nepřicházejí, skočí na její začátek a tak se spustí hlavní program (který do něj snad už byl zapsán). Ten malý kousek obslužného programu se nazývá bootloader a je to to jediné, co do procesoru musíme naprogramovat programátorem. Hlavní firmware už posléze nahráváme velmi snadno z počítače, kdykoliv dojde například k jeho upgradu nebo se my sami rozhodneme v něm udělat nějaké úpravy.

Programování bootloaderu

Využil jsem toho, že ve škole máme programátory ASIX Presto, které jsou velmi osvědčené, snadno ovladatelné a kompatibilní s velkým množstvím procesorů různých výrobců ATmega644 nevyjímaje. Lze samozřejmě využít i jiných typů programátorů nebo lze někoho s příslušným vybavením požádat o naprogramování, neboť se jedná, jak jsem již psal, o jednorázovou akci. Samotné připojení programátoru k procesoru je jednoduché, prostě se připojí šest vývodů programátoru na příslušné nožičky procesoru (je na to vhodné použít nepájivé propojovací pole). Schéma je například zde. Používají tam sice jiný programátor, mají to opatřené zbytečnými LED diodami a krystalem (viz níže), ale princip je shodný.

Teď ovšem základní zádrhel, na který jsem narazil a trvalo mi několik hodin, než jsem stihnul nastudovat, jak přesně postupovat. V procesoru se totiž dají programovat tři oblasti. Tou první je paměť programu - to je pro nás cílová oblast zápisu bootloaderu. Druhou oblastí je paměť EEPROM, kterou lze použít pro uložení dat, ale bootloadery ji zpravidla nemají důvod používat. 

Nejmenší, ale nejprekérnější oblastí jsou stavová slova procesoru, kterým se v řeči ATmega říká pojistky (fuses). Jsou to v případě procesoru ATmega644 tři bajty, ve kterých jsou uloženy stěžejní informace popisující režim, ve kterém má procesor pracovat.

Buďte velmi obezřetní, protože špatné nastavení pojistek může vést k zablokování procesoru, které se jen velmi těžce odstraňuje!

Bohužel na Internetu jsou informace o pojistkách velmi roztříštěné a nejednotné a navíc Presto ukazuje u ATmega644 čtyři bajty pojistek namísto třech.  


Nastavení pojistek

Na tomto obrázku vidíte správné nastavení pojistek pro naprogramování bootloaderu programátorem Presto. Protože ale ne všichni budou používat Presto, pokusím se jednotlivé pojistky blíže popsat. Červeně označená políčka Lock bits slouží k uzamčení firmwaru v součástce tak, aby ho nikdo nemohl načíst (kvůli udrženi know-how a obraně proti průmyslové špionáži). V našem Open Source projektu samozřejmě nemáme k jakýmkoliv ochranám jediný důvod, proto zámky neaktivujeme.

CKDIV8 je volba určující, zda se bude kmitočet hodin dělit 8 nebo nikoliv. Necháváme hodiny napřímo bez dělení. CKOUT určuje, zda má být hodinový kmitočet vyveden na příslušný pin procesoru - nepotřebujeme, necháme disabled.

WTDON určuje, zda vyžadujeme trvalé zapnutí watchdogu. Nevyžadujeme, kolidovalo by to s funkcí bootloaderu.

Velmi důležité je pochopení volby SUT, CKSEL. To určuje, co bude pro procesor zdrojem hodinového kmitočtu. Existuje zde několik možností. Procesor má svůj vestavěný oscilátor, můžeme ho řídit různě rychlými krystaly nebo můžeme přivádět hotový hodinový signál z nějakého externího zdroje (například z pinu CKOUT jiného procesoru). Čerstvý procesor z výroby má tuto pojistku nastavenou na vnitřní oscilátor. Proto při prvotním programování nemusíme používat krystal, který je uvedený na schématu z odkazu výše. Pro správnou vlastní funkci Sangoinolula je ovšem potřeba procesor řídit 16MHz krystalem. Proto tuto pojistku musíme přeprogramovat podle nastavení na obrázku. Naštěstí k zápisu pojistek dochází až úplně na konci programování, takže je možné prvotní bootloader naprogramovat v režimu nastavení z výroby s vnitřními hodinami (tedy bez použití krystalu a přidružených kondenzátorů z již několikrát zmíněného schématu, a teprve na konci dojde k přepsání pojistky na použití krystalu. To ovšem znamená, že pokud by se nám programování z nějakého důvodu nepodařilo napoprvé a museli bychom ho opakovat, budeme už krystal a dva přidružené kondenzátory potřebovat (pojistka již je nastavena a procesor tedy neumí pracovat s použitím vlastního interního oscilátoru).

Další řádka EESAVE se týká ochrany EEPROM paměti a je pro naši aplikaci nepodstatná, nechte ji tak jak je to na obrázku. 

Naopak řádky SPIEN, BOOTSZ a BOOTRST jsou pro režim bootloaderu klíčové a musí být nastaveny tak, jak je vidíte na obrázku.

BODLEVEL není až tak důležitý parametr, říká při jak nízkém napětí se už procesor má resetovat, nastavte ho podle obrázku.

Pokud v programu Presto UP kliknete na uvedeném dialogu pravým talčítkem myši a zvolíte "Přímá editace pojistek", ukáže Vám při tomto správném nastavení hodnoty FF FF DC FD (normálně bývají na webech uváděny jen poslední tři bajty FF DC FD). Pro úplnost ještě uvedu odkaz na výbornou online kalkulačku pojistek, kde si vše můžete ověřit a vyzkoušet. 

Postup programování

Nejlepší kuchařku pro programování procesoru ATmega programátorem Presto mi poslal pan František Burian z konference hw-list , kterému tímto děkuji a mírně doplněnou ji zde uvádím:

  1. Spustit UP (softvare k programátoru presto stažitelný ze stránek ASIXu).
  2. Vybrat součástku (v našem případě ATmega 644 nebo 644P)
  3. Zapojit MISO na MISO, MOSI na MOSI, SCK na SCK, VPP na RESET, VDD na napájení a GND na zem procesoru (pozor procesor má několik zemí a vývodů pro napájení viz schéma z odkazu výše). Žádné další součástky jsem nezapojoval.
  4. Frekvence oscilátoru 2kHz (Ano, jde to, ale je to šíleně pomalé. Experimentováním s krokem 5 jsem zjistil, že se dá jít k hodnotě >100kHz, což je řádově rychlejší)
  5. Přečíst konfigurační paměť - pokud to nejde, zkontrolovat bod 3 a 4. Tohle je výborný neškodný test, jestli procesor s programátorem komunikuje.
  6. Načíst program bootloaderu z hex souboru (zvolte správnou verzi 644 nebo 644P podle použitého procesoru). Najdete ho v archivu hardware folder zde.
  7. Naklikat správnou konfiguraci pojistek (viz diskuse výše a přiložený obrázek).
  8. Zapamatovat pojistky (pravé myšítko na okně s pojistkami, tam tenhle příkaz najdete).
  9. Naprogramovat vše (menu Součástka/Programovat nebo klávesa F5). Nelekněte se, při závěrečné kontrole pojistek to zahlásí chybu, ale důvod je zřejmý. Po naprogramování pojistky zdroje hodin na krystal procesor bez krystalu přestane s programátorem komunikovat, takže tomu se oprávněně zdá, že došlo k chybě.
  10. Odpojit programátor.
  11. Otestovat procesor v aplikaci (viz další článeček).

 

RepRap - firmware, sotware a uvádění do provozu

Konečně se zase po delší odmlce dostávám k tomu, abych popsal další kroky stavby RepRapa. Prostoj byl zapříčiněn jednak začátkem školního roku, který je pro mě vždy šílený - dělám admina sítě s cca 200 počítači pro cca 900 lidí, takže kdo k téhle práci někdy přičichnul, dovede si jistě ten šrumec představit. Ale abych se nevymlouval jen na síť, RepRap, kterému jsem se útržkovitě po volných chvilkách také snažil věnovat, mě docela vytrápil. Doufám proto, že mé poznatky pomohou ostatním stavitelům začátečníkům. 

Minulý díl jsme skončili tím, že jsme do procesoru Sanguinolola nahráli bootloader. Co dál? Teď už vše bude víceméně jen softwarovou záležitostí. Tiskárna je ovládaná takzvaným G-kódem - textovými příkazy, které jí říkají, kam se má který krokový motor pohnout, jak se má natopit topné tělísko extruderu či základny nebo se jí ptají na aktuální polohu, teplotu nebo třeba verzi softwaru.

Aby to celé fungovalo, musíme na počítači zprovoznit software, který je schopen G-kódy vysílat - takzvaný host software, a v procesoru tiskárny musí být naopak software, který je schopen G-kódy interpretovat a fakticky vykonávat to, co přikazují (otáčet příslušnými motory, zapínat a vypínat topná tělesa atd.) - takzvaný firmware. (Zpočátku jsem v terminologii softwarů na RepRap wiki dost bloudil, ale když zadáte správné termíny "host software" nebo "firmware", najdete to, co potřebujete najít. 

Firmware - ale nejdřív na chvilku zpět k hardwaru

Začnu firmwarem, ale po pravdě řečeno, ono je to všechno propojené...

Poté, co jsem zažil několik večerů s Sanguinololem na jednom konci USB kabelu a počítačem s Ubuntu na druhém, a vůbec jsem netušil, zda ty věci spolu vůbec komunikují, dohnalo mě to k hardwarové úpravě desky, o které jsem přemýšlel už při jejím osazování. Čip FT232 převádějící USB komunikaci na sériovou má totiž v základním firemním nastavení vyvedeny na piny CBUS0 (nožička 23) respektive CBUS1 (nožička 22) signály pro LED diody indikující přenos TX respektive RX viz například zapojení na straně 27 datasheetu tohoto obvodu. Rozhodl jsem se proto přidat na desku dvoubarevnou LED diodu se společnou anodou (například L-59GYW nebo jakákoliv podobná, pozor nelze ovšem použít diodu se společnou katodou!), která bude indikovat veškerou komunikaci mezi počítačem a deskou. Mimo LED diody potřebujeme ještě dva rezistory s hodnotou kolem 270 ohmů (viz datasheet FT232) a nějaké vhodné hodně tenké drátky. Aby montáž co nejméně narušila původní desku, rozhodl jsem se pro použití SMD rezistorů velikosti 0805.

Postup

Nejvhodnější místo pro LED diodu jsem našel ve druhém rohu desky než je umístěna LED dioda indikující napájení, tedy poblíž dvou tranzistorů pro spínání topných těles (viz první obrázek). Dioda má rozteč vývodů cca 2,5 mm, je tedy potřeba vyvrtat tři dírky vrtákem 0,8mm s touto roztečí. Na horní straně desky je v tom místě souvislá vrstva mědi (se zemí), zatímco na spodní je dělící čára oddělující pás mědi u okraje desky na kterém je zem od plochy více ke středu desky, kde je vyvedeno napětí pro motory (obvykle +12V). Rozhodl jsem se udělat díry pro LED právě v této části, cca 1mm pod dělící čárou. Doporučuji nejprve místa děr naznačit na spodní straně tenkou lihovou fixou, a pak vyvrtat. Ani na horní ani na spodní straně desky se vývody diody nesmí dotýkat původních měděných plošek. Na horní straně jsem proto opatrně vrtáčkem 2 mm udělal jakési zapuštění (jako se dělá pro zápustné šrouby), které odbrousilo měděnou vrstvičku do bezpečné vzdálenosti od nožiček diody (je to trošku vidět na prvním obrázku). Pro úpravu spodní strany jsem vzal lámací skalpel a asi 1mm pod dírkami a 1mm na každé straně od nich prořízl měď ve tvaru malého obdélníčku (cca 7 x 3 mm), a ten pak ještě rozparceloval mezi budoucími třemi vývody LED diody. Pro každý vývod tak budeme mít samostatný ostrůvek ve tvaru zhruba čtverečku 2 x 2 mm. Pokud máme desku z profi výroby, je opatřena nepájivým lakem, proto je třeba nakonec čtverečky opatrně oškrábat skalpelem na čistou měď. Pečlivě pod lupou zkontrolujeme, zda jsou proškrábnutí dostatečná a zda se nám někde nezatoulala nějaká hoblinka mědi, která by plošky mezi sebou zkratovala. Pak můžeme diodu připájet (je jedno, jak ji orientujeme). K prostřední plošce připájíme tenký drátek, který na druhém konci vede k nejbližšímu místu s +5V (viz bílý drátek na druhém obrázku). Ke dvěma krajním ploškám opatrně připájíme jedním koncem SMD rezistory tak, aby jejich druhý konec čouhal do vzduchu. Následně na tyto druhé konce připájíme tenké drátky (v mém případě modrý a červený). Zapneme napájení desky a druhými konci těchto drátků se někde dotkneme země a vyzkoušíme, který patří zelené a který červené diodě (já jsem to vyzkoušel předem a rovnou jsem si červený drátek připájel k červené diodě a modrý (nemaje zelený) k zelené. Ale vpodstatě je to jedno, ovlivníte tím jen to který směr komunikace bude svítit jakou barvou.

Konečně můžeme druhé konce drátků připojit k nožičkám 23 a 22 obvodu FT232 (viz třetí obrázek) a vše zajistit několika bloby lepidla z tavné pistole. Je to celé docela piplačka, ale s lupou a trochou trpělivosti to určitě zvládnete!

Umístění LED diody

Zpět k firmwaru

Deska Sanguinololu vychází z velmi populární desky Arduino firmy Atmel. Ta je tak populární proto, že k ní existuje snadno ovladatelné vývojové prostředí komunikující s deskou právě prostřednictvím bootloaderu, který v procesoru už máme. Než přeložíme a nainstalujeme firmware musíme si tedy nejprve na počítači nainstalovat toto prostředí. Pravděpodobně existují implementace i pro MS Windows, ale já jsem jednoznačně volil cestu Linuxu (kterou budu dále výhradně popisovat), protože i vše ostatní pro RepRapa je primárně vyvíjené pro Linux a teprve druhotně vznikají implementace některých softwarů také pro Windows nebo MacOS.

Pokud tedy doposud nemáte počítač s Linuxem, začněte jeho instalací. Je asi o trochu jednodušší nainstalovat si ho na samostatný počítač (já jsem pro ten účel oprášil staršího notebooka), ale pokud nemáte nebo nechcete na RepRapa obětovat jiný stroj, stejně dobře můžete Linux nainstalovat ve virtuálním počítači například s využitím VirtualBoxu. Jediné, na co pak nesmíte zapomenout, je zprovoznit ve virtuálním stroji USB port, ale to je pouze několik kliknutí a zpravidla to bez problémů funguje.

Já osobně používám na serverech Debian a na workstejšnách Ubuntu, takže moje volba byla jasná. Hodně věcí kolem RepRapa se točí kolem Javy a většina z nich vyžaduje originál Sun Javu a pod jinými klony nefungují nebo fungují špatně. Proto po instalaci Ubuntu nainstalujte Javu od Sun (jsou na to na netu návody a není to složité).

Pak už můžeme začít instalovat věci pro překlad a instalaci firmwaru. Já jsem si pro Sanguinololu vybral firmware Sprinter, který tato deska podporuje a postupoval jsme podle návodu, který najdete v textovém souboru přímo u něj. Shrnu to proto jen velmi stručně:

  1. instalace překladače a knihoven pro arduino: sudo apt-get install arduino-core
  2. stažení poslední stabilní verze softwaru k arduinu a jeho rozbalení do nějakého vhodného adresáře
  3. Sanguino vychází z arduina, ale v některých detailech se liší. Proto je třeba stáhnout a přesně podle návodu do správných míst v adresáři arduina rozbalit doplňky a modifikace Sanguina.

Tím je nainstalované prostředí pro Arduino modifikované pro Sanguino. Teď už je jen třeba z git úložiště stáhnout poslední verzi softwaru Sprinter (pravděpodobně si předtím budete muset nainstalovat samotný git (sudo apt-get install git)) a můžete se pokusit ho přeložit a nahrát do desky tiskárny. (Na základě mailů některých čtenářů přikládám svoji současnou verzi souboru Configuration.h, ale berte to spíše jako inspiraci a vylaďte si svůj Configuration.h podle návodu u Sprinteru a vlastní tiskárny.) Tím se ovšem dostávám k tomu, co mě v celém procesu vytrápilo úplně nejvíc - strávil jsem nad tím po večerech více než týden času. 

Sanguinololu je postavené na procesoru ATmega644P.  Ten se vyráběl původně ve verzi Atmega644, ale později byl přidáním druhého sériového portu vylepšen na verzi 644P. Ačkoliv se všude píše, že Sanguinololu může běžet na obou verzích procesoru, vše je připravené pro verzi s P na konci. Na českém trhu ovšem v době, kdy jsem nakupoval součástky (a obávám se že i doposud), byla dostupná jen starší verze bez P. Když jsem poprvé provedl podle návodu u Sprinteru nastavení a překlad, zdálo se, že je vše OK. Narazil jsem ovšem při pokusu o nahrání přeloženého firmwaru do desky, protože prostředí arduino celkem poprávu hlásilo, že v desce je procesor s jinou signaturou (verze bez P) a že nic nahrávat nebude. 

Nejprve jsem se snažil podle komentáře u chybové hlášky nastavit parametr -F, který má povolit nahrání firmwaru i přesto, že je osazen jiný typ procesoru. Ale (zřejmě) protože jsem s vývojovým prostředím arduina pracoval poprvé, stále se mi nedařilo najít to správné místo, kde toto nastavení provést, takže jsem to po jednom stráveném večeru vzdal.  

Řekl jsem si, že když jsou oba typy procesorů tak podobné, že bych mohl v souborech týkajících se překladu modifikovat řetězce 644P na pouhých 644. Bylo to velmi krkolomné, protože po změně na zjevných místech začal překladač házet "milióny" chyb, že nemůže najít sekce pro tento procesor v různých dalších částech programu. Bývají tam totiž sekce typu:

#ifdef MCU=Atmega644P ....

Snažil jsem se je podle chybových hlášek postupně všechny upravovat na 644, až se mi konečně po cca dvou večerech čochnění se v různých souborech podařilo přeložit kód bez chyby. Jaká byla moje radost, když dokonce i nahrání do procesoru tentokrát proběhlo bez výhrad a s OK na konci!

Radost ovšem netrvala dlouho, protože procesor se sice tvářil, jako že má snahu komunikovat (napsal úvodní nápis), ale jak jsem později zjistil, dále téměř vůbec nekomunikoval (v této fázi jsem právě přidal na desku LED diodu, protože vůbec nebylo zřejmé, co se děje, a jestli nápis na obrazovce skutečně pochází od samotného procesoru na desce, nebo ho jen vypisuje ovládací program bez závislosti na chování procesoru). O tom, jak se s deskou komunikuje se dočtete o kousek níže, ale nejdříve popíšu konečné řešení mého problému (občas jsem měl sto chutí desku rozšlapat angry, ale nebojte, vydržel jsem a deska také).

Po dalším večeru stráveném neúspěšným hledáním alternativních host softwarů, které by nějak lépe zobrazovaly, co se děje na drátě mezi počítačem a deskou, jsem si řekl: "zpátky na stromy". Smazal jsem a znova si gitnul čistou verzi Sprinteru (mezitím jsem ještě (také neúspěšně) pokoušel Teacup firmware).

Řekl jsme si, že prostě musím nějak překonat tu hlášku chybné signatury procesoru a nikoliv se snažit upravovat samotný kód zásahy do mnoha různých souborů. Moje úvahy vedly k tomu, že vývojové prostředí arduino musí mít někde zapsané signatury procesorů a pokud se mi podaří je najít a pozměnit, mám vyhráno. Po nedlouhém pátrání se mi to skutečně podařilo. Je to v souboru avrdude.conf který se nachází v adresáři X/arduino-0022/hardware/tools (kde X je to místo, kam jste si vše nainstalovali (já to mám v adresáři Sanguinololu na ploše)). Tam na řádku zhruba 3729 (může se to verzi od verze trochu hýbat) začíná sekce ATmega644P. V ní si najděte řádek 

signature = 0x1e 0x96 0x0a;

Ten zakomentujte a pod něj napište upravenou verzi takže výsledek bude vypadat nějak takhle:

# signature = 0x1e 0x96 0x0a; puvodni hodnota signature
signature = 0x1e 0x96 0x09;

Soubor uložte a avrdude si bude při nahrávání do procesoru 644 myslet, že komunikuje se 644P a bude spokojený smiley

Sláva! Po této úpravě již všechno začíná chodit tak jak má.

Komunikace a první pokusy o ovládání desky

První pokusy s deskou samozřejmě doporučuji dělat s neosazenými Pololu moduly (přeci jenom nejsou nejlevnější a byla by škoda je zbytečně zničit hned v úvodu) a s napájením desky pouze z USB portu. Teprve až ověříme, že si s námi deska povídá, můžeme začít pomalu osazovat moduly a připojovat skutečné periférie.

Jako software na ovládací počítač v této fázi doporučuji Printrun, což je skupina několika užitečných prográmků psaných v jazyce python. Proto bude nejprve potřeba podle README v Printrunu nainstalovat Python, pyserial a wxPython. Pak si stáhneme a rozbalíme Printrun a spustíme nejužitečnější utiitku nazvanou pronterface. Vypadá následovně:

Jak vidíte, dole ve stavové řádce program píše, že tiskárna není připojena, a nahoře v okénku Port: nelze nic zvolit. Pronterface zavřete a připojte USB kabelem holou (bez Pololu destiček a čehokoliv připojeného) desku tiskárny. Pokud jste si osadili LED diodu pro komunikaci, měla by po zastrčení USB portu do počítače poměrně výrazně zablikat a zároveň se rozsvítí dioda napájení desky. 

Když teď znovu spustíte pronterface (mimochodem doporučuji vytáhnout si ikonu na plochu, budete s ním pracovat opravdu hodně často), mělo by se v okénku Port: objevit /dev/ttyUSB0 a pokud stisknete Connect, po trošce blikání diody a cca 5 vteřinách by se v pravém bílém okně mělo vypsat:

start
Printer is now online
SD init fail

Pokud tyto nápisy vidíte, klikněte na tlačítko GET TEMP a v okně výpisu by mělo přibýt:

SENDING:M105
ok T:0 B:0

Což volně přeloženo znamená: Posílám Gcode M105 (zjištění teploty) a tiskárna odpoví T:0 (teplota extruderu) a B:0 (teplota vyhřívané podložky). Chcete-li se ujistit, zda procesor dělá vše jak se patří, můžete na konektor jednoho z termistorů připojit buďto termistor topného tělesa, nebo pokud ho ještě nemáte alespoň odpor v řádech desítek kohmů (třeba 39k), a zkusit příkaz GET TEMP znova. Tentokrát by už příslušná teplota měla být nenulové číslo, a pokud máte připojený termistor a zahřejete ho rukou, měla by se i mírně měnit.

Další pokus, který můžete udělat je napsat do okénka před tlačítko Send příkaz M115 a pomocí Send ho odeslat. Tiskárna by měla odpovědět několikřádkovým výpisem s informacemi o použitém firmwaru.  

Pokud až sem vše fungovalo, můžeme se pustit do experimentu s prvním krokovým motorem. V pronterface nejprve odpojte tlačítkem Disconnect tiskárnu. Pokud to zapomenete udělat, vytáhnete USB kabel a zase ho vrátíte, tiskárna se obvykle připojí na další volný port, protože ten původní zůstane obsazen, takže příště se musíte připojit na /dev/ttyUSB1 namísto ttyUSB0. 

Při odpojené desce do konektoru osy X zastrčte Pololu destičku. POZOR, ať jí tam strčíte správným směrem, jinak hrozí, že jí odpálíte! Ke konektoru připojte příslušné cívky volného motorku. Zatím ještě nepoužívejte přímo motory zamontované v tiskárně, abyste si jí přejezdem motoru na doraz dráhy zbytečně nepochroumali. Já jsem použil motor extruderu, který jsem v tu dobu ještě neměl přišroubovaný (a i pokud by byl osazený v extruderu, můžete ho beze strachu použít, protože extruder nemá žádný doraz dráhy).

Připravte si voltmetr s rozsahem do cca 2V a mikrošroubováček nebo třeba vhodně seříznuté párátko, kterým budete moci kroutit s minitrimrem na destičce Pololu. Připojte nejprve USB port a pak i silové napájení pro motory (četl jsem, že při zapnutém napájení nesmíte z konektoru vytáhnout připojený motor, protože v tom případě hrozí zničení Pololu destičky) a nakonec tlačítkem Connect v pronterface připojte tiskárnu.

Vezměte voltmetr, jeho zemnící hrot připojte na hlavní desce na kteroukoliv zem (používám pro to šroubek svorky pro připojení zemní svorky silového napájení), a druhým hrotem se opatrně, abyste něco nezkratovali, dotkněte titěrného měřícího bodu na Pololu destičce (na obrázku jsem ho označil A). Trimrem (označeným B) otáčejte tak dlouho, až naměříte cca 0,25 až 0,3V. Napětí 0,4V by mělo odpovídat proudu do motoru 0,5A (našel jsem kdesi na Internetu), takže pro naše pokusy s volným motorem by mělo 0,25 až 0,3V na měřícím bodu a tomu odpovídající nižší proud rozhodně stačit. Pokud by se později zdálo, že motor při tomto proudu neutáhne tiskármu, je možné ho seřídit na vyšší hodnotu, ale pro první pokusy i s ohledem možnosti dojetí motoru na dorazy doporučuji raději hodně nízké hodnoty, a tím i malý kroutící moment motoru.

Odpojte voltmetr a zkuste kliknout na tlačítko HomeX. To dá tiskárně příkaz, aby s osou X dojela na domovskou pozici (na koncový spínač nebo fotozávoru, podle toho, co v tiskárně budeme používat). Motor jede pomalu jedním směrem a po dosažení domovské pozice ještě cukne kousek zpět a zase dopředu, aby se ujistil o správné funkci koncového spínače. Protože zatím žádný koncový spínač nemáme připojený, motor se bude točit a točit, až za chvíli software na desce vyhodnotí, že už přece musel konce dosáhnout a tak ho vypne. Zároveň se podívejte, kterým směrem se motor točí při cestě "domů" a srovnejte to se skutečným osazeným motorem osy X (vozík s extruderem). Pokud zjistíte, že se točí opačně než by měl, otočte po odpojení desky v pronterface, vypnutí zdroje a vytažení USB kabelu jeho konektor o 180° a příště by se měl točit správně. Než to ale vyzkoušíte, připojte ještě koncový spínač osy X (ať už je osazený na tiskárně nebo ho máte zatím volně). 

Po znovuzapnutí a připojení desky opět klikněte na HomeX, ale tentokrát při točení motoru nasimulujte sepnutí koncového spínače (stiskem nebo vložením něčeho neprůhledného, pokud používáte optospínač). Motor by měl okamžitě zastavit a po rozepnutí trochu cuknout a zastavit. 

Pokud osa X funguje, zopakujte celý postup i na osách Y (pojezd stolku) a Z (výška extruderu) a na jejich koncových spínačích. Doporučuji přitom postupně vkládat a seřizovat příslušné Pololu destičky, ale motorek používejte zatím pořád ten stejný, nezastavěný do tiskárny.  Teprve až budou všechny koncové spínače prověřené, zapojte zastavěné motorky s tou polaritou, kterou jste zjistili při pokusech s volným motorkem, spínače umístěte na správná místa tiskárny, ručními pojezdy se ujistěte, že na konci dráhy sepnou a připojte je k desce do správných konektorů. Pak doporučuji ručně najet s motorky X a Y doprostřed jejich dráhy a s osou Z dostatečně vysoko, zapnout tiskárnu a s rukou na síťovém vypínači (pro případ, že by motorek jel na druhou stranu nebo nezafungoval koncový spínač) zkusit postupně tlačítka HomeX, HomeY a HomeZ. 

V případě, že vše funguje jak má, můžete si v pronterface pomocí příslušných tlačítek FL, FR, BL, BR a CENTRE zkusit pojezdit s osami X a Y z rohu do rohu, na střed a zase zpátky domůa tlačítky Z+ a Z- pojezdit osou Z nahoru a dolů. Také můžete zkusit připojit topné těleso extruderu (případně stolku, pokud máte vyhřívaný typ), zapnout topení a na termistorech sledovat změny teploty.

Pokud jste dospěli až sem gratuluji, a až seženu první špulku ABS, popíšu závěrečné seřízení a první pokusy o tisk.

RepRap - vyhřívaný stolek

Původně jsem myslel, že bude následovat článek o seřizování tiskárny a prvních pokusech o tisk, ale uprostřed tohoto procesu se ukázalo, že pro tisk hmotou ABS je vyhřívaný stolek nutností. Protože jsem se rozhodl pro vlastní konstrukci, která se docela vydařila, nejprve popíšu, jak je možné si ho postavit.

 

Stolek z profi vyrobeného plošného spoje mě odradil svoji cenou. Chvíli jsem uvažoval, jestli se nepokusím o vlastní výrobu podobného plošného spoje, ale obával jsem se, že nedosáhnu potřebné přesnosti a tím pádem bude spoj ve ztenčených místech mít tendenci se přehřívat. Proto jsem tuto cestu zavrhnul a zvolil jsem variantu vyhřívanou výkonovými rezistory.

Na Internetu najdete variantu vyhřívanou rezistory v hliníkových chladičích.

Ta má ale tři podstatné nevýhody:

  1. Cena těchto rezistorů. Našel jsem je za 59,- Kč/kus, což při potřebě devíti kusů dělá částku přes 500 Kč.
  2. Pro osazení rezistorů zespoda desky je třeba tam vyvrtat díry (18 ks) a opatřit je závity, což je poměrně pracné.
  3. Aby to šlo udělat, musí deska být dostatečně tlustá (minimálně 5mm), což je jednak drahé a jednak je taková deska zbytečně těžká a má velkou tepelnou setrvačnost.

Proto jsem se rozhodl pro jinou cestu. Našel jsem vhodný kus 3mm tlustého duralového plechu a rozhodl jsem se, že použiji výrazně levnější keramické výkonové rezistory 10 ohmů/10W (sehnal jsem je za cca 6 Kč/kus). Dlouho jsem přemýšlel, jak je k desce připevním. Nejdřív jsem předpokládal, že z 1mm hliníkového plechu vyrobím jakési U profily, vše namažu silikonovou teplovodivou vazelínou a k desce přimáčknu jakýmisi plechovými pružnými sponami.

Pak jsem ale přišel na daleko jednodušší a čistší řešení. Rezistory jsem se k desce rozhodl přilepit dvousložkovým lepidlem s kovovým plnivem (Alteco 3-TON QUICK epoxy adhesive z nějakého Bau...). Odolává teplotě do 120°C a díky kovovému plnivu má i relativně slušnou tepelnou vodivost.

Aby byl zajištěn lepší přestup tepla z rezistorů, koupil jsem v Bauhausu metr hliníkového úhlového profilu 10x10mm, nařezal ho na 4,5cm dlouhé kousky a nalepil z obou stran na rezistory a desku. Z téhož profilu jsem si připravil a na desku nalepil komůrku pro umístění termistoru.

Jako tepelnou izolaci a zároveň "kapotáž" topných odporů jsem se rozhodl použít běžnou PUR montážní pěnu (má tepelnou odolnost do 120 - 150°C, výborně se opracovává a je skvělým tepelným izolantem).

Postup výroby:

  1. Na desku o rozměrech 22,5 x 22,5 cm podle pojízdného stolku tiskárny překreslíme pozice čtyř otvorů pro šrouby a vyvrtáme 4mm vrtákem. Použijeme šrouby M4/50mm se zápustnou hlavou, proto ještě vrtákem 8mm opatrně vyvrtáme z lícové strany stolku zapuštění. Jeho hloubka je cca 2,5mm, takže deska nemůže být tenčí než 3mm.
  2. Rozkreslíme pozice rezistorů (jejich středy jsem rozmístil na čtverec 14 x 14 cm), rozděláme vhodné množství dvousložkového lepidla a rychle rezistory přilepíme (lepidlo tuhne do 4 minut, takže času skutečně není nazbyt). Snažíme se přitom lepidla použít co nejtenčí vrstvu, aby byl co nejlepší přestup tepla do desky a rezistory silou přitlačíme, aby se přebytečné lepidlo vymáčklo do stran. Jeho přebytky snadno odstraníme nožíkem po cca 10 minutách, kdy už je dostatečně tuhé, aby nelepilo, ale ještě není úplně tvrdé a dá se snadno odříznout.
  3. Z hliníkového profilu nařežeme 18 ks bočnic a tři cca 5 mm široké kousky na vytvoření "domečku" pro termistor. Jeden z nich jsem v půlce výšky narušil jehlovým pilníkem a ohnul tak, že z pravoúhlého profilu vzniknul profil jakoby ve tvaru pravoúhlého písmene Z.
  4. Rozděláme malé množství lepidla a přilepíme bočnice ke zhruba půlce rezistorů a Z profil pro termistor (lepidlo tuhne tak rychle, že není možné stihnout vše nalepit najednou). Po ztuhnutí za cca 10 minut rozděláme lepidlo na druhou půlku rezistorů a na bočnice domečku pro termistor a vše přilepíme. Izde se samozřejmě snažíme použít co nejmenší množství lepidla a vše pečlivě silou přímáčkneme, aby byl prostup tepla co nejlepší. Případné zbytky lepidla odstraňujeme nožíkem po cca 10 minutách tuhnutí. 
  5. Propojíme všechny rezistory paralelně (na vývody jsem jim napřed navlékl silikonovou bužírku, která odolává vysokým teplotám. Vzhledem k tomu, že celkový odpor topného tělesa bude cca 1,1 ohmů a proto jím při 12V poteče proud kolem 10A, je třeba na propojení provést dostatečně silnými dráty. Já jsem použil běžné lanko 1,5 mm2 (koupené kdysi v nějakém bau...), propojil jsem rezistory ve třech větvích, a tyto tři větve jsem spojil až na běžné lustrsvorce, kterou jsem použil jako připojovací konektor vyhřívané desky. Jsou potřeba čtyři svorky - dvě na topné těleso a dvě na termistor.
  6. Na vývody běžného 100 kohmového NTC termistoru také navlékneme silikonovou bužírku a připájíme drátky vedoucí k lustrsvorce. Termistor napatláme silikonovou teplovodivou vazelínou, vsuneme do připraveného domečku a utěsníme vložkou ze seskládaného alobalu tak, aby byl dobře přitlačen k desce.
  7. K lustrsvorce přišroubujeme přívodní dráty pro topení, a také dráty na kterých budeme měřit odpor termistoru. Při pokojové teplotě kolem 20°C by měl být jeho odpor kolem 100kohmů a při zahřívání desky by měl klesat. Chcete-li, můžete desku připojit k elektronice tiskárny a ověřit její funkci přímo z Pronterface, ale řekl bych, že v této fázi stačí jí pouze na chvilku připojit na zdroj 12V a ověřit, že všechny rezistory topí podobným způsobem a že odpor termistoru klesá (má tedy s deskou dobrý kontakt).
  8. Okraje desky ze strany rezistorů olepíme asi 1cm širokým proužkem běžné izolepy tak, abychom po bocích zakryli díry pro šrouby a vepředu a vzadu vytvořili prostor pro pozdější umístění klipů, kterými k ní budeme připevňovat sklo. Také izolepou oblepíme lustrsvorku tak, aby se do ní montážní pěna nedostala. Desku položíme na staré noviny a zvlhčíme vodou například rozprašovačem na květiny z dostatečné výšky tak, aby se na ní neudělaly loužičky (montážní PUR pěna tuhne díky vzdušné vlhkosti, a k místům, která budou vlhká, proto lépe přilne). 
  9. Řádně protřepeme nádobku a na desku nastříkáme (dnem vzhůru) pokud možno rovnoměrnou vrstvu pěny. S nádobkou mezi stříkáním opakovaně třepeme, jinak bude stříkat nerovnoměrně. Snažíme se přitom vyplnit prostor pod dráty. Pěna několikanásobně zvětší svůj objem, takže to s ní zbytečně nepřeháníme. Na celou desku mi přesně vystačila nejmenší sehnatelná pěna SOUDAL MINI ve spreji 150ml. Pěnu necháme v klidu a pokud možno ve vlhku tuhnout minimálně 12 hodin (nevěřte návodu z nádobky, že bude ztuhlá za hodinu, v takhle silné vrstvě není tuhá ani za dvě hodiny - to jsem na kraji osobně vyzkoušel).
  10. Po dostatečném ztuhnutí vezmeme vhodné ostré nože a z pěny vyřízneme rovnoměrnou izolační vrstvu tlustou cca 2 cm (tak aby v ní byly bezpečně utopené všechny součástky) a na každé straně byla zhruba o 1 cm menší než deska. Pak můžeme strhnout ochranné izolepy, a také vhodným oříznutím zpřístupnit lustrsvorku. Na seříznutí zadní plochy se mi osvědčil mírně zoubkovaný dlouhý dortový nůž nebo lze také použít třeba list do pilky na železo.

Teď už zbývá jen stolek osadit šroubky, z druhé strany dotáhnout přes podložky matičky, nasadit další matičky (na seřízení výšky stolku), další podložky, a stolek upevnit na pojízdnou podložku tiskárny a zespoda přitáhnout dalšími matičkami (na každém šroubku bude sekvence: výhřevná deska, podložka, utažená matka, (vzdálenst od pojízdného stolku), matka, podložka, pojízdný stolek, podložka, přitahovací matka. Na stolek klipsami koupenými v papírnictví (office binder clips 19mm) přichytíme stejně velké 3mm tlusté sklo.

Zapneme tiskárnu a v Pronterface zajedeme s osami X a Y do jednoho rohu stolku a osu Z opatrně přibližujeme ke sklu na vzdálenost cca 0,5 mm. Pak vypneme tiskárnu a ručně opatrně jezdíme nejprve osou X a později stolkem osou Y, a seřizujeme výšku šroubků stolku tak, aby vzdálenost trysky od skla byla všude stejná.

Znovu zapneme tiskárnu a s pomocí Pronterface a pohybu koncovým spínačem osy Z se snažíme vyladit pozici Home Z tak, aby v ní tryska byla cca 0,3 mm nad sklem. Musíme přitom být opatrní abychom nesjeli příliš nízko a sklo si tak tryskou nerozbili. 

Můžeme zkusit nahřát stolek a změřit si čas jak dlouho to trvá. Já dosahuji teploty 90°C z pokojových 20°C cca za 15 minut.

Nakonec pár obrázků, které osvětlí jednotlivé kroky stavby:

Chemie pro stavbu desky

Deska s přilepenými rezistory

Přilepené profily a prodrátování

Zapěněná deska

Hotová deska připravená k namontování

RepRap - první pokusy o tisk

Když jsem se po prvním rozhýbání tiskárny pokusil o prvotisk, vylezl samozřejmě totální paskvil. Nejprve to ve mě vyvolalo pocity silného zklamání, ale po prohledání několika webů jsem zjistil, že seřídit tiskárnu není úplně triviální záležitost. V tomto článku se proto pokusím popsat jak při uvádění do provozu postupovat. 

Než začnu popisovat způsoby seřizování tisku, bude dobré se nejprve trochu zorientovat v bohaté směsici softwaru, který leží na cestě od prvotní myšlenky až k reálnému 3D modelu. 

CAD programy

Prvním článkem řetězce potřebného softwaru jsou CAD (Computer Aided Design) programy, ve kterých se navrhují 3D modely součástek, které budeme chtít vyrábět. Éra, kdy CADům vládnul program AutoCAD je dávno za námi. Ten byl totiž prvotně určen pro tvorbu klasických 2D technických výkresů a teprve pod tlakem konkurenčních softwarů se do něj těžkopádně dostaly prvky 3D modelování.

Proto i sama firma Autodesk již před lety pochopila, že musí vytvořit CAD zcela nové koncepce, kterému bude vládnout tzv. parametrické modelování, a teprve druhotně bude schopen podle modelu vygenerovat technické výkresy. Tímto novým produktem se stal Autodesk Inventor. Samozřejmě je možné v tomto softwaru modely pro RepRapa vytvářet, ale podstatnou nevýhodou je, že Inventor je software komerční, a navíc protože je určen pro specializovanou profesionální sféru průmyslu, je velmi drahý (jeho cena několikanásobně převýší cenu RepRapa). Takže o této variantě mohou uvažovat snad jen studenti některých technických škol (například i té naší), kteří mají studentskou licenci zdarma. (Samozřejmě existuje celá řada dalších komerčních 3D modelerů, ale cílem tohoto článku není jejich popis.)

Z oblasti Free softwaru stojí v této kategorii za zmínku programy OpenSCAD a FreeCAD. Práce s nimi není rozhodně tak komfortní jako například s Inventorem, ale nadšenci, kteří se pustí do jejich zvládnutí, budou zanedlouho schopni v nich vytvářet podobně komplexní modely jako v komerčních programech. 

Trošku jinou kategorií z této oblasti jsou tzv. 3D polygon mesh modelery. Práce v nich bývá sice trochu snadnější a přívětivější než ve free CADech, ale modely postrádají parametričnost, která může být pro tvorbu objektů velmi důležitá. V parametrickém CAD programu například navrhneme parametrické ozubené kolo, z nějž pouhou změnou jediného parametru "počet zubů" můžeme velmi snadno vytvářet různé instance. Něčeho takového v 3D polygon mesh modeleru nedosáhneme. 

Důležitými zástupci free programů z této kategorie jsou například Blender nebo Google Sketchup

Export

Každý z výše uvedených (i dalších neuvedených) programů má svůj vlastní formát ukládání dat. Vzhledem k tomu, že s hotovými modely potřebujeme dále pracovat v CAM softwaru, je ovšem nutné je převést do nějakého standardního formátu. Snad nejdůležitějším takovým formátem je v oblasti CAM a rapid prototyping formát STL (ze slova STereoLitography). Ten dobře popisuje tvar modelu, ale bohužel se v něm se samotným modelem nedá téměř vůbec manipulovat. Proto nezbývá, než si modely ukládat ve vlastním formátu daného CAD softwaru a navíc je pro další zpracování exportovat do STL formátu. 

Úložiště STL modelů

Nejvýznamnějším místem pro ukládání STL modelů, jakýmsi "Vesmírem (3D) věciček" je server s příznačným názvem (Thing+Universe) Thingiverse. Protože těch "věciček" je tam více než 10 000 a neustále přibývají, musí se každý správný RepRaper zákonitě stát závislákem na tomhle místu v Internetu wink. Takže až budete uvažovat, co byste si tak pěkného dnes vytiskli, prohledejte třeba nejpopulárnější věci. A samozřejmě naopak, až něco pěkného sami zkonstruujete, šup s tím na Thingiverse.

CAM programy

Když už máme popis tvaru 3D modelu jakým je pro nás STL soubor, musíme z něj vygenerovat kód (tzv. G-code) pro tiskárnu. Touto činností se zabývají takzvané CAM (Computer Aided Manufacturing) programy.

Možná se zeptáte, proč se na Thingiverse neukládají už rovnou G-code soubory? Odpověď bude zřejmá, když si uvědomíme, co takový CAM program vlastně dělá. Obecně řečeno převádí 3D model do řeči stroje, který podle něj bude součástku vyrábět. Je jasné že ta "řeč" je úplně jiná například pro CNC frézu, laserovou vyřezávačky nebo stroj typu RepRap.

Ale i pokud bychom chtěli ukládat a sdílet G-code pouze pro stroje typu RepRap, nemohlo by to dost dobře fungovat. CAM programy pro rapid prototyping totiž zpravidla fungují tak, že model rozřežou na tenké plátky (dobrá představa je krájení salámu u řezníka) a jednotlivé plátky potom podrobí hlubší analýze a generování konkrétního kódu. Když si teď představíte, že každá tiskárna má například trošičku jiný průměr trysky, každé klubko materiálu může vykazovat trochu jiné vlastnosti (například vyžaduje trochu odlišnou teplotu), je jasné, že G-code se musí doslova šít na míru každé konkrétní tiskárně. A právě o seřízení parametrů CAM softwaru tak, aby šil kódy správně na míru Vaší konkrétní tiskárně, v tomhle článku nejvíce jde.

Ale abych nepředbíhal, free CAM softwary, které nás mohou nejvíce zajímat jsou: Skeinforge nebo případně RepRap Host software.

Než jsem přišel na to, že existuje Skeinforge, zkoušel jsem pod vlivem videí z Internetu popisujících tisky na RepRapu právě RepRap Host software. V době, kdy jsem ještě neměl materiál pro tisk a zkoušel jsem si tisk nanečisto, jsem v něm pár G-codových souborů vygeneroval, a měl jsem radost, že se jimi tiskárna rozhýbala, ale už tam mi přišlo silně podezřelé, jak rychle se točí extruder, a říkal jsem si, že takhle cívku materiálu proženu tiskárnou za jedno odpoledne.

Nechtěl bych tomuhle softwaru křivdit, ale mám dojem, že to byl takový alfa pokus psaný hodně na koleně, aby vůbec bylo možné rozhýbat první postavené Darwiny (překonaná první generace RepRapů). Dále se mu tedy nebudu věnovat a vše budu popisovat ve Skeinforge.

Cesta G-code k tiskové hlavě

Než se pustím do Skeinforge, ještě krátce k tomu, co dále s vygenerovaným G-codem. Dnešní RepRapy s běžnými typy elektroniky a firmwaru umí tisknout ve dvou režimech. Prvním z nich (kterým se budu dále zabývat) je tisk G-code příkazů posílaných po sériovém (USB-sériovém) portu z počítače. Druhá možnost je nahrát G-code soubory na SD kartu a mít na elektronice přídavnou destičku se čtečkou SD karet, ze kterých se dá tisknout rovnou. Výhodou je, že tiskárna ke své činnosti nepotřebuje počítač, ale pochopitelně na to už musí být dokonale odladěná a technologie tisku perfektně zvládnutá.

I pro posílání G-code příkazů do tiskárny existuje několik variant softwarů od primitivních příkazů z příkazové řádky v Linuxu (Pronsole) přes jednoúčelové softwary s grafickým GUI typu Pronterface (oba jsou součástí balíku Printrun) až po softwary typu all-in-one, jejichž snahou je na jedné straně otevřít STL soubor a na druhé straně vytisknout hotový výrobek, přičemž se postarají jak o převod do G-code (pomocí Skeinforge), tak i o ovládání tiskárny.

Základním představitelem této kategorie je ReplicatorG. Zkoušel jsem ho nainstalovat, nějak sice funguje, ale funkční tisk jsem z něj zatím nedostal, takže zatím tuto cestu nebudu popisovat (možná někdy v budoucnu).  

Pro začátek tedy doporučuji nainstalovat si Printrun a Skeinforge. Tyto softwary vyžadují verzi pythonu 2.6 a originál SUN javu (je možné že budou fungovat i s OpenJavou, ale na webech se výrazně doporučuje instalace SUN javy. Pro Ubuntu Linux, který používám pro tisk se předinstalace potřebných komponent provede následovně:

sudo apt-get install openjdk-6-jdk python python-tk python-psyco

Protože SUN java není open software, Ubuntu pro ni nemá v běžně nainstalované verzi nakonfigurované repozitáře proto pro instalaci musíme udělat následující:

sudo add-apt-repository "deb http://archive.canonical.com/ubuntu natty partner"
sudo apt-get update
sudo apt-get install sun-java6-jre

A nakonec Ubuntu nakonfigurujeme tak, aby implicitně spouštěl právě SUN javu (vybereme volbu 2):

sudo update-alternatives --config java

Skeinforge

Abych pravdu řekl, je ode mne dost odvážné, že tu píšu o něčem, o čem mám tak mlhavé představy jako o Skeinforge. Ale i získání těchto mlhavých představ mě stálo nemalé úsilí, tak doufám, že tenhle kousek textu dalším zájemcům pomůže k rychlejšímu startu. Pokud v mých popisech odhalíte nepřesnosti či chyby, budu rád, když mi pošlete mailíka, rád text upravím.

Co je to tedy Skeinforge? Skeinforge je obsáhlá sada skriptů napsaných v jazyce python, které se postupně v určitém pořadí podílejí na tvorbě a potřebných úpravách G-codu pro tiskárnu. Zde najdete obsáhlý manuál (který jsem zatím příliš nečetl sad ).

Tím, že Skeinforge je právě takto modulární systém, je obrovsky pružný, takže pokud víte, co děláte, můžete ho skutečně donutit generovat G-code přesně podle svých představ (respektive spíše představ Vaší tiskárny). Na druhou stranu není příliš přehledný a u začátečníka vyvolává při prvních seancích pocity čirého zoufalství. Ale nebojte se, zvládnout jeho základy není tak složité, jak by se na první pohled mohlo zdát. 

Spuštění a základní ovládání

První bariéra na kterou začátečník narazí je, jak se vlastně Skeinforge spouští. Samozřejmě lze spustit s řadou parametrů z příkazového řádku, takže na jeden příkaz provede rovnou převod STL souboru do G-code. Ale to nás bude zajímat možná až po dokonalém odladění parametrů. Zatím ho budeme spouštět následovně:

Když stáhnete a někam rozbalíte Skeinforge (já (čuňátko) jsem si ho rozbalil rovnou na plochu), vytvoří se adresář (pravděpodobně nazvaný Skeinforge) a v něm najdete podadresář skeinforge_application. Běžte do něj a najdete tam skript terminal.sh (pozor, stejný je i v nadřazeném adresáři, ale je jednodušší pouštět až ten v skeinforge_application). Dvojklikněte na něm a zvolte "Spustit v terminálu". Objeví se terminálové okno, ve kterém Vám návod říká, že máte napsat ./skeinforge.py a stisknout Enter.

Spuštění se projeví tím, že se objeví okno plné divně rozložených tlačítek:

Základní obrazovka Skeinforge    

Tlačítka která vidíte na obrázku v prostřední sekci reprezentují jednotlivé skripty a když na některé kliknete, ve spodní sekci se objeví parametry daného skriptu. Například na výše uvedeném obrázku je vybrán skript Carve (řezat, krájet, porcovat) a dole vidíte některé z jeho parametrů. Například modře podbarvený Layer Thickness udává tloušťku jednotlivých vrstev, které bude tiskárna vyrábět (mám dojem, že takto jsou podbarveny parametry s klíčovou důležitostí, ale zatím je to jen můj nepotvrzený dojem (některé jsou ještě podbarvené žlutě)).

V úplně horní sekci je pak výběr profilu. Výhodou Skeinforge je, že si veškeré nastavované parametry ukládá do takzvaných profilů, a těch si můžete vytvořit kolik chcete. Ne že bych to zatím dělal, ale určitě po relativně slušném rozchození tiskárny bude rozumné si profil uložit, a pro další experimenty si z něj naklonovat novou kopii, aby při případném rozházení parametrů bylo k čemu se vrátit.

Správu profilů najdete v menu aplikace Profile/Extrusion/Extrusion..., čímž se otevře dialog, ve kterém můžete profily vytvářet a mazat a hlavně tam vidíte, v jakém pořadí se jednotlivé skripty při převodu do G-code budou spouštět:

Manipulace s profily

Není jich málo, že? smiley Ale nebojte, všechny rozhodně nebudou potřeba. Pojďme tedy nejprve omezit množství skriptů na nezbytně nutné. 

V hlavním okně aplikace nejprve vyberte Profile Type: Extrusion a Profile Selection ABS (pokud tisknete ze hmoty PLA, tak samozřejmě PLA). 

Pod tímto výběrem klikněte na Craft (sestrojit) a proklikejte postupně následující vypsaná tlačítka a v dolní polovině okna v sekci parametrů u nich vždy odškrtněte hned první zaškrtávátko Activate jméno modulu:, čímž daný modul deaktivujete.

Cool - přidává mezi vrstvami čas na schladnutí (hodí se u malinkých objektů, které nestihnou schladnout během tisku vrstvy)

Hop - zvedá extruder kdykoliv zrovna neextruduje

Oozebane - ovládá vytékání hmoty (nevím zatím přesně, co se tím myslí)

Stretch - opravuje velikost děr, které mají tendenci se tisknout jako menší než mají být.

Unpause - urychluje tisk aby se kompenzovalo zdržení vzniklé v mikroprocesoru (nevím přesně co se tím myslí, jak jsem našel, tak předávám dál)

Comb - zlepšuje kvalitu tisku děr (méně otřepů uvnitř děr)

Polyfile - Výběr adresáře a názvu souboru (bez jeho použití se ukládá automaticky do adresáře, kde je STL soubor)

Wipe - Definuje cestu pro čištění hlavy (zatím přesně nevím jak)

Některé z těchto modulů samozřejmě v budoucnu použijeme, ale pro prvotní nastavení opravdu nejsou důležité.

Nastavení nejdůležitějších parametrů

Carve je modul, kterým začneme. Nejdůležitějším parametrem v něm je již zmíněná tloušťka vrstvy "Layer Thickness". Nastavte ji pro začátek raději na vyšší hodnotu (něco kolem 0.45 až 0.49). Když bude příliš velká, vrstvy na sobě budou špatně držet (model bude mít tendenci se loupat na jednotlivé vrstvy), když bude moc malá (řekněme pod 0.35), hlava se bude "utápět" v nižších vrstvách a pravděpodobně díky tomu ucpávat. Na další parametry zatím nesahejte.

Chamber - máte-li vyhřívaný stolek, nastavte zde jeho teplotu "Bed temperature". Doporučuji začít někde u 80 - 90°C. pokud tisknete na studenou podložku, můžete modul deaktivovat.

Fill - v tomhle modulu se nastavuje, jak hustě tiskárna bude "vyčmárávat" plné plochy, ale zatím s parametry raději moc nehýbejte, je to tam docela složité. V případě problémů s plnou plochou upravte pro začátek pouze žlutě podbarvený "Infill Width over Thickness". 

Multiply - slouží pro vícenásobný tisk stejného dílu. My ho zatím použijeme pro posun dílu na podložce. Ujistěte se, že v něm máte hodnoty Number of columns a rows nastaveny na 1 a do políček Center X a Y uveďte souřadnice umístění středu výrobku. Zejména u vytápěné podložky je vhodné tisknout zhruba v jejím středu, kde je rozložení teploty nejrovnoměrnější.

Speed - tak tohle je snad to nejdůležitější místo, které musíte vyladit úplně jako první. Udává, jak rychle se bude hlava pohybovat při tisku Feed Rate a přesunech Travel Feed Rate. Já jsem to postupně dotáhl k hodnotám 33 pro Feed Rate a 38 pro Travel Feed Rate. A to nejdůležitější, jak rychle se během tisku bude točit motor extruderu, tedy kolik hmoty z trysky bude vytékat. To udává parametr Flow Rate Setting (float). Já jsem u něj dospěl k hodnotě kolem 20.

Temperature - neméně důležitý parametr udávající teplotu hlavy při jednotlivých situacích. Pro začátek doporučuji všude zadat teplotu kolem 220°C. Příliš vysoká teplota způsobuje ve vláknu tvorbu bublinek, příliš nízká malou přilnavost a ohebnost vlákna. 

Raft - vytváří pod výrobkem základovou mřížku. To je nutné u velkých výrobků nebo při nerovném stolku, ale pro úplný začátek se možná obejdete bez aktivace tohoto modulu (první tisk bez něj zkuste určitě a dále uvidíte...).

Když všechno tohle nastavíte, klikněte dole na Save All. Tím dojde k uložení hodnot do profilu. Kontrolujte si v černém okně terminálu, že Skeinforge profil uložil, píše tam o tom informační hlášky.

Co budeme tisknout

Já jsem si dal za cíl jako první výrobek píšťalku. Je dostatečně malá, mírně problémová (má uvnitř kuličku, kterou je nutné po tisku vyloupnout), a pokud se povede, je to velmi efektní výrobek, který prostě funguje, a můžete se s ním chlubit známým. wink

Brzy po prvotním zavedení hmoty do tiskárny jsem ale pochopil, ze jsem přestřelil, a je třeba začít na něčem ještě jednodušším. Takže doporučuji pěkně pokorně vlézt na Thingiverse a stáhnout si STL soubor tenkého (jedna vrstva) čtverečku o rozměrech 2x2 cm.

Thingiverse je zpočátku trochu nepřehledný, protože download je až pod komentářema, kterých u některých výrobků není málo. Ale u čtverečku není moc co komentovat, takže Download (vyberte ten správný STL nikoliv SCAD) je hned vidět. Doporučuji udělat si třeba na ploše adresář třeba s názvem Tisk a do něj si ukládat jak STL soubory, tak generovaný G-code. Až budete mít STL soubor nahraný, klikněte ve Skeinforge vlevo dole na tlačítko "Skeinforge". Tím se otevře souborový dialog a vy můžete vybrat STL soubor čtverečku. Po kliknutí na "Otevřít" se honem přepněte do okna terminálu, kde uvidíte, jak Skeinforge postupuje a spouští jednotlivé skripty. U čtverečku to půjde velmi rychle, ale u složitějších výrobků můžete očekávat třeba 15ti minutovou seanci.

Na konci generování se otevřou dvě grafická okna SkeinLayer a Skeiniso, kde můžete procházet jednotlivé vrstvy a dívat se, jak se výrobek vygeneroval. Obě okna pak klidně můžete zavřít. Ve stejném adresáři odkud byl vybrán STL soubor vznikne nový soubor s G-cody. Je to textový soubor, takže se do něj pro zajímavost také můžete podívat editorem.

Kdykoliv pohnete s jakýmkoliv parametrem některého modulu Skeinforge, musíte G-code stejným způsobem přegenerovat. Právě proto je výhodné začít s úplně jednoduchým čtverečkem, jehož generování trvá pár vteřin a ne třeba s píšťalkou, jejíž generování na mém stařičkém pro RepRap dedikovaném notebooku trvá cca 6 minut. 

Jak budeme tisknout

Doporučuji úplně první tisky dělat nanečisto bez hmoty a teprve později jí zavést do extruderu.

Nejprve připojte tiskárnu k USB portu, a pak teprve zapněte napájení 12V zdrojem. (Když to uděláte pobráceně nic se nestane, ale takhle se procesor bezproblémověji zresetuje a uvede do chodu (dojde k menším zákmitům napájecího napětí).)

Spusťte si Pronterface (součást zmíněného Printrunu s názvem pronterface.py). Později je vhodné si na ploše udělat ikonu zástupce tohoto programu, protože ho budeme spouštět opravdu často. V okénku portu nahoře by měl jít vybrat port s názvem pravděpodobně /dev/ttyUSB0 (pokud nejprve spustíte Pronterface, a teprve potom připojíte tiskárnu, program port neuvidí a musíte ho vypnout a znovu spustit). Zkontrolujte rychlost, pokud máte standardní Sanguinololu, měla by být 115200 kbps a klikněte na tlačítko Connect. Za několik vteřin by se měl v hlavním okénku programu objevit nápis Printer is now online a případně SD init fail (nemá k dispozici SD kartu, což ale nevadí).

Zkuste zahýbat osami X, Y a Z, ale s extruderem zatím ne. Ve standardní verzi firmwaru totiž Sprinter (a asi i jiné firmwary) počítá s absolutními souřadnicemi extruderu. Takže když necháte vyextrudovat třeba 50mm hmoty a tisk pak začne extrudovat od 0, extruder se bude vracet zpět z té padesátky na nulu a pojede tedy opačně než by měl.

Zpočátku je to trochu nezvyk i při ručním ovládání pomocí Pronterface. Když například zavádíte hmotu, nastavíte si 50mm a kliknete na Extrude. Pokud se ale hmota nezavede a vy chcete přidat dalších 50mm, nestačí pouze znova kliknout na Extrude, ale musíte zadat absolutních 100 mm, a pak teprve kliknout na Extrude. 

Až si pohrajete s osami X,Y, Z, najeďte do domovské pozice Home All. Tlačítkem Load file si otevřete před chvílí vygenerovaný soubor G-code. V okně se vypíše, kolik vlákna bude použito. Zatím nevím, co tahle hodnota znamená, ale každopádně to číslo je nějaké podezřelé. Pro čtvereček bez zapnutého Raftu mi to při výše uvedených hodnotách dává délku přibližně 1125.78 mm vlákna. Samozřejmě tohle číslo se u Vás může lišit, ale nemělo by se lišit řádově. Myslím, že tak hodnoty od 1000 do 1500 jsou přiměřené. Předehřejte Extruder (a stolek) tak, že si vyberete z okýnek Nozzle (a Bed) příslušnou teplotu, nebo jí do řádků zadáte ručně. Pak klikněte vždy na příslušné tlačítko Set a v okně se vypíše, že teplota byla přednastavena.

V pravém horním rohu si klikněte na zaškrtávátko Monitor a táhlem si nastavte monitorovací interval. Tak v okně uvidíte, jak se postupně teplota (teploty) mění. Nelekněte se, díky tepelné setrvačnosti dojde k přestřelu tak o 5°C, ale pak se teplota vrátí zpět a bude oscilovat tak +-2°C kolem nastavené hodnoty. Jakmile je nahřáto, klikněte na Print.

V mém nastavení jede extruder k výchozí poloze stráááášně pomalu, zatím jsem nevyzkoumal, čím se to dá ovlivnit, ale ono to nevadí, alespoň se mezitím stihnou ustálit teploty. Pak začne tisk, který už by měl mít rozumnou rychlost. Doporučuji si na přítlačné ložisko extruderu lihovou fixkou udělat čárky tak po 5 mm, abyste mohli sledovat, jestli se točí, a tedy jestli je drát hmoty do extruderu vtlačován nebo nastal nějaký zádrhel (např ucpaná tryska). Zatím, ale tiskneme bez hmoty, takže ložisko možná bude po transportním šroubu klouzat a točit se nebude. Pokud ano, mělo by tak od oka na každých 10mm dráhy ujeté tryskou posunout drát hmoty o cca 1mm. Ale je to skutečně velmi hrubý odhad. Velké kolo extruderu se na první pohled točí docela rychle, ale nezapomeňte, že průměr transportního šroubu je malý, takže drát se bude posunovat relativně pomalu.

Tak, jestli jste došli až sem, je na čase poprvé zavést hmotu. Dělá to trochu problém a musíte najít ten správný grif, a také si hodně povolit přítlačné ložisko a po dobrém zavedení hmoty ho naopak docela dost přitáhnout. Doporučuji to dělat při vypnuté a chladné tiskárně ručně, a naznačit si na drát zhruba délku, kterou by měla zalézt do extruderu, abyste odhalili, kdyby se někde po cestě vzpříčil.

Po prvním zavedení za studena také doporučuji z desky elektroniky (při vypnuté tiskárně) vytáhnout konektor připojení motoru extruderu, a pak tiskárnu zapnout a nahřát. Tak zůstane kolo extruderu volné a můžete nejdřív zkusit extrudovat ručním otáčením. Teprve po zjištění, že všechno jde hladce tiskárnu vypněte, znovu zapojte motor extruderu a zpátky ji zapněte.

Před každým novým pokusem o tisk vždy proveďte Reset tiskárny (tlačítko v Pronterface). Ten totiž vynuluje souřadnice a tedy i nakumulovanou absolutní souřadnici Extruderu.  Až tiskárna znova naskočí zajeďte na home, nastavte teploty a počkejte až jich bude dosaženo. Hlava by před tiskem měla být asi na tloušťku kancelářského papíru nad podložkou, takže pokud tomu tak není, upravte jí pomocí posuvů osy Z o + nebo - 0.1 mm (a případně si pečlivěji seřiďte koncový spínač osy Z).

Pak už jen spusťte tisk a kochejte se činností tiskárny. Po nemalém úsilí věnovaném její stavbě je to skutečně slastný pocit jí pozorovat při práci.

Nejběžnější problémy a pomoc při jejich řešení

Řešení problémů

   

Na tomto obrázku jsem shromáždil několik čtverečků s parametry už hodně blízko těch správných.

Zleva:

  1. Příliš mnoho hmoty (tryska se v ní "rýpala") - ubrat Flow rate setting v modulu Speed
  2. Příliš málo hmoty (přes mřížku výplně je vidět na papír pod čtverečkem) - přidat Flow rate setting
  3. (Málo hmoty) a nedrží na podložce - tryska může být příliš vysoko nad podložkou, chytila se až po chvíli. Pokud tisknete na sklo jako já, doporučuji ho natřít hodně zředěným roztokem kalafuny v lihu (musí vzniknout jen úplně tenká vrstvička, která má lepivý charakter, ale na skle skoro není vidět). Hmota se tak při správné výšce trysky chytne absolutně bezproblémově. Pokud vše selže, použijte modul Raft viz výše a vytvořte pod objektem podkladovou vrstvu. 
  4. Relativně slušný čtvereček - až dosáhnete něčeho takového, můžete se pustit dál. Že by konečně píšťalka? U vícevrstvých objektů zkontrolujte, zda je dobrá tloušťka vrstvy (modul Carve - Layer Thickness). Poznáte to po několika vrstvách. Buďto se tryska začna ve vrstvách "rýpat" (je třeba zvýšit tloušťku) nebo vrstvy mají tendenci se oddělovat (je potřeba jí snížit). Například ona prvotní píšťalka níže má vrstvy příliš široké, je vidět, že na sebe špatně navazují.

Píšťalka

Držím palce, ať i Vaše prvotisky brzo dokonvergují ke kýženému cíli!