https://github.com/darki-31/LabNet_manuscript_data
Raw File
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
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}
back to top