https://github.com/darki-31/LabNet_manuscript_data
Tip revision: d52e52c51e3f7c5b0e12f95829b8cf4886bb3379 authored by Alexej Schatz on 26 October 2022, 14:36:09 UTC
test implementations for Autopilot, Bpod and pyControl moved to an own folder
test implementations for Autopilot, Bpod and pyControl moved to an own folder
Tip revision: d52e52c
exp_system.tex
\documentclass[tikz,margin=1mm]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{microtype}
\usepackage[default]{opensans}
\usepackage{stix}
\usepackage{tikz-3dplot}
\usepackage{pgfplots}
\usepackage{tikzlings}
\usepackage{moeptikz}
\usepgfplotslibrary{statistics}
\pgfplotsset{compat=1.18}
\usetikzlibrary{positioning,fit,3d,decorations.markings,shapes}
\begin{document}
\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}[tdplot_main_coords,scale=1.15]
\tikzset{backwall/.style={fill=lightgray,fill opacity=0.5,draw=black,thin,line join=round}}
\tikzset{wall/.style={fill opacity=0,draw=black,thin,line join=round}}
\newcommand{\tstar}[5]{% inner radius, outer radius, tips, rot angle, options
\pgfmathsetmacro{\starangle}{360/#3}
\draw[#5] (#4:#1)
\foreach \x in {1,...,#3}
{ -- (#4+\x*\starangle-\starangle/2:#2) -- (#4+\x*\starangle:#1)
}
-- cycle;
}
% --- axis --
%\draw[thick,->,red] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$};
%\draw[thick,->,red] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$};
%\draw[thick,->,red] (0,0,0) -- (0,0,1) node[anchor=south]{$z$};
% --- floor grid ---
%\begin{scope}[canvas is xy plane at z=0]
% \draw[help lines] (-1.5,-1.5) grid (5.5,15.5);
%\end{scope}
% -- Skinner-Box --
\begin{scope}
\begin{scope}[canvas is zy plane at x=0]
\path[backwall] (0,0) rectangle (2,4);
\path[draw=black,fill=black,thin] (0.1,0.8) rectangle (1.9,3.2) node[above, xshift=-30, yshift=8] {d};
\begin{scope}[xshift=20, yshift=40,scale=0.1]
\tstar{2}{4}{3}{59}{thick,fill=white}
\end{scope}
\begin{scope}[xshift=22, yshift=70,scale=0.1]
\tstar{2}{4}{5}{36}{thick,fill=white}
\end{scope}
\end{scope}
\begin{scope}[canvas is zx plane at y=0]
\path[backwall] (0,0) rectangle (2,3);
% ----- leds ------
\draw[black,fill=green] (1.0,1.2) circle (0.1);
\draw[black,fill=green] (1.0,1.5) circle (0.1) node[left, above] {b};
\draw[black,fill=green] (1.0,1.8) circle (0.1);
% ----- pellet magazine ------
\path[fill=white,draw=black,thin] (0.2,1.2) node[right,xshift=-1.4,yshift=4] {a} rectangle (0.6,1.8) ;
\end{scope}
% ---- speaker ----
\begin{scope}[canvas is yz plane at x=1.5]
\begin{scope}[scale=0.5,yshift=85]
\draw[thick,rounded corners=1pt, fill=black] (0,0.25) -- (0,0.45) -- (0.25,0.45) -- (0.5,0.7) node[above] {c} -- (0.5,0) -- (0.25,0.25) -- cycle;
\draw[line width=0.5pt,line cap=round] (0.6,0.25) arc (-30:30:2mm);
\draw[line width=0.5pt,line cap=round] (0.7,0.15) arc (-30:30:4mm);
\draw[line width=0.5pt,line cap=round] (0.8,0.05) arc (-30:30:6mm);
\end{scope}
\end{scope}
\begin{scope}[canvas is xy plane at z=0]
\path[wall] (0,0) rectangle (3,4);
\foreach \x in {0.25,0.5,...,4} {
\draw[black] (0,\x) -- (3,\x);
}
\end{scope}
\begin{scope}[canvas is xy plane at z=2]
\path[wall] (0,0) rectangle (3,4);
\end{scope}
\begin{scope}[canvas is zx plane at y=4]
\path[wall] (0,0) rectangle (2,3);
\end{scope}
\begin{scope}[canvas is yz plane at x=2]
\mouse[scale=0.35, xshift=6cm, yshift=0cm, body=darkgray]
\end{scope}
\end{scope}
% -- sorter --
\begin{scope}
\begin{scope}[canvas is zx plane at y=4]
\path[wall] (0,1) rectangle (1,2);
\end{scope}
% --- floor ---
\begin{scope}[canvas is xy plane at z=0]
\draw[backwall,fill opacity=1] (1,4) -- (2,4) -- (2,9) -- (1,9) -- cycle;
\end{scope}
% --- back ---
\begin{scope}[canvas is yz plane at x=1]
\path[backwall] (4,0) rectangle (9,1);
% --- reader ---
\path[draw=black,fill=black,thin] (4.5,0.2) rectangle (5.2,0.7);
\node[text=blue] at (5,0.85) {$r_3$};
\path[draw=black,fill=black,thin] (6.4,0.2) rectangle (7.1,0.7);
\node[text=blue] at (6.9,0.85) {$r_2$};
\path[draw=black,fill=black,thin] (7.8,0.2) rectangle (8.5,0.7);
\node[text=blue] at (8.2,0.85) {$r_1$};
\end{scope}
% --- gate 2 ---
\begin{scope}[canvas is zx plane at y=4.25]
\path[backwall,fill=darkgray] (0,1) rectangle (1,2);
\node[text=blue] at (0.8,1.3) {$d_2$};
\end{scope}
% --- gate 1 ---
\begin{scope}[canvas is zx plane at y=7.5]
\path[backwall,fill=darkgray] (0,1) rectangle (1,2);
\node[text=blue] at (0.8,1.3) {$d_1$};
\end{scope}
\begin{scope}[canvas is zx plane at y=9]
\path[wall] (0,1) rectangle (1,2);
\end{scope}
\begin{scope}[canvas is xy plane at z=1]
\path[wall] (1,4) rectangle (2,9);
\end{scope}
\end{scope}
% -- home cage --
\begin{scope}
% --- floor ---
\begin{scope}[canvas is xy plane at z=0]
\path[backwall,fill opacity=0.8] (4,9) rectangle (-1,14);
\end{scope}
% --- back wall ---
\begin{scope}[canvas is yz plane at x=-1]
\path[backwall] (9,0) rectangle (14,2);
\end{scope}
\begin{scope}[canvas is yz plane at x=0]
\mouse[scale=0.35, xshift=29cm, yshift=0cm, body=darkgray]
\end{scope}
\begin{scope}[canvas is yz plane at x=1]
\mouse[scale=0.35, xshift=35cm, yshift=0cm, rotatearms=5, body=darkgray]
\end{scope}
\begin{scope}[canvas is yz plane at x=2]
\mouse[scale=0.35, xshift=29cm, yshift=0cm, rotatearms=95, body=darkgray]
\end{scope}
\begin{scope}[canvas is yz plane at x=3]
\mouse[scale=0.35, xshift=33cm, yshift=0cm, rotatearms=65, body=darkgray]
\end{scope}
% --- left side wall ---
\begin{scope}[canvas is xz plane at y=9]
\draw[backwall] (-1,0) -- (1,0) -- (1,1) -- (2,1) -- (2,0) -- (4,0) -- (4,2) -- (-1,2) -- cycle;
\end{scope}
% --- right side wall ---
\begin{scope}[canvas is xz plane at y=14]
\path[wall] (-1,0) rectangle (4,2);
\end{scope}
% --- top --
\begin{scope}[canvas is xy plane at z=2]
\path[wall] (-1,9) rectangle (4,14);
\end{scope}
\end{scope}
\path[draw] (0cm,2.85cm) -- (3.76cm,2.39cm) node [midway, above, sloped] () {Skinner-Box with RasPi};
\path[draw] (3.76cm,2cm) -- (8.7cm,1.37cm) node [midway, above, sloped] () {Sorter with RasPi};
\path[draw] (8.8cm,1.8cm) -- (13.5cm,1.22cm) node [midway, above, sloped] () {Home-Cage};
\path[gray,draw,->] (0.8cm,-1.2cm) -- (0.8cm,-2.15cm);
\path[gray,draw] (5.2cm,-1.38cm) -- (5.2cm,-1.7cm) -- (0.8cm,-1.7cm);
\node[client] (c) at (0.8cm,-2.5cm) {};
\node[left=0.05cm of c] {PC};
\end{tikzpicture}
\end{document}