\chapter{Praktická část}

\section{Části 3D tiskárny}

Pro modelování dílů byl použit CAD software FreeCAD. Tento CAD software byl zvolen proto, že je open source a~tedy dostupný pro každého, kdo jej chce používat. Software FreeCAD byl nedávno vydán ve verzi 1.0, což ve světě open-source mj. znamená připravenost pro použití v~praxi.

FreeCAD je univerzální parametrický modelovací systém vydaný pod licencí LGPL, tudíž jej lze libovolně šířit a~modifikovat. FreeCAD je také multiplatformní, tudíž jej lze používat v~operačních systémech Windows, Linux i~MacOS. FreeCAD je napsán v~jazyce C++ a~pro manipulaci s~geometrií využívá knihovny OpenCASCADE. FreeCAD lze rozšiřovat pomocí zásuvných modulů (pluginů). FreeCAD též umožňuje psaní vlastních skriptů v~jazyce Python a~nahrávání vlastních maker.~\cite{FreeCAD_wiki}

Můj návrh tiskárny vychází z~projektu x-scara~\cite{x-scara}. Ve svém návrhu byly použity shodné rozměry hliníkových profilů, trapézových a~vodících tyčí. Vzhledem k~tomuto faktu se můj návrh projektu x-scara velmi podobá, ačkoliv můj návrh nevyužívá žádný díl z~tohoto projektu.

Model je rozdělen do sedmi částí. První je \textbf{základna}, druhou je \textbf{rameno}, třetí je \textbf{tisková hlava}, čtvrtou \textbf{extruder} (VORON M4), pátou \textbf{displej} a~šestou \textbf{držák cívky filamentu}. Sestava obsahující všechny tyto zmiňované části je zobrazena na obrázcích níže \ref{fig:overview}.

Soubory ve formátu FCStd (zdrojové soubory modelů) jsou organizovány podle části, do které spadají. Pro generování souborů ve formátu STEP vhodného pro slicer slouží python skript, který využívá FreeCAD API. Tento skript postupně otevře, přepočítá a~exportuje všechny díly. Skript exportuje pouze ty objekty, které jsou obsažené v~kontejneru Std Part. Jako název souboru se volí název dílu, který obsahuje i~počet výtisků konkrétního dílu. K~výrobě tištěných dílů pak postačí adresář step a~soubory, které obsahuje.

\begin{figure}[H]
\centering
\subfigure[Z přední strany]{\label{fig:overview-rear-front}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Master_Assembly_Isometric_Front.png}}
\subfigure[Ze zadní strany]{\label{fig:overview-rear-rear}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Master_Assembly_Isometric_Rear.png}}
\caption[Izometrický pohled na konstrukci tiskárny]{Izometrický pohled na konstrukci tiskárny~\cite{freecad}}
\label{fig:overview}
\end{figure}

\subsection{Základna}
Základna je složena ze hliníkových profilů 20x20mm a~20x40mm. Na základnu je upevněno rameno, které se díky lineárně valivým ložiskům pohybuje po třech vodících tyčích o~průměru 8mm. V~horní části základny je upevněn krokový motor, který pomocí trapézové tyče o~průměru 8mm pohybuje ramenem v~ose Z. Druhá strana trapézové tyče je uložena v~ložisku ve spodní části základny. Základna je zobrazena na obrázcích níže \ref{fig:base}.

Pro spojení hliníkových profilů byla vybrána metodu "Blind Joint", která umožňuje pevné spojení dvou hliníkových profilů. Tato technika byla zvolena i~z důvodů snadnější montáže akrylové desky a~možnosti zapuštění elektroniky do rámu tiskárny.

\begin{figure}[H]
\centering
\subfigure[Z přední strany]{\label{fig:base-front}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Base_Isometric_Front.png}}
\subfigure[Ze zadní strany]{\label{fig:base-rear}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Base_Isometric_Rear.png}}
\caption[Izometrický pohled na základnu]{Izometrický pohled na základnu~\cite{freecad}}
\label{fig:base}
\end{figure}

V zadní části základny je umístěna skříň s~elektronickými komponentami tiskárny. Ta je od prostoru tiskárny oddělena akrylovou deskou, která je upevněna přítlakem DIN lišt. Pro upevnění elektronických komponent slouží tři DIN lišty \footnote{DIN lišta je standardizovaný ocelový profil, který slouží k~upevnění modulárních přístrojů v~elektrických rozvaděčích} upevněné z~vnitřní části bočních hliníkových profilů. Elektronika je od okolí oddělena plastovými díly, které společně tvoří skříň, chránící před nechtěným dotykem. Uvnitř skříně najdeme upevněný zdroj, řídící desku, jednodeskový počítač Raspberry Pi a~sadu řadových svorek. Skříň s~elektronikou je zobrazena na obrázcích níže \ref{fig:base-electronics}.

