diff --git a/tex/images/2_prakticka_cast/schema/.$schema_zapojeni.png.bkp b/tex/images/2_prakticka_cast/schema/.$schema_zapojeni.png.bkp new file mode 100644 index 0000000..9e59f29 Binary files /dev/null and b/tex/images/2_prakticka_cast/schema/.$schema_zapojeni.png.bkp differ diff --git a/tex/images/2_prakticka_cast/schema/schema_zapojeni.png b/tex/images/2_prakticka_cast/schema/schema_zapojeni.png index 9e59f29..f5ada9a 100644 Binary files a/tex/images/2_prakticka_cast/schema/schema_zapojeni.png and b/tex/images/2_prakticka_cast/schema/schema_zapojeni.png differ diff --git a/tex/images/obhajoba/.$architecture-klipper.png.bkp b/tex/images/obhajoba/.$architecture-klipper.png.bkp new file mode 100644 index 0000000..93ba8bd Binary files /dev/null and b/tex/images/obhajoba/.$architecture-klipper.png.bkp differ diff --git a/tex/images/obhajoba/.$architecture-marlin.png.bkp b/tex/images/obhajoba/.$architecture-marlin.png.bkp new file mode 100644 index 0000000..db0b84c Binary files /dev/null and b/tex/images/obhajoba/.$architecture-marlin.png.bkp differ diff --git a/tex/images/obhajoba/architecture-klipper.png b/tex/images/obhajoba/architecture-klipper.png new file mode 100644 index 0000000..040d824 Binary files /dev/null and b/tex/images/obhajoba/architecture-klipper.png differ diff --git a/tex/images/obhajoba/architecture-marlin.png b/tex/images/obhajoba/architecture-marlin.png new file mode 100644 index 0000000..e7dcc5c Binary files /dev/null and b/tex/images/obhajoba/architecture-marlin.png differ diff --git a/tex/images/obhajoba/pid-calibration.png b/tex/images/obhajoba/pid-calibration.png new file mode 100644 index 0000000..3560b58 Binary files /dev/null and b/tex/images/obhajoba/pid-calibration.png differ diff --git a/tex/images/obhajoba/ringing.png b/tex/images/obhajoba/ringing.png new file mode 100644 index 0000000..0aa6123 Binary files /dev/null and b/tex/images/obhajoba/ringing.png differ diff --git a/tex/images/obhajoba/scara/scara.png b/tex/images/obhajoba/scara/scara.png new file mode 100644 index 0000000..f92d9f3 Binary files /dev/null and b/tex/images/obhajoba/scara/scara.png differ diff --git a/tex/images/obhajoba/scara/scara.svg b/tex/images/obhajoba/scara/scara.svg new file mode 100644 index 0000000..58f62c0 --- /dev/null +++ b/tex/images/obhajoba/scara/scara.svg @@ -0,0 +1,471 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + L1 + + + + + + L2 + + + + Φ + Θ + + + T [x,y] + + + + T [z] + + + + [0,0] + + + + + + + + + + L1 + L2 + + A + A + B + B + (a) + (b) + + diff --git a/tex/nastaveni.tex b/tex/nastaveni.tex index 7f16ad3..13d0dcf 100644 --- a/tex/nastaveni.tex +++ b/tex/nastaveni.tex @@ -51,7 +51,7 @@ % u obhajoby semestrální práce se oponent nezobrazuje (jelikož neexistuje) % cSpell:disable-next-line % U dizertační práce jsou typicky dva až tři oponenti. Pokud je chcete mít na titulním slajdu, prosím ručně odkomentujte a upravte jejich jména v definici "VUT title page" v souboru thesis.sty. -\opponent[doc.\ Mgr.]{Křestní}{Příjmení}[Ph.D.] +\opponent[Ing.]{Marek}{Sedlařík} %%% Název práce % Parametr ve složených závorkách {} je název v originálním jazyce, diff --git a/tex/obhajoba.tex b/tex/obhajoba.tex index f7f49b4..f494472 100644 --- a/tex/obhajoba.tex +++ b/tex/obhajoba.tex @@ -43,7 +43,6 @@ \usepackage{booktabs} % Balíček, který umožňuje v tabulce používat % příkazy \toprule, \midrule, \bottomrule - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%% Definice informací o dokumentu %%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -88,6 +87,26 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%% +\begin{frame} + % nadpis snímku + \frametitle{Cíle práce} + \begin{itemize} + \item Teoretická část + \begin{itemize} + \item Seznámit se s kinematikou SCARA {\color{green}\faIcon{check}} + \item Provést srovnání kinematik FFF 3D tiskáren {\color{green}\faIcon{check}} + \end{itemize} + \item Praktická část + \begin{itemize} + \item Navrhnout konstrukční řešení SCARA 3D tiskárny {\color{green}\faIcon{check}} + \item Vybrat komponenty pro stavbu 3D tiskárny {\color{green}\faIcon{check}} + \item Implementovat kinematiku do firmwaru Klipper {\color{green}\faIcon{check}} + \item Sestavit 3D tiskárnu, zkalibrovat a otestovat ji {\color{green}\faIcon{check}} + \end{itemize} + \end{itemize} +\end{frame} + %%%%%%%%%%%%% \begin{frame} @@ -114,28 +133,18 @@ %%%%%%%%%%%%% \begin{frame} % nadpis snímku - \frametitle{Cíle práce} - \begin{itemize} - \item Teoretická část - \begin{itemize} - \item Seznámit se s kinematikou SCARA {\color{green}\faIcon{check}} - \item Provést srovnání kinematik FFF 3D tiskáren {\color{green}\faIcon{check}} - \end{itemize} - \item Praktická část - \begin{itemize} - \item Navrhnout konstrukční řešení SCARA 3D tiskárny {\color{green}\faIcon{check}} - \item Vybrat komponenty pro stavbu 3D tiskárny {\color{green}\faIcon{check}} - \item Implementovat kinematiku do firmwaru Klipper {\color{green}\faIcon{check}} - \item Sestavit 3D tiskárnu, zkalibrovat a otestovat ji {\color{green}\faIcon{check}} - \end{itemize} - \end{itemize} + \frametitle{SCARA kinematika} + \begin{figure} + \includegraphics[height=0.5\textheight]{images/obhajoba/scara/scara.png} + \caption{Pracovní prostor SCARA robotu} + \label{fig:scara-kinematics} + \end{figure} \end{frame} - %%%%%%%%%%%%% \begin{frame} - \frametitle{Konstrukce} + \frametitle{Konstrukce -- Přehled} \begin{minipage}[t]{0.7\textwidth} \begin{figure} @@ -171,29 +180,7 @@ %%%%%%%%%%%%% \begin{frame} - \frametitle{Modely dílů} - - \begin{minipage}[t]{0.49\textwidth} - \begin{figure} - \includegraphics[height=0.6\textheight]{images/obhajoba/floating-hole-cad.png} - \caption{Plovoucí otvor} - \label{fig:floating-hole-cad} - \end{figure} - \end{minipage} - \begin{minipage}[t]{0.49\textwidth} - \begin{figure} - \includegraphics[height=0.6\textheight]{images/obhajoba/floating-hole-slicer.png} - \caption{Plovoucí otvor ve sliceru} - \label{fig:floating-hole-slicer} - \end{figure} - \end{minipage} - -\end{frame} - -%%%%%%%%%%%%% -\begin{frame} - - \frametitle{Tiskárna} + \frametitle{Konstrukce -- Celá sestava} \begin{columns}[onlytextwidth,b] \begin{column}{0.4\textwidth} @@ -219,11 +206,11 @@ %%%%%%%%%%%%% \begin{frame} - \frametitle{Rameno} + \frametitle{Konstrukce -- Sestava ramene} \begin{figure} \centering \includegraphics[height=0.6\textheight]{images/obhajoba/Arm_Assembly_Isometric_Front.png} - \caption{Izometrické zobrazení ramene} + \caption{Izometrické zobrazení sestavy ramene} \label{fig:arm} \end{figure} @@ -232,20 +219,34 @@ %%%%%%%%%%%%% \begin{frame} - \frametitle{Elektronika} + \frametitle{Elektronika -- Schéma zapojení} + \begin{figure} + \centering + \includegraphics[height=0.6\textheight]{images/2_prakticka_cast/schema/schema_zapojeni.png} + \caption{Schéma zapojení} + \label{fig:schema} + \end{figure} + +\end{frame} + + +%%%%%%%%%%%%% +\begin{frame} + + \frametitle{Elektronika -- Napájení a řízení} \centering \begin{minipage}[t]{0.74\textwidth} \begin{itemize} \item Řídící deska: \textbf{BTT SKR 1.4} + \textbf{BTT DCDC MODE} - \item Driver: 4\(\times\)\textbf{BTT TMC2209} + \item Řadiče: 4\(\times\)\textbf{BTT TMC2209} \item Mikropočítač: \textbf{Raspberry Pi 2b} + \item Displej: \textbf{BTT PiTFT43} \item Zdroj: \textbf{MeanWell SP-320-12} \item Ventilátory: 2\(\times\)\textbf{SUNON MF60151V1-1000U-A99} \item Napájecí konektor: \textbf{JR-101-1F} \item Kolébkový spínač: \textbf{RS2013C3BK} \item RJ45 keystone: \textbf{Datacom 4003} - \item Prodlužovací kabel USB \item Kabeláž: \begin{itemize} \item \textbf{UL1332 0,34~\(\text{mm}^2\)} a \textbf{0,75~\(\text{mm}^2\)} (FEP) @@ -267,7 +268,7 @@ %%%%%%%%%%%%% \begin{frame} - \frametitle{Tisková hlava} + \frametitle{Elektronika -- Tisková hlava} \centering \begin{minipage}[t]{0.7\textwidth} @@ -281,14 +282,14 @@ \item Radiální: \textbf{2~\(\times\)~12V 4010} \item Axiální: \textbf{1~\(\times\)~12V 3010} \end{itemize} - \item Bowden trubička: \textbf{PTFE, ID~2 mm, OD 4~mm} + \item Bowden trubička: \textbf{PTFE} (ID~2 mm, OD 4~mm) \item Teplovodivá pasta: \textbf{Nitrid Boritý} \end{itemize} \end{minipage} \begin{minipage}[t]{0.29\textwidth} \begin{figure} \includegraphics[width=\textwidth]{images/2_prakticka_cast/Toolhead_Assembly_Isometric_Rear.png} - \caption{Izometrický pohled ze zadní strany} + \caption{\centering{Izometrický pohled ze zadní strany}} \label{fig:toolhead-rear} \end{figure} \end{minipage} @@ -296,15 +297,59 @@ \end{frame} %%%%%%%%%%%%% -\begin{frame} +\begin{frame}[fragile] - \frametitle{Schéma zapojení} - \begin{figure} - \centering - \includegraphics[height=0.6\textheight]{images/2_prakticka_cast/schema/schema_zapojeni.png} - \caption{Schéma zapojení} - \label{fig:schema} - \end{figure} + \frametitle{Firmware} + \centering + + \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 + \item Inicializace kinematiky + \item Validace pohybu + \item Homing procedura + \item \dots + \end{itemize} + \end{itemize} +\end{frame} + +%%%%%%%%%%%%% +\begin{frame}[fragile] + + \frametitle{Kalibrace} + + \begin{minipage}[t]{0.49\textwidth} + Jednorázové kalibrace: + \begin{itemize} + \item PID kalibrace topného tělesa extruderu + \item Kalibrace kroku extruderu + \item Kalibrace první vrstvy (Z Offset Calibration) + \item Měření rezonančních frekvencí (Shaper Calibration) + \end{itemize} + \end{minipage} + \begin{minipage}[t]{0.49\textwidth} + \begin{figure} + \includegraphics[width=\textwidth]{images/obhajoba/pid-calibration.png} + \caption{\centering{Průběh PID kalibrace topného tělesa}} + \label{fig:pid-calibration} + \end{figure} + \end{minipage} + + Při každém tisku je součástí \verb|PRINT_START| makra: + \begin{itemize} + \item Automatická kalibrace podložky (Bed Mesh Leveling) + \end{itemize} \end{frame} @@ -338,20 +383,18 @@ %%%%%%%%%%%%% \begin{frame} \frametitle{Závěr} - V rámci semestrální práce jsem: + V rámci zpracovávání bakalářské práce jsem: \begin{itemize} \item zpracoval teorii, \item navrhl některé díly 3D tiskárny, - \item a vybral vhodné elektronické komponenty. - \end{itemize} - V rámci zpracovávání bakalářské práce jsem: - \begin{itemize} - \item dokončil návrh všech dílů + \item vybral vhodné elektronické komponenty, + \item dokončil návrh všech dílů, \item sestavil finální seznam materiálu a nakoupil jej, \item implementoval kinematiku SCARA do firmwaru Klipper, - \item sestavil tiskárnu, nakonfiguroval tiskárnu a otestoval ji + \item sestavil tiskárnu, nakonfiguroval tiskárnu a otestoval ji, \item připravil profil pro PrusaSlicer. \end{itemize} + Vše dostupné na \href{https://github.com/fekt-scara}{github.com/fekt-scara} \end{frame} %%%%%%%%%%%%% @@ -379,11 +422,68 @@ \end{frame} % otázky oponenta -% \frame{ -% \frametitle{Otázky oponenta} -% \emph{Jaká je souvislost Vašeho vzorce (1.2) s~ rovnicemi v~integrálním tvaru?}\\[2ex] -% % -% Již staří Římané\,\dots -% } +\begin{frame}[fragile] + \frametitle{Otázky oponenta (1/3)} + + \emph{Jaký vliv má délka ramen SCARA mechanismu na přesnost a stabilitu pohybu?}\\[2ex] + + \begin{columns}[onlytextwidth,t] + \begin{column}{0.49\textwidth} + \begin{itemize} + \item Čím je délka ramen (segmentů) větší, tím větší může být moment setrvačnosti celého ramene. Důsledkem toho může při vyšších hodnotách zrychlení docházet k zákmitům ramene, který způsobuje jev zvaný Ringing nebo Ghosting. + \end{itemize} + \end{column} + \begin{column}{0.49\textwidth} + \begin{figure} + \includegraphics[width=\textwidth]{images/obhajoba/ringing.png} + \caption{\centering{Ringing/Ghosting}} + \label{fig:ringing} + \end{figure} + \end{column} + \end{columns} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Otázky oponenta (2/3)} + + \emph{Jaké další alternativy je možné pro řízení SCARA tiskárny použít jiný firmware než Klipper a v čem se liší?}\\[2ex] + \begin{itemize} + \item Lze použít firmware \verb|Marlin|. Firmwary se liší zejména v jazycích implementace a architektuře firmwaru. + \end{itemize} + + \begin{columns}[onlytextwidth,t] + \begin{column}{0.49\textwidth} + + \begin{figure} + \includegraphics[height=0.16\textheight]{images/obhajoba/architecture-klipper.png} + \caption{\centering{Architektura firmwaru Klipper}} + \label{fig:architecture-klipper} + \end{figure} + \end{column} + \begin{column}{0.49\textwidth} + \begin{figure} + \includegraphics[height=0.16\textheight]{images/obhajoba/architecture-marlin.png} + \caption{\centering{Architektura firmwaru Marlin}} + \label{fig:architecture-marlin} + \end{figure} + \end{column} + \end{columns} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Otázky oponenta (3/3)} + + \emph{Jaký parametr má největší vliv na přesnost inverzní kinematiky?}\\[2ex] + \begin{itemize} + \item Největší vliv mají délky segmentů ramene -- zejména délka segmentu \verb|L1|. Délka segmentu \verb|L1| proto, že přesnost délky prvního segmentu ovlivní přesnost druhého segmentu. + \end{itemize} + + + \begin{figure} + \includegraphics[height=0.4\textheight]{images/obhajoba/scara/scara.png} + \caption{Pracovní prostor SCARA robotu} + \label{fig:scara-kinematics} + \end{figure} +\end{frame} \end{document} diff --git a/tex/out/obhajoba.pdf b/tex/out/obhajoba.pdf index f58fb99..96f6996 100644 Binary files a/tex/out/obhajoba.pdf and b/tex/out/obhajoba.pdf differ