Draw an array of clocks and a sinusoidal wave

What is the simple way to draw this figure? I am attempting to draw this using tikz. But I cannot easily match the sinusoidal wave with the arrows... I decide to use a Keynote (outcome below), and ask for help on tikz or LaTex?

Thank you!

With tikz-3dplot you can adjust the view angle.

\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{70}{0}
\begin{tikzpicture}[scale=2]
\foreach \X in {1,...,6}
{\begin{scope}[tdplot_main_coords]
\draw[dashed] (\X,0,-1.5) coordinate (b\X) -- (\X,0,0) coordinate (c\X);
\begin{scope}[canvas is xy plane at z=0]
\path ($(c\X)+(-\X*60+60:0.3)$) coordinate (t\X);
\end{scope}
\end{scope}
\ifodd\X
\draw[-stealth] (t\X) -- (b\X);
\draw[-stealth] (c\X|-0,-2.5) -- ++ (-\X*60+60:0.3) coordinate(p\X);
\else
\draw[stealth-] (t\X) -- (b\X);
\draw[stealth-] (c\X|-0,-2.5) -- ++ (-\X*60+60:0.3)  coordinate(p\X);
\fi
}
\draw plot[smooth,samples at={1,...,6}] (p\x);
\end{tikzpicture}
\end{document}


Or with some pgf keys.

\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{70}{0}
angle increment/.initial=50]
\foreach \X in {1,...,6}
{\begin{scope}[tdplot_main_coords]
\draw[dashed] (\pgfkeysvalueof{/tikz/clock/distance}*\X,0,-1.5) coordinate (b\X)
-- (\pgfkeysvalueof{/tikz/clock/distance}*\X,0,0) coordinate (c\X);
\begin{scope}[canvas is xy plane at z=0]
\path ($(c\X)+({-(\X-1)*\pgfkeysvalueof{/tikz/clock/angle increment}}:\pgfkeysvalueof{/tikz/clock/radius})$) coordinate (t\X);
\end{scope}
\end{scope}