From e864d06fb1d4f4f9f7a2471a4b49a51aa2ed82d6 Mon Sep 17 00:00:00 2001
From: Pacien TRAN-GIRARD
Date: Mon, 16 Jun 2014 00:04:28 +0200
Subject: Update report

---
 report/project.tex | 245 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 222 insertions(+), 23 deletions(-)

(limited to 'report/project.tex')

diff --git a/report/project.tex b/report/project.tex
index f98e892..5da7f30 100644
--- a/report/project.tex
+++ b/report/project.tex
@@ -8,9 +8,9 @@ FPGA, capable de commander un ventilateur et une alarme en fonction de l'état d
 différents capteurs et des entrées de l'utilisateur.
 
 \begin{figure}[h]
-  \centering
-    \includegraphics[width=0.8\textwidth]{resources/project-de2-io}
-  \caption{Capteurs/actionneurs autour de la carte Altera DE2}
+	\centering
+		\includegraphics[width=0.8\textwidth]{resources/project-de2-io}
+	\caption{Capteurs/actionneurs autour de la carte Altera DE2}
 \end{figure}
 
 \section{Matériel}
@@ -19,12 +19,12 @@ Des contraintes matérielles ont été imposées dans le cadre de ce projet, qui
 réalisera autour des composants suivants :
 
 \begin{itemize}
-  \item Carte Altera DE2 équipée d'un FPGA Altera Cyclone II avec une horloge à
-  50MHz et des interfaces utilisateurs (boutons, afficheurs, \ldots)
-  \item Microphone ELECTRET
-  \item Capteur de température LM35
-  \item Haut-parleur (8 Ohm)
-  \item Ventilateur (12V/1W)
+	\item Carte Altera DE2 équipée d'un FPGA Altera Cyclone II avec une horloge à
+	50MHz et des interfaces utilisateurs (boutons, afficheurs, \ldots)
+	\item Microphone ELECTRET
+	\item Capteur de température LM35
+	\item Haut-parleur (8 Ohm)
+	\item Ventilateur (12V/1W)
 \end{itemize}
 
 \section{Méthodologie}
@@ -38,9 +38,9 @@ Ainsi, la centrale domotique comprendra deux sous-systèmes : une partie alarme
 et une partie ventilation.
 
 \begin{figure}[h]
-  \centering
-    \includegraphics[width=0.85\textwidth]{resources/project-topdown-subsystems}
-  \caption{Découpage du système en sous-systèmes}
+	\centering
+		\includegraphics[width=0.85\textwidth]{resources/project-topdown-subsystems}
+	\caption{Découpage du système en sous-systèmes}
 \end{figure}
 
 \subsection{Validation \og{}bottom-up\fg{}}
@@ -52,24 +52,223 @@ nouveau testé globalement.
 
 \chapter{Interface de commande}
 
-\section{Contrôle}
+L'interface de commande comprend les entrées et les sorties permettant à
+l'utilisateur d'intéragir avec la centrale.
 