\begin{figure}[H]
\centering
\subfigure[Z levé strany]{\label{fig:base-electronics-right}\includegraphics[width=0.34\textwidth]{images/2_prakticka_cast/Base_Assembly_Left.png}}
\subfigure[Ze zadní strany]{\label{fig:base-electronics-without-cover}\includegraphics[width=0.285\textwidth]{images/2_prakticka_cast/Base_Electronics_Without_Cover.png}}
\subfigure[Z pravé strany]{\label{fig:base-electronics-left}\includegraphics[width=0.34\textwidth]{images/2_prakticka_cast/Base_Assembly_Right.png}}
\caption[Pohled na skříň s~elektronikou]{Pohled na skříň s~elektronikou~\cite{freecad}}
\label{fig:base-electronics}
\end{figure}

% cSpell:ignore PITFT, SHCS, IEC, C14
Po obvodu skříně jsou upevněny další části tiskárny. Jednou z~nich je dotykový displej BTT PITFT43, který je ke konstrukci skříně upevněn na pohyblivém pantu. Tento pant je realizován pomocí dílu upevněného ke skříni, zadní části krytu displeje, vložky pro jeho dotažení a~šroubu SHCS M3x55. Tento pant je upevněn pomocí tří šroubů k~panelu v~~panelu se nachází otvor pro DSI kabel, který slouží pro připojení displeje k~mikropočítači. V~přední části se také nachází kolébkový přepínač pro spínání napájení celé tiskárny. Vedle něho se nachází slot pro USB konektor pro připojení akcelerometru. Nad spínačem a~USB slotem se nachází jeden z~ventilátorů jehož účelem je nasát chladný vzduch do skříně. Na opačné straně v~horní části je též upevněn ventilátor, který naopak odsává teplý vzduch. Na opačné straně displeji je též upevněn keystone s~RJ-45 konektorem pro připojení tiskárny do počítačové sítě. Vedle něho se ještě nachází napájecí konektor IEC 60320 C14 s~pojistkou.

\subsubsection{Zdroj}

Elektroniku napájí AC-DC zdroj s~výstupním napětím 12~V s~modelovým označením SP-320-12 MV02 od společnosti MeanWell. Společnost MeanWell má ve světě zdrojů velmi dobré jméno. Vyrábí totiž na svou cenovou kategorii velice kvalitní zdroje pro mnoho různých aplikací. 12V systémy mají největší výhodu v~tom, že je kompatibilní s~celou řadou komponent, které jsou ve své 12~V variantě levnější a~dostupnější (toto platí zejména pro ventilátory). Nevýhodou pak je potřeba větších průřezů kabelů, které tak kompenzují nižší napětí vyšším proudem. Poměrně velkou nevýhodou 12V systému je hlučnější provoz krokových motorů. Kromě zvýšené hlučnosti může docházet k~vyššímu zahřívání krokových motorů a~jejich nižší točivý moment. Na druhou stranu dochází k~menším ztrátám na MOSFETech. Primárním důvodem výběru tohoto zdroje bylo použití již dostupných 12~V krokových motorů z~jiné 3D tiskárny.

\subsubsection{Krokové motory}
% cSpell:ignore YUEQINGSHI DEXUAN
Jak již bylo zmíněno v~předchozí kapitole, tak byly využity krokové motory z~jiné 3D tiskárny. Jedná se o~krokové motory 42HB40-401A od výrobce YUEQINGSHI DEXUAN MOTOR.

\subsubsection{Řídící deska}

Řídící desku byla vybrána podle požadovaných parametrů a~ceny. Deska, která odpovídala všem požadavkům. Ačkoliv by pravděpodobně stačila řídící deska s~8-bitovým mikorokontrolérem (MCU) byl vybrán mikrokontrolér 32-bitový. 32-bitové MCU má několik nesporných výhod. Oproti 8-bitovým MCU mají řádově vyšší kmitočty a~pracují s~většími registry, které umožňují uložení čísla v~pohyblivé řádové řádce, ve formátu binary32. 8-bitové MCU tak musí s~desetinnými čísly a~registry pracovat výpočetně náročnějším způsobem. MCU s~vyššími kmitočty také umožňuje větší rozlišení tisku (za stejný čas dokáže zpracovat více menších pohybů). U~firmware Klipper to ovšem není zapotřebí, protože všechny výpočty se provádí v~klippy, který je spuštěn na mikropočítači a~mikrokontroléru data předává prostřednictvím RPC (Remote Procedure Call) mechanismu. Dalším požadavkem byla podpora "tichých"~driverů TMC2209 se StallGard. Vzhledem k~těmto požadavkům nejlépe vyhovovala poměrně rozšířená řídící deska BTT SKR 1.4 v~základní variantě.

