pyafm/stack.tex: Add AFM schematic to stack dependency tree
authorW. Trevor King <wking@tremily.us>
Mon, 13 May 2013 23:38:13 +0000 (19:38 -0400)
committerW. Trevor King <wking@tremily.us>
Mon, 13 May 2013 23:38:13 +0000 (19:38 -0400)
Give folks a concrete idea of the roll of each module.  Also grey-out
the calibcant node, since it's not part of the experiment control
stack.

src/packages.tex
src/pyafm/stack.tex

index 35a3a00603a64fbde4402d354c53e5fb47fde968..7b314734eeeeb2950076a83e4b9ef32326dd1bbd 100644 (file)
@@ -84,6 +84,7 @@
 \usepackage{tikz}         % a nice, inline PGF frontend
 \usetikzlibrary{automata} % graph-theory library
 \usetikzlibrary{calc}     % coordinate-calculation library
+\usetikzlibrary{decorations.markings}       % custom marks
 \usetikzlibrary{decorations.pathreplacing}  % braces and other fancy paths
 \usetikzlibrary{topaths}      % 'curve to' style lines (in, out, etc.)
 \usetikzlibrary{shapes.misc}  % for 'rounded rectangle'
index 607b535fa9e7f5fbdc2207ff31b24951a074bc9f..2b2c454454a76f4f24015e0e09156db8a42e766a 100644 (file)
@@ -13,28 +13,63 @@ experiment logic to \pyafm\ to carry out velocity-clamp force
 spectroscopy (\cref{fig:pyafm:stack}).
 
 \begin{figure}
-  \begin{tikzpicture}
+  \begin{tikzpicture}[decoration={
+      markings,%  switch on markings
+      mark=%  add a mark for screw threading
+        between positions 0 and 1 step 1pt
+        with
+        {
+          \draw (0, 2pt) -- (1pt, -2pt);
+        }
+      }
+      ]
     \tikzstyle{every node}=[text depth=0pt, rounded rectangle,
       draw=blue!50, very thick, minimum height=1.7em]
-   \node (pycomedi) at (0,0) {\pycomedi};
-    \node (pypiezo) at ($(pycomedi) + (0,1)$) {\pypiezo};
-    \node (pyafm) at ($(pypiezo) + (0,1)$) {\pyafm};
-    \node (unfold-protein) at ($(pyafm) + (0,1)$) {\unfoldprotein};
-    \node (stepper) at ($(pycomedi) + (2,1)$) {\stepper};
-    \node (pypid) at ($(stepper) + (2,0)$) {\pypid};
-    \node (h5config) at ($(pycomedi) + (-3,0)$) {\hFconfig};
-    \node (calibcant) at ($(unfold-protein) + (-3,0)$) {\calibcant};
-    \draw (pycomedi) -- (pypiezo);
-    \draw (pycomedi) -- (stepper);
+    \node[shape=rectangle,draw=none,inner sep=0]
+      (image) at (0,0) {
+      \asyinclude{figures/schematic/afm}};
+    \node[shape=rectangle,draw=black, semithick]
+      (daq) at ($(image.south west) + (-0.5, -1)$) {DAQ card};
+    \node[shape=rectangle,draw=black, semithick]
+      (motor) at ($(image.south) + (0, -1)$) {motor};
+    %\draw[
+    \coordinate (thermocouple) at ($(image.west) + (1, -4pt)$);
+    \node (pycomedi) at ($(daq) + (-5,0)$) {pycomedi};
+    \node (pypiezo) at ($(pycomedi) + (0,1)$) {pypiezo};
+    \node (pyafm) at ($(pypiezo) + (0,1)$) {pyafm};
+    \node (unfold-protein) at ($(pyafm) + (0,1)$) {unfold-protein};
+    \node (stepper) at ($(pycomedi) + (2,1)$) {stepper};
+    \node (pypid) at ($(stepper) + (2,0)$) {pypid};
+    \node (h5config) at ($(pycomedi) + (-3,0)$) {h5config};
+    \node[black!20] (calibcant) at ($(unfold-protein) + (-3,0)$) {calibcant};
     \draw (pypiezo) -- (pyafm);
     \draw (stepper) -- (pyafm);
     \draw (pypid) -- (pyafm);
     \draw (pyafm) -- (unfold-protein);
-    \draw (pyafm) -- (calibcant);
+    \draw[black!20] (pyafm) -- (calibcant);
     \draw (h5config) -- (pypiezo);
     \draw (h5config) -- (pyafm);
     \draw (h5config) -- (unfold-protein);
-    \draw (h5config) -- (calibcant);
+    \draw[black!20] (h5config) -- (calibcant);
+    \draw[purple] (pypid) -- (thermocouple);
+    % begin thermometer symbol
+    \draw[blue!20, line width=4pt, cap=round]
+      (thermocouple) -- ($(thermocouple) + (0,12pt)$);
+    \fill[blue!20] (thermocouple) circle (5pt);
+    \draw[red, line width=2pt, cap=butt]
+      (thermocouple) -- ($(thermocouple) + (0,8pt)$);
+    \fill[red] (thermocouple) circle (4pt);
+    % end thermometer symbol
+    % begin motor screw
+    \draw[black!20, line width=4pt]
+      (motor) -- (image.south);   % shaft with decoration threads
+    \draw[black, decorate, ultra thin]
+      (motor) -- (image.south);   % shaft with decoration threads
+    % end motor screw
+    \draw[red]
+      (pypiezo) -- (pycomedi) -- (daq) -- ($(image.south) + (-6pt, 0)$);
+    \draw[red, line width=2pt] (pycomedi) -- (daq);
+    \draw[blue] (stepper) -- (pycomedi) -- (daq) -- (motor);
   \end{tikzpicture}
   \caption{Dependency graph for my modular experiment control
     stack.\label{fig:pyafm:stack}}