summaryrefslogtreecommitdiff
path: root/report/project.tex
diff options
context:
space:
mode:
Diffstat (limited to 'report/project.tex')
-rw-r--r--report/project.tex245
1 files changed, 222 insertions, 23 deletions
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
8différents capteurs et des entrées de l'utilisateur. 8différents capteurs et des entrées de l'utilisateur.
9 9
10\begin{figure}[h] 10\begin{figure}[h]
11 \centering 11 \centering
12 \includegraphics[width=0.8\textwidth]{resources/project-de2-io} 12 \includegraphics[width=0.8\textwidth]{resources/project-de2-io}
13 \caption{Capteurs/actionneurs autour de la carte Altera DE2} 13 \caption{Capteurs/actionneurs autour de la carte Altera DE2}
14\end{figure} 14\end{figure}
15 15
16\section{Matériel} 16\section{Matériel}
@@ -19,12 +19,12 @@ Des contraintes matérielles ont été imposées dans le cadre de ce projet, qui
19réalisera autour des composants suivants : 19réalisera autour des composants suivants :
20 20
21\begin{itemize} 21\begin{itemize}
22 \item Carte Altera DE2 équipée d'un FPGA Altera Cyclone II avec une horloge à 22 \item Carte Altera DE2 équipée d'un FPGA Altera Cyclone II avec une horloge à
23 50MHz et des interfaces utilisateurs (boutons, afficheurs, \ldots) 23 50MHz et des interfaces utilisateurs (boutons, afficheurs, \ldots)
24 \item Microphone ELECTRET 24 \item Microphone ELECTRET
25 \item Capteur de température LM35 25 \item Capteur de température LM35
26 \item Haut-parleur (8 Ohm) 26 \item Haut-parleur (8 Ohm)
27 \item Ventilateur (12V/1W) 27 \item Ventilateur (12V/1W)
28\end{itemize} 28\end{itemize}
29 29
30\section{Méthodologie} 30\section{Méthodologie}
@@ -38,9 +38,9 @@ Ainsi, la centrale domotique comprendra deux sous-systèmes : une partie alarme
38et une partie ventilation. 38et une partie ventilation.
39 39
40\begin{figure}[h] 40\begin{figure}[h]
41 \centering 41 \centering
42 \includegraphics[width=0.85\textwidth]{resources/project-topdown-subsystems} 42 \includegraphics[width=0.85\textwidth]{resources/project-topdown-subsystems}
43 \caption{Découpage du système en sous-systèmes} 43 \caption{Découpage du système en sous-systèmes}
44\end{figure} 44\end{figure}
45 45
46\subsection{Validation \og{}bottom-up\fg{}} 46\subsection{Validation \og{}bottom-up\fg{}}
@@ -52,24 +52,223 @@ nouveau testé globalement.
52 52
53\chapter{Interface de commande} 53\chapter{Interface de commande}
54 54
55\section{Contrôle} 55L'interface de commande comprend les entrées et les sorties permettant à
56l'utilisateur d'intéragir avec la centrale.
56 57
57\subsection{Commande du ventilateur} 58Celle-ci comprend un module de commande (utilisant les interrupteurs et les
59ports GPIO de la carte DE2) et un module d'affichage (via les DELs, les
60afficheurs 7-segments et l'écran à cristaux liquides).
61
62\section{Commande}
63
64Le module de commande prendra en compte les entrées des paramètres
65utilisateurs, via les interrupteurs, et des paramètres environnementaux, via les
66capteurs de bruit et de température connectés aux ports GPIO.
67
68\begin{figure}[h]
69 \centering
70 \includegraphics{resources/commande-interrupteurs-legende}
71 \caption{Actions des interrupteurs de la carte DE2}
72
73 \centering
74 \includegraphics{resources/schema-commande-io}
75 \caption{Entrées/sorties du sous-système \og{}commande\fg{}}
76\end{figure}
77
78Ce module a été décomposé en deux sous-modules semi-indépendants, l'un destiné à
79contrôler l'alarme, et l'autre le ventilateur, ce dernier étant désactivé
80lorsque l'alarme est déclenchée.
81
82\begin{figure}[h]
83 \centering
84 \includegraphics{resources/schema-commande-logic}
85 \caption{Schéma bloc du sous-système \og{}commande\fg{}}
86\end{figure}
87
88\newpage
58 89
59\subsection{Commande de l'alarme} 90\subsection{Commande de l'alarme}
60 91
61\section{Afficheur 7-segments} 92\begin{figure}[p]
93 \centering
94 \includegraphics{resources/schema-alarm-io}
95 \caption{Entrées/sorties du sous-sous-système \og{}alarme\fg{}}
96
97 \centering
98 \includegraphics{resources/schema-alarm-logic}
99 \caption{Schéma du sous-sous-système \og{}alarme\fg{}}
100 \label{fig:alarm-logic}
101\end{figure}
102L'alarme doit être activée (state) dans les cas suivants :
103
104\begin{itemize}
105 \item Condition nécéssaire : l'utilisateur a activé l'alarme (enable)
106 \item Condition nécéssaire : un bruit est détecté (activate)
107 \item Condition suffisante : l'alarme est déjà activée (alarm)
108\end{itemize}
109
110L'ensemble des situations possibles sont représentables par la table de vérité
111~\ref{tab:tab-alarm}.
112
113\begin{table}[p]
114 \centering
115 \begin{tabular}{ c | c | c || c }
116 enable & activate & alarm & STATE\\
117 \hline
118 0 & 0 & 0 & 0\\
119 0 & 0 & 1 & 1\\
120 0 & 1 & 0 & 0\\
121 0 & 1 & 1 & 1\\
122 1 & 0 & 0 & 0\\
123 1 & 0 & 1 & 1\\
124 1 & 1 & 0 & 1\\
125 1 & 1 & 1 & 1\\
126 \end{tabular}
127 \caption{Table de vérité de l'activation de l'alarme}
128 \label{tab:tab-alarm}
129\end{table}
130
131De cette table, nous obtenons l'équation booléenne évidente :
132
133\begin{equation}
134 STATE = (enable \cdot activate) + alarm
135\end{equation}
136
137Le circuit correspondant est ainsi celui de la figure ~\ref{fig:alarm-logic}.
138
139
140%\newpage
141
142\subsection{Commande du ventilateur}
143
144\begin{figure}[p]
145 \centering
146 \includegraphics{resources/schema-fan-io}
147 \caption{Entrées/sorties du sous-sous-système \og{}ventilation\fg{}}
148
149 \centering
150 \includegraphics{resources/schema-fan-logic}
151 \caption{Schéma du sous-sous-système \og{}ventilation\fg{}}
152 \label{fig:fan-logic}
153\end{figure}
154
155La sortie $FAN\_AUTO$ indique l'activation du mode automatique lorsque
156celui-ci est sélectionné et que la vitesse définie manuellement par
157l'utilisateur est la vitesse 0. Cette dernière condition donnée sur $no\_manual$
158est vérifiée à l'aide d'un comparateur.
159
160\begin{equation}
161 FAN\_AUTO = fan\_auto\_user \cdot no\_manual
162\end{equation}
163
164Un premier multiplexeur permet de choisir la valeur $fan\_auto\_value$ définie à
165la vitesse 3 si le capteur de température est activé ($hot$).
166
167Un second multiplexeur permet la sélection entre la vitesse manuellement définie
168par l'utilisateur ($fan\_speed$) ou la vitesse automatique déterminée par l'état
169du capteur ($fan\_auto\_value$) en fonction de l'activation du mode automatique
170$FAN\_AUTO$.
171
172Un troisième multiplexeur permet de désactiver le ventilateur,
173quelque soit la vitesse définie manuellement ou automatiquement par l'état du capteur,
174selon l'entrée $enable$.
175
176Le schéma synthétique est celui du ~\ref{fig:fan-logic}
177
178
179
180\newpage
181
182\section{Affichage}
183
184L'état de la centrale domotique est visible par l'utilisateur au travers de
185multiples DELs ainsi que des afficheurs 7-segments.
186
187L'écran à cristaux liquide affiche quant à lui un message trivial en 32
188caractères.
189
190\subsection{Afficheurs 7-segments}
191
192\begin{figure}[h]
193 \centering
194 \includegraphics{resources/schema-display-io}
195 \caption{Entrées/sorties du sous-sous-système \og{}display\fg{}}
196\end{figure}
197
198Les huit afficheurs 7-segments, à l'exception de HEX5, sont utilisés. Celui-ci
199est donc éteint à l'aide d'une constante $7 \times 1$, puisqu'actif à
200l'état bas.
201
202\subsubsection{Témoins d'activation}
203
204Les afficheurs HEX7 et HEX6 devant respectivement afficher les lettres
205\og{}A\fg{} et \og{}F\fg{} quand le mode alarme et la ventilation
206automatique sont activés, deux constantes ayant pour valeurs hexadécimales A et
207F ont été créées.
208Ces constantes sont ensuite traduites par le module
209seven\_segment\_decoder pour être affichables.
210Un multiplexeur pour chaque afficheur permet ensuite d'afficher la constante
211associée ou bien de désactiver l'afficheur.
212Le schéma associé est le ~\ref{fig:mode-indicator-logic}.
213
214\begin{figure}[p]
215 \centering
216 \includegraphics{resources/schema-display-af}
217 \caption{Schéma d'affichage des témoins d'activation}
218 \label{fig:mode-indicator-logic}
219\end{figure}
220
221
222\subsubsection{Vitesse du ventilateur}
223
224Le module seven\_segment\_decoder ayant une entrée sur 4 bits, et la vitesse du
225ventilateur définie sur l'entrée $SPEED[1..0]$ étant codée sur 2 bits, une
226constante binaire 00 a été concaténée en LSB. Le résultat de la conversion de la
227valeur est ensuite directement affichée sur HEX4.
228Le schéma associé est le ~\ref{fig:speed-indicator-logic}.
229
230\begin{figure}[h]