\subsubsection{Mikropočítač}

S firmwarem klipper se nejčastěji používají mikropočítače Raspberry Pi nebo jeho klony. Některé desky dokonce umožňují přímé připojení Raspberry Pi Compute Module. Pro tuto tiskárnu byl použit již vlastněný mikropočítač Raspberry Pi 2b V1.1.

\subsubsection{Zapojení}

Důležitým poznatkem při připojování jednotlivých elektronických komponent 3D tiskárny k~řídící desce je to, že není nutné využívat konektory dle označení konektoru. Na druhou stranu je třeba si dávat pozor, zda je daný pin například analogový nebo řízený MOSFETEm. Právě počet výstupů řízených MOSFETem bývá často omezený a~proto lze připojit pouze omezený počet komponentů. MOSFETy se používají například pro řízení otáček ventilátoru pulzně kódovou modulací. Některé PINy na desce BTT SKR 1.4 neumožňují ani vypnutí výstupu, protože je napájecí konektor desky přímo propojen s~daným pinem. Některé komponenty je tedy proto nutné zapojit do konektorů určené pro jiné použití a~nebo připojit komponenty se stejnou funkcí na jeden výstup. Dobrým příkladem řešení tohoto problému, je připojení ventilátorů pro chlazení vytlačovaného filament a~ventilátory pro chlazení skříně s~elektronikou po dvojicích na stejný výstup řídící desky. Schéma zapojení je na obrázku \ref{fig:schema-zapojeni}.

\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{images/2_prakticka_cast/schema/schema_zapojeni.png}
\caption[Schéma zapojení]{Schéma zapojení (komponenty v~rámečku se nachází mimo skříň s~elektronikou nebo jsou z~vnější strany přístupné -- bez použití nástroje)}
\label{fig:schema-zapojeni}
\end{figure}

\subsection{Rameno}

Nejzajímavější částí celé tiskárny je právě rameno (viz obrázek \ref{fig:arm}), které se právě v~oblasti 3D tisku příliš neobjevuje. Tuto kinematiku používají spíše manipulátory nebo multifunkční stroje. Rameno se skládá ze tří hlavních částí -- základny ramene a~dvou propojených segmentů.

\begin{figure}[H]
\centering
\includegraphics[width=0.75\textwidth]{images/2_prakticka_cast/Arm_Assembly_Isometric_Front.png}
\caption[Izometrický pohled na rameno]{Izometrický pohled na rameno \cite{freecad}}
\label{fig:arm}
\end{figure}

\subsubsection{Základna ramene}

Základna ramene (na obrázku \ref{fig:arm-base}) se skládá ze dvou téměř shodných dílů, které slouží k~upevnění samotného ramene, upevnění k~vodícím tyčím a~trapézovému šroubu. K~upevnění těchto dvou dílů je použito 8 šroubů M3x16. K~pohybu po postranních vodících tyčích slouží lineárně valivá ložiska LM8UU s~nepohyblivým uložením s~přesahem (platí i~pro další ložiska, řemenice i~další díly). K~pohybu po středové tyči slouží ložisko LM8LUU. Na obou stranách tohoto ložiska jsou upevněna k~dílu spojující rameno a~základnu ramena. Tyto ložiska mají shodné uložení jako ložiska předchozí. Rozdílem je, že jsou ještě zajištěna dvěmi šrouby ke spojovacímu dílu. Tento díl je spojen s~základnou ramene dílem Arm\_Base\_Hub\_Top/Bottom. Základna ramene slouží i~k~upevnění dvou krokových motorů NEMA17 (motory A~a~B), které pohybují ramenem v~rovině XY. K~hřídeli těchto motorů jsou upevněny dvě ozubené řemenice s~20 zuby.

\begin{figure}[H]
\centering
\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Arm_Base_Assembly_Isometric_Front.png}
\caption[Izometrický pohled na základnu ramene]{Izometrický pohled na základnu ramene\cite{freecad}}
\label{fig:arm-base}
\end{figure}

\subsubsection{Segment L1}

