93 lines
5.3 KiB
TeX
93 lines
5.3 KiB
TeX
% !TEX program = pdflatex
|
|
\documentclass{standalone}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage{amsmath}
|
|
\usepackage{tikz}
|
|
\usetikzlibrary{shapes.geometric, positioning, arrows.meta, calc, fit, backgrounds}
|
|
|
|
\begin{document}
|
|
|
|
\begin{tikzpicture}[
|
|
font=\sffamily\small,
|
|
>=Latex,
|
|
mcu/.style={draw=blue!80!black, rectangle, rounded corners=4pt, fill=blue!10, minimum width=3.6cm, minimum height=4.2cm, align=center, line width=1.2pt},
|
|
adc/.style={draw=orange!80!black, rectangle, rounded corners=4pt, fill=orange!10, minimum width=2.8cm, minimum height=3.6cm, align=center, line width=1pt},
|
|
block/.style={draw, rectangle, rounded corners=3pt, fill=yellow!10, minimum width=3.4cm, minimum height=1.1cm, align=center, line width=0.8pt},
|
|
driver/.style={draw=green!60!black, rectangle, rounded corners=3pt, fill=green!10, minimum width=2.6cm, minimum height=1.1cm, align=center, line width=0.8pt},
|
|
cloud/.style={draw=cyan!80!black, ellipse, fill=cyan!10, minimum width=3.6cm, minimum height=1.4cm, align=center, line width=1pt},
|
|
motor/.style={draw=purple!80!black, circle, fill=purple!10, minimum size=1.1cm, align=center, line width=0.8pt},
|
|
bus/.style={line width=1.2pt, <->},
|
|
sig/.style={line width=0.8pt, ->}
|
|
]
|
|
|
|
% ==========================================
|
|
% 1. NÚCLEO CENTRAL (ESP32 y ADC)
|
|
% ==========================================
|
|
\node[mcu] (esp) {\textbf{ESP32 MCU}\\[3pt]\footnotesize Dual-Core 32-bit\\[2pt]\scriptsize WebServer \& WebSockets\\[1pt]\scriptsize NVS Memory};
|
|
|
|
\node[adc, below=-3.14cm of esp, left=2.26cm of esp] (adc) {\textbf{ADS122C04}\\[2pt]\footnotesize 24-Bit $\Delta\Sigma$ ADC};
|
|
|
|
% Bus I2C entre ADC y ESP32
|
|
\draw[bus] (-4.1,0) -- node[above, font=\scriptsize] {$\text{I}^2\text{C}$ (SDA, SCL)} (esp.west);
|
|
|
|
% ==========================================
|
|
% 2. NUBE Y TELEMETRÍA (ARRIBA)
|
|
% ==========================================
|
|
\node[cloud, above=1.8cm of esp] (cloud) {\textbf{Cloud Platform}\\[-1pt]\footnotesize Monitoring \& Backup};
|
|
\draw[bus, dashed, cyan!80!black] (esp.north) -- node[right, font=\scriptsize, text=cyan!80!black, near end] {WiFi / HTTP / WS} (cloud.south);
|
|
|
|
% ==========================================
|
|
% 3. SENSORES E INSUMOS (COLUMNA IZQUIERDA)
|
|
% ==========================================
|
|
\node[block, anchor=north east, below=2.09cm of adc.north west, left=2.18cm of adc.north west] (pira) {\textbf{Pyranometer}\\[-1pt]\scriptsize (Apogee SP-212)};
|
|
|
|
\node[block, fill=red!10, draw=red!70!black, above=0.31cm of pira] (cpv) {\textbf{HCPV Sensing Circuit}\\[-2pt]\scriptsize $I_{sc}$ / $V_{oc}$ Switching \& Cond.};
|
|
|
|
|
|
% Conexiones analógicas al ADC
|
|
\draw[sig] (pira.east) -- node[above=1pt, font=\scriptsize, pos=0.42] {AIN2 ($G_{POA}$)} (adc.west |- pira.east);
|
|
\draw[sig] ($(cpv.east)+(0,0.2)$) -- node[above, font=\scriptsize, pos=0.44] {AIN0/1 ($I_{sc}$)} ($(adc.west |- cpv.east)+(0,0.2)$);
|
|
\draw[sig] ($(cpv.east)+(0,-0.2)$) -- node[below, font=\scriptsize, pos=0.43] {AIN3 ($V_{oc}$)} ($(adc.west |- cpv.east)+(0,-0.2)$);
|
|
% \draw[sig, gray, dashed] (curr.east) -- node[above, font=\scriptsize, gray, pos=0.45] {AINx (N.C.)} (adc.west |- curr.east);
|
|
% (disabled: no 'curr' node exists in this schematic)
|
|
|
|
% LÍNEA DE CONTROL PIN_VOC (Limpia y bordeando por abajo)
|
|
\draw[sig, red!80!black, line width=1pt]
|
|
(esp.south west) -- (esp.south west |- 0,-2.6) -- node[below, pos=0.4, font=\scriptsize, text=red!80!black] {\texttt{PIN\_VOC} (Gate Driver Control)} ($(cpv.west)+(-0.35,0)$) -- (cpv.west);
|
|
|
|
% ==========================================
|
|
% 4. DRIVERS Y MOTORES (ABAJO)
|
|
% ==========================================
|
|
\node[driver, below=1.36cm of esp.south, left=0.15cm of esp.south] (tmcX) {\textbf{TMC2209}\\[-2pt]\scriptsize Driver (X-Axis)};
|
|
\node[driver, below=1.34cm of esp.south, right=0.12cm of esp.south] (tmcY) {\textbf{TMC2209}\\[-2pt]\scriptsize Driver (Y-Axis)};
|
|
|
|
\node[motor, below=0.8cm of tmcX] (motX) {\textbf{M1}\\[-3pt]\tiny Zenith};
|
|
\node[motor, below=0.8cm of tmcY] (motY) {\textbf{M2}\\[-3pt]\tiny Azimuth};
|
|
|
|
% Conexiones de Control a los Drivers
|
|
\draw[sig] (esp.south -| tmcX.north) -- node[left, font=\scriptsize, align=right] {UART /\\STEP / DIR} (tmcX.north);
|
|
\draw[sig] (esp.south -| tmcY.north) -- node[right, font=\scriptsize, align=left] {UART /\\STEP / DIR} (tmcY.north);
|
|
|
|
% Conexiones a Motores
|
|
\draw[sig, line width=1pt] (tmcX.south) -- node[right, font=\scriptsize] {NEMA 11} (motX.north);
|
|
\draw[sig, line width=1pt] (tmcY.south) -- node[right, font=\scriptsize] {NEMA 11} (motY.north);
|
|
|
|
% ==========================================
|
|
% 5. MARCO DE LA TARJETA
|
|
% ==========================================
|
|
\begin{scope}[
|
|
on background layer,
|
|
yshift=6pt,
|
|
yscale=0.9
|
|
]
|
|
\node[draw=blue!50, line width=1pt, dashed, rounded corners=6pt, fill=blue!2,
|
|
fit=(esp) (adc) (tmcX) (tmcY),
|
|
inner sep=14pt,
|
|
label={[blue!80!black, font=\bfseries\small, label distance=0pt]north west:Controller Board (WiT-CPV)}] (board) {};
|
|
\end{scope}
|
|
|
|
\draw[thick, solid] (-1.8,1.5) -- (-10.81,1.5)node[font=\scriptsize, pos=0.31, above, north] {PIN-CTRL (HIGH $\rightarrow I_{sc}$, LOW $\rightarrow V_{oc}$)};
|
|
\draw[->, thick, solid] (-10.81,1.5) -- (cpv.north);
|
|
\end{tikzpicture}
|
|
|
|
\end{document} |