mirror of
https://github.com/vofy/fekt-scara.git
synced 2025-04-27 10:51:01 +02:00
132 lines
No EOL
7.5 KiB
TeX
132 lines
No EOL
7.5 KiB
TeX
\chapter{Praktická část}
|
|
|
|
\section{3D model}
|
|
Pro modelování dílů jsem se rozhodl použít CAD software FreeCAD. Pro tento CAD jsem se rozhodl 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 jej 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 jsem použil 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 tří dílčích částí. První je základna, druhou skříň s elektronikou, třetí je rameno a čtvrtou je nástroj -- tisková hlava.
|
|
|
|
Soubory ve formátu FCStd (zdrojové soubory modelů) jsou organizovány podle části, do které spadají. Pro generování tiskových souborů ve formátu 3MF (3D Manufacturing Format) vhodného pro slicery slouží python skript. 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ář 3mf a soubory, které obsahuje.
|
|
|
|
\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.
|
|
|
|
Pro spojení hliníkových profilů jsem zvolil metodu "Blind Joint", která umožňuje pevné a levné spojení dvou hliníkových profilů. Tuto techniku jsem zvolil i z důvodů snadnější montáže akrylové desky a možnosti zapuštění elektroniky do rámu tiskárny.
|
|
|
|
\subsection{Skříň s elektronikou}
|
|
|
|
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 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.
|
|
|
|
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 M3x60. V přední části se také nachází kolébkový spínač pro spínání napájení celé tiskárny. Pod spínačem 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ě. Pod ním se ještě nachází napájecí konektor IEC 60320 C14 s tavnou pojistkou.
|
|
|
|
\section{Tisk}
|
|
|
|
Nastavení sliceru vychází z nastavení 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}
|
|
\section{Implementace kinematiky SCARA do Klippy}
|
|
% cSpell:disable-next-line
|
|
Klippy 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). \cite{klipper_code_overview}
|
|
|
|
\subsection{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).
|
|
|
|
Pro další výpočty je potřebné znát Elbow Crosstalk Ratio (převodový poměr řemenice v ose ramene vůči řemenici v ose kloubu).
|
|
|
|
\begin{equation}
|
|
ECR = \frac { n_S } { n_E }
|
|
\end{equation}
|
|
|
|
\subsubsection{Přímá kinematika}
|
|
|
|
\begin{equation}
|
|
\phi_S = a
|
|
\end{equation}
|
|
|
|
\begin{equation}
|
|
\phi_E = b - \frac{a}{ECR}
|
|
\end{equation}
|
|
|
|
\begin{equation}
|
|
a\_sin = - \sin(\phi_S) \cdot L_1
|
|
\end{equation}
|
|
|
|
\begin{equation}
|
|
a\_cos = \cos(\phi_S) \cdot L_1
|
|
\end{equation}
|
|
|
|
\begin{equation}
|
|
b\_sin = - \sin(\phi_S + \phi_E) \cdot L_2
|
|
\end{equation}
|
|
|
|
\begin{equation}
|
|
b\_cos = \cos(\phi_S + \phi_E) \cdot L_2
|
|
\end{equation}
|
|
|
|
Nakonec je potřeba přičíst odsazení souřadného systému nástroje vůči souřadnému systému báze (konkrétně odsazení kloubu ramene vůči počátku tiskové podložky).
|
|
|
|
\begin{equation}
|
|
x = a\_sin + b\_sin + x_{offset}
|
|
\end{equation}
|
|
|
|
\begin{equation}
|
|
y = a\_cos + b\_cos + y_{offset}
|
|
\end{equation}
|
|
|
|
|
|
\subsubsection{Inverzní kinematika}
|
|
Nejprve je třeba kompenzovat offset polohy TCP v osách x a y.
|
|
|
|
\begin{equation}
|
|
x = - (raw_x - x_{offset})
|
|
\end{equation}
|
|
|
|
\begin{equation}
|
|
y = (raw_y - y_{offset})
|
|
\end{equation}
|
|
|
|
Dalším krokem je výpočet vzdálenosti od počátku.
|
|
|
|
\begin{equation}
|
|
% cSpell:disable-next-line
|
|
hypot = \sqrt{x^2 + y^2}
|
|
\end{equation}
|
|
|
|
Dále se vypočítají úhly ramen \(\phi_S\) (shoulder) a \(\phi_E\) (elbow).
|
|
|
|
\begin{equation}
|
|
% cSpell:disable-next-line
|
|
\phi_S = arctan2 \left( x, y \right) - arccos \left( \frac { x^2 + y^2 + L_1^2 - L_2^2 } { 2 \cdot L_1 \cdot hypot } \right) [\si{\radian}]
|
|
\end{equation}
|
|
|
|
kde \(L_1\) a \(L_2\) jsou délky ramen.
|
|
|
|
\begin{equation}
|
|
\phi_E = \frac { \phi_S } { ECR } + 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 \(ECR\) je Elbow Crosstalk Ratio, \(L_1\) a \(L_2\) jsou délky ramen.
|
|
|
|
Následně stačí převést úhel v radiánech na stupně.
|
|
|
|
\begin{equation}
|
|
\Phi_S = \phi_S \cdot \frac { 180 } { \pi } [\si{\degree}]
|
|
\end{equation}
|
|
|
|
\begin{equation}
|
|
\Phi_E = \phi_E \cdot \frac { 180 } { \pi } [\si{\degree}]
|
|
\end{equation}
|
|
|
|
\section{Konfigurace tiskárny}
|
|
|
|
\section{Kalibrace tiskárny} |