K výše popisované základně je připojen první segment ramene (shoulder/\(L_1\)). Segment ramene se skládá ze dvou protilehlých dílů, jak je vidět na obrázku \ref{fig:segment-l1} spojenými čtyřmi šrouby M3x20 SHCS. K~pohybu tohoto ramene slouží dvě hřídele o~průměru 8mm a~délkách 60~mm (v horní části) a~40~mm (ve spodní části). Ve třech otvorech v~těchto dílech jsou upevněna ložiska Do otvoru ve spodním dílu je upevněna řemenice se 60 zuby, které je také upevněna k~spodní hřídeli a~slouží tak k~pohybu prvního segmentu. Na hřídele je nasazen řemen GT2 6~mm o~délce 280 mm. Převodový poměr těchto hřídelí je tedy 3:1. K~horní hřídeli jsou upevněny dvě ozubené řemenice. Ty slouží k~pohybu druhého segmentu (elbow/\(L_2\)). Řemenice v~horní části má 60 zubů a~tvoří tak společně s~řemenicí na motoru převodový poměr 3:1. Druhá řemenice s~20 zuby upevněna ke spodní části hřídele (mezi díly prvního segmentu) a~spolu s~první řemenicí tvoří převodový poměr 3:1. Celkový převodový poměr druhého segmentu ramene tak je 9:1.

\begin{figure}[H]
\centering
\includegraphics[width=0.6\textwidth]{images/2_prakticka_cast/Arm_Shoulder_Assembly_Isometric_Front.png}
\caption[Izometrický Pohled na segment L1]{Izometrický pohled na segment L1\cite{freecad}}
\label{fig:segment-l1}
\end{figure}

\subsubsection{Segment L2}

K hřídeli na opačné straně je ze spodní strany upevněný druhý segment ramene (elbow/\(L_2\)). Tento segment je také tvořen dvěmi protilehlými díly (viz obrázek \ref{fig:segment-l2}), které jsou spojeny čtyřmi šrouby M3x20 SHCS. Mezi těmito díly je i~jeden další, který slouží k~upnutí hřídele. Na konec tohoto segmentu je upevněna tisková hlava (toolhead), která je připevněna k~segmentu ramene pomocí čtyř šroubů M3x10 SHCS. Oba konce tohoto segmentu mají otvor na odvádění teplého vzduchu od heatbreaku.

\begin{figure}[H]
\centering
\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Arm_Elbow_Assembly_Isometric_Front.png}
\caption[Izometrický Pohled na segment L2]{Izometrický pohled na segment L1\cite{freecad}}
\label{fig:segment-l2}
\end{figure}

\subsection{Tisková hlava}

% cSpell:ignore morencyam, Printables
Toolhead se skládá z~5 tisknutých dílů. Prvním je díl sloužící k~upevnění hotendu k~rameni a~tvarem tak odpovídá použitému hotendu -- E3D V6. Ze zadní strany má otvor pro odvádění teplého vzduchu od chladiče hotendu. Tento díl slouží i~k~upevnění diferenciální infračervené sondy. Druhým dílem -- protikusem -- je díl, který upíná společně s~první dílem upíná hotend. Po jeho stranách má prostor pro ventilátory a~vedení kabeláže. Dalším dílem je kryt tiskové hlavy, ke kterému jsou  pomocí čtyřech šroubů M2x10 SHCS upevněny dva radiální ventilátory 4010, jejichž účelem je chlazení vytlačovaného materiálu (důležité zejména pro převislé části výrobků). K~ventilátorům jsou upevněny vzduchové kanály, které jsou navrženy tak, aby v~nich nedocházelo k~turbulencím a~byly tak co nejvíce účinné. Tyto dva díly jsou převzaté z~modelu od uživatele \verb|@morencyam_223889| na serveru Printables \cite{morencyam_rook}. Třetí ventilátor (axiální) je upevněn mezi krytem a~retainerem. Dva z~těchto šroubů procházejí celou tiskovou hlavou a~upínají tak samotný hotend. Sestava tiskové hlavy je na obrázku \ref{fig:toolhead}.

\begin{figure}[H]
\centering
\subfigure[Z přední strany]{\label{fig:toolhead-isometric}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Toolhead_Assembly_Isometric_Front.png}}
\subfigure[Ze zadní strany]{\label{fig:toolheat-isometric-back}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Toolhead_Assembly_Isometric_Rear.png}}
\caption[Izometrický pohled na tiskovou hlavu]{Izometrický pohled na tiskovou hlavu~\cite{freecad}}
\label{fig:toolhead}
\end{figure}

\subsubsection{Sonda}

