223 lines
8.1 KiB
TeX
223 lines
8.1 KiB
TeX
\documentclass{scrreprt}
|
|
%\documentclass[draft]{scrreprt}
|
|
\usepackage{fontspec}
|
|
\usepackage{xunicode}
|
|
\usepackage{polyglossia}
|
|
\usepackage{csquotes}
|
|
\usepackage{caption}
|
|
\usepackage{subcaption}
|
|
\usepackage{appendix}
|
|
\usepackage{listings}
|
|
\usepackage{color}
|
|
\usepackage[singletitle=true,citestyle=verbose-trad2,bibstyle=verbose,backend=biber,citepages=omit]{biblatex}
|
|
\usepackage[hidelinks]{hyperref}
|
|
\usepackage[acronym,toc,xindy]{glossaries}
|
|
|
|
\setmainlanguage{french}
|
|
|
|
\title{La lumière s'éteint-elle dans le frigo ?}
|
|
\subtitle{ou bla bli blu}
|
|
\author{Nathanaël \textsc{Restori}}
|
|
\date{\today}
|
|
|
|
\bibliography{bibliographie.bib}
|
|
|
|
\renewcommand*{\glstextformat}{\textbf}
|
|
\makeglossaries
|
|
\input{glossaire.tex}
|
|
|
|
\renewcommand{\appendixname}{Annexes}
|
|
\renewcommand{\appendixtocname}{Annexes}
|
|
\renewcommand{\appendixpagename}{Annexes}
|
|
|
|
\definecolor{gray}{rgb}{0.5,0.5,0.5}
|
|
|
|
\lstset{
|
|
language=C++,
|
|
basicstyle=\footnotesize,
|
|
numbers=left,
|
|
numberstyle=\tiny\color{gray},
|
|
numbersep=7pt,
|
|
breaklines=true,
|
|
}
|
|
|
|
\begin{document}
|
|
|
|
\input{couverture.tex}
|
|
|
|
\chapter*{Remerciements}
|
|
\thispagestyle{empty}
|
|
Je remercie bla bla bla...
|
|
\vfill
|
|
Image de couverture par \enquote{oomlout}, sous licence Creative Commons Attribution-Share like 2.0 Generic (CC BY-SA 2.0)
|
|
|
|
\tableofcontents
|
|
|
|
\chapter{Introduction}
|
|
\section{Motivations}
|
|
J'ai décidé de faire mon travaille de maturité sur ce sujet car je suis passionné de robotique depuis tout petit. J'ai commencé en participant à un atelier de soudures à la Maison Picson\footnote{Établissement servant de cantine proposant aussi des activités à Blonay}. Je suis aussi allé à la première édition du Festival de Robotique à l'EPFL en 2008 et ai participé à deux ateliers (introduction à la programmation de microcontrôleur et soudure d'un robot DIDEL).
|
|
|
|
Je suis aussi passionné par l'informatique en général, la programmation ainsi que les logiciels libres.
|
|
|
|
\section{Présentation du travail}
|
|
TODO
|
|
|
|
\section{Les principes du logiciel libre}
|
|
Un logiciel libre est un logiciel qui respecte quatre libertés fondamentales~:
|
|
\begin{enumerate}
|
|
\item la liberté d'utiliser le logiciel
|
|
\item la liberté de copier le logiciel
|
|
\item la liberté d'étudier le logiciel
|
|
\item la liberté de modifier le logiciel et de redistribuer les versions modifiées
|
|
\end{enumerate}
|
|
Les deux dernière libertés demandent la mise à disposition du \gls{code source}. On parle souvent de \emph{copyleft}, par opposition au copyright.
|
|
|
|
On retrouve aussi le terme \enquote{\emph{open source}}, mais celui-ci est ambigu : celui-ci pouvant désigner un logiciel des les sources sont disponibles mais non réutilisables ou redistribuable ou désigner un logiciel libre (comme définit par \gls{OSI}).
|
|
|
|
Les sources du logiciels sont soumis à des licences spécifiques garantissant ces libertés. Les plus connues sont la \gls{GPL}, la \gls{BSD} ou la MIT (une copie de cette dernière est disponible à l'annexe \ref{chap:mit}).
|
|
|
|
Quelques logiciels libres connus sont Firefox et Thunderbird, Linux, OpenOffice.org et LibreOffice.
|
|
|
|
\section{Conventions d'écriture}
|
|
Les mots en \textbf{gras} sont des mots expliqués dans le glossaire ou des acronymes.
|
|
|
|
Les textes écrits avec \verb|cette police d'écriture| sont des extraits de code.
|
|
|
|
\chapter{Le matériel}
|
|
\section{Le choix de la plate-forme}
|
|
Il existe de nombreuse \gls{plate-forme} en robotique~: par exemple, le Boe-Bot de Parallax, utilisé dans les cours facultatifs de robotique de M. \textsc{Gardon}. J'ai fait le choix d'un Arduino car cette un plate-forme de plus en plus répandue, peu chère (20 € pour une carte programmable) et puissante. On trouve de nombreux exemples de \gls{DIY}, elle est programmable en \gls{C++} (donc il est possible d'utiliser des \glspl{bibliotheque}) et c'est du \gls{materiel libre}.
|
|
|
|
\section{Les capteurs}
|
|
Il a été décidé de faire une station météo. Nous avons donc besoin d'un thermomètre (figure \ref{fig:BMP085}), d'un hygromètre (figure \ref{fig:BMP085} aussi), d'un baromètre (figure \ref{fig:TSL2561}) et d'un capteur de luminosité (figure \ref{fig:DHT22}). J'ai ajouté une horloge (figure \ref{fig:ChronoDot})qui nous permettra d'avoir l'heure à laquelle les mesures ont été prises. Tous les capteurs ont été commandé sur le site d'Adafruit. L'hygromètre ne se connecte malheureusement pas en I²C, aucun capteur de ce type n'étant disponible.
|
|
|
|
\begin{figure}[h]
|
|
\centering
|
|
\begin{subfigure}[b]{0.23\textwidth}
|
|
\centering
|
|
\includegraphics[width=1\textwidth]{images/perso/BMP085.JPG}
|
|
\caption{BMP085}
|
|
\label{fig:BMP085}
|
|
\end{subfigure}
|
|
~
|
|
\begin{subfigure}[b]{0.23\textwidth}
|
|
\centering
|
|
\includegraphics[width=1\textwidth]{images/perso/ChronoDot.JPG}
|
|
\caption{ChronoDot}
|
|
\label{fig:ChronoDot}
|
|
\end{subfigure}
|
|
~
|
|
\begin{subfigure}[b]{0.23\textwidth}
|
|
\centering
|
|
\includegraphics[width=1\textwidth]{images/perso/DHT22.JPG}
|
|
\caption{DHT22}
|
|
\label{fig:DHT22}
|
|
\end{subfigure}
|
|
~
|
|
\begin{subfigure}[b]{0.23\textwidth}
|
|
\centering
|
|
\includegraphics[width=1\textwidth]{images/perso/TSL2561.JPG}
|
|
\caption{TSL2561}
|
|
\label{fig:TSL2561}
|
|
\end{subfigure}
|
|
\caption{Les capteurs}
|
|
\caption*{Photos personnelles}
|
|
\end{figure}
|
|
|
|
\section{Les limitations}
|
|
J'ai vite été confronté a quelque limitations : la mémoire de l'Arduino ne peux contenir seulement 32256 octets de code compilé. Il ne peux donc pas contenir en même temps les \glspl{bibliotheque} pour utiliser les capteurs en I²C, utiliser le port RJ45 et utiliser la carte SD. La solution a été de couper le programme en deux : il y a donc un code pour afficher les mesures en direct à travers un navigateur web et un code pour prendre des mesures de manière régulière et les enregistrer.
|
|
|
|
|
|
\begin{figure}[b]
|
|
\centering
|
|
\includegraphics[width=1\textwidth]{images/perso/montage.JPG}
|
|
\caption{Montage complet}
|
|
\caption*{Photo personnelle}
|
|
\label{fig:montage}
|
|
\end{figure}
|
|
|
|
\listoffigures
|
|
|
|
\chapter*{Bibliographie}
|
|
\addcontentsline{toc}{chapter}{Bibliographie}
|
|
\nocite{*}
|
|
\section*{Images}
|
|
\printbibliography[heading=none,keyword=image]
|
|
|
|
\glsadd{DIYg}
|
|
\printglossary[type=\acronymtype,title=Acronymes,toctitle=Acronymes]
|
|
\newpage
|
|
\printglossary[type=main,title=Glossaire,toctitle=Glossaire]
|
|
|
|
\appendix
|
|
\appendixpage
|
|
\addappheadtotoc
|
|
|
|
\chapter{Licence MIT}
|
|
\label{chap:mit}
|
|
|
|
\begin{lstlisting}
|
|
/*
|
|
Copyright (C) <year> <copyright holders>
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
copy of this software and associated documentation files (the "Software"),
|
|
to deal in the Software without restriction, including without limitation
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
DEALINGS IN THE SOFTWARE.
|
|
|
|
*/
|
|
\end{lstlisting}
|
|
|
|
\chapter{sensors.json}
|
|
|
|
\begin{lstlisting}
|
|
{
|
|
"sensors":[
|
|
{
|
|
"data":"17:56:0 13/9/2012"
|
|
},
|
|
{
|
|
"data":21.50
|
|
},
|
|
{
|
|
"data":94298
|
|
},
|
|
{
|
|
"data":602.11
|
|
},
|
|
{
|
|
"data":38.30
|
|
},
|
|
{
|
|
"data":30
|
|
}
|
|
]
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\chapter{index.html}
|
|
|
|
\lstinputlisting[language=HTML]{../arduino/WeatherStationWeb/index.html}
|
|
|
|
\chapter{WeatherStationWeb.ino}
|
|
|
|
\lstinputlisting{../arduino/WeatherStationWeb/WeatherStationWeb.ino}
|
|
|
|
\chapter{WeatherStationLogger.ino}
|
|
|
|
\lstinputlisting{../arduino/WeatherStationLogger/WeatherStationLogger.ino}
|
|
|
|
\end{document}
|