-\subsection{Commande du ventilateur}
+Celle-ci comprend un module de commande (utilisant les interrupteurs et les
+ports GPIO de la carte DE2) et un module d'affichage (via les DELs, les
+afficheurs 7-segments et l'écran à cristaux liquides).
+
+\section{Commande}
+
+Le module de commande prendra en compte les entrées des paramètres
+utilisateurs, via les interrupteurs, et des paramètres environnementaux, via les
+capteurs de bruit et de température connectés aux ports GPIO.
+
+\begin{figure}[h]
+	\centering
+		\includegraphics{resources/commande-interrupteurs-legende}
+	\caption{Actions des interrupteurs de la carte DE2}
+
+	\centering
+		\includegraphics{resources/schema-commande-io}
+	\caption{Entrées/sorties du sous-système \og{}commande\fg{}}
+\end{figure}
+
+Ce module a été décomposé en deux sous-modules semi-indépendants, l'un destiné à
+contrôler l'alarme, et l'autre le ventilateur, ce dernier étant désactivé
+lorsque l'alarme est déclenchée.
+
+\begin{figure}[h]
+	\centering
+		\includegraphics{resources/schema-commande-logic}
+	\caption{Schéma bloc du sous-système \og{}commande\fg{}}
+\end{figure}
+
+\newpage
 
 \subsection{Commande de l'alarme}
 
-\section{Afficheur 7-segments}
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/schema-alarm-io}
+	\caption{Entrées/sorties du sous-sous-système \og{}alarme\fg{}}
+
+	\centering
+		\includegraphics{resources/schema-alarm-logic}
+	\caption{Schéma du sous-sous-système \og{}alarme\fg{}}
+	\label{fig:alarm-logic}
+\end{figure}
+L'alarme doit être activée (state) dans les cas suivants :
+
+\begin{itemize}
+	\item Condition nécéssaire : l'utilisateur a activé l'alarme (enable)
+	\item Condition nécéssaire : un bruit est détecté (activate)
+	\item Condition suffisante : l'alarme est déjà activée (alarm)
+\end{itemize}
+
+L'ensemble des situations possibles sont représentables par la table de vérité
+~\ref{tab:tab-alarm}.
+
+\begin{table}[p]
+	\centering
+		\begin{tabular}{ c | c | c || c }
+			enable & activate & alarm & STATE\\
+			\hline
+			0 & 0 & 0 & 0\\
+			0 & 0 & 1 & 1\\
+			0 & 1 & 0 & 0\\
+			0 & 1 & 1 & 1\\
+			1 & 0 & 0 & 0\\
+			1 & 0 & 1 & 1\\
+			1 & 1 & 0 & 1\\
+			1 & 1 & 1 & 1\\
+		\end{tabular}
+	\caption{Table de vérité de l'activation de l'alarme}
+	\label{tab:tab-alarm}
+\end{table}
+
+De cette table, nous obtenons l'équation booléenne évidente :
+
+\begin{equation}
+	STATE = (enable \cdot activate) + alarm
+\end{equation}
+
+Le circuit correspondant est ainsi celui de la figure ~\ref{fig:alarm-logic}.
+
+
+%\newpage
+
+\subsection{Commande du ventilateur}
+
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/schema-fan-io}
+	\caption{Entrées/sorties du sous-sous-système \og{}ventilation\fg{}}
+
+	\centering
+		\includegraphics{resources/schema-fan-logic}
+	\caption{Schéma du sous-sous-système \og{}ventilation\fg{}}
+	\label{fig:fan-logic}
+\end{figure}
+
+La sortie $FAN\_AUTO$ indique l'activation du mode automatique lorsque
+celui-ci est sélectionné et que la vitesse définie manuellement par
+l'utilisateur est la vitesse 0. Cette dernière condition donnée sur $no\_manual$
+est vérifiée à l'aide d'un comparateur.
+
+\begin{equation}
+	FAN\_AUTO = fan\_auto\_user \cdot no\_manual
+\end{equation}
+
+Un premier multiplexeur permet de choisir la valeur $fan\_auto\_value$ définie à
+la vitesse 3 si le capteur de température est activé ($hot$).
+
+Un second multiplexeur permet la sélection entre la vitesse manuellement définie
+par l'utilisateur ($fan\_speed$) ou la vitesse automatique déterminée par l'état
+du capteur ($fan\_auto\_value$) en fonction de l'activation du mode automatique
+$FAN\_AUTO$.
+
+Un troisième multiplexeur permet de désactiver le ventilateur,
+quelque soit la vitesse définie manuellement ou automatiquement par l'état du capteur,
+selon l'entrée $enable$.
+
+Le schéma synthétique est celui du ~\ref{fig:fan-logic}
+
+
+
+\newpage
+
+\section{Affichage}
+
+L'état de la centrale domotique est visible par l'utilisateur au travers de
+multiples DELs ainsi que des afficheurs 7-segments.
+
+L'écran à cristaux liquide affiche quant à lui un message trivial en 32
+caractères.
+
+\subsection{Afficheurs 7-segments}
+
+\begin{figure}[h]
+	\centering
+		\includegraphics{resources/schema-display-io}
+	\caption{Entrées/sorties du sous-sous-système \og{}display\fg{}}
+\end{figure}
+
+Les huit afficheurs 7-segments, à l'exception de HEX5, sont utilisés. Celui-ci
+est donc éteint à l'aide d'une constante $7 \times 1$, puisqu'actif à
+l'état bas.
+
+\subsubsection{Témoins d'activation}
+
+Les afficheurs HEX7 et HEX6 devant respectivement afficher les lettres
+\og{}A\fg{} et \og{}F\fg{} quand le mode alarme et la ventilation
+automatique sont activés, deux constantes ayant pour valeurs hexadécimales A et
+F ont été créées.
+Ces constantes sont ensuite traduites par le module
+seven\_segment\_decoder pour être affichables.
+Un multiplexeur pour chaque afficheur permet ensuite d'afficher la constante
+associée ou bien de désactiver l'afficheur.
+Le schéma associé est le ~\ref{fig:mode-indicator-logic}.
+
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/schema-display-af}
+	\caption{Schéma d'affichage des témoins d'activation}
+	\label{fig:mode-indicator-logic}
+\end{figure}
+
+
+\subsubsection{Vitesse du ventilateur}
+
+Le module seven\_segment\_decoder ayant une entrée sur 4 bits, et la vitesse du
+ventilateur définie sur l'entrée $SPEED[1..0]$ étant codée sur 2 bits, une
+constante binaire 00 a été concaténée en LSB. Le résultat de la conversion de la
+valeur est ensuite directement affichée sur HEX4.
+Le schéma associé est le ~\ref{fig:speed-indicator-logic}.
+
+\begin{figure}[h]
+	\centering
+		\includegraphics{resources/schema-display-speed}
+	\caption{Schéma d'affichage de la vitesse du ventilateur}
+	\label{fig:speed-indicator-logic}
+\end{figure}
+
+
+\subsubsection{Chenillard}
+
+\textit{\og{}Science isn't about WHY. It's about WHY NOT!\fg{}} - Cave Johnson
+
+Afin de ne pas laisser les afficheurs 0 à 3 inutilisés, et de rappeler des
+mauvais souvenirs aux possesseurs de Freebox v5, un chenillard a été ajouté.
+
+Celui-ci a été créé en utilisant un registre à décalage de 12 bits (nombre de
+segments en bordure), \og{}ralentit\fg{} à l'aide d'un module clock\_divider.
+Les segments du milieu ont été désactivés.
+Le schéma associé est le ~\ref{fig:speed-useless-logic}.
+
+\begin{figure}[h]
+	\centering
+		\includegraphics{resources/schema-display-useless}
+	\caption{Schéma du chenillard}
+	\label{fig:speed-useless-logic}
+\end{figure}
+
 
-\section{LCD}
+\subsection{LCD}
 
+Les modules VHDL lcd\_message et message ont été modifiés pour afficher une
+vérité établie. Pour ce faire, les lettres composants la phrase ont été
+transcrite en code ASCII hexadecimal et introduits dans le code du composant
+message.
 
 
 \chapter{Sous-système \og{}alarme\fg{}}
 
 \begin{figure}[h]
-  \centering
-    \includegraphics[width=0.9\textwidth]{resources/alarm-subsubsystems}
-  \caption{Découpage du sous-système \og{}alarme\fg{} en sous-sous-systèmes}
+	\centering
+		\includegraphics[width=0.9\textwidth]{resources/alarm-subsubsystems}
+	\caption{Découpage du sous-système \og{}alarme\fg{} en sous-sous-systèmes}
 \end{figure}
 
 \section{Detection du niveau sonore}
@@ -95,10 +294,10 @@ nouveau testé globalement.
 \chapter{Sous-système \og{}ventilation\fg{}}
 
 \begin{figure}[h]
-  \centering
-    \includegraphics[width=0.9\textwidth]{resources/fan-subsubsystems}
-  \caption{Découpage du sous-système \og{}ventilation\fg{} en
-  sous-sous-systèmes}
+	\centering
+		\includegraphics[width=0.9\textwidth]{resources/fan-subsubsystems}
+	\caption{Découpage du sous-système \og{}ventilation\fg{} en
+	sous-sous-systèmes}
 \end{figure}
 
 
-- 
cgit v1.2.3