% cSpell:ignore OrmerodSensor
Ze zadní strany tiskové hlavy je upevněna sonda sloužící k~nastavení referenční polohy v~ose Z a~kalibraci v~ose Z. Sondou použitou na této tiskárně je diferenciální infračervená sonda OrmerodSensor V1.2 IR od společnosti Mellow. Tato sonda byla vybrána z~několika podstatných důvodů. Jedním z~nich je hmotnost, kterou je potřeba, zejména u~SCARA kinematiky, co nejvíce redukovat. Tato sonda váží okolo 3g (výrobce neuvádí přesnou hmotnost). Dalším důvodem byla velikost (23,8~mm x 17,6~mm). Sondu lze upevnit ze zadní strany držáku pod 2. segment ramene a~nedochází tak k~překročení pracovní teploty a~neomezuje výrobní prostor. Dalším kritériem byla kompatibilita s~různými povrchy. Například oproti indukční sondě nevyžaduje kovovou tiskovou podložku nebo bed. Oproti mechanickým sondám není kompatibilní se zrcadly, lesklými hliníkovými a~PEI podložkami (není reflektivní pro IR záření). Ovšem ani to není limitující, protože zrcadlo lze nahradit sklem, hliníkové podložky často bývají eloxované. Při použití PEI podložky pomůže hrubší povrch nebo obarvení spodní strany matnou černou barvou. Další výhodou je absence mechanických částí, to zvyšuje přesnost a~opakovatelnost měření. Pro svoji funkci vyžaduje připojení napájecího napětí VCC 3,3~V nebo 5~V, GND a~jeden kabel pro signál. Výrobcem udávaná přesnost senzoru je 0.001~mm. Při detekování podložky ve vzdálenosti 2.5~mm je výstupní pin OUT nastaven na vysokou úroveň, tudíž je jeho rozhraní podobné mechanickým spínačům.

\subsubsection{Termistor}

Jako termistor byl zvolen NTC 100K B3950 v~pouzdře 3x15~mm. Tento termistor je vhodný po měření teplot od -50~$^{\circ}$C až 280~$^{\circ}$C, tudíž je vhodný pro tuto aplikaci. Zároveň je tento termistor velice levný (například oproti termočlánku PT100 nebo PT1000).

\subsubsection{Hotend}

Hotend byl zvolen V6 od společnosti E3D. Jeho předností je nejspíše jeho cena a~dostupnost trysek, protože V6 hotend je dnes jedním z~nejrozšířenějších hotendů na trhu. V~základní konfiguraci se řadí mezi tzv. all-metal hotendy. Jejich výhodou je vyšší teplota tisku než hotendy bez heatbreaku nebo heatbreakem s~PTFE vložkou, které umožňují tisk materiálů s~teplotou tání do 230$^{\circ}$C. Nevýhodou zase může být častější ucpávání trysky vlivem jevu zvaným "heat creep", kdy dochází k~ohřívání částí hotendu výše nad topným blokem. To způsobuje  Dnes se vyrábí bi-metalové a~keramické heatbreaky, které do jisté míry redukují oba z~těchto nedostatků. Dalším jistým nedostatkem je oproti jiným hotendům náchylnost poškození například nárazem do tiskové podložky. Některé hotendy mají upevněný topný blok k~chladiči, které mimo vyšší mechanické odolnosti umožňují i~jednodušší výměnu trysky a~pevné upevnění k~tiskové hlavě.

\subsection{Extruder}

Jako extruder byl zvolen VORON M4, který je vidět na obrázku \ref{fig:extruder}. Tento extruder je kombinací několika různých projektů VORON komunity, ať už extruderů předchozích generací nebo direct-drive extruderů. Výraznou komponentou tohoto extruderu je řemenice s~80 zuby, která je tištěna na 3D tiskárně. Společně s~řemenicí na hřídeli motoru tvoří převodový poměr 4:1, který způsobuje větší točivý moment a~tedy dokáže lépe překonat tření filamentu v~PTFE trubičce a~vytlačovat filament z~trysky.

\begin{figure}[H]
\centering
\subfigure[Z přední strany]{\label{fig:extruder-isometric-front}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Extruder_Assembly_Isometric_Front.png}}
\subfigure[Ze zadní strany]{\label{fig:extruder-isometric-rear}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Extruder_Assembly_Isometric_Rear.png}}
\caption[Izometrický pohled na Extruder]{Izometrický pohled na extruder~\cite{freecad}}
\label{fig:extruder}
\end{figure}

\subsection{Display}

