diff options
-rw-r--r-- | docs/blue.png | bin | 0 -> 1193996 bytes | |||
-rw-r--r-- | docs/ontwerp.pdf | bin | 0 -> 1729026 bytes | |||
-rw-r--r-- | docs/ontwerp.tex | 174 | ||||
-rw-r--r-- | docs/pcb.pdf | bin | 0 -> 96148 bytes | |||
-rw-r--r-- | docs/red.png | bin | 0 -> 1086793 bytes | |||
-rw-r--r-- | docs/schema.pdf | bin | 0 -> 70765 bytes | |||
-rw-r--r-- | hardware/ledcube.pro | 12 | ||||
-rw-r--r-- | hardware/wiring.blend | bin | 1346600 -> 1374120 bytes | |||
-rw-r--r-- | hardware/wiring.blend1 | bin | 1346600 -> 1374120 bytes | |||
-rw-r--r-- | software/software.ino | 8 |
10 files changed, 189 insertions, 5 deletions
diff --git a/docs/blue.png b/docs/blue.png Binary files differnew file mode 100644 index 0000000..c44a574 --- /dev/null +++ b/docs/blue.png diff --git a/docs/ontwerp.pdf b/docs/ontwerp.pdf Binary files differnew file mode 100644 index 0000000..c9bc73b --- /dev/null +++ b/docs/ontwerp.pdf diff --git a/docs/ontwerp.tex b/docs/ontwerp.tex new file mode 100644 index 0000000..f27c646 --- /dev/null +++ b/docs/ontwerp.tex @@ -0,0 +1,174 @@ +\documentclass[12pt, a4paper, dutch]{article} + +\usepackage[margin=1in]{geometry} +\usepackage{circuitikz} +\usepackage{float} +\usepackage{babel} +\usepackage{siunitx} +\usepackage{amsmath} +\usepackage{scalerel} +\usepackage{csquotes} +\usepackage{parskip} +\usepackage{unicode-math} +\usepackage{fontspec} +\usepackage{tabularx} +\usepackage{booktabs} +\usepackage{graphicx} +\usepackage{pgfplots} +\usepackage{color} +\usepackage{hyperref} + +\setmainfont{TeX Gyre Schola} +\setmathfont{TeX Gyre Schola Math} +\setmonofont{JetBrainsMono Nerd Font} +\sisetup{ + group-separator = {.}, + output-decimal-marker = {,} +} + +\pgfplotsset{compat=newest} + +\usetikzlibrary{calc} +\usetikzlibrary{shapes.geometric} +\usetikzlibrary{arrows.meta,arrows} +\usetikzlibrary{positioning} +\tikzset{ + initial/.style={circle, fill}, + final/.style={solid, double=white, circle, fill, thick, draw}, + decision/.style={diamond, black, draw}, + action/.style={rectangle, draw, rounded corners, align=center}, + arrow/.style={draw, -{Latex[length=3mm]}, thick, rounded corners} +} + +\bigskipamount=7mm +\medskipamount=4mm +\parindent=0mm + +\begin{document} + +\begin{center} +\textbf{Ontwerp} \hspace{2mm} project ledcube \hfill \textbf{Loek Le Blansch} +(2180996)\\ +\today \hfill \textbf{Sybren van den Heuvel} (21.....) +\end{center} + +\medskip + +Dit document maakt gebruik van hyperlinks, dus je kunt klikken op de blokken met +\emph{benadrukte tekst} om naar de definitie van dat blok te gaan. + +\section{Software ontwerp} + +\subsection*{Overzicht}\label{overzicht} +\begin{center} +\begin{tikzpicture}[node distance=1.5cm] +\node[initial] (initial) at (0,0) {}; +\node[action, below of = initial] (setup) {\hyperref[init]{\emph{Initialisatie}}}; +\node[decision, below of = setup] (comb) {}; +\node[action, below of = comb] (loop) {\hyperref[loop]{\emph{Loop}}}; + +\draw [arrow] (initial) -- (setup); +\draw [arrow] (setup) -- (comb); +\draw [arrow] (comb) -- (loop); +\draw [arrow] (loop) -- ++(0, -1) -- ++(-2, 0) |- (comb); + +\end{tikzpicture} +\end{center} + + +\subsection*{Initialisatie}\label{init} +\begin{center} +\begin{tikzpicture}[node distance=1.5cm] +\node[initial] (initial) at (0,0) {}; + +\node[action, below = 1cm of initial] (mkvars) {Maak globale variabelen voor\\de + huidige staat van de led's}; + +\node[action, below = 1cm of mkvars] (pinmode) {Stel pin 2, 3, en 4 in als + output\\voor het shiftregister}; + +\node[action, below = 1cm of pinmode] (frametimecalc) {Bereken hoe lang een beeld + duurt\\in milliseconden afhankelijk van\\de verversingssnelheid}; + +\node[final, below of = frametimecalc] (final) {}; + +\draw [arrow] (initial) -- (mkvars); +\draw [arrow] (mkvars) -- (pinmode); +\draw [arrow] (pinmode) -- (frametimecalc); +\draw [arrow] (frametimecalc) -- (final); + +\end{tikzpicture} +\end{center} + + +\subsection*{Loop}\label{loop} +\begin{center} +\begin{tikzpicture}[node distance=2cm] +\node[initial] (initial) at (0,0) {}; + +\node[action, below of = initial] (gettime) + {Sla op hoe lang de arduino\\aan is in milliseconden}; + +\node[action, below of = gettime] (calcfxindex) + {Bereken welk effect afgespeeld moet worden}; + +\node[action, below of = calcfxindex] (calcfxtime) + {Bereken hoe lang het huidige effect al bezig is}; + +\node[action, below of = calcfxtime] (fxexec) + {Voer de functie van het huidige effect uit}; + +\node[action, below of = fxexec] (updateregs) + {Update de status van de led's}; + +\node[final, below of = updateregs] (final) {}; + +\draw [arrow] (initial) -- (gettime); +\draw [arrow] (gettime) -- (calcfxindex); +\draw [arrow] (calcfxindex) -- (calcfxtime); +\draw [arrow] (calcfxtime) -- (fxexec); +\draw [arrow] (fxexec) -- (updateregs); +\draw [arrow] (updateregs) -- (final); + +\end{tikzpicture} +\end{center} + +\section{Hardware} + +\subsection{Schema} + +\begin{center} +\includegraphics[ + clip, + trim=21mm 83mm 22mm 13mm, + width=\textwidth +]{./schema.pdf} +\end{center} + +\subsection{PCB} +\begin{center} +\includegraphics[ + clip, + trim=13mm 119mm 124mm 13mm, + width=\textwidth +]{./pcb.pdf} +\end{center} + +\subsection{Bedrading (3D)} + +Dit is een 3D-weergave van de bedrading van de led cube. In deze weergave zie je +duidelijk dat de led cube bestaat uit een 8$\times$8-matrix die twee keer is +dubbelgevouwd. Hier zijn de roze verbindingen de anode's van de led's, en de blauwe +de cathode's. + +\begin{center} +\includegraphics[ + width=0.4\textwidth +]{./red.png} +\hspace{1cm} +\includegraphics[ + width=0.4\textwidth +]{./blue.png} +\end{center} + +\end{document} diff --git a/docs/pcb.pdf b/docs/pcb.pdf Binary files differnew file mode 100644 index 0000000..58a12e0 --- /dev/null +++ b/docs/pcb.pdf diff --git a/docs/red.png b/docs/red.png Binary files differnew file mode 100644 index 0000000..8717374 --- /dev/null +++ b/docs/red.png diff --git a/docs/schema.pdf b/docs/schema.pdf Binary files differnew file mode 100644 index 0000000..62e2a76 --- /dev/null +++ b/docs/schema.pdf diff --git a/hardware/ledcube.pro b/hardware/ledcube.pro index 152769c..d249c04 100644 --- a/hardware/ledcube.pro +++ b/hardware/ledcube.pro @@ -1,4 +1,4 @@ -update=22/05/2015 07:44:53 +update=Sun 21 Nov 2021 02:18:20 PM CET version=1 last_client=kicad [general] @@ -31,3 +31,13 @@ NetIExt=net version=1 LibDir= [eeschema/libraries] +[schematic_editor] +version=1 +PageLayoutDescrFile= +PlotDirectoryName= +SubpartIdSeparator=0 +SubpartFirstId=65 +NetFmtName= +SpiceAjustPassiveValues=0 +LabSize=50 +ERC_TestSimilarLabels=1 diff --git a/hardware/wiring.blend b/hardware/wiring.blend Binary files differindex 8db0bba..9ca7cac 100644 --- a/hardware/wiring.blend +++ b/hardware/wiring.blend diff --git a/hardware/wiring.blend1 b/hardware/wiring.blend1 Binary files differindex 3437fc3..9d00423 100644 --- a/hardware/wiring.blend1 +++ b/hardware/wiring.blend1 diff --git a/software/software.ino b/software/software.ino index 8e1e90e..8c454ac 100644 --- a/software/software.ino +++ b/software/software.ino @@ -9,7 +9,7 @@ void shift(unsigned char data) { Serial.println(data, BIN); #endif - // pull down latch + // pull down latch register digitalWrite(PINOUT_LCK, LOW); for(int i = 0; i < 8; i++) { @@ -22,7 +22,7 @@ void shift(unsigned char data) { digitalWrite(PINOUT_SCK, LOW); } - // pull up latch + // pull up latch register digitalWrite(PINOUT_LCK, HIGH); } @@ -49,8 +49,8 @@ void test_effect3(unsigned long relative_time, bool (*leds)[64]) { } -#define SLIDESHOW_SIZE (int) 3 -#define SLIDESHOW_DURATION (int) 5e3 +#define SLIDESHOW_SIZE ( (int) 3 ) +#define SLIDESHOW_DURATION ( (int) 5e3 ) // evil function pointer array void ( * slideshow_effects [SLIDESHOW_SIZE] )( unsigned long relative_time, bool (*leds)[64] ) = { test_effect1, |