
Choix matériels et logiciels
****************************


Matériel utilisé
================

Le matériel doit être :
   * pas trop cher

   * léger et peu énergivore pour pouvoir être embarqué dans l'Ewee

   * interfaçable pour connecter facilement un assez grand nombre de
     capteurs

   * assez puissant pour traiter, présenter et diffuser un grand
     nombre de données

C'est pourquoi a été utilisé :
   * Raspberry Pi

   * Arduino

   * Affichage LCD


Arduino
-------

L'Arduino est une carte électronique très facilement interfaçable, et
à un prix largement abordable. Néanmoins, étant limitée au niveau
puissance, l'Arduino n'est pas la plus adaptée pour traiter les
données. L'Arduino utilisée lors du développement est une Uno rev3.
Toute carte Arduino supportant Firmata et alimentable par USB peut
être utilisée.


Raspberry Pi
------------

Pour pallier au manque de puissance de l'Arduino, la Raspberry Pi
semblait appropriée. De plus étant un mini ordinateur, elle est
capable d'interpréter divers langages de programmation. Utilisant
GNU/Linux Debian, ou plus précisément Raspbian, elle se connecte
facilement à internet et bénéficie de la diversité des logiciels
proposés en open-source pré-compilés pour la distribution. Est utilisé
un modèle B avec raspbian sur une carte SDHC de 8Go classe 10.


Affichage LCD
-------------

L'écran LCD permet de communiquer de communiquer rapidement et
intuitivement les données. L'écran proposé par Adafruit permet
d'afficher 32 caractères (16 sur 2 lignes) et dispose de 5 boutons
programmables ainsi que d'un potentiomètre permettant de régler la
luminosité.


Logiciels
=========

L'objectif est de lire des données avec l'arduino, les envoyer à la
Raspberry Pi qui les traite, les présente sur l'affichage LCD et enfin
les diffuse. Le langage de programmation utilisé sur la Raspberry Pi
doit pouvoir communiquer facilement avec l'Arduino et être assez
complet pour ensuite traiter les données. C'est pourquoi le python
semblait le plus adapté : la communication avec l'arduino est bien
implémentée et les nombreuses librairies développées sur python
permettent de faire à peu près tout ce que l'on veut.