% cSpell:ignore fluidd
Kromě webového rozhraní fluidd lze 3D tiskárnu ovládat i~pomocí dotykového displeje (viz obrázek \ref{fig:display}), kterým byla 3D tiskárna při návrhu vybavena. Displej je připojen k~Raspberry Pi pomocí rozhraní DSI.

\begin{figure}[H]
\centering
\subfigure[Z přední strany]{\label{fig:display-isometric-front}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Display_Assembly_Isometric_Front.png}}
\subfigure[Ze zadní strany]{\label{fig:display-isometric-rear}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Display_Assembly_Isometric_Rear.png}}
\caption[Izometrický pohled na dotykový displej]{Izometrický pohled na dotykový displej~\cite{freecad}}
\label{fig:display}
\end{figure}

\subsection{Držák cívky filamentu}

Protože je držák cívky filamentu (viz obrázek \ref{fig:spool-holder}) volitelnou částí tiskárny je uveden samostatně i~přesto, že jej tvoří pouze jeden díl. Držák je inspirovaný neoficiálním držákem pro tiskárny VORON. Držák umožňuje použití cívky o~šířce maximálně 80~mm. Před upevněním držáku k~základně tiskárny se do dílu vkládají PTFE trubičky o~vnějším průměru 4~mm, které napomáhají hladkému otáčení cívky. To platí zejména pro kartonové cívky, které velice rychle degradují.

\begin{figure}[H]
\centering
\includegraphics[width=0.6\textwidth]{images/2_prakticka_cast/Spool_Holder_Assembly_Front.png}
\caption[Izometrický pohled na držák cívky s~tiskovou strunou]{Izometrický pohled na držák cívky s~tiskovou strunou~\cite{freecad}}
\label{fig:spool-holder}
\end{figure}

\section{Konstrukce tiskárny}

\subsection{Tisk dílů}

Nastavení tisku ve sliceru vychází z~doporučení projektu Voron. Jedná se tedy následující nastavení:

\begin{itemize}
    \item Výška vrstvy: \textbf{0,2mm}
    \item Šířka extruze: \textbf{0,4mm}
    \item Výplň: \textbf{40\%}
    \item Typ výplně: mřížka, \textbf{gyroid}, plástev, trojúhelníky nebo kubická
    \item Počet stěn: \textbf{4}
    \item Plných vrstev: \textbf{5 vrchních}, \textbf{5 spodních}
\end{itemize}

Doporučenými materiály pro tisk jsou: \textbf{ASA}, ABS nebo PETG. Použité nastavení pro tisk je vyznačeno tučně.

\textit{Tučně vyznačené jsou nastavení použitá při tisku všech dílů této práce.}

Na tisk dílů byly použity 3 cívky filamentu. Dvě základní -- šedé -- barvy a~jedna doplňkové -- modré -- barvy. Materiál, ze kterého jsou díly zhotoveny, je  ASA (Akrylonitril Styren Akrylát). Tento materiál se svými vlastnostmi velice podobá materiálu ABS (Akrylonitril Butadien Styren). Oproti němu má však lepší chemickou odolnost vůči olejům, kyselinám a~dalším látkám. Mezi jeho největší přednost však patří odolnost vůči UV záření (oproti ABS).

\subsection{Sestavení tiskárny}

% cSpell:ignore Mobilux, NLGI
Prvním krokem ještě před zahájením stavby bylo odmaštění lineárně valivých ložisek od přepravního oleje v~lázni s~isopropyl alkoholem. Po odmaštění byla tato ložiska namazána mazivem. K~tomuto účelu bylo použito plastické mazivo Mobilux EP2 o~viskozitě třídy 2 dle NLGI.

Jako první je se začalo s~konstrukcí základny. V~této části bylo potřeba si dát pozor na včasnou montáž DIN lišt. Nejprve byl smontován rám a~poté díly, které kotví vodící tyče. V~dalším kroku byl sestaven první segment ramene a~na řemenice byl nasazen a~napnut řemen. Druhý segment je konstrukčně mnohem jednodušší a~nemá žádné pohyblivé části. Ten bylo potřeba nasadit na hřídel a~dotáhnout kotvící díl. Poté byla sestavena základna ramene a~k~ní byly upevněny krokové motory. Poté bylo možné rameno a~základnu ramene spojit. V~tuto chvíli bylo potřeba přimontovat dělící panel mezi prostorem tiskárny a~skříní s~elektronikou. V~dalším kroku již bylo možné rameno nasadit na vodící tyče základny a~zasunout vodící tyče do protilehlého dílu a~vodící tyče ukotvit. Následovala konstrukce a~montáž tiskové hlavy.

Následovala výroba kabelů k~propojení jednotlivých elektronických komponent. Na řídící desku byly připojeny drivery a~DCDC měnič. Po zapojení elektroniky byly přimontovány krycí panely a~celá skříň s~elektronikou zakrytována PMMA deskou. Sestavená tiskárna je na obrázku \ref{fig:physical}.

\begin{figure}[H]
\centering
\subfigure[Z přední strany]{\label{fig:physical-front}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Physical_Front.jpg}}
\subfigure[Ze zadní strany]{\label{fig:physical-rear}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/Physical_Rear.jpg}}
\caption[Fotografie sestavené 3D tiskárny]{Fotografie sestavené 3D tiskárny}
\label{fig:physical}
\end{figure}

\section{Kalibrace tiskárny}

První kalibraci, která byla po sestavení tiskárny provedena byla kalibrace extruderu. Tato kalibrace se provádí vytlačením určité délky filamentu extruderem a~následným porovnáním se skutečně vytlačenou délkou.

\begin{verbatim}
M83 ; Nastavení relativní vzdálenosti
G1 E100 F60 ; Vytlačení 100~mm při rychlosti 1~mm/s (60~mm/min)
\end{verbatim}

Poté se nová hodnota vypočítá následujícím způsobem:
\begin{equation}
    rotation\_distance = rotation\_distance * \frac{actual\_extruded_length}{target\_extruded\_length} \si{\mm}
\end{equation}

Další kalibrací bylo měření rezonančních kmitočtů akcelerometrem ADXL345 a~nastavení input shaperu. Využití input shaperu umožňuje redukovat intenzitu rezonancí tak, aby při tisku nedocházelo k~tzv. ghostingu. Ten se projevuje zvlněním v~blízkosti ostrých hran výtisku. Po upevnění akcelerometru na tiskovou hlavu a~nastavení v~printer.cfg stačilo spustit následující příkaz:

\begin{verbatim}
SHAPER_CALIBRATE ; Spustí kalibraci
\end{verbatim}

Výsledkem tohoto měření je pro každou z~os (X a~Y) rezonanční frekvence, doporučený filtr a~případně grafy, které lze vygenerovat následujícím způsobem \ref{fig:graph-generation}.

\begin{figure}[H]
\centering
\includegraphics[width=0.75\textwidth]{images/2_prakticka_cast/input-shaping-graph-generation.png}
\caption[Spuštění skriptu calibrate\_shaper.py a~výsledné doporučené hodnoty]{Spuštění skriptu calibrate\_shaper.py a~výsledné doporučené hodnoty~\cite{freecad}}
\label{fig:graph-generation}
\end{figure}

Výsledná hodnota rezonanční frekvence je relativně nízko a~nástroj pro kalibraci tak doporučuje nízké hodnoty zrychlení. Pravděpodobně je to zapříčiněno relativně velkou hmotností na konci ramena, ale nelze úplně vyloučit nesprávné upevnění akcelerometru nebo metodické chyby při této kalibraci. Na obrázku \ref{fig:input-shaping-graphs} jsou vyneseny frekvenční odezvy v~osách X a~Y a~dostupné filtry pro input shaping.

\begin{figure}[H]
\centering
\subfigure[V ose X akcelerometru]{\label{fig:input-shaping-graph-x}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/shaper_calibrate_x.png}}
\subfigure[V ose Y akcelerometru]{\label{fig:input-shaping-graph-y}\includegraphics[width=0.45\textwidth]{images/2_prakticka_cast/shaper_calibrate_y.png}}
\caption[Frekvenční odezva a~dostupné filtry]{Frekvenční odezva a~dostupné filtry}
\label{fig:input-shaping-graphs}
\end{figure}

\section{Implementace kinematiky SCARA do Klipperu}
% cSpell:disable-next-line
Klipper je část firmwaru Klipper, která běží na počítači uvnitř 3D tiskárny, ke kterému je připojena řídící deska. Kód je napsán převážně v~jazyce Python, přičemž některé funkce jsou implementovány v~jazyce C. Volání těchto funkcí je realizováno použitím rozhraní CFFI (C Foreign Function Interface). Klippy slouží k~interpreataci výrobních instrukcí -- GCode, které jsou přeloženy na volání iterních metod. Tyto volání jsou odesílány po sběrnici USB do řídící desky, která například generuje pulzy pro krokové motory nebo spíná topná tělesa.~\cite{klipper_code_overview}

Tento kód je k~nalezení v~elektronické příloze této práce a~jedná se konkrétně o~soubory:
\begin{itemize}
% cSpell:ignore chelper
  \item \verb|klipper/klippy/chelper/__init__.py|
    \begin{itemize}
      \item Slouží jako wrapper pro kód implementovaný v~jazyce C
      \item Obsahuje mj. hlavičky metod a~nastavení překladače
    \end{itemize}
  \item \verb|klipper/klippy/chelper/kin_scara.c|
    \begin{itemize}
      \item Implementace inverzní kinematiky
    \end{itemize}
  \item \verb|klipper/klippy/kinematics/scara.py|
    \begin{itemize}
      \item Implementace přímé kinematiky
    \end{itemize}
\end{itemize}

Následující kapitoly se věnují teorii potřebné k~implementaci.

\subsubsection{Přímá a~inverzní kinematika}
Kinematické transformace se používají k~převodu natočení kloubů na souřadnice koncového bodu (přímá transformace) a~naopak (inverzní transformace). Pro výpočet transformace je třeba znát délky ramen \(L_1\) a~\(L_2\), offsety ramen \(x_{offset}\) a~\(y_{offset}\) a~Elbow Crosstalk Ratio (ECR).

Elbow Crosstalk Ratio (převodový poměr řemenice v~ose ramene vůči řemenici v~ose kloubu) získáme dosazením počtu zubů řemenice ramene a~počtu zubů řemenice v~kloubu.

\begin{equation}
    ECR = \frac { n_S } { n_E }
\end{equation}

kde \(n_S\) je počet zubů řemenice ramene a~\(n_E\) je počet zubů řemenice v~kloubu.

\subsection{Přímá kinematika}

Protože rotace motoru v~ose ramene ovlivňuje rotaci motoru v~ose kloubu, je třeba tento vliv kompenzovat. Tím dostaneme úhel \(\phi_E\), který je potřeba pro výpočet skutečné polohy nástroje.

\begin{equation}
    \phi_S = \phi_{S_M}
\end{equation}

\begin{equation}
    \phi_E = \phi_{E_M}  - \frac{ \phi_{S_M} } { ECR }
\end{equation}

kde \(ECR\) je Elbow Crosstalk Ratio, \(\phi_{S_M}\) je úhel motoru ramene a~\(\phi_{S_E}\) je úhel motoru kloubu.

Poté je potřeba vypočítat polohu v~kartézském souřadnicovém systému.

\begin{equation}
    x = L_1 \cdot \sin(\phi_S) + L_2 \cdot \sin(\phi_S + \phi_E)
\end{equation}

\begin{equation}
    y = L_1 \cdot \cos(\phi_S) + L_2 \cdot \cos(\phi_S + \phi_E)
\end{equation}

Nakonec je potřeba přepočítat souřadnice nástroje vůči počátku tiskové podložky na souřadnice vůči počátku tiskárny.

\begin{equation}
    x_{raw} = x + x_{offset}
\end{equation}

\begin{equation}
    y_{raw} = y + y_{offset}
\end{equation}

\subsection{Inverzní kinematika}
Nejprve je potřeba převést absolutní souřadnice nástroje vůči počátku tiskárny na souřadnice vztažené k~počátku tiskové podložky.

\begin{equation}
    x = x_{raw} - x_{offset}
\end{equation}

\begin{equation}
    y = y_{raw} - y_{offset}
\end{equation}

Dále se vypočítají úhly ramen \(\phi_E\) (elbow) a~\(\phi_S\) (shoulder).

\begin{equation}
    \phi_E = arccos \left( \frac { x^2 + y^2 + L_1^2 + L_2^2 } { 2 \cdot L_1 \cdot L_2 } \right) [\si{\radian}]
\end{equation}

kde \(x\) a~\(y\) jsou souřadnice v~kartézském systému a~\(L_1\) a~\(L_2\) jsou délky ramen.

\begin{equation}
    % cSpell:disable-next-line
    \phi_S = arctan2 \left( x, y \right) - arccos \left( L_2 \cdot sin(\phi_E), L_1 + L_2 \cdot cos(\phi_E) \right) [\si{\radian}]
\end{equation}

kde \(x\) a~\(y\) jsou souřadnice v~kartézském systému a~\(L_1\) a~\(L_2\) jsou délky ramen.

V poslední řadě je potřeba vykompenzovat ECR (Elbow Crosstalk Ratio). Tím získáme úhel krokových motorů \(\phi_{S_M}\) a~\(\phi_{E_M}\).

\begin{equation}
    \phi_{S_M} = \phi_S
\end{equation}

\begin{equation}
    \phi_{E_M} = \phi_E + \frac{\phi_S}{ECR} [\si{\radian}]
\end{equation}