<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://projets-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Qlambert</id>
		<title>Wiki de Projets IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://projets-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Qlambert"/>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Qlambert"/>
		<updated>2026-05-14T03:21:14Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=9447</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=9447"/>
				<updated>2014-02-14T14:16:58Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 20 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
-Plexiglas permettant la réalisation de la borne&lt;br /&gt;
&lt;br /&gt;
-Moteur pour plateau à bouteille (x2)&lt;br /&gt;
&lt;br /&gt;
-LED pour éclairage des bouteilles&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
*Finir d’implémenter BDD&lt;br /&gt;
*Système de favori sur le smartphone du client&lt;br /&gt;
*Partage Facebook&lt;br /&gt;
*Remplir la BDD avec des données&lt;br /&gt;
*Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis, à partir de Janvier&lt;br /&gt;
*Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
*Mettre en place les LED dasn la borne&lt;br /&gt;
*Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
*Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir aisément peupler la base de données, nous avons décidé d'utiliser un logiciel nous offrant une interface graphique afin d'ajouter des entrées, ce logiciel se nomme &amp;quot;SQLite Database Browser&amp;quot; (http://sourceforge.net/projects/sqlitebrowser/). Ce logiciel nous fournit en sortie une base de données au format SQLite. En complément de cela, nous utilisons dans notre application Android une librairie tiers permettant d'importer au démarrage de l'application notre fichier de base de données. Cette librairie est disponible ici : https://github.com/jgilfelt/android-sqlite-asset-helper&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sqldatabrowser.jpg‎|400px|thumb|center|SQLite Database Browser, avec notre table 'type' ouverte]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
*7 Phases&lt;br /&gt;
*Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté pour le protocole Wifi Peer to Peer, qui permet de facilement établir une connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air davantage en adéquation avec ce que nous recherchons. En effet, il est possible de rendre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'application pour client, nous avons implémenté la filtration des vins par affinité de vins, et nous avons complété la fonctionnalité permettant d'ajouter des vins à ses favoris.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Liaison_bluetooth_protocol.PNG|200px|thumb|center|Protocol de transfert des favoris]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
La semaine a principalement été consacrée à la réalisation de la borne physique.&lt;br /&gt;
&lt;br /&gt;
Initialement, nous avions prévu de réaliser la borne entièrement en plexiglass, il s'est malheureusement avéré qu'en plus du coup élevé de la matière première, l'atelier mécanique de l'école était incapable d'usiner les pièces. De même, les matières plastique posées différents soucis. Après prospections de différentes solutions, nous avons donc choisi de réaliser nous même la borne en bois.&lt;br /&gt;
&lt;br /&gt;
Pour cela, le LIFR nous a fournis différents matériaux restant d'anciens projets :&lt;br /&gt;
* 2 planche de bois 120*60*1,5 cm&lt;br /&gt;
* 1 planche de bois 120*60*0,5 cm&lt;br /&gt;
* 1 plaque de plexiglass 100*50*0,5 cm&lt;br /&gt;
* Peintures, pinceaux, etc.&lt;br /&gt;
&lt;br /&gt;
Etant donné le changement de situation, les plans crées deviennent inutilisable. Nous avons donc dû remanier les plans afin que nous puissions facilement usiner la borne. &lt;br /&gt;
En l'état actuelle, l'assemblage de la borne a déjà commencé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons continuer à usiner les différentes pièces constituant la borne, et complété l'assemblage.&lt;br /&gt;
Nous avons également mis au point le système de plateau tournant, permettant au bouteilles de tourner sur elles mêmes afin que le tag RFID soit scanné à coup sur.&lt;br /&gt;
&lt;br /&gt;
Les plateaux sont réalisé en plexiglass, afin de laisser passer la lumière des diode (s'allumant lorsqu'une bouteille est détecté). Ces plateaux sont reliés à des moteurs pas à pas ce situant quelque centimètre en dessous, invisible pour l'utilisateur. La transmission du mouvement se fait grâce à une combinaison d'engrenage, améliorant de plus le couple afin de faire correctement les bouteilles.&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons durant cette semaine presque finis d'assembler les différentes pièces de la borne et mis en peinture les différentes pièces.&lt;br /&gt;
&lt;br /&gt;
Nous avons également mis au point et réalisé une carte d'alimentation.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons effectué les derniers perfectionnements concernant la partie software de la borne.&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=9246</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=9246"/>
				<updated>2014-02-07T10:12:39Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 19 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
-Plexiglas permettant la réalisation de la borne&lt;br /&gt;
&lt;br /&gt;
-Moteur pour plateau à bouteille (x2)&lt;br /&gt;
&lt;br /&gt;
-LED pour éclairage des bouteilles&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
*Finir d’implémenter BDD&lt;br /&gt;
*Système de favori sur le smartphone du client&lt;br /&gt;
*Partage Facebook&lt;br /&gt;
*Remplir la BDD avec des données&lt;br /&gt;
*Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis, à partir de Janvier&lt;br /&gt;
*Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
*Mettre en place les LED dasn la borne&lt;br /&gt;
*Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
*Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir aisément peupler la base de données, nous avons décidé d'utiliser un logiciel nous offrant une interface graphique afin d'ajouter des entrées, ce logiciel se nomme &amp;quot;SQLite Database Browser&amp;quot; (http://sourceforge.net/projects/sqlitebrowser/). Ce logiciel nous fournit en sortie une base de données au format SQLite. En complément de cela, nous utilisons dans notre application Android une librairie tiers permettant d'importer au démarrage de l'application notre fichier de base de données. Cette librairie est disponible ici : https://github.com/jgilfelt/android-sqlite-asset-helper&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sqldatabrowser.jpg‎|400px|thumb|center|SQLite Database Browser, avec notre table 'type' ouverte]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
*7 Phases&lt;br /&gt;
*Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté pour le protocole Wifi Peer to Peer, qui permet de facilement établir une connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air davantage en adéquation avec ce que nous recherchons. En effet, il est possible de rendre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'application pour client, nous avons implémenté la filtration des vins par affinité de vins, et nous avons complété la fonctionnalité permettant d'ajouter des vins à ses favoris.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Liaison_bluetooth_protocol.PNG|200px|thumb|center|Protocol de transfert des favoris]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
La semaine a principalement été consacrée à la réalisation de la borne physique.&lt;br /&gt;
&lt;br /&gt;
Initialement, nous avions prévu de réaliser la borne entièrement en plexiglass, il s'est malheureusement avéré qu'en plus du coup élevé de la matière première, l'atelier mécanique de l'école était incapable d'usiner les pièces. De même, les matières plastique posées différents soucis. Après prospections de différentes solutions, nous avons donc choisi de réaliser nous même la borne en bois.&lt;br /&gt;
&lt;br /&gt;
Pour cela, le LIFR nous a fournis différents matériaux restant d'anciens projets :&lt;br /&gt;
* 2 planche de bois 120*60*1,5 cm&lt;br /&gt;
* 1 planche de bois 120*60*0,5 cm&lt;br /&gt;
* 1 plaque de plexiglass 100*50*0,5 cm&lt;br /&gt;
* Peintures, pinceaux, etc.&lt;br /&gt;
&lt;br /&gt;
Etant donné le changement de situation, les plans crées deviennent inutilisable. Nous avons donc dû remanier les plans afin que nous puissions facilement usiner la borne. &lt;br /&gt;
En l'état actuelle, l'assemblage de la borne a déjà commencé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons continuer à usiner les différentes pièces constituant la borne, et complété l'assemblage.&lt;br /&gt;
Nous avons également mis au point le système de plateau tournant, permettant au bouteilles de tourner sur elles mêmes afin que le tag RFID soit scanné à coup sur.&lt;br /&gt;
&lt;br /&gt;
Les plateaux sont réalisé en plexiglass, afin de laisser passer la lumière des diode (s'allumant lorsqu'une bouteille est détecté). Ces plateaux sont reliés à des moteurs pas à pas ce situant quelque centimètre en dessous, invisible pour l'utilisateur. La transmission du mouvement se fait grâce à une combinaison d'engrenage, améliorant de plus le couple afin de faire correctement les bouteilles.&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=9143</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=9143"/>
				<updated>2014-02-05T21:45:45Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 18 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
-Plexiglas permettant la réalisation de la borne&lt;br /&gt;
&lt;br /&gt;
-Moteur pour plateau à bouteille (x2)&lt;br /&gt;
&lt;br /&gt;
-LED pour éclairage des bouteilles&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
*Finir d’implémenter BDD&lt;br /&gt;
*Système de favori sur le smartphone du client&lt;br /&gt;
*Partage Facebook&lt;br /&gt;
*Remplir la BDD avec des données&lt;br /&gt;
*Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis, à partir de Janvier&lt;br /&gt;
*Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
*Mettre en place les LED dasn la borne&lt;br /&gt;
*Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
*Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir aisément peupler la base de données, nous avons décidé d'utiliser un logiciel nous offrant une interface graphique afin d'ajouter des entrées, ce logiciel se nomme &amp;quot;SQLite Database Browser&amp;quot; (http://sourceforge.net/projects/sqlitebrowser/). Ce logiciel nous fournit en sortie une base de données au format SQLite. En complément de cela, nous utilisons dans notre application Android une librairie tiers permettant d'importer au démarrage de l'application notre fichier de base de données. Cette librairie est disponible ici : https://github.com/jgilfelt/android-sqlite-asset-helper&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sqldatabrowser.jpg‎|400px|thumb|center|SQLite Database Browser, avec notre table 'type' ouverte]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
*7 Phases&lt;br /&gt;
*Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté pour le protocole Wifi Peer to Peer, qui permet de facilement établir une connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air davantage en adéquation avec ce que nous recherchons. En effet, il est possible de rendre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'application pour client, nous avons implémenté la filtration des vins par affinité de vins, et nous avons complété la fonctionnalité permettant d'ajouter des vins à ses favoris.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Liaison_bluetooth_protocol.PNG|200px|thumb|center|Protocol de transfert des favoris]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
La semaine a principalement été consacrée à la réalisation de la borne physique.&lt;br /&gt;
&lt;br /&gt;
Initialement, nous avions prévu de réaliser la borne entièrement en plexiglass, il s'est malheureusement avéré qu'en plus du coup élevé de la matière première, l'atelier mécanique de l'école était incapable d'usiner les pièces. De même, les matières plastique posées différents soucis. Après prospections de différentes solutions, nous avons donc choisi de réaliser nous même la borne en bois.&lt;br /&gt;
&lt;br /&gt;
Pour cela, le LIFR nous a fournis différents matériaux restant d'anciens projets :&lt;br /&gt;
* 2 planche de bois 120*60*1,5 cm&lt;br /&gt;
* 1 planche de bois 120*60*0,5 cm&lt;br /&gt;
* 1 plaque de plexiglass 100*50*0,5 cm&lt;br /&gt;
* Peintures, pinceaux, etc.&lt;br /&gt;
&lt;br /&gt;
Etant donné le changement de situation, les plans crées deviennent inutilisable. Nous avons donc dû remanier les plans afin que nous puissions facilement usiner la borne. &lt;br /&gt;
En l'état actuelle, l'assemblage de la borne a déjà commencé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=9141</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=9141"/>
				<updated>2014-02-05T21:43:28Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 18 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
-Plexiglas permettant la réalisation de la borne&lt;br /&gt;
&lt;br /&gt;
-Moteur pour plateau à bouteille (x2)&lt;br /&gt;
&lt;br /&gt;
-LED pour éclairage des bouteilles&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
*Finir d’implémenter BDD&lt;br /&gt;
*Système de favori sur le smartphone du client&lt;br /&gt;
*Partage Facebook&lt;br /&gt;
*Remplir la BDD avec des données&lt;br /&gt;
*Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis, à partir de Janvier&lt;br /&gt;
*Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
*Mettre en place les LED dasn la borne&lt;br /&gt;
*Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
*Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir aisément peupler la base de données, nous avons décidé d'utiliser un logiciel nous offrant une interface graphique afin d'ajouter des entrées, ce logiciel se nomme &amp;quot;SQLite Database Browser&amp;quot; (http://sourceforge.net/projects/sqlitebrowser/). Ce logiciel nous fournit en sortie une base de données au format SQLite. En complément de cela, nous utilisons dans notre application Android une librairie tiers permettant d'importer au démarrage de l'application notre fichier de base de données. Cette librairie est disponible ici : https://github.com/jgilfelt/android-sqlite-asset-helper&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sqldatabrowser.jpg‎|400px|thumb|center|SQLite Database Browser, avec notre table 'type' ouverte]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
*7 Phases&lt;br /&gt;
*Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté pour le protocole Wifi Peer to Peer, qui permet de facilement établir une connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air davantage en adéquation avec ce que nous recherchons. En effet, il est possible de rendre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'application pour client, nous avons implémenté la filtration des vins par affinité de vins, et nous avons complété la fonctionnalité permettant d'ajouter des vins à ses favoris.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Liaison_bluetooth_protocol.PNG|200px|thumb|center|Protocol de transfert des favoris]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
La semaine a principalement été consacrée à la réalisation de la borne physique.&lt;br /&gt;
&lt;br /&gt;
Initialement, nous avions prévu de réaliser la borne entièrement en plexiglass, il s'est malheureusement avéré qu'en plus du coup élevé de la matière première, l'atelier mécanique de l'école était incapable d'usiner les pièces. De même, les matières plastique posées différents soucis. Après prospections de différentes solutions, nous avons donc choisi de réaliser nous même la borne en bois.&lt;br /&gt;
&lt;br /&gt;
Pour cela, le LIFR nous a fournis différents matériaux restant d'anciens projets :&lt;br /&gt;
* 2 planche de bois 120*60*1,5 cm&lt;br /&gt;
* 1 planche de bois 120*60*0,5 cm&lt;br /&gt;
* 1 plaque de plexiglass 100*50*0,5 cm&lt;br /&gt;
* Peintures, pinceaux, etc.&lt;br /&gt;
&lt;br /&gt;
Etant donné le changement de situation, les plans crées deviennent inutilisable. Nous avons donc remanier les plans afin que nous puissions facilement usiner la borne. &lt;br /&gt;
En l'état actuelle, l'assemblage de la borne a déjà commencé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8726</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8726"/>
				<updated>2014-01-26T18:08:18Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 17 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
*Finir d’implémenter BDD&lt;br /&gt;
*Système de favori sur le smartphone du client&lt;br /&gt;
*Partage Facebook&lt;br /&gt;
*Remplir la BDD avec des données&lt;br /&gt;
*Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis, à partir de Janvier&lt;br /&gt;
*Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
*Mettre en place les LED dasn la borne&lt;br /&gt;
*Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
*Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir aisément peupler la base de données, nous avons décidé d'utiliser un logiciel nous offrant une interface graphique afin d'ajouter des entrées, ce logiciel se nomme &amp;quot;SQLite Database Browser&amp;quot; (http://sourceforge.net/projects/sqlitebrowser/). Ce logiciel nous fournit en sortie une base de données au format SQLite. En complément de cela, nous utilisons dans notre application Android une librairie tiers permettant d'importer au démarrage de l'application notre fichier de base de données. Cette librairie est disponible ici : https://github.com/jgilfelt/android-sqlite-asset-helper&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sqldatabrowser.jpg‎|400px|thumb|center|SQLite Database Browser, avec notre table 'type' ouverte]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
*7 Phases&lt;br /&gt;
*Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté pour le protocole Wifi Peer to Peer, qui permet de facilement établir une connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air davantage en adéquation avec ce que nous recherchons. En effet, il est possible de rendre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'application pour client, nous avons implémenté la filtration des vins par affinité de vins, et nous avons complété la fonctionnalité permettant d'ajouter des vins à ses favoris.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
INSERER DIAG BLUETOOTH !!!!!!!!!!!!!!!!!!!!!!! +explication&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8725</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8725"/>
				<updated>2014-01-26T18:05:33Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 13 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
*Finir d’implémenter BDD&lt;br /&gt;
*Système de favori sur le smartphone du client&lt;br /&gt;
*Partage Facebook&lt;br /&gt;
*Remplir la BDD avec des données&lt;br /&gt;
*Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis, à partir de Janvier&lt;br /&gt;
*Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
*Mettre en place les LED dasn la borne&lt;br /&gt;
*Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
*Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir aisément peupler la base de données, nous avons décidé d'utiliser un logiciel nous offrant une interface graphique afin d'ajouter des entrées, ce logiciel se nomme &amp;quot;SQLite Database Browser&amp;quot; (http://sourceforge.net/projects/sqlitebrowser/). Ce logiciel nous fournit en sortie une base de données au format SQLite. En complément de cela, nous utilisons dans notre application Android une librairie tiers permettant d'importer au démarrage de l'application notre fichier de base de données. Cette librairie est disponible ici : https://github.com/jgilfelt/android-sqlite-asset-helper&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sqldatabrowser.jpg‎|400px|thumb|center|SQLite Database Browser, avec notre table 'type' ouverte]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
*7 Phases&lt;br /&gt;
*Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté pour le protocole Wifi Peer to Peer, qui permet de facilement établir une connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air davantage en adéquation avec ce que nous recherchons. En effet, il est possible de rendre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
INSERER DIAG BLUETOOTH !!!!!!!!!!!!!!!!!!!!!!! +explication&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Sqldatabrowser.jpg&amp;diff=8724</id>
		<title>Fichier:Sqldatabrowser.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Sqldatabrowser.jpg&amp;diff=8724"/>
				<updated>2014-01-26T18:01:46Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8723</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8723"/>
				<updated>2014-01-26T18:01:22Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
*Finir d’implémenter BDD&lt;br /&gt;
*Système de favori sur le smartphone du client&lt;br /&gt;
*Partage Facebook&lt;br /&gt;
*Remplir la BDD avec des données&lt;br /&gt;
*Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis, à partir de Janvier&lt;br /&gt;
*Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
*Mettre en place les LED dasn la borne&lt;br /&gt;
*Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
*Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
*7 Phases&lt;br /&gt;
*Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté pour le protocole Wifi Peer to Peer, qui permet de facilement établir une connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air davantage en adéquation avec ce que nous recherchons. En effet, il est possible de rendre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
INSERER DIAG BLUETOOTH !!!!!!!!!!!!!!!!!!!!!!! +explication&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8722</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8722"/>
				<updated>2014-01-26T17:51:51Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 16 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
&lt;br /&gt;
-Finir d’implémenter BDD&lt;br /&gt;
&lt;br /&gt;
-Système de favori sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
-Partage Facebook&lt;br /&gt;
&lt;br /&gt;
-Remplir la BDD avec des données&lt;br /&gt;
&lt;br /&gt;
-Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(A partir de Janvier)&lt;br /&gt;
&lt;br /&gt;
-Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
&lt;br /&gt;
-Mettre en place les LED dasn la borne&lt;br /&gt;
&lt;br /&gt;
-Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
&lt;br /&gt;
-Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
*7 Phases&lt;br /&gt;
*Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté pour le protocole Wifi Peer to Peer, qui permet de facilement établir une connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air davantage en adéquation avec ce que nous recherchons. En effet, il est possible de rendre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
INSERER DIAG BLUETOOTH !!!!!!!!!!!!!!!!!!!!!!! +explication&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8721</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8721"/>
				<updated>2014-01-26T17:50:53Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 16 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
&lt;br /&gt;
-Finir d’implémenter BDD&lt;br /&gt;
&lt;br /&gt;
-Système de favori sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
-Partage Facebook&lt;br /&gt;
&lt;br /&gt;
-Remplir la BDD avec des données&lt;br /&gt;
&lt;br /&gt;
-Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(A partir de Janvier)&lt;br /&gt;
&lt;br /&gt;
-Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
&lt;br /&gt;
-Mettre en place les LED dasn la borne&lt;br /&gt;
&lt;br /&gt;
-Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
&lt;br /&gt;
-Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
*7 Phases&lt;br /&gt;
*Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté pour le protocole Wifi Peer to Peer, qui permet de facilement établir une connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air plus en adéquation avec ce que nous recherchons. En effet, il est possible de rentre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
INSERER DIAG BLUETOOTH !!!!!!!!!!!!!!!!!!!!!!! +explication&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8720</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8720"/>
				<updated>2014-01-26T17:50:06Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 15 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
&lt;br /&gt;
-Finir d’implémenter BDD&lt;br /&gt;
&lt;br /&gt;
-Système de favori sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
-Partage Facebook&lt;br /&gt;
&lt;br /&gt;
-Remplir la BDD avec des données&lt;br /&gt;
&lt;br /&gt;
-Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(A partir de Janvier)&lt;br /&gt;
&lt;br /&gt;
-Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
&lt;br /&gt;
-Mettre en place les LED dasn la borne&lt;br /&gt;
&lt;br /&gt;
-Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
&lt;br /&gt;
-Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
*7 Phases&lt;br /&gt;
*Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté sur le protocole Wifi Peer to Peer, qui de facilement établir un connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air plus en adéquation avec ce que nous recherchons. En effet, il est possible de rentre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
INSERER DIAG BLUETOOTH !!!!!!!!!!!!!!!!!!!!!!! +explication&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8719</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8719"/>
				<updated>2014-01-26T17:49:42Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 13 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
&lt;br /&gt;
-Finir d’implémenter BDD&lt;br /&gt;
&lt;br /&gt;
-Système de favori sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
-Partage Facebook&lt;br /&gt;
&lt;br /&gt;
-Remplir la BDD avec des données&lt;br /&gt;
&lt;br /&gt;
-Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(A partir de Janvier)&lt;br /&gt;
&lt;br /&gt;
-Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
&lt;br /&gt;
-Mettre en place les LED dasn la borne&lt;br /&gt;
&lt;br /&gt;
-Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
&lt;br /&gt;
-Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
&lt;br /&gt;
- 7 Phases&lt;br /&gt;
&lt;br /&gt;
- Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté sur le protocole Wifi Peer to Peer, qui de facilement établir un connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air plus en adéquation avec ce que nous recherchons. En effet, il est possible de rentre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
INSERER DIAG BLUETOOTH !!!!!!!!!!!!!!!!!!!!!!! +explication&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8718</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8718"/>
				<updated>2014-01-26T17:48:19Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 16 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
&lt;br /&gt;
-Finir d’implémenter BDD&lt;br /&gt;
&lt;br /&gt;
-Système de favori sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
-Partage Facebook&lt;br /&gt;
&lt;br /&gt;
-Remplir la BDD avec des données&lt;br /&gt;
&lt;br /&gt;
-Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(A partir de Janvier)&lt;br /&gt;
&lt;br /&gt;
-Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
&lt;br /&gt;
-Mettre en place les LED dasn la borne&lt;br /&gt;
&lt;br /&gt;
-Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
&lt;br /&gt;
-Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
&lt;br /&gt;
- 7 Phases&lt;br /&gt;
&lt;br /&gt;
- Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé a développer la communication entre le smartphone et la borne.&lt;br /&gt;
Nous avons pour cela opté sur le protocole Wifi Peer to Peer, qui de facilement établir un connexion wifi entre 2 dispositifs tout en ayant de bons débits et une bonne portée.&lt;br /&gt;
&lt;br /&gt;
Cependant, après développement de la solution, certains inconvénient de ce type de connexion nous semble rédhibitoire. En effet, la connexion n'est pas stable. De plus, d'un point de vue ergonomique, l'utilisateur doit activer manuellement ce type de connexion dans les paramètres avancé de son smartphone, puis autoriser manuellement la connexion, ce qui serait une véritable perte de temps pour le client.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'essayer un autre protocole : le Bluetooth. Le développement de la connexion est encore en cours de réalisation, mais ce type de connexion à l'air plus en adéquation avec ce que nous recherchons. En effet, il est possible de rentre l'établissement de la connexion entièrement automatisé sans qu'une quelconque action soit demandée à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
INSERER DIAG BLUETOOTH !!!!!!!!!!!!!!!!!!!!!!! +explication&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8717</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8717"/>
				<updated>2014-01-26T17:36:30Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 13 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
&lt;br /&gt;
-Finir d’implémenter BDD&lt;br /&gt;
&lt;br /&gt;
-Système de favori sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
-Partage Facebook&lt;br /&gt;
&lt;br /&gt;
-Remplir la BDD avec des données&lt;br /&gt;
&lt;br /&gt;
-Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(A partir de Janvier)&lt;br /&gt;
&lt;br /&gt;
-Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
&lt;br /&gt;
-Mettre en place les LED dasn la borne&lt;br /&gt;
&lt;br /&gt;
-Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
&lt;br /&gt;
-Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineures sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
&lt;br /&gt;
- 7 Phases&lt;br /&gt;
&lt;br /&gt;
- Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Changement du protocole de communication Borne&amp;lt;=&amp;gt;Smartphone.&lt;br /&gt;
&lt;br /&gt;
Le protocole Wifi P2P n'étant pas suffisemment stable pour notre utilisation, nous avons décider de nous retourner sur un appairage Bluetooth. Celui-ci est en cours de réalisation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
INSERER DIAG BLUETOOTH !!!!!!!!!!!!!!!!!!!!!!! +explication&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8716</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8716"/>
				<updated>2014-01-26T17:36:08Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 13 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
&lt;br /&gt;
-Finir d’implémenter BDD&lt;br /&gt;
&lt;br /&gt;
-Système de favori sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
-Partage Facebook&lt;br /&gt;
&lt;br /&gt;
-Remplir la BDD avec des données&lt;br /&gt;
&lt;br /&gt;
-Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(A partir de Janvier)&lt;br /&gt;
&lt;br /&gt;
-Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
&lt;br /&gt;
-Mettre en place les LED dasn la borne&lt;br /&gt;
&lt;br /&gt;
-Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
&lt;br /&gt;
-Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également effectué quelques modifications mineure sur la base de données, nous avons ajouté les champs suivant dans la table &amp;quot;vin&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
*Appelation&lt;br /&gt;
*Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
*Température de service (10c etc...)&lt;br /&gt;
*Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
La semaine à été réservé à la réalisation du rapport de mi-projet, ainsi qu'a la préparation de la présentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
Réception des moteurs Pas-à-Pas, intégration du code de contrôle de ceux-ci dans l'Arduino.&lt;br /&gt;
&lt;br /&gt;
La solution des moteurs Pas-à-Pas est lié au fait que ceux-ci sont réversible, et permettent de contrôler le sens de rotation. Nous avons dû intégrer les fonctions de contrôle des moteurs via une interruption RTI (Real Time Interrupt) car les moteur Pas-à-Pas doivent être contrôler avec précision, ceux-ci sans interruption ne fonctionnait pas.&lt;br /&gt;
&lt;br /&gt;
Les caractéristiques moteurs sont:&lt;br /&gt;
&lt;br /&gt;
- 7 Phases&lt;br /&gt;
&lt;br /&gt;
- Alimentation 5-12v&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
Changement du protocole de communication Borne&amp;lt;=&amp;gt;Smartphone.&lt;br /&gt;
&lt;br /&gt;
Le protocole Wifi P2P n'étant pas suffisemment stable pour notre utilisation, nous avons décider de nous retourner sur un appairage Bluetooth. Celui-ci est en cours de réalisation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Page_search.png|200px|thumb|right|Page de recherche V1]]&lt;br /&gt;
[[Fichier:Page_search_v2.png|200px|thumb|left|Page de recherche V2]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons modifier le design de l'application, pour ce qui est de la page de recherche de vin en fonction du plat. A droite la première version, ayant un rendu vieillot et non pertinant pour une borne en magasin. A droite la nouvelle page permettant un attrait visuel.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi mis en place la liaison Bluetooth.&lt;br /&gt;
&lt;br /&gt;
INSERER DIAG BLUETOOTH !!!!!!!!!!!!!!!!!!!!!!! +explication&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8320</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=8320"/>
				<updated>2013-12-17T14:02:29Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons reçu un tablette Android. Nous allons pouvoir adapter le design de l'application Borne en fonction de la taille de l'écran. De plus nous avons commencé à penser à la technique utilisé pour faire communiquer la tablette et le téléphone du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_process.png|600px|thumb|center|Schema du process de communication Borne - Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 méthodes sont à l'étude:&lt;br /&gt;
&lt;br /&gt;
- Liaison Bluetooth&lt;br /&gt;
&lt;br /&gt;
- Liaison Wifi P2P&lt;br /&gt;
&lt;br /&gt;
Les 2 méthodes ont leurs avantages et leurs inconvénients. La première est conçu pour les liaison directes, mais les débits sont faibles. La seconde possède des débits bien plus rapide et une porté supérieur. La liaison Bluetooth, possède un désavantage, pour le moment ne ne voyons pas de connexion sans une UNIQUE autorisation de l'utilisateur. Ce qui réduit la simplicité d'utilisation.&lt;br /&gt;
&lt;br /&gt;
  Connextion par WIFI: http://developer.android.com/guide/topics/connectivity/wifip2p.html&lt;br /&gt;
  Connection par Bluetooth : http://developer.android.com/guide/topics/connectivity/bluetooth.html&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pensé à l'intégration de diode blanche au niveau de la borne pour donner un rendu meilleur à la bouteille, ainsi que pour révélé la robe du vin.&lt;br /&gt;
Pour cela, nous nous sommes orienté vers des diodes ULTRA BRIGHT CMS. Les caractéristiques des diodes sont les suivantes :&lt;br /&gt;
 &lt;br /&gt;
 Puissance: 2-Watt&lt;br /&gt;
 Longueur d'ondes: 280-780 nm&lt;br /&gt;
 Couleur: 6000~7000K&lt;br /&gt;
 Angle d'éclairage: 140°&lt;br /&gt;
 Courant: 700-750 mA&lt;br /&gt;
 Tension d'alimentation: 5V&lt;br /&gt;
&lt;br /&gt;
Ces diodes sont utilisé dans l'automobile pour certain phare à LED, ainsi que certains type d'éclairage à diode, ou même les flash de téléphone portable.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hcopto0010_800.jpg|400px|thumb|center|module diode utilisé]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'alimentation de l'Arduino n'étant à forciori insuffisente, nous devrons surement prévoir une dérivation de l'alimentation 5V pour leurs usage. Le module LED s'activant par le biais d'une entrée digitale.&lt;br /&gt;
&lt;br /&gt;
Nous avons également finis l'implémentation de la nouvelle base de données. Avec notamment la création d'une classe DAO pour chaque table, chacune de ses classes contiennent l'ensemble des méthodes nécessaire à la gestion de la table, comme l'accès aux données. &lt;br /&gt;
&lt;br /&gt;
A cette échéance nous avons listé une parti des éléments à intégrer à l'application:&lt;br /&gt;
&lt;br /&gt;
-Finir d’implémenter BDD&lt;br /&gt;
&lt;br /&gt;
-Système de favori sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
-Partage Facebook&lt;br /&gt;
&lt;br /&gt;
-Remplir la BDD avec des données&lt;br /&gt;
&lt;br /&gt;
-Finir l’implémentation de la filtration des vins en fonction des plats&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(A partir de Janvier)&lt;br /&gt;
&lt;br /&gt;
-Gestion connexion avec le smartphone du client (NFC, bluetooh, wifi ?)&lt;br /&gt;
&lt;br /&gt;
-Mettre en place les LED dasn la borne&lt;br /&gt;
&lt;br /&gt;
-Lecture correcte des tags RFID des bouteilles via rotation de la bouteille&lt;br /&gt;
&lt;br /&gt;
-Système de mise à jour de la BDD simplifié&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
Création de la carte de contrôle des LED et des moteurs car maximum du courant fournit par l'Arduino = 500mA sur sorti 5V (750mA max sur Arduino ADK)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ajout à la BDD:&lt;br /&gt;
&lt;br /&gt;
-Appelation&lt;br /&gt;
&lt;br /&gt;
-Cépage (Chardonay, Saumur, etc ...)&lt;br /&gt;
&lt;br /&gt;
-Température de service (10c etc...)&lt;br /&gt;
&lt;br /&gt;
-Garde ( 2 ans etc ...)&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7621</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7621"/>
				<updated>2013-11-26T17:38:58Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets ainsi qu'a la rédaction du cahier des charges. Celui-ci étant primordial au développement du produit.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
La deuxième semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons mis en place un diagramme de Gantt, permettant de gérer notre projet jusqu'aux dernières semaines. Cette semaine à aussi été utiliser afin de commencer le lien entre les 2 parties du developpement de l'application sur la borne.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
La partie électronique du montage est maintenant abouti. L'application dialogue correctement avec l'Arduino et celui-ci renvoie les informations correctement dans leur intégralité.&lt;br /&gt;
&lt;br /&gt;
Voici le plan du montage de la partie électronique:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan_montage_elec_bb.png|400px|thumb|center|Plan de montage de la partie électrique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'intégration des différentes parties de l'application Android à nécessité quelques amélioration du code source de l'application de la borne:&lt;br /&gt;
&lt;br /&gt;
- Modification de la gestion de détection des différents éléments situé sur les détecteurs&lt;br /&gt;
&lt;br /&gt;
- Modification des éléments permettant le passage d'information entre les &amp;quot;Activity&amp;quot; (Sur Android chaques pages d'une application est nommée Activity)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|Représentation de la BDD]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7530</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7530"/>
				<updated>2013-11-10T16:51:23Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacrée à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solutions.&lt;br /&gt;
Après recherches, deux principales solutions s'offrent à nous concernant l'architecture du système : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atouts des tablettes tactiles actuelles, à savoir : très hautes définition de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC a comme principal atout une gestion du bas niveau plus aisée, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|left|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
BDD - ref&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7529</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7529"/>
				<updated>2013-11-10T16:48:41Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solution.&lt;br /&gt;
Après recherches, deux principales solution s'offre à nous concernant l'architecture du systèmes : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atout des tablette tactiles actuelles, à savoir : très hautes résolutions de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC à pour principale atout d'une gestion bas niveau plus aisé, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|left|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
BDD - ref&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7528</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7528"/>
				<updated>2013-11-10T16:48:20Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solution.&lt;br /&gt;
Après recherches, deux principales solution s'offre à nous concernant l'architecture du systèmes : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atout des tablette tactiles actuelles, à savoir : très hautes résolutions de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC à pour principale atout d'une gestion bas niveau plus aisé, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|left|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
BDD - ref&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7527</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7527"/>
				<updated>2013-11-10T16:48:01Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à la prospection de solution.&lt;br /&gt;
Après recherches, deux principales solution s'offre à nous concernant l'architecture du systèmes : soit articuler le système autour d'une tablette Android, soit l'articuler autour d'un mini PC.&lt;br /&gt;
&lt;br /&gt;
La première solution à l'avantage de bénéficier des atout des tablette tactiles actuelles, à savoir : très hautes résolutions de l'écran, bon comportement tactile, communication Android Beam (via le NFC). Cependant, la liaison avec les capteurs RFID sera plus dur à réaliser.&lt;br /&gt;
Tandis que la solution à base de mini PC à pour principale atout d'une gestion bas niveau plus aisé, notamment concernant la communication avec les modules RFID.&lt;br /&gt;
&lt;br /&gt;
Après réflexion, nous avons choisis la solution à base d'Android, principalement pour bénéficier de la qualité des tablettes actuelles. Cela nous permettra également d'approfondir nos connaissances vis à vis de la programmation Android.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|left|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
BDD - ref&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7526</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7526"/>
				<updated>2013-11-10T16:39:55Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à l'avancé du projet et à la caractérisation de certains vins que nous avons ajoutés à la base de données, nous avons remarqué que notre base de données était insuffisant pour caractériser convenablement les vins.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc entrepris une refonte de la base de données, en tenant compte des remarques suivantes :&lt;br /&gt;
* Les avis d'un expert seront visible dans la fiche d'un vin.&lt;br /&gt;
* Les plats conseillés et les avis des expert ne seront pas assignés de façon individuel à un vin, mais pour un type de vins.&lt;br /&gt;
* Etant donné qu'il existe plusieurs plats conseillés pour un même type de vin, nous avons ajouté une table de liaison entre la table &amp;quot;type&amp;quot; et la table &amp;quot;plat&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici un schéma UML de notre nouvelle base de données :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bdd v2.jpg|400px|thumb|center|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture 1.PNG|400px|thumb|left|GANTT du Projet]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 ==&lt;br /&gt;
BDD - ref&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 14 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 15 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 16 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 17 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 18 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 19 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 20 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 21 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 22 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Bdd_v2.jpg&amp;diff=7525</id>
		<title>Fichier:Bdd v2.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Bdd_v2.jpg&amp;diff=7525"/>
				<updated>2013-11-10T16:38:53Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7450</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7450"/>
				<updated>2013-11-02T18:26:58Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons pousser le développement matériel de la borne avec les CM5. Nous avons donc pu en tirer différents plans pour une fabrication de la borne. Avant de lancer celle-ci, certains points sont encore à définir, tel le design définitif. La fabrication de la borne n'est prévu que pour Janvier 2014.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
Concernant le développement des application, peu de nouvelles fonctionnalités ont été implémentées.&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé à établir un document regroupant et caractérisant les vins que nous allons inclure dans les bases de données des applications.&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7448</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7448"/>
				<updated>2013-11-02T18:21:43Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien que l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7447</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7447"/>
				<updated>2013-11-02T18:21:28Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui ci n'existe pas dans le Android SDK. Il a a par contre été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
Bien ue l'interface est crée, elle n'est pas encore fonctionelle, en effet la recherche n'est pas encore finalisée.&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7446</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7446"/>
				<updated>2013-11-02T18:19:21Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilitée entre périphériques Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui n'existe pas dans le Android SDK. Il a en effet été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7445</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7445"/>
				<updated>2013-11-02T18:18:52Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installée sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Cette application reprendra en grande partie les fonctionnalités développées pour l'application de la borne. Elle permettra ainsi au client d'emmener avec lui certaines possibilités offerte par la borne. Elle permettra également de communiquer grâce à l'Android beam, qui est une communication NFC facilité entre périphérique Android.&lt;br /&gt;
L'application contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui n'existe pas dans le Android SDK. Il a en effet été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7444</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7444"/>
				<updated>2013-11-02T18:12:12Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarquée sur la tablette de la borne, sont développement a commencée.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps débuté par conceptualiser la base de données embarquée dans l'application.&lt;br /&gt;
&lt;br /&gt;
Une fois l'implémentation de la base de données finis, nous avons développé un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
A chaque table de la BDD correspond un objet Java, qui est directement instancié après récupération dans la BDD grâce à une fonction que nous avons développé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parrallèlement à cela, nous avons établit les grande ligne de l'interface d'accueil, nous permettant également de vérifier le bon fonctionnement de la communication entre la tablette et l'Arduino :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installé sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Elle contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui n'existe pas dans le Android SDK. Il a en effet été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7443</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7443"/>
				<updated>2013-11-02T18:05:42Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue applicatif, nous avons commencé à réfléchir au différentes fonctionnalités ainsi qu'à l'ergonomie de certaine vue.&lt;br /&gt;
&lt;br /&gt;
Nous avons notamment réalisé le prototypages de certaines interface, grâce à l'application web fluidui : https://fluidui.com&lt;br /&gt;
&lt;br /&gt;
Voici le prototype de l'interface permettant de comparer 2 vins entre eux :&lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarqué sur la tablette de la borne, sont développement à commencé.&lt;br /&gt;
Une base de données locale a été implémentée, avec un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installé sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Elle contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui n'existe pas dans le Android SDK. Il a en effet été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;br /&gt;
[[Fichier:Borne3.PNG|200px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Borne.PNG|200px|thumb|center|]]&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7414</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7414"/>
				<updated>2013-10-21T10:51:36Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
Mise au point d'un prototypage d'interfaces de la tablette de la borne : &lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarqué sur la tablette de la borne, sont développement à commencé.&lt;br /&gt;
Une base de données locale a été implémentée, avec un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installé sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Elle contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de compléter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'application client a avancée, l'interface de recherche de vin est terminée. Cette interface permet de filtrer les vins par type, par plage de prix, et enfin par affinité avec certains plats.&lt;br /&gt;
Concernant le widget de sélection de la plage de prix, celui n'existe pas dans le Android SDK. Il a en effet été réalisé par un développeur indépendant, le widget peut se trouve ici : https://code.google.com/p/range-seek-bar/&lt;br /&gt;
&lt;br /&gt;
L'interface est visible sur la capture d'écran suivante :&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
&lt;br /&gt;
L'implémentation de la base de données sur l'application cliente a également été réalisé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7413</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7413"/>
				<updated>2013-10-21T10:42:42Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
Mise au point d'un prototypage d'interfaces de la tablette de la borne : &lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarqué sur la tablette de la borne, sont développement à commencé.&lt;br /&gt;
Une base de données locale a été implémentée, avec un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installé sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Elle contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de complèter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|200px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7412</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7412"/>
				<updated>2013-10-21T10:42:31Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
Mise au point d'un prototypage d'interfaces de la tablette de la borne : &lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarqué sur la tablette de la borne, sont développement à commencé.&lt;br /&gt;
Une base de données locale a été implémentée, avec un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installé sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Elle contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de complèter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot 2013-10-21-12-38-33.png|400px|thumb|center|Interface de recherche de vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Screenshot_2013-10-21-12-38-33.png&amp;diff=7411</id>
		<title>Fichier:Screenshot 2013-10-21-12-38-33.png</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Screenshot_2013-10-21-12-38-33.png&amp;diff=7411"/>
				<updated>2013-10-21T10:41:40Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7410</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7410"/>
				<updated>2013-10-21T10:37:41Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
Mise au point d'un prototypage d'interfaces de la tablette de la borne : &lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarqué sur la tablette de la borne, sont développement à commencé.&lt;br /&gt;
Une base de données locale a été implémentée, avec un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installé sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Elle contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de complèter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7409</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7409"/>
				<updated>2013-10-21T10:37:24Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
Mise au point d'un prototypage d'interfaces de la tablette de la borne : &lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarqué sur la tablette de la borne, sont développement à commencé.&lt;br /&gt;
Une base de données locale a été implémentée, avec un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Accueil.png|400px|thumb|center|Page d'accueil fonctionnelle de l'application]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place du second lecteur RFID:&lt;br /&gt;
&lt;br /&gt;
Après réception du deuxième lecteur RFID PN532, nous avons lancé le développement matériel pour la détection de 2 bouteilles. Le choix du BUS I2C n'est pas compatible, en effet le Shield comporte la même adresse que l'autre carte. Nous avons alors essayer de scruter chaque carte, en alimentant une carte sur deux. Cette solution n'étant pas viable à cause d'un problème de puissance de sorti sur les DigitalOupPut de l'Arduino. Un test sur le BUS SPI fût alors tenté, mais aucune librairie n'existe pour ce Shield.&lt;br /&gt;
&lt;br /&gt;
La solution la plus adapté, c'est à dire qui ne nécessite pas d'alimentation extérieur en rajout, est d'utiliser un lecteur RFID MFRC522 d'un autre constructeur spécialement conçu pour le BUS SPI. Ce qui nous permet de contourner les problèmes de compatibilité entre les cartes sur un même BUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reflexion sur l'interface de recherche de vin:&lt;br /&gt;
&lt;br /&gt;
- Creation de la base du layout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir dans le schéma ci-dessous, un réseau de Petri montrant l'évolution du système en fonction des différents cas possible. Le réseau de Petri, ne prend, pour le moment, pas en compte le transfert vers le mobile utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modele_fonctionnement-v2.png|400px|thumb|center|Réseau de Petri du système, cours IMA4 SA]]&lt;br /&gt;
&lt;br /&gt;
Parallèlement, l'application Android côté client (installé sur le smartphone du client) a commencé à être développée.&lt;br /&gt;
Elle contiendra la liste de fonctionnalités suivantes :&lt;br /&gt;
* Possibilité de rechercher un vin selon différents critères (type, prix, etc.)&lt;br /&gt;
* Possibilité d'ajouter des vins à ses favoris&lt;br /&gt;
* Possibilité de scanner un tag RFID d'un vin afin d'obtenir des informations le concernant&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 ==&lt;br /&gt;
&lt;br /&gt;
La solution de 2 Shields basé sur des BUS différents ayant été retenu, après réception du Shield RC522 fonctionnant en SPI, nous avons pu commencer l'implémentation du code du deuxième capteur RFID dans le microcontrôleur.&lt;br /&gt;
Les bytes fournis par l'Arduino à la tablette sont contenu dans un tableau de 24 cases. Les 12 premières cases corresponde au code barre capté par le Shield 1 et les 12 dernières corresponde au Shield 2. Le protocole de transmission est le suivant:&lt;br /&gt;
&lt;br /&gt;
 1 Bouteille sur le Shield 1       ===&amp;gt; XXXXXXXXXXXX000000000000&lt;br /&gt;
 1 Bouteille sur le Shield 2       ===&amp;gt; 000000000000XXXXXXXXXXXX&lt;br /&gt;
 1 Bouteilles sur les Shield 1 &amp;amp; 2 ===&amp;gt; xxxxxxxxxxxxXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
L'application Android peux donc générer une page contenant le descriptif d'une bouteille, ou la comparaison des 2 bouteilles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous scrutons en permanence le Shield 2 (RC522), pour déterminer la présence ou  non d'une puce RFID. Ce qui nous permet de complèter en temps réel la variable global transmise.&lt;br /&gt;
Le Shield 1 (PN522), fonctionne autrement, lorsqu'une puce RFID est détecté une interruption IRQ est envoyer sur la broche (n° 2) de l'Arduino. L'interruption se répète à chaque tour de la boucle principale du programme (celui-ci étant synchronisé avec la puce PN522), ce qui nous permet ici aussi de complèter en temps réel la variable global transmise.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 ==&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7253</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7253"/>
				<updated>2013-09-28T13:33:34Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
Mise au point d'un prototypage d'interfaces de la tablette de la borne : &lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarqué sur la tablette de la borne, sont développement à commencé.&lt;br /&gt;
Une base de données locale a été implémentée, avec un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7252</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7252"/>
				<updated>2013-09-28T13:33:02Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
Mise au point d'un prototypage d'interfaces de la tablette de la borne : &lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'application Android embarqué sur la tablette de la borne, sont développement à commencé.&lt;br /&gt;
Une base de données local a été implémenté, avec un ensemble de fonctions permettant de gérer et d'accéder à la BDD. Cette BDD permet pour l'instant de caractériser les vins ainsi que les plats recommandés pour certains vins.&lt;br /&gt;
Voici la représentation UML de la BDD :&lt;br /&gt;
[[Fichier:Bdd_v1.jpg|400px|thumb|center|Représentation UML de la BDD]]&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Bdd_v1.jpg&amp;diff=7251</id>
		<title>Fichier:Bdd v1.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Bdd_v1.jpg&amp;diff=7251"/>
				<updated>2013-09-28T13:30:05Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7250</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7250"/>
				<updated>2013-09-28T13:23:00Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Réalisation des tests des solutions techniques retenues, à savoir :&lt;br /&gt;
*Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
*Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
Mise au point d'un prototypage d'interfaces de la tablette de la borne : &lt;br /&gt;
[[Fichier:PrototypeInterfaceComparaison.jpg|400px|thumb|center|Prototype de l'interface de comparaison de 2 vins]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:PrototypeInterfaceComparaison.jpg&amp;diff=7249</id>
		<title>Fichier:PrototypeInterfaceComparaison.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:PrototypeInterfaceComparaison.jpg&amp;diff=7249"/>
				<updated>2013-09-28T13:21:19Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : ima5sc 2013&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ima5sc 2013&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7248</id>
		<title>Borne Oenologique</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Borne_Oenologique&amp;diff=7248"/>
				<updated>2013-09-28T13:18:38Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Semaine 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Le Projet =&lt;br /&gt;
&lt;br /&gt;
Tout d'abord le projet de la Borne Oenologique provient du laboratoire Lifl, via Yvan Peter. Ce projet à été proposé par Auchan afin de mieux guider ses clients dans le choix de leur vin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Simu_3d.PNG|Ebauche 3D de la future borne]]&lt;br /&gt;
&lt;br /&gt;
== Matériel Requis ==&lt;br /&gt;
&lt;br /&gt;
-Tablette Android 10'' (Compatible OTG et NFC Incorporer)&lt;br /&gt;
&lt;br /&gt;
-Arduino Mega ADK (permettant de communiquer avec la tablette)&lt;br /&gt;
&lt;br /&gt;
-Shield RFID (x2)&lt;br /&gt;
&lt;br /&gt;
-Antenne NFC externe, permettant de déporter le signal NFC émis par la tablette. Du type : NFC Band-Aid de Flomio&lt;br /&gt;
&lt;br /&gt;
-Borne permettant l'intégration des composants (Prévision de conception par le département mécanique)&lt;br /&gt;
&lt;br /&gt;
== Fonctionalitées ==&lt;br /&gt;
&lt;br /&gt;
= Liste de Séance =&lt;br /&gt;
== Semaine 1 ==&lt;br /&gt;
&lt;br /&gt;
La première semaine à été consacré à la rencontre des différents interlocuteurs du projets, ainsi qu'à l'établissement du cahier des charges : [[Fichier: CahierdesCharges.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 ==&lt;br /&gt;
Test de la platine Arduino + Shield RFID : Test Réussi&lt;br /&gt;
&lt;br /&gt;
Test de dialogue Application Android + Arduino : Test Réussi&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 ==&lt;br /&gt;
L'Arduino est capable de lire une puce RFID via le Shield PN532. La lecture se fait sur le secteur 4. Ainsi un numéro de série est récupéré, comme un code barre. Il est composé de 12 chiffres. Les données stocker sur la carte RFID sont en hexadécimale, du type uint8_t (8bits maximum).&lt;br /&gt;
&lt;br /&gt;
L'Arduino est aussi capable via la librairie &amp;quot;USB Host Shield library Version 2.0&amp;quot; de communiquer la référence (équivalent à un code barre) vers l'appareil Android. Les tests sont effectués avec un Sony Xperia Sola en attendant l'utilisation d'une tablette tactile de type Nexus.&lt;br /&gt;
La transmission des données entre l'Arduino et Android se fait via un protocole série. La transmission effectué est un tableau de 12 cases mémoires du type uint8-t.&lt;br /&gt;
       uint8_t CODE[12];&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=6361</id>
		<title>Robot Centaure</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=6361"/>
				<updated>2013-05-20T17:25:12Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Etude du robot =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase de l'inventaire matériel ==&lt;br /&gt;
Dès la première séance nous avons vu que les batteries du robot étaient hors d'usage. Nous avons donc noté les références et demandé à Polytech'Lille de passer la commande de nouvelles batteries, afin de ne pas être bloqué par le problème de l'alimentation trop longtemps. Le robot nécessite également de nombreuses réparations, vu le temps d'inactivité de celui-ci, pour qu'il soit de nouveau utilisable. Nous allons enlever les capteurs qui sont jugés inutiles à la réalisation de notre projet, et recâbler les capteurs essentiels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé du matériel à acheter:&lt;br /&gt;
&lt;br /&gt;
- 2 batteries 12V et 24Ah.&lt;br /&gt;
&lt;br /&gt;
- Shield Sensor v4 pour Arduino.&lt;br /&gt;
&lt;br /&gt;
- Connecteurs de type FUTABA.&lt;br /&gt;
&lt;br /&gt;
- Gaine thermorétractable.&lt;br /&gt;
&lt;br /&gt;
- Boussole.&lt;br /&gt;
&lt;br /&gt;
- Gaine à câbles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé des changements à envisager :&lt;br /&gt;
&lt;br /&gt;
- Nettoyage total du robot.&lt;br /&gt;
&lt;br /&gt;
- Câblage des capteurs avec des câbles fins.&lt;br /&gt;
&lt;br /&gt;
- Réparation des supports des capteurs endommagés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot_centaure.jpg|200px|thumb|center|Robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
== L'inventaire du travail à réaliser, constaté à la première séance ==&lt;br /&gt;
&lt;br /&gt;
- Réparation de certains supports de capteurs.&lt;br /&gt;
&lt;br /&gt;
- Recâblage des capteurs et actionneurs.&lt;br /&gt;
&lt;br /&gt;
- Faire un bilan des éléments à acheter pour avoir une solution de câblage propre.&lt;br /&gt;
&lt;br /&gt;
- Choisir et programmer un microcontrôleur permettant d'être évolutif (choix d'un Arduino Mega).&lt;br /&gt;
&lt;br /&gt;
- Trouver une solution viable et propre de connectique sur l'Arduino.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:interieur_centaure.jpg|200px|thumb|center|intérieur du robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
= Bilan des séances =&lt;br /&gt;
&lt;br /&gt;
== 1er et 2ème séances ==&lt;br /&gt;
&lt;br /&gt;
=== La Kinect ===&lt;br /&gt;
Nous avons dans un premier temps pris en main la bibliothèque (Freenect) permettant de gérer la Kinect. Nous avons commencé par analyser et modifier un exemple de programme livré avec la bibliothèque (glview.c).&lt;br /&gt;
&lt;br /&gt;
Nous avons toutefois relevé un problème inhérent à la Kinect : la projection des infrarouges projette des ombres sur l'arrière plan. Ceci risque de poser des problèmes pour l'algorithme de décision de la trajectoire.&lt;br /&gt;
Un problème similaire est observé sur les surfaces vitrées.&lt;br /&gt;
&lt;br /&gt;
Notre première tâche a donc été de développer un premier algorithme permettant de récupérer ces zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
Nous avons pu ensuite jeter les premières bases de l’algorithme de décision de la trajectoire.&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
Nous avons, lors de la première séance, examiné le robot pour comprendre son fonctionnement. A partir de là, nous avons remarqué que le changement des batteries était notre priorité, vu l'état dans lequel celles-ci se trouvaient. Nous avons donc tout démonté pour prendre les références et en commander de nouvelles.&lt;br /&gt;
Lors de la seconde séance, nous avons listé les éléments à changer pour que le robot soit fonctionnel.&lt;br /&gt;
Nous devons donc :&lt;br /&gt;
&lt;br /&gt;
- Refaire le câblage des capteurs&lt;br /&gt;
&lt;br /&gt;
- Nous avons choisi un Arduino pour réaliser la liaison Capteur / Actionneur ainsi que la liaison avec le PC.&lt;br /&gt;
Le choix d'un Arduino Méga est la solution qui semble la plus adaptée, afin de rendre le robot évolutif. Sinon le nombre d'entrées / sorties risque d'être un élément bloquant, pour l'évolution du projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi réfléchi à la nouvelle connectique, qui sera de type prise &amp;quot;JR&amp;quot; utilisée dans le modélisme. Chaque prise correspondra à un capteur. Pour ce qui est de l'Arduino, nous voulons lui ajouter un Shield &amp;quot;Sensor&amp;quot; qui permet une gestion de la connectique des capteurs beaucoup plus simple. Il en existe 2 modèles, un limité à 300mA pour ce qui est de l'alimentation (ce qui peut être suffisant pour les capteurs) et un avec une alimentation externe permettant l'ajout de puissance. N'ayant pas besoin de puissance pour l'envoi ou la réception de signal, nous choisirons la première version.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connectiqe.jpg|200px|thumb|center|Connectique choisie]] [[Fichier:Shield_sensor.jpg|200px|thumb|center|Shield Arduino facilitant la connectique]]&lt;br /&gt;
&lt;br /&gt;
== 3ème et 4ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
Nous avons finis l'algorithme permettant de &amp;quot;reconstruire&amp;quot; les zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
L'algorithme que nous avons confectionné est relativement simple : il balaye l'image ligne par ligne, puis à chaque fois qu'il détecte une ombre il se procure la valeur de la profondeur à gauche et à droite de l'ombre. La valeur la plus lointaine sera utilisée pour remplir l'ombre, ce qui correspond à une bonne approximation.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif sans et avec l’algorithme de récupération des ombres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2.png|400px|thumb|left|Sans récupération des ombres. Les 3 lignes rouges délimitent les zones en dehors du champs de considération du robot.]]&lt;br /&gt;
[[Fichier:1.png|400px|thumb|center|Avec récupération des ombres]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons constater que l'image ainsi obtenue n'est pas très esthétique, mais cela permettra à l’algorithme de décision de la trajectoire de travailler sur des valeurs de profondeurs quasiment correctes.&lt;br /&gt;
De plus, la simplicité de l'algorithme permettra de ne pas utiliser trop de ressource processeur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également quasiment finalisé l'algorithme de décision de la trajectoire.&lt;br /&gt;
Tout d'abord, il faut savoir que l'algorithme ne travaille que sur une certaine zone de l'image. En effet un objet situé trop à gauche (ou trop en haut ou à droite) ne gênera pas le robot. Du coup seul une partie du champ de vision de la Kinect est utilisée. Pour régler ces constantes nous avons affiché 3 lignes délimitant l'espace de considération du robot.&lt;br /&gt;
&lt;br /&gt;
L’algorithme en lui-même consiste à calculer la moyenne des profondeurs de la partie gauche et droite de l'image.&lt;br /&gt;
Ensuite, nous calculons la différence entre ces 2 valeurs. Avec cette différence nous pouvons distinguer 3 cas :&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à gauche&lt;br /&gt;
* -C &amp;lt;= différence &amp;lt;= C  =&amp;gt; continuer tout droit&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à droite&lt;br /&gt;
(avec C une constante)&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, la décision de la trajectoire est prioritairement influencée par la présence d'objets très proches : &lt;br /&gt;
* Si un objet très proche est détecté à gauche et à droite le robot s'arrêtera&lt;br /&gt;
* Si un objet très proche est détecté à gauche le robot ira à droite dans tout les cas&lt;br /&gt;
* Si un objet très proche est détecté à droite le robot ira à gauche dans tout les cas&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
'''La 3ème séance''' avait un but purement informatif et explicatif pour nous. Nous avons pu rencontrer notre tuteur pour ce projet, Mr. LITWAK, afin de relater nos premières impressions, notre envie commune de voir le Centaure se mouvoir dans un premier temps, et remplir le cahier des charges qu'il nous est demandé de remplir par la suite. Nous avons évoqué avec lui le choix que nous avions décidé de prendre pour l'évolution de notre projet (solution Shield + Arduino Mega), ainsi que notre volonté de rendre le tout le plus esthétique possible (utilisation de nappes envisagée mais pas encore confirmée). Nous définissons ensemble un plan de route :&lt;br /&gt;
&lt;br /&gt;
1) Dégager les éléments inutiles.&lt;br /&gt;
&lt;br /&gt;
2) Restaurer l'alimentation et refaire les câblages nécessaires.&lt;br /&gt;
&lt;br /&gt;
3) Être capable de contrôler la direction de notre robot (asservissement en vitesse et en position nécessaires).&lt;br /&gt;
&lt;br /&gt;
4) Pouvoir joindre le côté commande et le côté Kinect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une boîte à outils nous est fournie pour nos travaux sur le Centaure, ainsi que toute la documentation nécessaire au bon déroulement de notre projet (la documentation sur les capteurs SHARP avant et arrière en particulier).&lt;br /&gt;
&lt;br /&gt;
'''La 4ème séance''' consiste à vider le Centaure de ses composants, dresser le bilan des éléments utiles et de ceux dont l'utilisation n'est pas envisagée.&lt;br /&gt;
&lt;br /&gt;
Au final, lors de cette semaine de projet, nous avons défini notre plan d'action, commencé le gros oeuvre sur le Centaure, puis noté les éléments de câblage à utiliser lorsque la phase de nettoyage sera terminée. Nous attendons pour la reprise l'arrivée des 2 batteries nécessaires à l'alimentation du robot, le Shield sensor ainsi que les connecteurs FUTABA/JR (les deux étant compatibles).&lt;br /&gt;
&lt;br /&gt;
Nous avons posé les bases du système et imaginé l'architecture finale du système, représentée par la figure ci-dessous, mais omettant certaines parties servants de liaisons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_simple.PNG|400px|thumb|center|Schéma simplifié du système]]&lt;br /&gt;
&lt;br /&gt;
== 5ème, 6ème et 7ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
L'algorithme de décision de la trajectoire par la Kinect étant fait, nous nous sommes penchés sur la capacité des PC embarqués disponibles à pouvoir exécuter le code de la Kinect.&lt;br /&gt;
Les premiers essais se sont révélés infructueux, les 2 PC embarquants pour exécuter le code.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors lancés dans une phase d'optimisation importante du code de gestion de la Kinect. Voici la liste des optimisations apportées :&lt;br /&gt;
* Suppression des fonctionalités non utilisé, tel que l'accéléromètre.&lt;br /&gt;
* Optimisation de Freenect, en configurant la capture de la vidéo et de la profondeur en qualité &amp;quot;low&amp;quot;&lt;br /&gt;
* Compilation de gcc optimisé avec l'option -O3&lt;br /&gt;
&lt;br /&gt;
Cependant, malgré toutes ces optimisations, le PC embarqué utilisé n'a pas réussis à exécuter le code. En effet, la totalité des paquets transitant sur USB sont perdus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons alors entrepris de monter un nouvel ordinateur embarqué. Plus puissant tout en restant basse consommation.&lt;br /&gt;
Voici la liste des composants utilisés :&lt;br /&gt;
*Carte mère : ASRock H61M-ITX MAJ du BIOS obligatoire [https://projets-ima.polytech-lille.net:40079/mediawiki/images/7/76/H61M-ITX%282.20%29ROM.zip]&lt;br /&gt;
*Processeur : Intel Core i3­3220T (2.8 GHz, 35W)&lt;br /&gt;
*Disque dur : Samsung SSD 840 120 Go&lt;br /&gt;
*Boîtier CUBE mini­ITX ­ Rouge&lt;br /&gt;
*Nous avons rajouté une alimentation PICOPSU permettant une alimentation direct en 12V.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Nous avons reçu, pendant les vacances, les éléments que nous avions commandé, et qui étaient nécessaires au bon déroulement de notre projet. Ainsi, le Shield Sensor pour Arduino, ainsi que les connecteurs, nous sont parvenus. Nous avons également reçu les deux batteries (12V, 24Ah), pour venir en remplacement des anciennes, qui étaient totalement Hors-Service.&lt;br /&gt;
Ces séances de la semaine nous ont permis de pouvoir (re)faire les câblages de tous nos capteurs (4 capteurs avant SHARP 2Y3A003 - portée de 40 à 300 cm ; 2 capteurs arrières SHARP 2Y0A02 - portée de 20 à 150 cm) avec les nappes fournies, de manière à les brancher directement sur le Shield.&lt;br /&gt;
Nous avons également installé les nouvelles batteries, et ainsi remettre en état de marche l'alimentation du robot (l'écran du Centaure s'allume).&lt;br /&gt;
Grâce à un mini-programme, nous avons pu vérifier le bon état des capteurs. Ainsi, 3 des capteurs avant et 1 capteur arrière répondent convenablement, les deux autres capteurs normalement utilisés étant HS.&lt;br /&gt;
Un autre programme a été mis au point sur l'Arduino, demandant une simple marche avant au Centaure. Nous vérifierons son fonctionnement la semaine prochaine, tout en nous penchant également sur le rétablissement de l'arrêt d'urgence et du coupe-batterie, primordiaux avant de faire se mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connecteur.jpg|400px|thumb|center|Connecteurs des capteurs IR]]&lt;br /&gt;
&lt;br /&gt;
== 8ème, 9ème et 10ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
INCORPORATION DE LA GESTION DE LA KINECT AU PROJET EXISTANT&lt;br /&gt;
&lt;br /&gt;
La gestion de la Kinect est opérationnelle. Cependant il nous a fallu implanter cette gestion au reste du programme existant.&lt;br /&gt;
Le code qui nous a été légué ne compilait plus. Il nous a fallu alors effectuer un important travail&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La commande de deux capteurs AV, de même référence que ceux déjà utilisés, ainsi que 4 relais, est lancée.&lt;br /&gt;
Pour la partie pratique, le variateur nous donne du fil à retordre, dans la mesure où toutes les sécurités de ce dernier ne sont pas indiquées dans la documentation technique. Nous nous sommes donc renseignés auprès de nos tuteurs, et nous nous sommes également référencés aux travaux antérieurs sur le Centaure. Le variateur nécessite une tension d'excitation de 60mV pour le faire démarrer. Le fonctionnement du variateur repose sur des interrupteurs. Ceux-ci doivent être dans des état complémentaires afin d'assurer la marche avant ou la marche arrière. Enfin, les moteurs étant commandés en tension, aucun retour à une tension nulle n'est permis, auquel cas la sécurité sera réactivée.&lt;br /&gt;
L'implantation d'un code Arduino pour une marche avant, arrière, ainsi qu'un arrêt, donne des résultats probants sur l'une des roues. &lt;br /&gt;
La connexion du second variateur réalisée, ainsi que la conception d'un code permettant le virage à gauche, puis à droite, nous permettent de faire &amp;quot;vadrouiller&amp;quot; le Centaure - définitivement vivant - dans le Hall de l'école, via l'interface Arduino sur un ordinateur portable (i: initialisation, a: marche avant, s: arrêt, r: marche arrière, v: virage gauche, t: virage droite). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test sur plaque LABTEC avec relay (expliquer pk pas transistor)&lt;br /&gt;
&lt;br /&gt;
Conception de la carte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_variateur.jpg|400px|thumb|Schéma de principe de la carte de commande des variateurs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_carte.jpg|400px|thumb|center|PCB de la carte de commande]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:3D_carte_commande.PNG|400px|thumb|center|Vu 3D]]&lt;br /&gt;
&lt;br /&gt;
== 11ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
Afin de moderniser la commande du robot via le web, nous avons revu certaines bases. Nous avons restructuré en grande partie le fichier .c gérant le serveur web afin de l'optimiser. Nous avons également supprimer la fonctionnalité qui empêcher 2 utilisateurs à se connecter à l'interface de commande simultanément, en effet elle ne fonctionnait malheureusement pas.&lt;br /&gt;
Enfin, nous envoyons à présent les commandes au robot en faisant appel à l'Ajax, ceci permet d'améliorer l'expérience utilisateur.&lt;br /&gt;
&lt;br /&gt;
Ce lot de modification s'incorpore au site web existant. &lt;br /&gt;
&lt;br /&gt;
Une refonte graphique total du site est à l'étude et sera intégré au projet dans le cas ou ce nouveau site est fonctionnelle.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Test du code de l'Arduino pour voir les fonctions de base.&lt;br /&gt;
&lt;br /&gt;
Manque 1 relais donc pas de marche arrière possible.&lt;br /&gt;
&lt;br /&gt;
Principales fonctions OK&lt;br /&gt;
&lt;br /&gt;
Il faut rajouter un indicateur de niveau de batterie, qui sera conçu de la manière suivante : Relais + Pont diviseur de tension (le relais permet de désactiver le pont, ainsi nous consommons moins).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur_PCB.JPG|400px|thumb|center|PCB de la carte du capteur batterie]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur.JPG|300px|thumb|center|PCB 3D de la carte du capteur de batterie]]&lt;br /&gt;
&lt;br /&gt;
   R1 = 62Kohm&lt;br /&gt;
   R2 = 15Kohm&lt;br /&gt;
&lt;br /&gt;
==Etape importante==&lt;br /&gt;
&lt;br /&gt;
Petit récapitulatif à mi-projet:&lt;br /&gt;
&lt;br /&gt;
- Reste a définir les éléments de communication PC &amp;lt;--&amp;gt; Arduino&lt;br /&gt;
&lt;br /&gt;
- Intégrer une gestion progressive de la vitesse dans l'Arduino&lt;br /&gt;
&lt;br /&gt;
- Faire la carte Relais&lt;br /&gt;
&lt;br /&gt;
- Créer la &amp;quot;mini-carte&amp;quot; permettant l'indication du niveau de batterie&lt;br /&gt;
&lt;br /&gt;
== 12 et 13ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
Les 2 séances ont permis de rendre la communication entre la partie &amp;quot;robotique&amp;quot; (arduino) et &amp;quot;informatique&amp;quot; (programme tournant sur un PC) fonctionnelle.&lt;br /&gt;
La communication et la répartition des tâches entre les 2 parties étant relativement complexe, cela à donné lieu à de nombreuses modifications.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La séance est principalement consacrée à l'établissement d'un cahier des charges fonctionnel, de manière à ce que l'on puisse expliquer le plus clairement possible ce que l'on attend de nous, et ce que nos tuteurs souhaitent voir en fin de projet. C'est une manière de nous plonger dans le monde du travail, où l'on nous fait comprendre que le cahier des charges fonctionnel est un accord entre le maître d'oeuvre et le maître d'ouvrage, et que le non respect de celui-ci peut nuire au maître d'oeuvre. Bien que le cahier des charges sera rendu avec la totalité des éléments demandés pour le projet, voici un petit récapitulatif des fonctions à intégrer au Centaure :&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; Direction automatique du robot par Kinect&lt;br /&gt;
--&amp;gt; Direction manuelle par infrarouge &lt;br /&gt;
--&amp;gt; Contrôle via site web (adaptabilité pour support tablette, PC, smartphones)&lt;br /&gt;
&lt;br /&gt;
Suite aux gros écarts de direction entraînés par la roue flottante avant, il a été décidé d'intégrer au centaure un module HMC6352, boussole pour Arduino, qui permettra la correction de trajectoire en cas de grosse déviation (en phase de test, les oscillations de la roue flottante sont difficilement contrôlables, donc nous envisageons de la bloquer, en plus de l'utilisation de la boussole, estimant que la puissance des moteurs est suffisante pour vaincre les frottements entraînés par un tel blocage lors d'un virage).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE RELAIS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Orange&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Noir&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;11&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Blanc&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN3&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Gris&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN4&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;+5V&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;VCC&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Marron&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE NIVEAU BATTERIE&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  'S' signifie port pour prise du Shield&lt;br /&gt;
  'G' signifie port de gauche (bouclé avec le port M) pour 1 relais&lt;br /&gt;
  'M' signifie port milieu pour 1 relais&lt;br /&gt;
  'D' signifie port de droite pour 1 relais&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_relais.jpg|300px|thumb|center|Carte relais des variateurs]]&lt;br /&gt;
&lt;br /&gt;
== 14, 15ème et 16ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
La partie du programme gérant la télécommande infrarouge a été optimisée et épurée.&lt;br /&gt;
&lt;br /&gt;
De même pour la partie gérant le protocole série. Par ailleurs, à présent le PC n’envoie l'ordre à l'arduino que si et seulement si l'ordre est différent de l'ordre précédent. Ceci permet d'éviter les conflits et de ne pas submerger la liaison série.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Mise en place Boitier Robot&lt;br /&gt;
&lt;br /&gt;
Connexion kinect sur PC, bug de liaison entre PC et arduino&lt;br /&gt;
&lt;br /&gt;
Création alimentation Kinect&lt;br /&gt;
&lt;br /&gt;
Connexion boussole par I2C, mais précision erronée...&lt;br /&gt;
&lt;br /&gt;
Bug programme arduino, comme problème boussole, alors ne s'arrête pas de tourner. Il faut une condition d'arrêt en plus.&lt;br /&gt;
&lt;br /&gt;
+ A chaque nouveau &amp;quot;avancer&amp;quot;, faire nivélation de la vitesse !!!!!!!!!!!!!!!!&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Boitier rangement.jpg|300px|thumb|center|Boitier rangement]]&lt;br /&gt;
[[Fichier:Kinect sur robot.jpg|300px|thumb|center|kinect sur le Robot pour test]]&lt;br /&gt;
&lt;br /&gt;
===Commande manuelle===&lt;br /&gt;
&lt;br /&gt;
L'objectif est de pouvoir commander le robot par divers moyens. Une partie automatique avec la kinect (cf ci-dessus) est mise en place , mais le cahier des charges demande une partie manuelle où il est possible, grâce à divers moyens, de faire se mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
Une télécommande infrarouge est dès lors mise dans le programme où il est possible de faire avancer, reculer ou tourner le robot.&lt;br /&gt;
&lt;br /&gt;
Une autre option de commande manuelle est aussi viable, la commande via serveur embarqué. De ce fait, il est possible de contrôler son robot via une tablette android, Iphone/Ipad, smartphone. Le site http://www.lamconcept.fr/CENTAURE/ est fonctionnel et demande des mots de passe afin de se connecter et diriger le robot.&lt;br /&gt;
&lt;br /&gt;
== Séances Vacances==&lt;br /&gt;
&lt;br /&gt;
===Commandes Manuelles===&lt;br /&gt;
Le programme C prend en compte la Commande Via infra-rouge.&lt;br /&gt;
La dernière de la commande manuelle réside dans l'interface Php. La connexion par LDAP ne fonctionnant pas, une page de connexion simple a été faite. LOGIN : Centaure2013 MDP:LV2R&lt;br /&gt;
Les pages PhP seront implantés dans le PC embarqué qui aura apache installé dessus. L'utilisateur se connectera directement sur le PC et sélectionnera l'interface php.&lt;br /&gt;
Après s'être identifié, l'utilisateur accédera directement à la vidéo de la kinect et aux commandes du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documents =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sources Arduino : [https://projets-ima.polytech-lille.net:40079/mediawiki/images/9/9e/Projet_CentaureV12pc.zip]&lt;br /&gt;
&lt;br /&gt;
Sources du programme du PC et de l'interface web : [http://projets-imasc.plil.net/mediawiki/images/7/7b/Centaure.zip]&lt;br /&gt;
&lt;br /&gt;
Application Androïd : [https://play.google.com/store/apps/details?id=com.tisc.direct_centaure#?t=W251bGwsMSwxLDIxMiwiY29tLnRpc2MuZGlyZWN0X2NlbnRhdXJlIl0.]&lt;br /&gt;
&lt;br /&gt;
Rapport Partie Robot : [https://projets-ima.polytech-lille.net:40079/mediawiki/images/d/da/Centaure_2013_Vandermeersch_Ribreau_FINAL.pdf]&lt;br /&gt;
&lt;br /&gt;
Rapport Partie Informatique : [http://projets-imasc.plil.net/mediawiki/images/b/bd/Rapport_Centaure_-_Partie_informatique.pdf]&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=5961</id>
		<title>Robot Centaure</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=5961"/>
				<updated>2013-05-10T16:55:39Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Etude du robot =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase de l'inventaire matériel ==&lt;br /&gt;
Dès la première séance nous avons vu que les batteries du robot étaient hors d'usage. Nous avons donc noté les références et demandé à Polytech'Lille de passer la commande de nouvelles batteries, afin de ne pas être bloqué par le problème de l'alimentation trop longtemps. Le robot nécessite également de nombreuses réparations, vu le temps d'inactivité de celui-ci, pour qu'il soit de nouveau utilisable. Nous allons enlever les capteurs qui sont jugés inutiles à la réalisation de notre projet, et recâbler les capteurs essentiels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé du matériel à acheter:&lt;br /&gt;
&lt;br /&gt;
- 2 batteries 12V et 24Ah.&lt;br /&gt;
&lt;br /&gt;
- Shield Sensor v4 pour Arduino.&lt;br /&gt;
&lt;br /&gt;
- Connecteurs de type FUTABA.&lt;br /&gt;
&lt;br /&gt;
- Gaine thermorétractable.&lt;br /&gt;
&lt;br /&gt;
- Boussole.&lt;br /&gt;
&lt;br /&gt;
- Gaine à câbles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé des changements à envisager :&lt;br /&gt;
&lt;br /&gt;
- Nettoyage total du robot.&lt;br /&gt;
&lt;br /&gt;
- Câblage des capteurs avec des câbles fins.&lt;br /&gt;
&lt;br /&gt;
- Réparation des supports des capteurs endommagés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot_centaure.jpg|200px|thumb|center|Robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
== L'inventaire du travail à réaliser, constaté à la première séance ==&lt;br /&gt;
&lt;br /&gt;
- Réparation de certains supports de capteurs.&lt;br /&gt;
&lt;br /&gt;
- Recâblage des capteurs et actionneurs.&lt;br /&gt;
&lt;br /&gt;
- Faire un bilan des éléments à acheter pour avoir une solution de câblage propre.&lt;br /&gt;
&lt;br /&gt;
- Choisir et programmer un microcontrôleur permettant d'être évolutif (choix d'un Arduino Mega).&lt;br /&gt;
&lt;br /&gt;
- Trouver une solution viable et propre de connectique sur l'Arduino.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:interieur_centaure.jpg|200px|thumb|center|intérieur du robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
= Bilan des séances =&lt;br /&gt;
&lt;br /&gt;
== 1er et 2ème séances ==&lt;br /&gt;
&lt;br /&gt;
=== La Kinect ===&lt;br /&gt;
Nous avons dans un premier temps pris en main la bibliothèque (Freenect) permettant de gérer la Kinect. Nous avons commencé par analyser et modifier un exemple de programme livré avec la bibliothèque (glview.c).&lt;br /&gt;
&lt;br /&gt;
Nous avons toutefois relevé un problème inhérent à la Kinect : la projection des infrarouges projette des ombres sur l'arrière plan. Ceci risque de poser des problèmes pour l'algorithme de décision de la trajectoire.&lt;br /&gt;
Un problème similaire est observé sur les surfaces vitrées.&lt;br /&gt;
&lt;br /&gt;
Notre première tâche a donc été de développer un premier algorithme permettant de récupérer ces zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
Nous avons pu ensuite jeter les premières bases de l’algorithme de décision de la trajectoire.&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
Nous avons, lors de la première séance, examiné le robot pour comprendre son fonctionnement. A partir de là, nous avons remarqué que le changement des batteries était notre priorité, vu l'état dans lequel celles-ci se trouvaient. Nous avons donc tout démonté pour prendre les références et en commander de nouvelles.&lt;br /&gt;
Lors de la seconde séance, nous avons listé les éléments à changer pour que le robot soit fonctionnel.&lt;br /&gt;
Nous devons donc :&lt;br /&gt;
&lt;br /&gt;
- Refaire le câblage des capteurs&lt;br /&gt;
&lt;br /&gt;
- Nous avons choisi un Arduino pour réaliser la liaison Capteur / Actionneur ainsi que la liaison avec le PC.&lt;br /&gt;
Le choix d'un Arduino Méga est la solution qui semble la plus adaptée, afin de rendre le robot évolutif. Sinon le nombre d'entrées / sorties risque d'être un élément bloquant, pour l'évolution du projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi réfléchi à la nouvelle connectique, qui sera de type prise &amp;quot;JR&amp;quot; utilisée dans le modélisme. Chaque prise correspondra à un capteur. Pour ce qui est de l'Arduino, nous voulons lui ajouter un Shield &amp;quot;Sensor&amp;quot; qui permet une gestion de la connectique des capteurs beaucoup plus simple. Il en existe 2 modèles, un limité à 300mA pour ce qui est de l'alimentation (ce qui peut être suffisant pour les capteurs) et un avec une alimentation externe permettant l'ajout de puissance. N'ayant pas besoin de puissance pour l'envoi ou la réception de signal, nous choisirons la première version.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connectiqe.jpg|200px|thumb|center|Connectique choisie]] [[Fichier:Shield_sensor.jpg|200px|thumb|center|Shield Arduino facilitant la connectique]]&lt;br /&gt;
&lt;br /&gt;
== 3ème et 4ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
Nous avons finis l'algorithme permettant de &amp;quot;reconstruire&amp;quot; les zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
L'algorithme que nous avons confectionné est relativement simple : il balaye l'image ligne par ligne, puis à chaque fois qu'il détecte une ombre il se procure la valeur de la profondeur à gauche et à droite de l'ombre. La valeur la plus lointaine sera utilisée pour remplir l'ombre, ce qui correspond à une bonne approximation.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif sans et avec l’algorithme de récupération des ombres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2.png|400px|thumb|left|Sans récupération des ombres. Les 3 lignes rouges délimitent les zones en dehors du champs de considération du robot.]]&lt;br /&gt;
[[Fichier:1.png|400px|thumb|center|Avec récupération des ombres]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons constater que l'image ainsi obtenue n'est pas très esthétique, mais cela permettra à l’algorithme de décision de la trajectoire de travailler sur des valeurs de profondeurs quasiment correctes.&lt;br /&gt;
De plus, la simplicité de l'algorithme permettra de ne pas utiliser trop de ressource processeur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également quasiment finalisé l'algorithme de décision de la trajectoire.&lt;br /&gt;
Tout d'abord, il faut savoir que l'algorithme ne travaille que sur une certaine zone de l'image. En effet un objet situé trop à gauche (ou trop en haut ou à droite) ne gênera pas le robot. Du coup seul une partie du champ de vision de la Kinect est utilisée. Pour régler ces constantes nous avons affiché 3 lignes délimitant l'espace de considération du robot.&lt;br /&gt;
&lt;br /&gt;
L’algorithme en lui-même consiste à calculer la moyenne des profondeurs de la partie gauche et droite de l'image.&lt;br /&gt;
Ensuite, nous calculons la différence entre ces 2 valeurs. Avec cette différence nous pouvons distinguer 3 cas :&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à gauche&lt;br /&gt;
* -C &amp;lt;= différence &amp;lt;= C  =&amp;gt; continuer tout droit&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à droite&lt;br /&gt;
(avec C une constante)&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, la décision de la trajectoire est prioritairement influencée par la présence d'objets très proches : &lt;br /&gt;
* Si un objet très proche est détecté à gauche et à droite le robot s'arrêtera&lt;br /&gt;
* Si un objet très proche est détecté à gauche le robot ira à droite dans tout les cas&lt;br /&gt;
* Si un objet très proche est détecté à droite le robot ira à gauche dans tout les cas&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
'''La 3ème séance''' avait un but purement informatif et explicatif pour nous. Nous avons pu rencontrer notre tuteur pour ce projet, Mr. LITWAK, afin de relater nos premières impressions, notre envie commune de voir le Centaure se mouvoir dans un premier temps, et remplir le cahier des charges qu'il nous est demandé de remplir par la suite. Nous avons évoqué avec lui le choix que nous avions décidé de prendre pour l'évolution de notre projet (solution Shield + Arduino Mega), ainsi que notre volonté de rendre le tout le plus esthétique possible (utilisation de nappes envisagée mais pas encore confirmée). Nous définissons ensemble un plan de route :&lt;br /&gt;
&lt;br /&gt;
1) Dégager les éléments inutiles.&lt;br /&gt;
&lt;br /&gt;
2) Restaurer l'alimentation et refaire les câblages nécessaires.&lt;br /&gt;
&lt;br /&gt;
3) Être capable de contrôler la direction de notre robot (asservissement en vitesse et en position nécessaires).&lt;br /&gt;
&lt;br /&gt;
4) Pouvoir joindre le côté commande et le côté Kinect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une boîte à outils nous est fournie pour nos travaux sur le Centaure, ainsi que toute la documentation nécessaire au bon déroulement de notre projet (la documentation sur les capteurs SHARP avant et arrière en particulier).&lt;br /&gt;
&lt;br /&gt;
'''La 4ème séance''' consiste à vider le Centaure de ses composants, dresser le bilan des éléments utiles et de ceux dont l'utilisation n'est pas envisagée.&lt;br /&gt;
&lt;br /&gt;
Au final, lors de cette semaine de projet, nous avons défini notre plan d'action, commencé le gros oeuvre sur le Centaure, puis noté les éléments de câblage à utiliser lorsque la phase de nettoyage sera terminée. Nous attendons pour la reprise l'arrivée des 2 batteries nécessaires à l'alimentation du robot, le Shield sensor ainsi que les connecteurs FUTABA/JR (les deux étant compatibles).&lt;br /&gt;
&lt;br /&gt;
Nous avons posé les bases du système et imaginé l'architecture finale du système, représentée par la figure ci-dessous, mais omettant certaines parties servants de liaisons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_simple.PNG|400px|thumb|center|Schéma simplifié du système]]&lt;br /&gt;
&lt;br /&gt;
== 5ème, 6ème et 7ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
L'algorithme de décision de la trajectoire par la Kinect étant fait, nous nous sommes penchés sur la capacité des PC embarqués disponibles à pouvoir exécuter le code de la Kinect.&lt;br /&gt;
Les premiers essais se sont révélés infructueux, les 2 PC embarquants pour exécuter le code.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors lancés dans une phase d'optimisation importante du code de gestion de la Kinect. Voici la liste des optimisations apportées :&lt;br /&gt;
* Suppression des fonctionalités non utilisé, tel que l'accéléromètre.&lt;br /&gt;
* Optimisation de Freenect, en configurant la capture de la vidéo et de la profondeur en qualité &amp;quot;low&amp;quot;&lt;br /&gt;
* Compilation de gcc optimisé avec l'option -O3&lt;br /&gt;
&lt;br /&gt;
Cependant, malgré toutes ces optimisations, le PC embarqué utilisé n'a pas réussis à exécuter le code. En effet, la totalité des paquets transitant sur USB sont perdus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons alors entrepris de monter un nouvel ordinateur embarqué. Plus puissant tout en restant basse consommation.&lt;br /&gt;
Voici la liste des composants utilisés :&lt;br /&gt;
*Carte mère : ASRock H61M-ITX MAJ du BIOS obligatoire [https://projets-ima.polytech-lille.net:40079/mediawiki/images/7/76/H61M-ITX%282.20%29ROM.zip]&lt;br /&gt;
*Processeur : Intel Core i3­3220T (2.8 GHz, 35W)&lt;br /&gt;
*Disque dur : Samsung SSD 840 120 Go&lt;br /&gt;
*Boîtier CUBE mini­ITX ­ Rouge&lt;br /&gt;
*Nous avons rajouté une alimentation PICOPSU permettant une alimentation direct en 12V.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Nous avons reçu, pendant les vacances, les éléments que nous avions commandé, et qui étaient nécessaires au bon déroulement de notre projet. Ainsi, le Shield Sensor pour Arduino, ainsi que les connecteurs, nous sont parvenus. Nous avons également reçu les deux batteries (12V, 24Ah), pour venir en remplacement des anciennes, qui étaient totalement Hors-Service.&lt;br /&gt;
Ces séances de la semaine nous ont permis de pouvoir (re)faire les câblages de tous nos capteurs (4 capteurs avant SHARP 2Y3A003 - portée de 40 à 300 cm ; 2 capteurs arrières SHARP 2Y0A02 - portée de 20 à 150 cm) avec les nappes fournies, de manière à les brancher directement sur le Shield.&lt;br /&gt;
Nous avons également installé les nouvelles batteries, et ainsi remettre en état de marche l'alimentation du robot (l'écran du Centaure s'allume).&lt;br /&gt;
Grâce à un mini-programme, nous avons pu vérifier le bon état des capteurs. Ainsi, 3 des capteurs avant et 1 capteur arrière répondent convenablement, les deux autres capteurs normalement utilisés étant HS.&lt;br /&gt;
Un autre programme a été mis au point sur l'Arduino, demandant une simple marche avant au Centaure. Nous vérifierons son fonctionnement la semaine prochaine, tout en nous penchant également sur le rétablissement de l'arrêt d'urgence et du coupe-batterie, primordiaux avant de faire se mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connecteur.jpg|400px|thumb|center|Connecteurs des capteurs IR]]&lt;br /&gt;
&lt;br /&gt;
== 8ème, 9ème et 10ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
INCORPORATION DE LA GESTION DE LA KINECT AU PROJET EXISTANT&lt;br /&gt;
&lt;br /&gt;
La gestion de la Kinect est opérationnelle. Cependant il nous a fallu implanter cette gestion au reste du programme existant.&lt;br /&gt;
Le code qui nous a été légué ne compilait plus. Il nous a fallu alors effectuer un important travail&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La commande de deux capteurs AV, de même référence que ceux déjà utilisés, ainsi que 4 relais, est lancée.&lt;br /&gt;
Pour la partie pratique, le variateur nous donne du fil à retordre, dans la mesure où toutes les sécurités de ce dernier ne sont pas indiquées dans la documentation technique. Nous nous sommes donc renseignés auprès de nos tuteurs, et nous nous sommes également référencés aux travaux antérieurs sur le Centaure. Le variateur nécessite une tension d'excitation de 60mV pour le faire démarrer. Le fonctionnement du variateur repose sur des interrupteurs. Ceux-ci doivent être dans des état complémentaires afin d'assurer la marche avant ou la marche arrière. Enfin, les moteurs étant commandés en tension, aucun retour à une tension nulle n'est permis, auquel cas la sécurité sera réactivée.&lt;br /&gt;
L'implantation d'un code Arduino pour une marche avant, arrière, ainsi qu'un arrêt, donne des résultats probants sur l'une des roues. &lt;br /&gt;
La connexion du second variateur réalisée, ainsi que la conception d'un code permettant le virage à gauche, puis à droite, nous permettent de faire &amp;quot;vadrouiller&amp;quot; le Centaure - définitivement vivant - dans le Hall de l'école, via l'interface Arduino sur un ordinateur portable (i: initialisation, a: marche avant, s: arrêt, r: marche arrière, v: virage gauche, t: virage droite). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test sur plaque LABTEC avec relay (expliquer pk pas transistor)&lt;br /&gt;
&lt;br /&gt;
Conception de la carte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_variateur.jpg|400px|thumb|Schéma de principe de la carte de commande des variateurs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_carte.jpg|400px|thumb|center|PCB de la carte de commande]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:3D_carte_commande.PNG|400px|thumb|center|Vu 3D]]&lt;br /&gt;
&lt;br /&gt;
== 11ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
Afin de moderniser la commande du robot via le web, nous avons revu certaines bases. Nous avons restructuré en grande partie le fichier .c gérant le serveur web afin de l'optimiser. Nous avons également supprimer la fonctionnalité qui empêcher 2 utilisateurs à se connecter à l'interface de commande simultanément, en effet elle ne fonctionnait malheureusement pas.&lt;br /&gt;
Enfin, nous envoyons à présent les commandes au robot en faisant appel à l'Ajax, ceci permet d'améliorer l'expérience utilisateur.&lt;br /&gt;
&lt;br /&gt;
Ce lot de modification s'incorpore au site web existant. &lt;br /&gt;
&lt;br /&gt;
Une refonte graphique total du site est à l'étude et sera intégré au projet dans le cas ou ce nouveau site est fonctionnelle.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Test du code de l'Arduino pour voir les fonctions de base.&lt;br /&gt;
&lt;br /&gt;
Manque 1 relais donc pas de marche arrière possible.&lt;br /&gt;
&lt;br /&gt;
Principales fonctions OK&lt;br /&gt;
&lt;br /&gt;
Il faut rajouter un indicateur de niveau de batterie, qui sera conçu de la manière suivante : Relais + Pont diviseur de tension (le relais permet de désactiver le pont, ainsi nous consommons moins).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur_PCB.JPG|400px|thumb|center|PCB de la carte du capteur batterie]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur.JPG|300px|thumb|center|PCB 3D de la carte du capteur de batterie]]&lt;br /&gt;
&lt;br /&gt;
   R1 = 62Kohm&lt;br /&gt;
   R2 = 15Kohm&lt;br /&gt;
&lt;br /&gt;
==Etape importante==&lt;br /&gt;
&lt;br /&gt;
Petit récapitulatif à mi-projet:&lt;br /&gt;
&lt;br /&gt;
- Reste a définir les éléments de communication PC &amp;lt;--&amp;gt; Arduino&lt;br /&gt;
&lt;br /&gt;
- Intégrer une gestion progressive de la vitesse dans l'Arduino&lt;br /&gt;
&lt;br /&gt;
- Faire la carte Relais&lt;br /&gt;
&lt;br /&gt;
- Créer la &amp;quot;mini-carte&amp;quot; permettant l'indication du niveau de batterie&lt;br /&gt;
&lt;br /&gt;
== 12 et 13ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
Les 2 séances ont permis de rendre la communication entre la partie &amp;quot;robotique&amp;quot; (arduino) et &amp;quot;informatique&amp;quot; (programme tournant sur un PC) fonctionnelle.&lt;br /&gt;
La communication et la répartition des tâches entre les 2 parties étant relativement complexe, cela à donné lieu à de nombreuses modifications.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La séance est principalement consacrée à l'établissement d'un cahier des charges fonctionnel, de manière à ce que l'on puisse expliquer le plus clairement possible ce que l'on attend de nous, et ce que nos tuteurs souhaitent voir en fin de projet. C'est une manière de nous plonger dans le monde du travail, où l'on nous fait comprendre que le cahier des charges fonctionnel est un accord entre le maître d'oeuvre et le maître d'ouvrage, et que le non respect de celui-ci peut nuire au maître d'oeuvre. Bien que le cahier des charges sera rendu avec la totalité des éléments demandés pour le projet, voici un petit récapitulatif des fonctions à intégrer au Centaure :&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; Direction automatique du robot par Kinect&lt;br /&gt;
--&amp;gt; Direction manuelle par infrarouge &lt;br /&gt;
--&amp;gt; Contrôle via site web (adaptabilité pour support tablette, PC, smartphones)&lt;br /&gt;
&lt;br /&gt;
Suite aux gros écarts de direction entraînés par la roue flottante avant, il a été décidé d'intégrer au centaure un module HMC6352, boussole pour Arduino, qui permettra la correction de trajectoire en cas de grosse déviation (en phase de test, les oscillations de la roue flottante sont difficilement contrôlables, donc nous envisageons de la bloquer, en plus de l'utilisation de la boussole, estimant que la puissance des moteurs est suffisante pour vaincre les frottements entraînés par un tel blocage lors d'un virage).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE RELAIS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Orange&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Noir&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;11&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Blanc&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN3&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Gris&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN4&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;+5V&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;VCC&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Marron&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE NIVEAU BATTERIE&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  'S' signifie port pour prise du Shield&lt;br /&gt;
  'G' signifie port de gauche (bouclé avec le port M) pour 1 relais&lt;br /&gt;
  'M' signifie port milieu pour 1 relais&lt;br /&gt;
  'D' signifie port de droite pour 1 relais&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_relais.jpg|300px|thumb|center|Carte relais des variateurs]]&lt;br /&gt;
&lt;br /&gt;
== 14, 15ème et 16ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
La partie du programme gérant la télécommande infrarouge a été optimisée et épurée.&lt;br /&gt;
&lt;br /&gt;
De même pour la partie gérant le protocole série. Par ailleurs, à présent le PC n’envoie l'ordre à l'arduino que si et seulement si l'ordre est différent de l'ordre précédent. Ceci permet d'éviter les conflits et de ne pas submerger la liaison série.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Mise en place Boitier Robot&lt;br /&gt;
&lt;br /&gt;
Connexion kinect sur PC, bug de liaison entre PC et arduino&lt;br /&gt;
&lt;br /&gt;
Création alimentation Kinect&lt;br /&gt;
&lt;br /&gt;
Connexion boussole par I2C, mais précision erronée...&lt;br /&gt;
&lt;br /&gt;
Bug programme arduino, comme problème boussole, alors ne s'arrête pas de tourner. Il faut une condition d'arrêt en plus.&lt;br /&gt;
&lt;br /&gt;
+ A chaque nouveau &amp;quot;avancer&amp;quot;, faire nivélation de la vitesse !!!!!!!!!!!!!!!!&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Boitier rangement.jpg|300px|thumb|center|Boitier rangement]]&lt;br /&gt;
[[Fichier:Kinect sur robot.jpg|300px|thumb|center|kinect sur le Robot pour test]]&lt;br /&gt;
&lt;br /&gt;
===Commande manuelle===&lt;br /&gt;
&lt;br /&gt;
L'objectif est de pouvoir commander le robot par divers moyens. Une partie automatique avec la kinect (cf ci-dessus) est mise en place , mais le cahier des charges demande une partie manuelle où il est possible, grâce à divers moyens, de faire se mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
Une télécommande infrarouge est dès lors mise dans le programme où il est possible de faire avancer, reculer ou tourner le robot.&lt;br /&gt;
&lt;br /&gt;
Une autre option de commande manuelle est aussi viable, la commande via serveur embarqué. De ce fait, il est possible de contrôler son robot via une tablette android, Iphone/Ipad, smartphone. Le site http://www.lamconcept.fr/CENTAURE/ est fonctionnel et demande des mots de passe afin de se connecter et diriger le robot.&lt;br /&gt;
&lt;br /&gt;
== Séances Vacances==&lt;br /&gt;
&lt;br /&gt;
===Commandes Manuelles===&lt;br /&gt;
Le programme C prend en compte la Commande Via infra-rouge.&lt;br /&gt;
La dernière de la commande manuelle réside dans l'interface Php. La connexion par LDAP ne fonctionnant pas, une page de connexion simple a été faite. LOGIN : Centaure2013 MDP:LV2R&lt;br /&gt;
Les pages PhP seront implantés dans le PC embarqué qui aura apache installé dessus. L'utilisateur se connectera directement sur le PC et sélectionnera l'interface php.&lt;br /&gt;
Après s'être identifié, l'utilisateur accédera directement à la vidéo de la kinect et aux commandes du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documents =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sources Arduino : [https://projets-ima.polytech-lille.net:40079/mediawiki/images/9/9e/Projet_CentaureV12pc.zip]&lt;br /&gt;
&lt;br /&gt;
Sources du programme du PC et de l'interface web : [http://projets-imasc.plil.net/mediawiki/images/7/7b/Centaure.zip]&lt;br /&gt;
&lt;br /&gt;
Application Androïd : [https://play.google.com/store/apps/details?id=com.tisc.direct_centaure#?t=W251bGwsMSwxLDIxMiwiY29tLnRpc2MuZGlyZWN0X2NlbnRhdXJlIl0.]&lt;br /&gt;
&lt;br /&gt;
Rapport Partie Robot : [https://projets-ima.polytech-lille.net:40079/mediawiki/images/d/da/Centaure_2013_Vandermeersch_Ribreau_FINAL.pdf]&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Centaure.zip&amp;diff=5960</id>
		<title>Fichier:Centaure.zip</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Centaure.zip&amp;diff=5960"/>
				<updated>2013-05-10T16:54:06Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : Sources du programmes PC du Centaure ainsi que l'interface web&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sources du programmes PC du Centaure ainsi que l'interface web&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=4860</id>
		<title>Robot Centaure</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=4860"/>
				<updated>2013-04-18T18:12:47Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* La Kinect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Etude du robot =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase de l'inventaire matériel ==&lt;br /&gt;
Dès la première séance nous avons vu que les batteries du robot étaient hors d'usage. Nous avons donc noté les références et demandé à Polytech'Lille de passer la commande de nouvelles batteries, afin de ne pas être bloqué par le problème de l'alimentation trop longtemps. Le robot nécessite également de nombreuses réparations, vu le temps d'inactivité de celui-ci, pour qu'il soit de nouveau utilisable. Nous allons enlever les capteurs qui sont jugés inutiles à la réalisation de notre projet, et recâbler les capteurs essentiels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé du matériel à acheter:&lt;br /&gt;
&lt;br /&gt;
- 2 batteries 12V et 24Ah.&lt;br /&gt;
&lt;br /&gt;
- Shield Sensor v4 pour Arduino.&lt;br /&gt;
&lt;br /&gt;
- Connecteurs de type FUTABA.&lt;br /&gt;
&lt;br /&gt;
- Gaine thermorétractable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé des changements à envisager :&lt;br /&gt;
&lt;br /&gt;
- Nettoyage total du robot.&lt;br /&gt;
&lt;br /&gt;
- Câblage des capteurs avec des câbles fins.&lt;br /&gt;
&lt;br /&gt;
- Réparation des supports des capteurs endommagés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot_centaure.jpg|200px|thumb|center|Robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
== L'inventaire du travail à réaliser, constaté à la première séance ==&lt;br /&gt;
&lt;br /&gt;
- Réparation de certains supports de capteurs.&lt;br /&gt;
&lt;br /&gt;
- Recâblage des capteurs et actionneurs.&lt;br /&gt;
&lt;br /&gt;
- Faire un bilan des éléments à acheter pour avoir une solution de câblage propre.&lt;br /&gt;
&lt;br /&gt;
- Choisir et programmer un microcontrôleur permettant d'être évolutif (choix d'un Arduino Mega).&lt;br /&gt;
&lt;br /&gt;
- Trouver une solution viable et propre de connectique sur l'Arduino.&lt;br /&gt;
&lt;br /&gt;
- Réaliser une carte de convertion PWM -&amp;gt; Tension pour le contrôle des moteurs (moteurs contrôlés en tension). Utilisation possible du logiciel PSIM pour les tests.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:interieur_centaure.jpg|200px|thumb|center|intérieur du robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
= Bilan des séances =&lt;br /&gt;
&lt;br /&gt;
== 1er et 2ème séances ==&lt;br /&gt;
&lt;br /&gt;
=== La Kinect ===&lt;br /&gt;
Nous avons dans un premier temps pris en main la bibliothèque (Freenect) permettant de gérer la Kinect. Nous avons commencé par analyser et modifier un exemple de programme livré avec la bibliothèque (glview.c).&lt;br /&gt;
&lt;br /&gt;
Nous avons toutefois relevé un problème inhérent à la Kinect : la projection des infrarouges projette des ombres sur l'arrière plan. Ceci risque de poser des problèmes pour l'algorithme de décision de la trajectoire.&lt;br /&gt;
Un problème similaire est observé sur les surfaces vitrées.&lt;br /&gt;
&lt;br /&gt;
Notre première tâche a donc été de développer un premier algorithme permettant de récupérer ces zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
Nous avons pu ensuite jeter les premières bases de l’algorithme de décision de la trajectoire.&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
Nous avons, lors de la première séance, examiné le robot pour comprendre son fonctionnement. A partir de là, nous avons remarqué que le changement des batteries était notre priorité, vu l'état dans lequel celles-ci se trouvaient. Nous avons donc tout démonté pour prendre les références et en commander de nouvelles.&lt;br /&gt;
Lors de la seconde séance, nous avons listé les éléments à changer pour que le robot soit fonctionnel.&lt;br /&gt;
Nous devons donc :&lt;br /&gt;
&lt;br /&gt;
- Refaire le câblage des capteurs&lt;br /&gt;
&lt;br /&gt;
- Nous avons choisi un Arduino pour réaliser la liaison Capteur / Actionneur ainsi que la liaison avec le PC.&lt;br /&gt;
Le choix d'un Arduino Méga est la solution qui semble la plus adaptée, afin de rendre le robot évolutif. Sinon le nombre d'entrées / sorties risque d'être un élément bloquant, pour l'évolution du projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi réfléchi à la nouvelle connectique, qui sera de type prise &amp;quot;JR&amp;quot; utilisée dans le modélisme. Chaque prise correspondra à un capteur. Pour ce qui est de l'Arduino, nous voulons lui ajouter un Shield &amp;quot;Sensor&amp;quot; qui permet une gestion de la connectique des capteurs beaucoup plus simple. Il en existe 2 modèles, un limité à 300mA pour ce qui est de l'alimentation (ce qui peut être suffisant pour les capteurs) et un avec une alimentation externe permettant l'ajout de puissance. N'ayant pas besoin de puissance pour l'envoi ou la réception de signal, nous choisirons la première version.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connectiqe.jpg|200px|thumb|center|Connectique choisie]] [[Fichier:Shield_sensor.jpg|200px|thumb|center|Shield Arduino facilitant la connectique]]&lt;br /&gt;
&lt;br /&gt;
== 3ème et 4ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
Nous avons finis l'algorithme permettant de &amp;quot;reconstruire&amp;quot; les zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
L'algorithme que nous avons confectionné est relativement simple : il balaye l'image ligne par ligne, puis à chaque fois qu'il détecte une ombre il se procure la valeur de la profondeur à gauche et à droite de l'ombre. La valeur la plus lointaine sera utilisée pour remplir l'ombre, ce qui correspond à une bonne approximation.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif sans et avec l’algorithme de récupération des ombres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2.png|400px|thumb|left|Sans récupération des ombres. Les 3 lignes rouges délimitent les zones en dehors du champs de considération du robot.]]&lt;br /&gt;
[[Fichier:1.png|400px|thumb|center|Avec récupération des ombres]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons constater que l'image ainsi obtenue n'est pas très esthétique, mais cela permettra à l’algorithme de décision de la trajectoire de travailler sur des valeurs de profondeurs quasiment correctes.&lt;br /&gt;
De plus, la simplicité de l'algorithme permettra de ne pas utiliser trop de ressource processeur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également quasiment finalisé l'algorithme de décision de la trajectoire.&lt;br /&gt;
Tout d'abord, il faut savoir que l'algorithme ne travaille que sur une certaine zone de l'image. En effet un objet situé trop à gauche (ou trop en haut ou à droite) ne gênera pas le robot. Du coup seul une partie du champ de vision de la Kinect est utilisée. Pour régler ces constantes nous avons affiché 3 lignes délimitant l'espace de considération du robot.&lt;br /&gt;
&lt;br /&gt;
L’algorithme en lui-même consiste à calculer la moyenne des profondeurs de la partie gauche et droite de l'image.&lt;br /&gt;
Ensuite, nous calculons la différence entre ces 2 valeurs. Avec cette différence nous pouvons distinguer 3 cas :&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à gauche&lt;br /&gt;
* -C &amp;lt;= différence &amp;lt;= C  =&amp;gt; continuer tout droit&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à droite&lt;br /&gt;
(avec C une constante)&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, la décision de la trajectoire est prioritairement influencée par la présence d'objets très proches : &lt;br /&gt;
* Si un objet très proche est détecté à gauche et à droite le robot s'arrêtera&lt;br /&gt;
* Si un objet très proche est détecté à gauche le robot ira à droite dans tout les cas&lt;br /&gt;
* Si un objet très proche est détecté à droite le robot ira à gauche dans tout les cas&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
'''La 3ème séance''' avait un but purement informatif et explicatif pour nous. Nous avons pu rencontrer notre tuteur pour ce projet, Mr. LITWAK, afin de relater nos premières impressions, notre envie commune de voir le Centaure se mouvoir dans un premier temps, et remplir le cahier des charges qu'il nous est demandé de remplir par la suite. Nous avons évoqué avec lui le choix que nous avions décidé de prendre pour l'évolution de notre projet (solution Shield + Arduino Mega), ainsi que notre volonté de rendre le tout le plus esthétique possible (utilisation de nappes envisagée mais pas encore confirmée). Nous définissons ensemble un plan de route :&lt;br /&gt;
&lt;br /&gt;
1) Dégager les éléments inutiles.&lt;br /&gt;
&lt;br /&gt;
2) Restaurer l'alimentation et refaire les câblages nécessaires.&lt;br /&gt;
&lt;br /&gt;
3) Être capable de contrôler la direction de notre robot (asservissement en vitesse et en position nécessaires).&lt;br /&gt;
&lt;br /&gt;
4) Pouvoir joindre le côté commande et le côté Kinect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une boîte à outils nous est fournie pour nos travaux sur le Centaure, ainsi que toute la documentation nécessaire au bon déroulement de notre projet (la documentation sur les capteurs SHARP avant et arrière en particulier).&lt;br /&gt;
&lt;br /&gt;
'''La 4ème séance''' consiste à vider le Centaure de ses composants, dresser le bilan des éléments utiles et de ceux dont l'utilisation n'est pas envisagée.&lt;br /&gt;
&lt;br /&gt;
Au final, lors de cette semaine de projet, nous avons défini notre plan d'action, commencé le gros oeuvre sur le Centaure, puis noté les éléments de câblage à utiliser lorsque la phase de nettoyage sera terminée. Nous attendons pour la reprise l'arrivée des 2 batteries nécessaires à l'alimentation du robot, le Shield sensor ainsi que les connecteurs FUTABA/JR (les deux étant compatibles).&lt;br /&gt;
&lt;br /&gt;
Nous avons posé les bases du système et imaginé l'architecture finale du système, représentée par la figure ci-dessous, mais omettant certaines parties servants de liaisons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_simple.PNG|400px|thumb|center|Schéma simplifié du système]]&lt;br /&gt;
&lt;br /&gt;
== 5ème, 6ème et 7ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
L'algorithme de décision de la trajectoire par la Kinect étant fait, nous nous sommes penchés sur la capacité des PC embarqués disponibles à pouvoir exécuter le code de la Kinect.&lt;br /&gt;
Les premiers essais se sont révélés infructueux, les 2 PC embarquants pour exécuter le code.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors lancés dans une phase d'optimisation importante du code de gestion de la Kinect. Voici la liste des optimisations apportées :&lt;br /&gt;
* Suppression des fonctionalités non utilisé, tel que l'accéléromètre.&lt;br /&gt;
* Optimisation de Freenect, en configurant la capture de la vidéo et de la profondeur en qualité &amp;quot;low&amp;quot;&lt;br /&gt;
* Compilation de gcc optimisé avec l'option -O3&lt;br /&gt;
&lt;br /&gt;
Cependant, malgré toutes ces optimisations, le PC embarqué utilisé n'a pas réussis à exécuter le code. En effet, la totalité des paquets transitant sur USB sont perdus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons alors entrepris de monter un nouvel ordinateur embarqué. Plus puissant tout en restant basse consommation.&lt;br /&gt;
Voici la liste des composants utilisés :&lt;br /&gt;
*Carte mère : ASRock H61M-ITX MAJ du BIOS obligatoire [https://projets-ima.polytech-lille.net:40079/mediawiki/images/7/76/H61M-ITX%282.20%29ROM.zip]&lt;br /&gt;
*Processeur : Intel Core i3­3220T (2.8 GHz, 35W)&lt;br /&gt;
*Disque dur : Samsung SSD 840 120 Go&lt;br /&gt;
*Boîtier CUBE mini­ITX ­ Rouge&lt;br /&gt;
*Nous avons rajouté une alimentation PICOPSU permettant une alimentation direct en 12V.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Nous avons reçu, pendant les vacances, les éléments que nous avions commandé, et qui étaient nécessaires au bon déroulement de notre projet. Ainsi, le Shield Sensor pour Arduino, ainsi que les connecteurs, nous sont parvenus. Nous avons également reçu les deux batteries (12V, 24Ah), pour venir en remplacement des anciennes, qui étaient totalement Hors-Service.&lt;br /&gt;
Ces séances de la semaine nous ont permis de pouvoir (re)faire les câblages de tous nos capteurs (4 capteurs avant SHARP 2Y3A003 - portée de 40 à 300 cm ; 2 capteurs arrières SHARP 2Y0A02 - portée de 20 à 150 cm) avec les nappes fournies, de manière à les brancher directement sur le Shield.&lt;br /&gt;
Nous avons également installé les nouvelles batteries, et ainsi remettre en état de marche l'alimentation du robot (l'écran du Centaure s'allume).&lt;br /&gt;
Grâce à un mini-programme, nous avons pu vérifier le bon état des capteurs. Ainsi, 3 des capteurs avant et 1 capteur arrière répondent convenablement, les deux autres capteurs normalement utilisés étant HS.&lt;br /&gt;
Un autre programme a été mis au point sur l'Arduino, demandant une simple marche avant au Centaure. Nous vérifierons son fonctionnement la semaine prochaine, tout en nous penchant également sur le rétablissement de l'arrêt d'urgence et du coupe-batterie, primordiaux avant de faire se mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connecteur.jpg|400px|thumb|center|Connecteurs des capteurs IR]]&lt;br /&gt;
&lt;br /&gt;
== 8ème, 9ème et 10ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
INCORPORATION DE LA GESTION DE LA KINECT AU PROJET EXISTANT&lt;br /&gt;
&lt;br /&gt;
La gestion de la Kinect est opérationnelle. Cependant il nous a fallu implanter cette gestion au reste du programme existant.&lt;br /&gt;
Le code qui nous a été légué ne compilait plus. Il nous a fallu alors effectuer un important travail&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La commande de deux capteurs AV, de même référence que ceux déjà utilisés, ainsi que 4 relais, est lancée.&lt;br /&gt;
Pour la partie pratique, le variateur nous donne du fil à retordre, dans la mesure où toutes les sécurités de ce dernier ne sont pas indiquées dans la documentation technique. Nous nous sommes donc renseignés auprès de nos tuteurs, et nous nous sommes également référencés aux travaux antérieurs sur le Centaure. Le variateur nécessite une tension d'excitation de 60mV pour le faire démarrer. Le fonctionnement du variateur repose sur des interrupteurs. Ceux-ci doivent être dans des état complémentaires afin d'assurer la marche avant ou la marche arrière. Enfin, les moteurs étant commandés en tension, aucun retour à une tension nulle n'est permis, auquel cas la sécurité sera réactivée.&lt;br /&gt;
L'implantation d'un code Arduino pour une marche avant, arrière, ainsi qu'un arrêt, donne des résultats probants sur l'une des roues. &lt;br /&gt;
La connexion du second variateur réalisée, ainsi que la conception d'un code permettant le virage à gauche, puis à droite, nous permettent de faire &amp;quot;vadrouiller&amp;quot; le Centaure - définitivement vivant - dans le Hall de l'école, via l'interface Arduino sur un ordinateur portable (i: initialisation, a: marche avant, s: arrêt, r: marche arrière, v: virage gauche, t: virage droite). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test sur plaque LABTEC avec relay (expliquer pk pas transistor)&lt;br /&gt;
&lt;br /&gt;
Conception de la carte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_variateur.jpg|400px|thumb|Schéma de principe de la carte de commande des variateurs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_carte.jpg|400px|thumb|center|PCB de la carte de commande]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:3D_carte_commande.PNG|400px|thumb|center|Vu 3D]]&lt;br /&gt;
&lt;br /&gt;
== 11ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
Afin de moderniser la commande du robot via le web, nous avons revu certaines bases. Nous avons restructuré en grande partie le fichier .c gérant le serveur web afin de l'optimiser. Nous avons également supprimer la fonctionnalité qui empêcher 2 utilisateurs à se connecter à l'interface de commande simultanément, en effet elle ne fonctionnait malheureusement pas.&lt;br /&gt;
Enfin, nous envoyons à présent les commandes au robot en faisant appel à l'Ajax, ceci permet d'améliorer l'expérience utilisateur.&lt;br /&gt;
&lt;br /&gt;
Ce lot de modification s'incorpore au site web existant. &lt;br /&gt;
&lt;br /&gt;
Une refonte graphique total du site est à l'étude et sera intégré au projet dans le cas ou ce nouveau site est fonctionnelle.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Test du code de l'Arduino pour voir les fonctions de base.&lt;br /&gt;
&lt;br /&gt;
Manque 1 relais donc pas marche arrière possible.&lt;br /&gt;
&lt;br /&gt;
Principale fonction OK&lt;br /&gt;
&lt;br /&gt;
Il faut rajouté un indicateur de niveau de batterie. Sera conçu de la manière suivante : Relais + Pont diviseur de tension (le relais permet de désactiver le pont. Ainsi nous consommons moins)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur_PCB.JPG|400px|thumb|center|PCB de la carte du capteur batterie]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur.JPG|300px|thumb|center|PCB 3D de la carte du capteur de batterie]]&lt;br /&gt;
&lt;br /&gt;
   R1 = 62Kohm&lt;br /&gt;
   R2 = 15Kohm&lt;br /&gt;
&lt;br /&gt;
==Etape importante==&lt;br /&gt;
&lt;br /&gt;
Petit récapitulatif à mi-projet:&lt;br /&gt;
&lt;br /&gt;
- Reste a définir les éléments de communication PC -- Arduino&lt;br /&gt;
&lt;br /&gt;
- Intégrer un régulateur de type FLOU dans l'Arduino&lt;br /&gt;
&lt;br /&gt;
- Faire la carte Relais&lt;br /&gt;
&lt;br /&gt;
- Créer la &amp;quot;mini-carte&amp;quot; permettant l'indication du niveau de batterie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 12 et 13ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
Les 2 séances ont permis de rendre la communication entre la partie &amp;quot;robotique&amp;quot; (arduino) et &amp;quot;informatique&amp;quot; (programme tournant sur un PC) fonctionnelle.&lt;br /&gt;
La communication et la répartition des tâches entre les 2 parties étant relativement complexe, cela à donné lieu à de nombreuses modifications.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La séance est principalement consacrée à l'établissement d'un cahier des charges fonctionnel, de manière à ce que l'on puisse expliquer le plus clairement possible ce que l'on attend de nous, et ce que nos tuteurs souhaitent voir en fin de projet. C'est une manière de nous plonger dans le monde du travail, où l'on nous fait comprendre que le cahier des charges fonctionnel est un accord entre le maître d'oeuvre et le maître d'ouvrage, et que le non respect de celui-ci peut nuire au maître d'oeuvre. Bien que le cahier des charges sera rendu avec la totalité des éléments demandés pour le projet, voici un petit récapitulatif des fonctions à intégrer au Centaure :&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; Direction automatique du robot par Kinect&lt;br /&gt;
--&amp;gt; Direction manuelle par infrarouge &lt;br /&gt;
--&amp;gt; Contrôle via site web (adaptabilité pour support tablette, PC, smartphones)&lt;br /&gt;
--&amp;gt; Régulation de vitesse&lt;br /&gt;
&lt;br /&gt;
Suites aux gros écarts de direction entraînés par la roue flottante avant, il a été décidé d'intégrer au centaure un module HMC6352, boussole pour Arduino, qui permettra la correction de trajectoire en cas de grosse déviation (en phase de test, les oscillations de la roue flottante sont difficilement contrôlables, donc nous envisageons de la bloquer, en plus de l'utilisation de la boussole, estimant que la puissance des moteurs est suffisante pour vaincre les frottements entraînés par un tel blocage lors d'un virage).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+'''Légende'''&lt;br /&gt;
|'''A'''&lt;br /&gt;
|'''B'''&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
| A1&lt;br /&gt;
| B1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE RELAIS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Orange&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Noir&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;11&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Blanc&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN3&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Gris&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN4&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;+5V&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;VCC&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Marron&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE NIVEAU BATTERIE&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CONNECTION VARIATEUR&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CONNECTION RELAIS&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;FILS VARIATEURS&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  'S' signifie port pour prise du Shield&lt;br /&gt;
  'G' signifie port de gauche (bouclé avec le port M) pour 1 relais&lt;br /&gt;
  'M' signifie port milieu pour 1 relais&lt;br /&gt;
  'D' signifie port de droite pour 1 relais&lt;br /&gt;
&lt;br /&gt;
A FINIR !!!!!!!!!! DE COMPLETER TABLEAU =)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_relais.jpg|300px|thumb|center|Carte relais des variateurs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 14, 15ème et 16ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
La partie du programme gérant la télécommande infrarouge a été optimisé et épuré.&lt;br /&gt;
&lt;br /&gt;
De même pour la partie gérant le protocole série. Par ailleurs, à présent le PC n’envoie l'ordre à l'arduino si et seulement si l'ordre est différent de l'ordre précédent. Ceci permet d'éviter les conflits et de ne pas submerger la liaison série.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Mise en place Boitier Robot&lt;br /&gt;
&lt;br /&gt;
Connection kinect sur PC, bug de liaison entre PC et arduino&lt;br /&gt;
&lt;br /&gt;
Création alimentation Kinect&lt;br /&gt;
&lt;br /&gt;
Connection boussole par I2C, mais prescision érroné...&lt;br /&gt;
&lt;br /&gt;
Bug programme arduino, comme pbl boussole, alors ne s'arrete pas de tourner. Il faut une condition d'arret en +&lt;br /&gt;
&lt;br /&gt;
+ A chaque nouveau avancer, faire nivélation vitesse !!!!!!!!!!!!!!!!&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Boitier rangement.jpg|300px|thumb|center|Boitier rangement]]&lt;br /&gt;
[[Fichier:Kinect sur robot.jpg|300px|thumb|center|kinect sur le Robot pour test]]&lt;br /&gt;
&lt;br /&gt;
===Commande manuelle===&lt;br /&gt;
&lt;br /&gt;
L'objectif est de pouvoir commander le robot par divers moyens. Une partie automatique avec la kinect(cf au dessus) est mise en place , mais le cahier des charges demande une partie manuelle où il est possible grâce à divers moyen de faire mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
Une télécommande infrarouge est dés lors mise dans le programme où il est possible de faire avancer, reculer ou tourner le robot.&lt;br /&gt;
&lt;br /&gt;
Une autre option de commande manuelle est aussi viable, la commande via serveur embarqué. De ce fait, il est possible de contrôler son robot via une tablette android,Iphone/Ipad ,smartphone.Le site http://www.lamconcept.fr/CENTAURE/ est fonctionnel et demande des mots de passe afin de se connecter et diriger le robot. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séances Vacances==&lt;br /&gt;
&lt;br /&gt;
===Commandes Manuelles===&lt;br /&gt;
Le programme C prend en compte la Commande Via infra-rouge.&lt;br /&gt;
La dernière de la commande manuelle réside dans l'interface Php. La connexion par LDAP ne fonctionnant pas, une page de connexion simple a été faite. LOGIN : Centaure2013 MDP:LV2R&lt;br /&gt;
Les pages PhP seront implantés dans le PC embarqué qui aura apache installé dessus. L'utilisateur se connectera directement sur le PC et sélectionnera l'interface php.&lt;br /&gt;
Après s'être identifié, l'utilisateur accédera directement à la vidéo de la kinect et aux commandes du robot.&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=4859</id>
		<title>Robot Centaure</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=4859"/>
				<updated>2013-04-18T18:09:40Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* La Kinect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Etude du robot =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase de l'inventaire matériel ==&lt;br /&gt;
Dès la première séance nous avons vu que les batteries du robot étaient hors d'usage. Nous avons donc noté les références et demandé à Polytech'Lille de passer la commande de nouvelles batteries, afin de ne pas être bloqué par le problème de l'alimentation trop longtemps. Le robot nécessite également de nombreuses réparations, vu le temps d'inactivité de celui-ci, pour qu'il soit de nouveau utilisable. Nous allons enlever les capteurs qui sont jugés inutiles à la réalisation de notre projet, et recâbler les capteurs essentiels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé du matériel à acheter:&lt;br /&gt;
&lt;br /&gt;
- 2 batteries 12V et 24Ah.&lt;br /&gt;
&lt;br /&gt;
- Shield Sensor v4 pour Arduino.&lt;br /&gt;
&lt;br /&gt;
- Connecteurs de type FUTABA.&lt;br /&gt;
&lt;br /&gt;
- Gaine thermorétractable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé des changements à envisager :&lt;br /&gt;
&lt;br /&gt;
- Nettoyage total du robot.&lt;br /&gt;
&lt;br /&gt;
- Câblage des capteurs avec des câbles fins.&lt;br /&gt;
&lt;br /&gt;
- Réparation des supports des capteurs endommagés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot_centaure.jpg|200px|thumb|center|Robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
== L'inventaire du travail à réaliser, constaté à la première séance ==&lt;br /&gt;
&lt;br /&gt;
- Réparation de certains supports de capteurs.&lt;br /&gt;
&lt;br /&gt;
- Recâblage des capteurs et actionneurs.&lt;br /&gt;
&lt;br /&gt;
- Faire un bilan des éléments à acheter pour avoir une solution de câblage propre.&lt;br /&gt;
&lt;br /&gt;
- Choisir et programmer un microcontrôleur permettant d'être évolutif (choix d'un Arduino Mega).&lt;br /&gt;
&lt;br /&gt;
- Trouver une solution viable et propre de connectique sur l'Arduino.&lt;br /&gt;
&lt;br /&gt;
- Réaliser une carte de convertion PWM -&amp;gt; Tension pour le contrôle des moteurs (moteurs contrôlés en tension). Utilisation possible du logiciel PSIM pour les tests.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:interieur_centaure.jpg|200px|thumb|center|intérieur du robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
= Bilan des séances =&lt;br /&gt;
&lt;br /&gt;
== 1er et 2ème séances ==&lt;br /&gt;
&lt;br /&gt;
=== La Kinect ===&lt;br /&gt;
Nous avons dans un premier temps pris en main la bibliothèque (Freenect) permettant de gérer la Kinect. Nous avons commencé par analyser et modifier un exemple de programme livré avec la bibliothèque (glview.c).&lt;br /&gt;
&lt;br /&gt;
Nous avons toutefois relevé un problème inhérent à la Kinect : la projection des infrarouges projette des ombres sur l'arrière plan. Ceci risque de poser des problèmes pour l'algorithme de décision de la trajectoire.&lt;br /&gt;
Un problème similaire est observé sur les surfaces vitrées.&lt;br /&gt;
&lt;br /&gt;
Notre première tâche a donc été de développer un premier algorithme permettant de récupérer ces zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
Nous avons pu ensuite jeter les premières bases de l’algorithme de décision de la trajectoire.&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
Nous avons, lors de la première séance, examiné le robot pour comprendre son fonctionnement. A partir de là, nous avons remarqué que le changement des batteries était notre priorité, vu l'état dans lequel celles-ci se trouvaient. Nous avons donc tout démonté pour prendre les références et en commander de nouvelles.&lt;br /&gt;
Lors de la seconde séance, nous avons listé les éléments à changer pour que le robot soit fonctionnel.&lt;br /&gt;
Nous devons donc :&lt;br /&gt;
&lt;br /&gt;
- Refaire le câblage des capteurs&lt;br /&gt;
&lt;br /&gt;
- Nous avons choisi un Arduino pour réaliser la liaison Capteur / Actionneur ainsi que la liaison avec le PC.&lt;br /&gt;
Le choix d'un Arduino Méga est la solution qui semble la plus adaptée, afin de rendre le robot évolutif. Sinon le nombre d'entrées / sorties risque d'être un élément bloquant, pour l'évolution du projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi réfléchi à la nouvelle connectique, qui sera de type prise &amp;quot;JR&amp;quot; utilisée dans le modélisme. Chaque prise correspondra à un capteur. Pour ce qui est de l'Arduino, nous voulons lui ajouter un Shield &amp;quot;Sensor&amp;quot; qui permet une gestion de la connectique des capteurs beaucoup plus simple. Il en existe 2 modèles, un limité à 300mA pour ce qui est de l'alimentation (ce qui peut être suffisant pour les capteurs) et un avec une alimentation externe permettant l'ajout de puissance. N'ayant pas besoin de puissance pour l'envoi ou la réception de signal, nous choisirons la première version.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connectiqe.jpg|200px|thumb|center|Connectique choisie]] [[Fichier:Shield_sensor.jpg|200px|thumb|center|Shield Arduino facilitant la connectique]]&lt;br /&gt;
&lt;br /&gt;
== 3ème et 4ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
Nous avons finis l'algorithme permettant de &amp;quot;reconstruire&amp;quot; les zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
L'algorithme que nous avons confectionné est relativement simple : il balaye l'image ligne par ligne, puis à chaque fois qu'il détecte une ombre il se procure la valeur de la profondeur à gauche et à droite de l'ombre. La valeur la plus lointaine sera utilisée pour remplir l'ombre, ce qui correspond à une bonne approximation.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif sans et avec l’algorithme de récupération des ombres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2.png|400px|thumb|left|Sans récupération des ombres. Les 3 lignes rouges délimitent les zones en dehors du champs de considération du robot.]]&lt;br /&gt;
[[Fichier:1.png|400px|thumb|center|Avec récupération des ombres]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons constater que l'image ainsi obtenue n'est pas très esthétique, mais cela permettra à l’algorithme de décision de la trajectoire de travailler sur des valeurs de profondeurs quasiment correctes.&lt;br /&gt;
De plus, la simplicité de l'algorithme permettra de ne pas utiliser trop de ressource processeur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également quasiment finalisé l'algorithme de décision de la trajectoire.&lt;br /&gt;
Tout d'abord, il faut savoir que l'algorithme ne travaille que sur une certaine zone de l'image. En effet un objet situé trop à gauche (ou trop en haut ou à droite) ne gênera pas le robot. Du coup seul une partie du champ de vision de la Kinect est utilisée. Pour régler ces constantes nous avons affiché 3 lignes délimitant l'espace de considération du robot.&lt;br /&gt;
&lt;br /&gt;
L’algorithme en lui-même consiste à calculer la moyenne des profondeurs de la partie gauche et droite de l'image.&lt;br /&gt;
Ensuite, nous calculons la différence entre ces 2 valeurs. Avec cette différence nous pouvons distinguer 3 cas :&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à gauche&lt;br /&gt;
* -C &amp;lt;= différence &amp;lt;= C  =&amp;gt; continuer tout droit&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à droite&lt;br /&gt;
(avec C une constante)&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, la décision de la trajectoire est prioritairement influencée par la présence d'objets très proches : &lt;br /&gt;
* Si un objet très proche est détecté à gauche et à droite le robot s'arrêtera&lt;br /&gt;
* Si un objet très proche est détecté à gauche le robot ira à droite dans tout les cas&lt;br /&gt;
* Si un objet très proche est détecté à droite le robot ira à gauche dans tout les cas&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
'''La 3ème séance''' avait un but purement informatif et explicatif pour nous. Nous avons pu rencontrer notre tuteur pour ce projet, Mr. LITWAK, afin de relater nos premières impressions, notre envie commune de voir le Centaure se mouvoir dans un premier temps, et remplir le cahier des charges qu'il nous est demandé de remplir par la suite. Nous avons évoqué avec lui le choix que nous avions décidé de prendre pour l'évolution de notre projet (solution Shield + Arduino Mega), ainsi que notre volonté de rendre le tout le plus esthétique possible (utilisation de nappes envisagée mais pas encore confirmée). Nous définissons ensemble un plan de route :&lt;br /&gt;
&lt;br /&gt;
1) Dégager les éléments inutiles.&lt;br /&gt;
&lt;br /&gt;
2) Restaurer l'alimentation et refaire les câblages nécessaires.&lt;br /&gt;
&lt;br /&gt;
3) Être capable de contrôler la direction de notre robot (asservissement en vitesse et en position nécessaires).&lt;br /&gt;
&lt;br /&gt;
4) Pouvoir joindre le côté commande et le côté Kinect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une boîte à outils nous est fournie pour nos travaux sur le Centaure, ainsi que toute la documentation nécessaire au bon déroulement de notre projet (la documentation sur les capteurs SHARP avant et arrière en particulier).&lt;br /&gt;
&lt;br /&gt;
'''La 4ème séance''' consiste à vider le Centaure de ses composants, dresser le bilan des éléments utiles et de ceux dont l'utilisation n'est pas envisagée.&lt;br /&gt;
&lt;br /&gt;
Au final, lors de cette semaine de projet, nous avons défini notre plan d'action, commencé le gros oeuvre sur le Centaure, puis noté les éléments de câblage à utiliser lorsque la phase de nettoyage sera terminée. Nous attendons pour la reprise l'arrivée des 2 batteries nécessaires à l'alimentation du robot, le Shield sensor ainsi que les connecteurs FUTABA/JR (les deux étant compatibles).&lt;br /&gt;
&lt;br /&gt;
Nous avons posé les bases du système et imaginé l'architecture finale du système, représentée par la figure ci-dessous, mais omettant certaines parties servants de liaisons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_simple.PNG|400px|thumb|center|Schéma simplifié du système]]&lt;br /&gt;
&lt;br /&gt;
== 5ème, 6ème et 7ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
L'algorithme de décision de la trajectoire par la Kinect étant fait, nous nous sommes penchés sur la capacité des PC embarqués disponibles à pouvoir exécuter le code de la Kinect.&lt;br /&gt;
Les premiers essais se sont révélés infructueux, les 2 PC embarquants pour exécuter le code.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors lancés dans une phase d'optimisation importante du code de gestion de la Kinect. Voici la liste des optimisations apportées :&lt;br /&gt;
* Suppression des fonctionalités non utilisé, tel que l'accéléromètre.&lt;br /&gt;
* Optimisation de Freenect, en configurant la capture de la vidéo et de la profondeur en qualité &amp;quot;low&amp;quot;&lt;br /&gt;
* Compilation de gcc optimisé avec l'option -O3&lt;br /&gt;
&lt;br /&gt;
Cependant, malgré toutes ces optimisations, le PC embarqué utilisé n'a pas réussis à exécuter le code. En effet, la totalité des paquets transitant sur USB sont perdus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons alors entrepris de monter un nouvel ordinateur embarqué. Plus puissant tout en restant basse consommation.&lt;br /&gt;
Voici la liste des composants utilisés :&lt;br /&gt;
*Carte mère : ASRock H61M-ITX MAJ du BIOS obligatoire [https://projets-ima.polytech-lille.net:40079/mediawiki/images/7/76/H61M-ITX%282.20%29ROM.zip]&lt;br /&gt;
*Processeur : Intel Core i3­3220T (2.8 GHz, 35W)&lt;br /&gt;
*Disque dur : Samsung SSD 840 120 Go&lt;br /&gt;
*Boîtier CUBE mini­ITX ­ Rouge&lt;br /&gt;
*Nous avons rajouté une alimentation PICOPSU permettant une alimentation direct en 12V.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Nous avons reçu, pendant les vacances, les éléments que nous avions commandé, et qui étaient nécessaires au bon déroulement de notre projet. Ainsi, le Shield Sensor pour Arduino, ainsi que les connecteurs, nous sont parvenus. Nous avons également reçu les deux batteries (12V, 24Ah), pour venir en remplacement des anciennes, qui étaient totalement Hors-Service.&lt;br /&gt;
Ces séances de la semaine nous ont permis de pouvoir (re)faire les câblages de tous nos capteurs (4 capteurs avant SHARP 2Y3A003 - portée de 40 à 300 cm ; 2 capteurs arrières SHARP 2Y0A02 - portée de 20 à 150 cm) avec les nappes fournies, de manière à les brancher directement sur le Shield.&lt;br /&gt;
Nous avons également installé les nouvelles batteries, et ainsi remettre en état de marche l'alimentation du robot (l'écran du Centaure s'allume).&lt;br /&gt;
Grâce à un mini-programme, nous avons pu vérifier le bon état des capteurs. Ainsi, 3 des capteurs avant et 1 capteur arrière répondent convenablement, les deux autres capteurs normalement utilisés étant HS.&lt;br /&gt;
Un autre programme a été mis au point sur l'Arduino, demandant une simple marche avant au Centaure. Nous vérifierons son fonctionnement la semaine prochaine, tout en nous penchant également sur le rétablissement de l'arrêt d'urgence et du coupe-batterie, primordiaux avant de faire se mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connecteur.jpg|400px|thumb|center|Connecteurs des capteurs IR]]&lt;br /&gt;
&lt;br /&gt;
== 8ème, 9ème et 10ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
INCORPORATION DE LA GESTION DE LA KINECT AU PROJET EXISTANT&lt;br /&gt;
&lt;br /&gt;
La gestion de la Kinect est opérationnelle. Cependant il nous a fallu implanter cette gestion au reste du programme existant.&lt;br /&gt;
Le code qui nous a été légué ne compilait plus. Il nous a fallu alors effectuer un important travail&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La commande de deux capteurs AV, de même référence que ceux déjà utilisés, ainsi que 4 relais, est lancée.&lt;br /&gt;
Pour la partie pratique, le variateur nous donne du fil à retordre, dans la mesure où toutes les sécurités de ce dernier ne sont pas indiquées dans la documentation technique. Nous nous sommes donc renseignés auprès de nos tuteurs, et nous nous sommes également référencés aux travaux antérieurs sur le Centaure. Le variateur nécessite une tension d'excitation de 60mV pour le faire démarrer. Le fonctionnement du variateur repose sur des interrupteurs. Ceux-ci doivent être dans des état complémentaires afin d'assurer la marche avant ou la marche arrière. Enfin, les moteurs étant commandés en tension, aucun retour à une tension nulle n'est permis, auquel cas la sécurité sera réactivée.&lt;br /&gt;
L'implantation d'un code Arduino pour une marche avant, arrière, ainsi qu'un arrêt, donne des résultats probants sur l'une des roues. &lt;br /&gt;
La connexion du second variateur réalisée, ainsi que la conception d'un code permettant le virage à gauche, puis à droite, nous permettent de faire &amp;quot;vadrouiller&amp;quot; le Centaure - définitivement vivant - dans le Hall de l'école, via l'interface Arduino sur un ordinateur portable (i: initialisation, a: marche avant, s: arrêt, r: marche arrière, v: virage gauche, t: virage droite). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test sur plaque LABTEC avec relay (expliquer pk pas transistor)&lt;br /&gt;
&lt;br /&gt;
Conception de la carte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_variateur.jpg|400px|thumb|Schéma de principe de la carte de commande des variateurs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_carte.jpg|400px|thumb|center|PCB de la carte de commande]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:3D_carte_commande.PNG|400px|thumb|center|Vu 3D]]&lt;br /&gt;
&lt;br /&gt;
== 11ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
Afin de moderniser la commande du robot via le web, nous avons revu certaines bases. Nous avons restructuré en grande partie le fichier .c gérant le serveur web afin de l'optimiser. Nous avons également supprimer la fonctionnalité qui empêcher 2 utilisateurs à se connecter à l'interface de commande simultanément, en effet elle ne fonctionnait malheureusement pas.&lt;br /&gt;
Enfin, nous envoyons à présent les commandes au robot en faisant appel à l'Ajax, ceci permet d'améliorer l'expérience utilisateur.&lt;br /&gt;
&lt;br /&gt;
Ce lot de modification s'incorpore au site web existant. &lt;br /&gt;
&lt;br /&gt;
Une refonte graphique total du site est à l'étude et sera intégré au projet dans le cas ou ce nouveau site est fonctionnelle.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Test du code de l'Arduino pour voir les fonctions de base.&lt;br /&gt;
&lt;br /&gt;
Manque 1 relais donc pas marche arrière possible.&lt;br /&gt;
&lt;br /&gt;
Principale fonction OK&lt;br /&gt;
&lt;br /&gt;
Il faut rajouté un indicateur de niveau de batterie. Sera conçu de la manière suivante : Relais + Pont diviseur de tension (le relais permet de désactiver le pont. Ainsi nous consommons moins)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur_PCB.JPG|400px|thumb|center|PCB de la carte du capteur batterie]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur.JPG|300px|thumb|center|PCB 3D de la carte du capteur de batterie]]&lt;br /&gt;
&lt;br /&gt;
   R1 = 62Kohm&lt;br /&gt;
   R2 = 15Kohm&lt;br /&gt;
&lt;br /&gt;
==Etape importante==&lt;br /&gt;
&lt;br /&gt;
Petit récapitulatif à mi-projet:&lt;br /&gt;
&lt;br /&gt;
- Reste a définir les éléments de communication PC -- Arduino&lt;br /&gt;
&lt;br /&gt;
- Intégrer un régulateur de type FLOU dans l'Arduino&lt;br /&gt;
&lt;br /&gt;
- Faire la carte Relais&lt;br /&gt;
&lt;br /&gt;
- Créer la &amp;quot;mini-carte&amp;quot; permettant l'indication du niveau de batterie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 12 et 13ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
Les 2 séances ont permis de rendre la communication entre la partie &amp;quot;robotique&amp;quot; (arduino) et &amp;quot;informatique&amp;quot; (programme tournant sur un PC) fonctionnelle.&lt;br /&gt;
La communication et la répartition des tâches entre les 2 parties étant relativement complexe, cela à donné lieu à de nombreuses modifications.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La séance est principalement consacrée à l'établissement d'un cahier des charges fonctionnel, de manière à ce que l'on puisse expliquer le plus clairement possible ce que l'on attend de nous, et ce que nos tuteurs souhaitent voir en fin de projet. C'est une manière de nous plonger dans le monde du travail, où l'on nous fait comprendre que le cahier des charges fonctionnel est un accord entre le maître d'oeuvre et le maître d'ouvrage, et que le non respect de celui-ci peut nuire au maître d'oeuvre. Bien que le cahier des charges sera rendu avec la totalité des éléments demandés pour le projet, voici un petit récapitulatif des fonctions à intégrer au Centaure :&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; Direction automatique du robot par Kinect&lt;br /&gt;
--&amp;gt; Direction manuelle par infrarouge &lt;br /&gt;
--&amp;gt; Contrôle via site web (adaptabilité pour support tablette, PC, smartphones)&lt;br /&gt;
--&amp;gt; Régulation de vitesse&lt;br /&gt;
&lt;br /&gt;
Suites aux gros écarts de direction entraînés par la roue flottante avant, il a été décidé d'intégrer au centaure un module HMC6352, boussole pour Arduino, qui permettra la correction de trajectoire en cas de grosse déviation (en phase de test, les oscillations de la roue flottante sont difficilement contrôlables, donc nous envisageons de la bloquer, en plus de l'utilisation de la boussole, estimant que la puissance des moteurs est suffisante pour vaincre les frottements entraînés par un tel blocage lors d'un virage).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+'''Légende'''&lt;br /&gt;
|'''A'''&lt;br /&gt;
|'''B'''&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
| A1&lt;br /&gt;
| B1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE RELAIS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Orange&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Noir&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;11&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Blanc&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN3&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Gris&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN4&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;+5V&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;VCC&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Marron&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE NIVEAU BATTERIE&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CONNECTION VARIATEUR&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CONNECTION RELAIS&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;FILS VARIATEURS&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  'S' signifie port pour prise du Shield&lt;br /&gt;
  'G' signifie port de gauche (bouclé avec le port M) pour 1 relais&lt;br /&gt;
  'M' signifie port milieu pour 1 relais&lt;br /&gt;
  'D' signifie port de droite pour 1 relais&lt;br /&gt;
&lt;br /&gt;
A FINIR !!!!!!!!!! DE COMPLETER TABLEAU =)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_relais.jpg|300px|thumb|center|Carte relais des variateurs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 14, 15ème et 16ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Mise en place Boitier Robot&lt;br /&gt;
&lt;br /&gt;
Connection kinect sur PC, bug de liaison entre PC et arduino&lt;br /&gt;
&lt;br /&gt;
Création alimentation Kinect&lt;br /&gt;
&lt;br /&gt;
Connection boussole par I2C, mais prescision érroné...&lt;br /&gt;
&lt;br /&gt;
Bug programme arduino, comme pbl boussole, alors ne s'arrete pas de tourner. Il faut une condition d'arret en +&lt;br /&gt;
&lt;br /&gt;
+ A chaque nouveau avancer, faire nivélation vitesse !!!!!!!!!!!!!!!!&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Boitier rangement.jpg|300px|thumb|center|Boitier rangement]]&lt;br /&gt;
[[Fichier:Kinect sur robot.jpg|300px|thumb|center|kinect sur le Robot pour test]]&lt;br /&gt;
&lt;br /&gt;
===Commande manuelle===&lt;br /&gt;
&lt;br /&gt;
L'objectif est de pouvoir commander le robot par divers moyens. Une partie automatique avec la kinect(cf au dessus) est mise en place , mais le cahier des charges demande une partie manuelle où il est possible grâce à divers moyen de faire mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
Une télécommande infrarouge est dés lors mise dans le programme où il est possible de faire avancer, reculer ou tourner le robot.&lt;br /&gt;
&lt;br /&gt;
Une autre option de commande manuelle est aussi viable, la commande via serveur embarqué. De ce fait, il est possible de contrôler son robot via une tablette android,Iphone/Ipad ,smartphone.Le site http://www.lamconcept.fr/CENTAURE/ est fonctionnel et demande des mots de passe afin de se connecter et diriger le robot. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séances Vacances==&lt;br /&gt;
&lt;br /&gt;
===Commandes Manuelles===&lt;br /&gt;
Le programme C prend en compte la Commande Via infra-rouge.&lt;br /&gt;
La dernière de la commande manuelle réside dans l'interface Php. La connexion par LDAP ne fonctionnant pas, une page de connexion simple a été faite. LOGIN : Centaure2013 MDP:LV2R&lt;br /&gt;
Les pages PhP seront implantés dans le PC embarqué qui aura apache installé dessus. L'utilisateur se connectera directement sur le PC et sélectionnera l'interface php.&lt;br /&gt;
Après s'être identifié, l'utilisateur accédera directement à la vidéo de la kinect et aux commandes du robot.&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=4858</id>
		<title>Robot Centaure</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=4858"/>
				<updated>2013-04-18T18:06:59Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* La Kinect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Etude du robot =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase de l'inventaire matériel ==&lt;br /&gt;
Dès la première séance nous avons vu que les batteries du robot étaient hors d'usage. Nous avons donc noté les références et demandé à Polytech'Lille de passer la commande de nouvelles batteries, afin de ne pas être bloqué par le problème de l'alimentation trop longtemps. Le robot nécessite également de nombreuses réparations, vu le temps d'inactivité de celui-ci, pour qu'il soit de nouveau utilisable. Nous allons enlever les capteurs qui sont jugés inutiles à la réalisation de notre projet, et recâbler les capteurs essentiels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé du matériel à acheter:&lt;br /&gt;
&lt;br /&gt;
- 2 batteries 12V et 24Ah.&lt;br /&gt;
&lt;br /&gt;
- Shield Sensor v4 pour Arduino.&lt;br /&gt;
&lt;br /&gt;
- Connecteurs de type FUTABA.&lt;br /&gt;
&lt;br /&gt;
- Gaine thermorétractable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé des changements à envisager :&lt;br /&gt;
&lt;br /&gt;
- Nettoyage total du robot.&lt;br /&gt;
&lt;br /&gt;
- Câblage des capteurs avec des câbles fins.&lt;br /&gt;
&lt;br /&gt;
- Réparation des supports des capteurs endommagés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot_centaure.jpg|200px|thumb|center|Robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
== L'inventaire du travail à réaliser, constaté à la première séance ==&lt;br /&gt;
&lt;br /&gt;
- Réparation de certains supports de capteurs.&lt;br /&gt;
&lt;br /&gt;
- Recâblage des capteurs et actionneurs.&lt;br /&gt;
&lt;br /&gt;
- Faire un bilan des éléments à acheter pour avoir une solution de câblage propre.&lt;br /&gt;
&lt;br /&gt;
- Choisir et programmer un microcontrôleur permettant d'être évolutif (choix d'un Arduino Mega).&lt;br /&gt;
&lt;br /&gt;
- Trouver une solution viable et propre de connectique sur l'Arduino.&lt;br /&gt;
&lt;br /&gt;
- Réaliser une carte de convertion PWM -&amp;gt; Tension pour le contrôle des moteurs (moteurs contrôlés en tension). Utilisation possible du logiciel PSIM pour les tests.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:interieur_centaure.jpg|200px|thumb|center|intérieur du robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
= Bilan des séances =&lt;br /&gt;
&lt;br /&gt;
== 1er et 2ème séances ==&lt;br /&gt;
&lt;br /&gt;
=== La Kinect ===&lt;br /&gt;
Nous avons dans un premier temps pris en main la bibliothèque (Freenect) permettant de gérer la Kinect. Nous avons commencé par analyser et modifier un exemple de programme livré avec la bibliothèque (glview.c).&lt;br /&gt;
&lt;br /&gt;
Nous avons toutefois relevé un problème inhérent à la Kinect : la projection des infrarouges projette des ombres sur l'arrière plan. Ceci risque de poser des problèmes pour l'algorithme de décision de la trajectoire.&lt;br /&gt;
Un problème similaire est observé sur les surfaces vitrées.&lt;br /&gt;
&lt;br /&gt;
Notre première tâche a donc été de développer un premier algorithme permettant de récupérer ces zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
Nous avons pu ensuite jeter les premières bases de l’algorithme de décision de la trajectoire.&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
Nous avons, lors de la première séance, examiné le robot pour comprendre son fonctionnement. A partir de là, nous avons remarqué que le changement des batteries était notre priorité, vu l'état dans lequel celles-ci se trouvaient. Nous avons donc tout démonté pour prendre les références et en commander de nouvelles.&lt;br /&gt;
Lors de la seconde séance, nous avons listé les éléments à changer pour que le robot soit fonctionnel.&lt;br /&gt;
Nous devons donc :&lt;br /&gt;
&lt;br /&gt;
- Refaire le câblage des capteurs&lt;br /&gt;
&lt;br /&gt;
- Nous avons choisi un Arduino pour réaliser la liaison Capteur / Actionneur ainsi que la liaison avec le PC.&lt;br /&gt;
Le choix d'un Arduino Méga est la solution qui semble la plus adaptée, afin de rendre le robot évolutif. Sinon le nombre d'entrées / sorties risque d'être un élément bloquant, pour l'évolution du projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi réfléchi à la nouvelle connectique, qui sera de type prise &amp;quot;JR&amp;quot; utilisée dans le modélisme. Chaque prise correspondra à un capteur. Pour ce qui est de l'Arduino, nous voulons lui ajouter un Shield &amp;quot;Sensor&amp;quot; qui permet une gestion de la connectique des capteurs beaucoup plus simple. Il en existe 2 modèles, un limité à 300mA pour ce qui est de l'alimentation (ce qui peut être suffisant pour les capteurs) et un avec une alimentation externe permettant l'ajout de puissance. N'ayant pas besoin de puissance pour l'envoi ou la réception de signal, nous choisirons la première version.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connectiqe.jpg|200px|thumb|center|Connectique choisie]] [[Fichier:Shield_sensor.jpg|200px|thumb|center|Shield Arduino facilitant la connectique]]&lt;br /&gt;
&lt;br /&gt;
== 3ème et 4ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
Nous avons finis l'algorithme permettant de &amp;quot;reconstruire&amp;quot; les zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
L'algorithme que nous avons confectionné est relativement simple : il balaye l'image ligne par ligne, puis à chaque fois qu'il détecte une ombre il se procure la valeur de la profondeur à gauche et à droite de l'ombre. La valeur la plus lointaine sera utilisée pour remplir l'ombre, ce qui correspond à une bonne approximation.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif sans et avec l’algorithme de récupération des ombres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2.png|400px|thumb|left|Sans récupération des ombres. Les 3 lignes rouges délimitent les zones en dehors du champs de considération du robot.]]&lt;br /&gt;
[[Fichier:1.png|400px|thumb|center|Avec récupération des ombres]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons constater que l'image ainsi obtenue n'est pas très esthétique, mais cela permettra à l’algorithme de décision de la trajectoire de travailler sur des valeurs de profondeurs quasiment correctes.&lt;br /&gt;
De plus, la simplicité de l'algorithme permettra de ne pas utiliser trop de ressource processeur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également quasiment finalisé l'algorithme de décision de la trajectoire.&lt;br /&gt;
Tout d'abord, il faut savoir que l'algorithme ne travaille que sur une certaine zone de l'image. En effet un objet situé trop à gauche (ou trop en haut ou à droite) ne gênera pas le robot. Du coup seul une partie du champ de vision de la Kinect est utilisée. Pour régler ces constantes nous avons affiché 3 lignes délimitant l'espace de considération du robot.&lt;br /&gt;
&lt;br /&gt;
L’algorithme en lui-même consiste à calculer la moyenne des profondeurs de la partie gauche et droite de l'image.&lt;br /&gt;
Ensuite, nous calculons la différence entre ces 2 valeurs. Avec cette différence nous pouvons distinguer 3 cas :&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à gauche&lt;br /&gt;
* -C &amp;lt;= différence &amp;lt;= C  =&amp;gt; continuer tout droit&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à droite&lt;br /&gt;
(avec C une constante)&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, la décision de la trajectoire est prioritairement influencée par la présence d'objets très proches : &lt;br /&gt;
* Si un objet très proche est détecté à gauche et à droite le robot s'arrêtera&lt;br /&gt;
* Si un objet très proche est détecté à gauche le robot ira à droite dans tout les cas&lt;br /&gt;
* Si un objet très proche est détecté à droite le robot ira à gauche dans tout les cas&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
'''La 3ème séance''' avait un but purement informatif et explicatif pour nous. Nous avons pu rencontrer notre tuteur pour ce projet, Mr. LITWAK, afin de relater nos premières impressions, notre envie commune de voir le Centaure se mouvoir dans un premier temps, et remplir le cahier des charges qu'il nous est demandé de remplir par la suite. Nous avons évoqué avec lui le choix que nous avions décidé de prendre pour l'évolution de notre projet (solution Shield + Arduino Mega), ainsi que notre volonté de rendre le tout le plus esthétique possible (utilisation de nappes envisagée mais pas encore confirmée). Nous définissons ensemble un plan de route :&lt;br /&gt;
&lt;br /&gt;
1) Dégager les éléments inutiles.&lt;br /&gt;
&lt;br /&gt;
2) Restaurer l'alimentation et refaire les câblages nécessaires.&lt;br /&gt;
&lt;br /&gt;
3) Être capable de contrôler la direction de notre robot (asservissement en vitesse et en position nécessaires).&lt;br /&gt;
&lt;br /&gt;
4) Pouvoir joindre le côté commande et le côté Kinect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une boîte à outils nous est fournie pour nos travaux sur le Centaure, ainsi que toute la documentation nécessaire au bon déroulement de notre projet (la documentation sur les capteurs SHARP avant et arrière en particulier).&lt;br /&gt;
&lt;br /&gt;
'''La 4ème séance''' consiste à vider le Centaure de ses composants, dresser le bilan des éléments utiles et de ceux dont l'utilisation n'est pas envisagée.&lt;br /&gt;
&lt;br /&gt;
Au final, lors de cette semaine de projet, nous avons défini notre plan d'action, commencé le gros oeuvre sur le Centaure, puis noté les éléments de câblage à utiliser lorsque la phase de nettoyage sera terminée. Nous attendons pour la reprise l'arrivée des 2 batteries nécessaires à l'alimentation du robot, le Shield sensor ainsi que les connecteurs FUTABA/JR (les deux étant compatibles).&lt;br /&gt;
&lt;br /&gt;
Nous avons posé les bases du système et imaginé l'architecture finale du système, représentée par la figure ci-dessous, mais omettant certaines parties servants de liaisons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_simple.PNG|400px|thumb|center|Schéma simplifié du système]]&lt;br /&gt;
&lt;br /&gt;
== 5ème, 6ème et 7ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
L'algorithme de décision de la trajectoire par la Kinect étant fait, nous nous sommes penchés sur la capacité des PC embarqués disponibles à pouvoir exécuter le code de la Kinect.&lt;br /&gt;
Les premiers essais se sont révélés infructueux, les 2 PC embarquants pour exécuter le code.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors lancés dans une phase d'optimisation importante du code de gestion de la Kinect. Voici la liste des optimisations apportées :&lt;br /&gt;
* Suppression des fonctionalités non utilisé, tel que l'accéléromètre.&lt;br /&gt;
* Optimisation de Freenect, en configurant la capture de la vidéo et de la profondeur en qualité &amp;quot;low&amp;quot;&lt;br /&gt;
* Compilation de gcc optimisé avec l'option -O3&lt;br /&gt;
&lt;br /&gt;
Cependant, malgré toutes ces optimisations, le PC embarqué utilisé n'a pas réussis à exécuter le code. En effet, la totalité des paquets transitant sur USB sont perdus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons alors entrepris de monter un nouvel ordinateur embarqué. Plus puissant tout en restant basse consommation.&lt;br /&gt;
Voici la liste des composants utilisés :&lt;br /&gt;
*Carte mère : ASRock H61M-ITX MAJ du BIOS obligatoire [https://projets-ima.polytech-lille.net:40079/mediawiki/images/7/76/H61M-ITX%282.20%29ROM.zip]&lt;br /&gt;
*Processeur : Intel Core i3­3220T (2.8 GHz, 35W)&lt;br /&gt;
*Disque dur : Samsung SSD 840 120 Go&lt;br /&gt;
*Boîtier CUBE mini­ITX ­ Rouge&lt;br /&gt;
*Nous avons rajouté une alimentation PICOPSU permettant une alimentation direct en 12V.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Nous avons reçu, pendant les vacances, les éléments que nous avions commandé, et qui étaient nécessaires au bon déroulement de notre projet. Ainsi, le Shield Sensor pour Arduino, ainsi que les connecteurs, nous sont parvenus. Nous avons également reçu les deux batteries (12V, 24Ah), pour venir en remplacement des anciennes, qui étaient totalement Hors-Service.&lt;br /&gt;
Ces séances de la semaine nous ont permis de pouvoir (re)faire les câblages de tous nos capteurs (4 capteurs avant SHARP 2Y3A003 - portée de 40 à 300 cm ; 2 capteurs arrières SHARP 2Y0A02 - portée de 20 à 150 cm) avec les nappes fournies, de manière à les brancher directement sur le Shield.&lt;br /&gt;
Nous avons également installé les nouvelles batteries, et ainsi remettre en état de marche l'alimentation du robot (l'écran du Centaure s'allume).&lt;br /&gt;
Grâce à un mini-programme, nous avons pu vérifier le bon état des capteurs. Ainsi, 3 des capteurs avant et 1 capteur arrière répondent convenablement, les deux autres capteurs normalement utilisés étant HS.&lt;br /&gt;
Un autre programme a été mis au point sur l'Arduino, demandant une simple marche avant au Centaure. Nous vérifierons son fonctionnement la semaine prochaine, tout en nous penchant également sur le rétablissement de l'arrêt d'urgence et du coupe-batterie, primordiaux avant de faire se mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connecteur.jpg|400px|thumb|center|Connecteurs des capteurs IR]]&lt;br /&gt;
&lt;br /&gt;
== 8ème, 9ème et 10ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
INCORPORATION DE LA GESTION DE LA KINECT AU PROJET EXISTANT&lt;br /&gt;
&lt;br /&gt;
La gestion de la Kinect est opérationnelle. Cependant il nous a fallu implanter cette gestion au reste du programme existant.&lt;br /&gt;
Le code qui nous a été légué ne compilait plus. Il nous a fallu alors effectuer un important travail&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La commande de deux capteurs AV, de même référence que ceux déjà utilisés, ainsi que 4 relais, est lancée.&lt;br /&gt;
Pour la partie pratique, le variateur nous donne du fil à retordre, dans la mesure où toutes les sécurités de ce dernier ne sont pas indiquées dans la documentation technique. Nous nous sommes donc renseignés auprès de nos tuteurs, et nous nous sommes également référencés aux travaux antérieurs sur le Centaure. Le variateur nécessite une tension d'excitation de 60mV pour le faire démarrer. Le fonctionnement du variateur repose sur des interrupteurs. Ceux-ci doivent être dans des état complémentaires afin d'assurer la marche avant ou la marche arrière. Enfin, les moteurs étant commandés en tension, aucun retour à une tension nulle n'est permis, auquel cas la sécurité sera réactivée.&lt;br /&gt;
L'implantation d'un code Arduino pour une marche avant, arrière, ainsi qu'un arrêt, donne des résultats probants sur l'une des roues. &lt;br /&gt;
La connexion du second variateur réalisée, ainsi que la conception d'un code permettant le virage à gauche, puis à droite, nous permettent de faire &amp;quot;vadrouiller&amp;quot; le Centaure - définitivement vivant - dans le Hall de l'école, via l'interface Arduino sur un ordinateur portable (i: initialisation, a: marche avant, s: arrêt, r: marche arrière, v: virage gauche, t: virage droite). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test sur plaque LABTEC avec relay (expliquer pk pas transistor)&lt;br /&gt;
&lt;br /&gt;
Conception de la carte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_variateur.jpg|400px|thumb|Schéma de principe de la carte de commande des variateurs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_carte.jpg|400px|thumb|center|PCB de la carte de commande]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:3D_carte_commande.PNG|400px|thumb|center|Vu 3D]]&lt;br /&gt;
&lt;br /&gt;
== 11ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
Afin de moderniser la commande du robot via le web, nous avons revu certaines bases. Nous avons restructuré en grande partie le fichier .c gérant le serveur web afin de l'optimiser. Nous avons également supprimer la fonctionnalité qui empêcher 2 utilisateurs à se connecter à l'interface de commande simultanément, en effet elle ne fonctionnait malheureusement pas.&lt;br /&gt;
Enfin, nous envoyons à présent les commandes au robot en faisant appel à l'Ajax, ceci permet d'améliorer l'expérience utilisateur.&lt;br /&gt;
&lt;br /&gt;
Ce lot de modification s'incorpore au site web existant. &lt;br /&gt;
&lt;br /&gt;
Une refonte graphique total du site est à l'étude et sera intégré au projet dans le cas ou ce nouveau site est fonctionnelle.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Test du code de l'Arduino pour voir les fonctions de base.&lt;br /&gt;
&lt;br /&gt;
Manque 1 relais donc pas marche arrière possible.&lt;br /&gt;
&lt;br /&gt;
Principale fonction OK&lt;br /&gt;
&lt;br /&gt;
Il faut rajouté un indicateur de niveau de batterie. Sera conçu de la manière suivante : Relais + Pont diviseur de tension (le relais permet de désactiver le pont. Ainsi nous consommons moins)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur_PCB.JPG|400px|thumb|center|PCB de la carte du capteur batterie]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur.JPG|300px|thumb|center|PCB 3D de la carte du capteur de batterie]]&lt;br /&gt;
&lt;br /&gt;
   R1 = 62Kohm&lt;br /&gt;
   R2 = 15Kohm&lt;br /&gt;
&lt;br /&gt;
==Etape importante==&lt;br /&gt;
&lt;br /&gt;
Petit récapitulatif à mi-projet:&lt;br /&gt;
&lt;br /&gt;
- Reste a définir les éléments de communication PC -- Arduino&lt;br /&gt;
&lt;br /&gt;
- Intégrer un régulateur de type FLOU dans l'Arduino&lt;br /&gt;
&lt;br /&gt;
- Faire la carte Relais&lt;br /&gt;
&lt;br /&gt;
- Créer la &amp;quot;mini-carte&amp;quot; permettant l'indication du niveau de batterie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 12 et 13ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La séance est principalement consacrée à l'établissement d'un cahier des charges fonctionnel, de manière à ce que l'on puisse expliquer le plus clairement possible ce que l'on attend de nous, et ce que nos tuteurs souhaitent voir en fin de projet. C'est une manière de nous plonger dans le monde du travail, où l'on nous fait comprendre que le cahier des charges fonctionnel est un accord entre le maître d'oeuvre et le maître d'ouvrage, et que le non respect de celui-ci peut nuire au maître d'oeuvre. Bien que le cahier des charges sera rendu avec la totalité des éléments demandés pour le projet, voici un petit récapitulatif des fonctions à intégrer au Centaure :&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; Direction automatique du robot par Kinect&lt;br /&gt;
--&amp;gt; Direction manuelle par infrarouge &lt;br /&gt;
--&amp;gt; Contrôle via site web (adaptabilité pour support tablette, PC, smartphones)&lt;br /&gt;
--&amp;gt; Régulation de vitesse&lt;br /&gt;
&lt;br /&gt;
Suites aux gros écarts de direction entraînés par la roue flottante avant, il a été décidé d'intégrer au centaure un module HMC6352, boussole pour Arduino, qui permettra la correction de trajectoire en cas de grosse déviation (en phase de test, les oscillations de la roue flottante sont difficilement contrôlables, donc nous envisageons de la bloquer, en plus de l'utilisation de la boussole, estimant que la puissance des moteurs est suffisante pour vaincre les frottements entraînés par un tel blocage lors d'un virage).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+'''Légende'''&lt;br /&gt;
|'''A'''&lt;br /&gt;
|'''B'''&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
| A1&lt;br /&gt;
| B1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE RELAIS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Orange&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Noir&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;11&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Blanc&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN3&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Gris&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN4&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;+5V&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;VCC&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Marron&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE NIVEAU BATTERIE&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CONNECTION VARIATEUR&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CONNECTION RELAIS&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;FILS VARIATEURS&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  'S' signifie port pour prise du Shield&lt;br /&gt;
  'G' signifie port de gauche (bouclé avec le port M) pour 1 relais&lt;br /&gt;
  'M' signifie port milieu pour 1 relais&lt;br /&gt;
  'D' signifie port de droite pour 1 relais&lt;br /&gt;
&lt;br /&gt;
A FINIR !!!!!!!!!! DE COMPLETER TABLEAU =)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_relais.jpg|300px|thumb|center|Carte relais des variateurs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 14, 15ème et 16ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Mise en place Boitier Robot&lt;br /&gt;
&lt;br /&gt;
Connection kinect sur PC, bug de liaison entre PC et arduino&lt;br /&gt;
&lt;br /&gt;
Création alimentation Kinect&lt;br /&gt;
&lt;br /&gt;
Connection boussole par I2C, mais prescision érroné...&lt;br /&gt;
&lt;br /&gt;
Bug programme arduino, comme pbl boussole, alors ne s'arrete pas de tourner. Il faut une condition d'arret en +&lt;br /&gt;
&lt;br /&gt;
+ A chaque nouveau avancer, faire nivélation vitesse !!!!!!!!!!!!!!!!&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Boitier rangement.jpg|300px|thumb|center|Boitier rangement]]&lt;br /&gt;
[[Fichier:Kinect sur robot.jpg|300px|thumb|center|kinect sur le Robot pour test]]&lt;br /&gt;
&lt;br /&gt;
===Commande manuelle===&lt;br /&gt;
&lt;br /&gt;
L'objectif est de pouvoir commander le robot par divers moyens. Une partie automatique avec la kinect(cf au dessus) est mise en place , mais le cahier des charges demande une partie manuelle où il est possible grâce à divers moyen de faire mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
Une télécommande infrarouge est dés lors mise dans le programme où il est possible de faire avancer, reculer ou tourner le robot.&lt;br /&gt;
&lt;br /&gt;
Une autre option de commande manuelle est aussi viable, la commande via serveur embarqué. De ce fait, il est possible de contrôler son robot via une tablette android,Iphone/Ipad ,smartphone.Le site http://www.lamconcept.fr/CENTAURE/ est fonctionnel et demande des mots de passe afin de se connecter et diriger le robot. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séances Vacances==&lt;br /&gt;
&lt;br /&gt;
===Commandes Manuelles===&lt;br /&gt;
Le programme C prend en compte la Commande Via infra-rouge.&lt;br /&gt;
La dernière de la commande manuelle réside dans l'interface Php. La connexion par LDAP ne fonctionnant pas, une page de connexion simple a été faite. LOGIN : Centaure2013 MDP:LV2R&lt;br /&gt;
Les pages PhP seront implantés dans le PC embarqué qui aura apache installé dessus. L'utilisateur se connectera directement sur le PC et sélectionnera l'interface php.&lt;br /&gt;
Après s'être identifié, l'utilisateur accédera directement à la vidéo de la kinect et aux commandes du robot.&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=4857</id>
		<title>Robot Centaure</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=4857"/>
				<updated>2013-04-18T18:06:14Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* La Kinect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Etude du robot =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase de l'inventaire matériel ==&lt;br /&gt;
Dès la première séance nous avons vu que les batteries du robot étaient hors d'usage. Nous avons donc noté les références et demandé à Polytech'Lille de passer la commande de nouvelles batteries, afin de ne pas être bloqué par le problème de l'alimentation trop longtemps. Le robot nécessite également de nombreuses réparations, vu le temps d'inactivité de celui-ci, pour qu'il soit de nouveau utilisable. Nous allons enlever les capteurs qui sont jugés inutiles à la réalisation de notre projet, et recâbler les capteurs essentiels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé du matériel à acheter:&lt;br /&gt;
&lt;br /&gt;
- 2 batteries 12V et 24Ah.&lt;br /&gt;
&lt;br /&gt;
- Shield Sensor v4 pour Arduino.&lt;br /&gt;
&lt;br /&gt;
- Connecteurs de type FUTABA.&lt;br /&gt;
&lt;br /&gt;
- Gaine thermorétractable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé des changements à envisager :&lt;br /&gt;
&lt;br /&gt;
- Nettoyage total du robot.&lt;br /&gt;
&lt;br /&gt;
- Câblage des capteurs avec des câbles fins.&lt;br /&gt;
&lt;br /&gt;
- Réparation des supports des capteurs endommagés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot_centaure.jpg|200px|thumb|center|Robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
== L'inventaire du travail à réaliser, constaté à la première séance ==&lt;br /&gt;
&lt;br /&gt;
- Réparation de certains supports de capteurs.&lt;br /&gt;
&lt;br /&gt;
- Recâblage des capteurs et actionneurs.&lt;br /&gt;
&lt;br /&gt;
- Faire un bilan des éléments à acheter pour avoir une solution de câblage propre.&lt;br /&gt;
&lt;br /&gt;
- Choisir et programmer un microcontrôleur permettant d'être évolutif (choix d'un Arduino Mega).&lt;br /&gt;
&lt;br /&gt;
- Trouver une solution viable et propre de connectique sur l'Arduino.&lt;br /&gt;
&lt;br /&gt;
- Réaliser une carte de convertion PWM -&amp;gt; Tension pour le contrôle des moteurs (moteurs contrôlés en tension). Utilisation possible du logiciel PSIM pour les tests.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:interieur_centaure.jpg|200px|thumb|center|intérieur du robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
= Bilan des séances =&lt;br /&gt;
&lt;br /&gt;
== 1er et 2ème séances ==&lt;br /&gt;
&lt;br /&gt;
=== La Kinect ===&lt;br /&gt;
Nous avons dans un premier temps pris en main la bibliothèque (Freenect) permettant de gérer la Kinect. Nous avons commencé par analyser et modifier un exemple de programme livré avec la bibliothèque (glview.c).&lt;br /&gt;
&lt;br /&gt;
Nous avons toutefois relevé un problème inhérent à la Kinect : la projection des infrarouges projette des ombres sur l'arrière plan. Ceci risque de poser des problèmes pour l'algorithme de décision de la trajectoire.&lt;br /&gt;
Un problème similaire est observé sur les surfaces vitrées.&lt;br /&gt;
&lt;br /&gt;
Notre première tâche a donc été de développer un premier algorithme permettant de récupérer ces zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
Nous avons pu ensuite jeter les premières bases de l’algorithme de décision de la trajectoire.&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
Nous avons, lors de la première séance, examiné le robot pour comprendre son fonctionnement. A partir de là, nous avons remarqué que le changement des batteries était notre priorité, vu l'état dans lequel celles-ci se trouvaient. Nous avons donc tout démonté pour prendre les références et en commander de nouvelles.&lt;br /&gt;
Lors de la seconde séance, nous avons listé les éléments à changer pour que le robot soit fonctionnel.&lt;br /&gt;
Nous devons donc :&lt;br /&gt;
&lt;br /&gt;
- Refaire le câblage des capteurs&lt;br /&gt;
&lt;br /&gt;
- Nous avons choisi un Arduino pour réaliser la liaison Capteur / Actionneur ainsi que la liaison avec le PC.&lt;br /&gt;
Le choix d'un Arduino Méga est la solution qui semble la plus adaptée, afin de rendre le robot évolutif. Sinon le nombre d'entrées / sorties risque d'être un élément bloquant, pour l'évolution du projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi réfléchi à la nouvelle connectique, qui sera de type prise &amp;quot;JR&amp;quot; utilisée dans le modélisme. Chaque prise correspondra à un capteur. Pour ce qui est de l'Arduino, nous voulons lui ajouter un Shield &amp;quot;Sensor&amp;quot; qui permet une gestion de la connectique des capteurs beaucoup plus simple. Il en existe 2 modèles, un limité à 300mA pour ce qui est de l'alimentation (ce qui peut être suffisant pour les capteurs) et un avec une alimentation externe permettant l'ajout de puissance. N'ayant pas besoin de puissance pour l'envoi ou la réception de signal, nous choisirons la première version.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connectiqe.jpg|200px|thumb|center|Connectique choisie]] [[Fichier:Shield_sensor.jpg|200px|thumb|center|Shield Arduino facilitant la connectique]]&lt;br /&gt;
&lt;br /&gt;
== 3ème et 4ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
Nous avons finis l'algorithme permettant de &amp;quot;reconstruire&amp;quot; les zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
L'algorithme que nous avons confectionné est relativement simple : il balaye l'image ligne par ligne, puis à chaque fois qu'il détecte une ombre il se procure la valeur de la profondeur à gauche et à droite de l'ombre. La valeur la plus lointaine sera utilisée pour remplir l'ombre, ce qui correspond à une bonne approximation.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif sans et avec l’algorithme de récupération des ombres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2.png|400px|thumb|left|Sans récupération des ombres. Les 3 lignes rouges délimitent les zones en dehors du champs de considération du robot.]]&lt;br /&gt;
[[Fichier:1.png|400px|thumb|center|Avec récupération des ombres]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons constater que l'image ainsi obtenue n'est pas très esthétique, mais cela permettra à l’algorithme de décision de la trajectoire de travailler sur des valeurs de profondeurs quasiment correctes.&lt;br /&gt;
De plus, la simplicité de l'algorithme permettra de ne pas utiliser trop de ressource processeur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également quasiment finalisé l'algorithme de décision de la trajectoire.&lt;br /&gt;
Tout d'abord, il faut savoir que l'algorithme ne travaille que sur une certaine zone de l'image. En effet un objet situé trop à gauche (ou trop en haut ou à droite) ne gênera pas le robot. Du coup seul une partie du champ de vision de la Kinect est utilisée. Pour régler ces constantes nous avons affiché 3 lignes délimitant l'espace de considération du robot.&lt;br /&gt;
&lt;br /&gt;
L’algorithme en lui-même consiste à calculer la moyenne des profondeurs de la partie gauche et droite de l'image.&lt;br /&gt;
Ensuite, nous calculons la différence entre ces 2 valeurs. Avec cette différence nous pouvons distinguer 3 cas :&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à gauche&lt;br /&gt;
* -C &amp;lt;= différence &amp;lt;= C  =&amp;gt; continuer tout droit&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à droite&lt;br /&gt;
(avec C une constante)&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, la décision de la trajectoire est prioritairement influencée par la présence d'objets très proches : &lt;br /&gt;
* Si un objet très proche est détecté à gauche et à droite le robot s'arrêtera&lt;br /&gt;
* Si un objet très proche est détecté à gauche le robot ira à droite dans tout les cas&lt;br /&gt;
* Si un objet très proche est détecté à droite le robot ira à gauche dans tout les cas&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
'''La 3ème séance''' avait un but purement informatif et explicatif pour nous. Nous avons pu rencontrer notre tuteur pour ce projet, Mr. LITWAK, afin de relater nos premières impressions, notre envie commune de voir le Centaure se mouvoir dans un premier temps, et remplir le cahier des charges qu'il nous est demandé de remplir par la suite. Nous avons évoqué avec lui le choix que nous avions décidé de prendre pour l'évolution de notre projet (solution Shield + Arduino Mega), ainsi que notre volonté de rendre le tout le plus esthétique possible (utilisation de nappes envisagée mais pas encore confirmée). Nous définissons ensemble un plan de route :&lt;br /&gt;
&lt;br /&gt;
1) Dégager les éléments inutiles.&lt;br /&gt;
&lt;br /&gt;
2) Restaurer l'alimentation et refaire les câblages nécessaires.&lt;br /&gt;
&lt;br /&gt;
3) Être capable de contrôler la direction de notre robot (asservissement en vitesse et en position nécessaires).&lt;br /&gt;
&lt;br /&gt;
4) Pouvoir joindre le côté commande et le côté Kinect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une boîte à outils nous est fournie pour nos travaux sur le Centaure, ainsi que toute la documentation nécessaire au bon déroulement de notre projet (la documentation sur les capteurs SHARP avant et arrière en particulier).&lt;br /&gt;
&lt;br /&gt;
'''La 4ème séance''' consiste à vider le Centaure de ses composants, dresser le bilan des éléments utiles et de ceux dont l'utilisation n'est pas envisagée.&lt;br /&gt;
&lt;br /&gt;
Au final, lors de cette semaine de projet, nous avons défini notre plan d'action, commencé le gros oeuvre sur le Centaure, puis noté les éléments de câblage à utiliser lorsque la phase de nettoyage sera terminée. Nous attendons pour la reprise l'arrivée des 2 batteries nécessaires à l'alimentation du robot, le Shield sensor ainsi que les connecteurs FUTABA/JR (les deux étant compatibles).&lt;br /&gt;
&lt;br /&gt;
Nous avons posé les bases du système et imaginé l'architecture finale du système, représentée par la figure ci-dessous, mais omettant certaines parties servants de liaisons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_simple.PNG|400px|thumb|center|Schéma simplifié du système]]&lt;br /&gt;
&lt;br /&gt;
== 5ème, 6ème et 7ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
L'algorithme de décision de la trajectoire par la Kinect étant fait, nous nous sommes penchés sur la capacité des PC embarqués disponibles à pouvoir exécuter le code de la Kinect.&lt;br /&gt;
Les premiers essais se sont révélés infructueux, les 2 PC embarquants pour exécuter le code.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors lancés dans une phase d'optimisation importante du code de gestion de la Kinect. Voici la liste des optimisations apportées :&lt;br /&gt;
* Suppression des fonctionalités non utilisé, tel que l'accéléromètre.&lt;br /&gt;
* Optimisation de Freenect, en configurant la capture de la vidéo et de la profondeur en qualité &amp;quot;low&amp;quot;&lt;br /&gt;
* Compilation de gcc optimisé avec l'option -O3&lt;br /&gt;
&lt;br /&gt;
Cependant, malgré toutes ces optimisations, le PC embarqué utilisé n'a pas réussis à exécuter le code. En effet, la totalité des paquets transitant sur USB sont perdus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons alors entrepris de monter un nouvel ordinateur embarqué. Plus puissant tout en restant basse consommation.&lt;br /&gt;
Voici la liste des composants utilisés :&lt;br /&gt;
*Carte mère : ASRock H61M-ITX MAJ du BIOS obligatoire [https://projets-ima.polytech-lille.net:40079/mediawiki/images/7/76/H61M-ITX%282.20%29ROM.zip]&lt;br /&gt;
*Processeur : Intel Core i3­3220T (2.8 GHz, 35W)&lt;br /&gt;
*Disque dur : Samsung SSD 840 120 Go&lt;br /&gt;
*Boîtier CUBE mini­ITX ­ Rouge&lt;br /&gt;
*Nous avons rajouté une alimentation PICOPSU permettant une alimentation direct en 12V.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Nous avons reçu, pendant les vacances, les éléments que nous avions commandé, et qui étaient nécessaires au bon déroulement de notre projet. Ainsi, le Shield Sensor pour Arduino, ainsi que les connecteurs, nous sont parvenus. Nous avons également reçu les deux batteries (12V, 24Ah), pour venir en remplacement des anciennes, qui étaient totalement Hors-Service.&lt;br /&gt;
Ces séances de la semaine nous ont permis de pouvoir (re)faire les câblages de tous nos capteurs (4 capteurs avant SHARP 2Y3A003 - portée de 40 à 300 cm ; 2 capteurs arrières SHARP 2Y0A02 - portée de 20 à 150 cm) avec les nappes fournies, de manière à les brancher directement sur le Shield.&lt;br /&gt;
Nous avons également installé les nouvelles batteries, et ainsi remettre en état de marche l'alimentation du robot (l'écran du Centaure s'allume).&lt;br /&gt;
Grâce à un mini-programme, nous avons pu vérifier le bon état des capteurs. Ainsi, 3 des capteurs avant et 1 capteur arrière répondent convenablement, les deux autres capteurs normalement utilisés étant HS.&lt;br /&gt;
Un autre programme a été mis au point sur l'Arduino, demandant une simple marche avant au Centaure. Nous vérifierons son fonctionnement la semaine prochaine, tout en nous penchant également sur le rétablissement de l'arrêt d'urgence et du coupe-batterie, primordiaux avant de faire se mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connecteur.jpg|400px|thumb|center|Connecteurs des capteurs IR]]&lt;br /&gt;
&lt;br /&gt;
== 8ème, 9ème et 10ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
INCORPORATION DE LA GESTION DE LA KINECT AU PROJET EXISTANT&lt;br /&gt;
&lt;br /&gt;
La gestion de la Kinect est opérationnelle. Cependant il nous a fallu implanter cette gestion au reste du programme existant.&lt;br /&gt;
Le code qui nous a été légué ne compilait plus. Il nous a fallu alors effectuer un important travail&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La commande de deux capteurs AV, de même référence que ceux déjà utilisés, ainsi que 4 relais, est lancée.&lt;br /&gt;
Pour la partie pratique, le variateur nous donne du fil à retordre, dans la mesure où toutes les sécurités de ce dernier ne sont pas indiquées dans la documentation technique. Nous nous sommes donc renseignés auprès de nos tuteurs, et nous nous sommes également référencés aux travaux antérieurs sur le Centaure. Le variateur nécessite une tension d'excitation de 60mV pour le faire démarrer. Le fonctionnement du variateur repose sur des interrupteurs. Ceux-ci doivent être dans des état complémentaires afin d'assurer la marche avant ou la marche arrière. Enfin, les moteurs étant commandés en tension, aucun retour à une tension nulle n'est permis, auquel cas la sécurité sera réactivée.&lt;br /&gt;
L'implantation d'un code Arduino pour une marche avant, arrière, ainsi qu'un arrêt, donne des résultats probants sur l'une des roues. &lt;br /&gt;
La connexion du second variateur réalisée, ainsi que la conception d'un code permettant le virage à gauche, puis à droite, nous permettent de faire &amp;quot;vadrouiller&amp;quot; le Centaure - définitivement vivant - dans le Hall de l'école, via l'interface Arduino sur un ordinateur portable (i: initialisation, a: marche avant, s: arrêt, r: marche arrière, v: virage gauche, t: virage droite). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test sur plaque LABTEC avec relay (expliquer pk pas transistor)&lt;br /&gt;
&lt;br /&gt;
Conception de la carte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_variateur.jpg|400px|thumb|Schéma de principe de la carte de commande des variateurs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_carte.jpg|400px|thumb|center|PCB de la carte de commande]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:3D_carte_commande.PNG|400px|thumb|center|Vu 3D]]&lt;br /&gt;
&lt;br /&gt;
== 11ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
Afin de moderniser la commande du robot via le web, nous avons revu certaines bases. Nous avons restructuré en grande partie le fichier .c gérant le serveur web afin de l'optimiser. Nous avons également supprimer la fonctionnalité qui empêcher 2 utilisateurs à se connecter à l'interface de commande simultanément, en effet elle ne fonctionnait malheureusement pas.&lt;br /&gt;
Enfin, nous avoyons à présent les commande au robot en faisant appel à l'Ajax, ceci permet d'améliorer l'expérience utilisateur.&lt;br /&gt;
&lt;br /&gt;
Ce lot de modification s'incorpore au site web existant. &lt;br /&gt;
Une refonte graphique total du site est à l'étude et sera intégré au projet si ce nouveau site est fonctionnelle.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Test du code de l'Arduino pour voir les fonctions de base.&lt;br /&gt;
&lt;br /&gt;
Manque 1 relais donc pas marche arrière possible.&lt;br /&gt;
&lt;br /&gt;
Principale fonction OK&lt;br /&gt;
&lt;br /&gt;
Il faut rajouté un indicateur de niveau de batterie. Sera conçu de la manière suivante : Relais + Pont diviseur de tension (le relais permet de désactiver le pont. Ainsi nous consommons moins)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur_PCB.JPG|400px|thumb|center|PCB de la carte du capteur batterie]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur.JPG|300px|thumb|center|PCB 3D de la carte du capteur de batterie]]&lt;br /&gt;
&lt;br /&gt;
   R1 = 62Kohm&lt;br /&gt;
   R2 = 15Kohm&lt;br /&gt;
&lt;br /&gt;
==Etape importante==&lt;br /&gt;
&lt;br /&gt;
Petit récapitulatif à mi-projet:&lt;br /&gt;
&lt;br /&gt;
- Reste a définir les éléments de communication PC -- Arduino&lt;br /&gt;
&lt;br /&gt;
- Intégrer un régulateur de type FLOU dans l'Arduino&lt;br /&gt;
&lt;br /&gt;
- Faire la carte Relais&lt;br /&gt;
&lt;br /&gt;
- Créer la &amp;quot;mini-carte&amp;quot; permettant l'indication du niveau de batterie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 12 et 13ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La séance est principalement consacrée à l'établissement d'un cahier des charges fonctionnel, de manière à ce que l'on puisse expliquer le plus clairement possible ce que l'on attend de nous, et ce que nos tuteurs souhaitent voir en fin de projet. C'est une manière de nous plonger dans le monde du travail, où l'on nous fait comprendre que le cahier des charges fonctionnel est un accord entre le maître d'oeuvre et le maître d'ouvrage, et que le non respect de celui-ci peut nuire au maître d'oeuvre. Bien que le cahier des charges sera rendu avec la totalité des éléments demandés pour le projet, voici un petit récapitulatif des fonctions à intégrer au Centaure :&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; Direction automatique du robot par Kinect&lt;br /&gt;
--&amp;gt; Direction manuelle par infrarouge &lt;br /&gt;
--&amp;gt; Contrôle via site web (adaptabilité pour support tablette, PC, smartphones)&lt;br /&gt;
--&amp;gt; Régulation de vitesse&lt;br /&gt;
&lt;br /&gt;
Suites aux gros écarts de direction entraînés par la roue flottante avant, il a été décidé d'intégrer au centaure un module HMC6352, boussole pour Arduino, qui permettra la correction de trajectoire en cas de grosse déviation (en phase de test, les oscillations de la roue flottante sont difficilement contrôlables, donc nous envisageons de la bloquer, en plus de l'utilisation de la boussole, estimant que la puissance des moteurs est suffisante pour vaincre les frottements entraînés par un tel blocage lors d'un virage).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+'''Légende'''&lt;br /&gt;
|'''A'''&lt;br /&gt;
|'''B'''&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
| A1&lt;br /&gt;
| B1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE RELAIS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Orange&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Noir&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;11&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Blanc&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN3&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Gris&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IN4&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;+5V&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;VCC&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Marron&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CARTE NIVEAU BATTERIE&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CONNECTION VARIATEUR&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN ARDUINO&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;CONNECTION RELAIS&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;FILS VARIATEURS&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Couleur&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;PIN Carte&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;21 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Rouge et noire&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;PIN Coudé&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;A8 S&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Prise FUTABA&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  'S' signifie port pour prise du Shield&lt;br /&gt;
  'G' signifie port de gauche (bouclé avec le port M) pour 1 relais&lt;br /&gt;
  'M' signifie port milieu pour 1 relais&lt;br /&gt;
  'D' signifie port de droite pour 1 relais&lt;br /&gt;
&lt;br /&gt;
A FINIR !!!!!!!!!! DE COMPLETER TABLEAU =)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_relais.jpg|300px|thumb|center|Carte relais des variateurs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 14, 15ème et 16ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Mise en place Boitier Robot&lt;br /&gt;
&lt;br /&gt;
Connection kinect sur PC, bug de liaison entre PC et arduino&lt;br /&gt;
&lt;br /&gt;
Création alimentation Kinect&lt;br /&gt;
&lt;br /&gt;
Connection boussole par I2C, mais prescision érroné...&lt;br /&gt;
&lt;br /&gt;
Bug programme arduino, comme pbl boussole, alors ne s'arrete pas de tourner. Il faut une condition d'arret en +&lt;br /&gt;
&lt;br /&gt;
+ A chaque nouveau avancer, faire nivélation vitesse !!!!!!!!!!!!!!!!&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Boitier rangement.jpg|300px|thumb|center|Boitier rangement]]&lt;br /&gt;
[[Fichier:Kinect sur robot.jpg|300px|thumb|center|kinect sur le Robot pour test]]&lt;br /&gt;
&lt;br /&gt;
===Commande manuelle===&lt;br /&gt;
&lt;br /&gt;
L'objectif est de pouvoir commander le robot par divers moyens. Une partie automatique avec la kinect(cf au dessus) est mise en place , mais le cahier des charges demande une partie manuelle où il est possible grâce à divers moyen de faire mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
Une télécommande infrarouge est dés lors mise dans le programme où il est possible de faire avancer, reculer ou tourner le robot.&lt;br /&gt;
&lt;br /&gt;
Une autre option de commande manuelle est aussi viable, la commande via serveur embarqué. De ce fait, il est possible de contrôler son robot via une tablette android,Iphone/Ipad ,smartphone.Le site http://www.lamconcept.fr/CENTAURE/ est fonctionnel et demande des mots de passe afin de se connecter et diriger le robot. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séances Vacances==&lt;br /&gt;
&lt;br /&gt;
===Commandes Manuelles===&lt;br /&gt;
Le programme C prend en compte la Commande Via infra-rouge.&lt;br /&gt;
La dernière de la commande manuelle réside dans l'interface Php. La connexion par LDAP ne fonctionnant pas, une page de connexion simple a été faite. LOGIN : Centaure2013 MDP:LV2R&lt;br /&gt;
Les pages PhP seront implantés dans le PC embarqué qui aura apache installé dessus. L'utilisateur se connectera directement sur le PC et sélectionnera l'interface php.&lt;br /&gt;
Après s'être identifié, l'utilisateur accédera directement à la vidéo de la kinect et aux commandes du robot.&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=4558</id>
		<title>Robot Centaure</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robot_Centaure&amp;diff=4558"/>
				<updated>2013-03-19T12:43:34Z</updated>
		
		<summary type="html">&lt;p&gt;Qlambert : /* La Kinect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Etude du robot =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase de l'inventaire matériel ==&lt;br /&gt;
Dès la première séance nous avons vu que les batteries du robot étaient hors d'usage. Nous avons donc noté les références et demandé à Polytech'Lille de passer la commande de nouvelles batteries, afin de ne pas être bloqué par le problème de l'alimentation trop longtemps. Le robot nécessite également de nombreuses réparations, vu le temps d'inactivité de celui-ci, pour qu'il soit de nouveau utilisable. Nous allons enlever les capteurs qui sont jugés inutiles à la réalisation de notre projet, et recâbler les capteurs essentiels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé du matériel à acheter:&lt;br /&gt;
&lt;br /&gt;
- 2 batteries 12V et 24Ah.&lt;br /&gt;
&lt;br /&gt;
- Shield Sensor v4 pour Arduino.&lt;br /&gt;
&lt;br /&gt;
- Connecteurs de type FUTABA.&lt;br /&gt;
&lt;br /&gt;
- Gaine thermorétractable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Résumé des changements à envisager :&lt;br /&gt;
&lt;br /&gt;
- Nettoyage total du robot.&lt;br /&gt;
&lt;br /&gt;
- Câblage des capteurs avec des câbles fins.&lt;br /&gt;
&lt;br /&gt;
- Réparation des supports des capteurs endommagés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot_centaure.jpg|200px|thumb|center|Robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
== L'inventaire du travail à réaliser, constaté à la première séance ==&lt;br /&gt;
&lt;br /&gt;
- Réparation de certains supports de capteurs.&lt;br /&gt;
&lt;br /&gt;
- Recâblage des capteurs et actionneurs.&lt;br /&gt;
&lt;br /&gt;
- Faire un bilan des éléments à acheter pour avoir une solution de câblage propre.&lt;br /&gt;
&lt;br /&gt;
- Choisir et programmer un microcontrôleur permettant d'être évolutif (choix d'un Arduino Mega).&lt;br /&gt;
&lt;br /&gt;
- Trouver une solution viable et propre de connectique sur l'Arduino.&lt;br /&gt;
&lt;br /&gt;
- Réaliser une carte de convertion PWM -&amp;gt; Tension pour le contrôle des moteurs (moteurs contrôlés en tension). Utilisation possible du logiciel PSIM pour les tests.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:interieur_centaure.jpg|200px|thumb|center|intérieur du robot Centaure]]&lt;br /&gt;
&lt;br /&gt;
= Bilan des séances =&lt;br /&gt;
&lt;br /&gt;
== 1er et 2ème séances ==&lt;br /&gt;
&lt;br /&gt;
=== La Kinect ===&lt;br /&gt;
Nous avons dans un premier temps pris en main la bibliothèque (Freenect) permettant de gérer la Kinect. Nous avons commencé par analyser et modifier un exemple de programme livré avec la bibliothèque (glview.c).&lt;br /&gt;
&lt;br /&gt;
Nous avons toutefois relevé un problème inhérent à la Kinect : la projection des infrarouges projette des ombres sur l'arrière plan. Ceci risque de poser des problèmes pour l'algorithme de décision de la trajectoire.&lt;br /&gt;
Un problème similaire est observé sur les surfaces vitrées.&lt;br /&gt;
&lt;br /&gt;
Notre première tâche a donc été de développer un premier algorithme permettant de récupérer ces zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
Nous avons pu ensuite jeter les premières bases de l’algorithme de décision de la trajectoire.&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
Nous avons, lors de la première séance, examiné le robot pour comprendre son fonctionnement. A partir de là, nous avons remarqué que le changement des batteries était notre priorité, vu l'état dans lequel celles-ci se trouvaient. Nous avons donc tout démonté pour prendre les références et en commander de nouvelles.&lt;br /&gt;
Lors de la seconde séance, nous avons listé les éléments à changer pour que le robot soit fonctionnel.&lt;br /&gt;
Nous devons donc :&lt;br /&gt;
&lt;br /&gt;
- Refaire le câblage des capteurs&lt;br /&gt;
&lt;br /&gt;
- Nous avons choisi un Arduino pour réaliser la liaison Capteur / Actionneur ainsi que la liaison avec le PC.&lt;br /&gt;
Le choix d'un Arduino Méga est la solution qui semble la plus adaptée, afin de rendre le robot évolutif. Sinon le nombre d'entrées / sorties risque d'être un élément bloquant, pour l'évolution du projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi réfléchi à la nouvelle connectique, qui sera de type prise &amp;quot;JR&amp;quot; utilisée dans le modélisme. Chaque prise correspondra à un capteur. Pour ce qui est de l'Arduino, nous voulons lui ajouter un Shield &amp;quot;Sensor&amp;quot; qui permet une gestion de la connectique des capteurs beaucoup plus simple. Il en existe 2 modèles, un limité à 300mA pour ce qui est de l'alimentation (ce qui peut être suffisant pour les capteurs) et un avec une alimentation externe permettant l'ajout de puissance. N'ayant pas besoin de puissance pour l'envoi ou la réception de signal, nous choisirons la première version.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connectiqe.jpg|200px|thumb|center|Connectique choisie]] [[Fichier:Shield_sensor.jpg|200px|thumb|center|Shield Arduino facilitant la connectique]]&lt;br /&gt;
&lt;br /&gt;
== 3ème et 4ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
Nous avons finis l'algorithme permettant de &amp;quot;reconstruire&amp;quot; les zones d'ombres.&lt;br /&gt;
&lt;br /&gt;
L'algorithme que nous avons confectionné est relativement simple : il balaye l'image ligne par ligne, puis à chaque fois qu'il détecte une ombre il se procure la valeur de la profondeur à gauche et à droite de l'ombre. La valeur la plus lointaine sera utilisée pour remplir l'ombre, ce qui correspond à une bonne approximation.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif sans et avec l’algorithme de récupération des ombres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2.png|400px|thumb|left|Sans récupération des ombres. Les 3 lignes rouges délimitent les zones en dehors du champs de considération du robot.]]&lt;br /&gt;
[[Fichier:1.png|400px|thumb|center|Avec récupération des ombres]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons constater que l'image ainsi obtenue n'est pas très esthétique, mais cela permettra à l’algorithme de décision de la trajectoire de travailler sur des valeurs de profondeurs quasiment correctes.&lt;br /&gt;
De plus, la simplicité de l'algorithme permettra de ne pas utiliser trop de ressource processeur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également quasiment finalisé l'algorithme de décision de la trajectoire.&lt;br /&gt;
Tout d'abord, il faut savoir que l'algorithme ne travaille que sur une certaine zone de l'image. En effet un objet situé trop à gauche (ou trop en haut ou à droite) ne gênera pas le robot. Du coup seul une partie du champ de vision de la Kinect est utilisée. Pour régler ces constantes nous avons affiché 3 lignes délimitant l'espace de considération du robot.&lt;br /&gt;
&lt;br /&gt;
L’algorithme en lui-même consiste à calculer la moyenne des profondeurs de la partie gauche et droite de l'image.&lt;br /&gt;
Ensuite, nous calculons la différence entre ces 2 valeurs. Avec cette différence nous pouvons distinguer 3 cas :&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à gauche&lt;br /&gt;
* -C &amp;lt;= différence &amp;lt;= C  =&amp;gt; continuer tout droit&lt;br /&gt;
* différence &amp;lt; -C  =&amp;gt;  tourner à droite&lt;br /&gt;
(avec C une constante)&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, la décision de la trajectoire est prioritairement influencée par la présence d'objets très proches : &lt;br /&gt;
* Si un objet très proche est détecté à gauche et à droite le robot s'arrêtera&lt;br /&gt;
* Si un objet très proche est détecté à gauche le robot ira à droite dans tout les cas&lt;br /&gt;
* Si un objet très proche est détecté à droite le robot ira à gauche dans tout les cas&lt;br /&gt;
&lt;br /&gt;
=== Le robot ===&lt;br /&gt;
&lt;br /&gt;
'''La 3ème séance''' avait un but purement informatif et explicatif pour nous. Nous avons pu rencontrer notre tuteur pour ce projet, Mr. LITWAK, afin de relater nos premières impressions, notre envie commune de voir le Centaure se mouvoir dans un premier temps, et remplir le cahier des charges qu'il nous est demandé de remplir par la suite. Nous avons évoqué avec lui le choix que nous avions décidé de prendre pour l'évolution de notre projet (solution Shield + Arduino Mega), ainsi que notre volonté de rendre le tout le plus esthétique possible (utilisation de nappes envisagée mais pas encore confirmée). Nous définissons ensemble un plan de route :&lt;br /&gt;
&lt;br /&gt;
1) Dégager les éléments inutiles.&lt;br /&gt;
&lt;br /&gt;
2) Restaurer l'alimentation et refaire les câblages nécessaires.&lt;br /&gt;
&lt;br /&gt;
3) Être capable de contrôler la direction de notre robot (asservissement en vitesse et en position nécessaires).&lt;br /&gt;
&lt;br /&gt;
4) Pouvoir joindre le côté commande et le côté Kinect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une boîte à outils nous est fournie pour nos travaux sur le Centaure, ainsi que toute la documentation nécessaire au bon déroulement de notre projet (la documentation sur les capteurs SHARP avant et arrière en particulier).&lt;br /&gt;
&lt;br /&gt;
'''La 4ème séance''' consiste à vider le Centaure de ses composants, dresser le bilan des éléments utiles et de ceux dont l'utilisation n'est pas envisagée.&lt;br /&gt;
&lt;br /&gt;
Au final, lors de cette semaine de projet, nous avons défini notre plan d'action, commencé le gros oeuvre sur le Centaure, puis noté les éléments de câblage à utiliser lorsque la phase de nettoyage sera terminée. Nous attendons pour la reprise l'arrivée des 2 batteries nécessaires à l'alimentation du robot, le Shield sensor ainsi que les connecteurs FUTABA/JR (les deux étant compatibles).&lt;br /&gt;
&lt;br /&gt;
Nous avons posé les bases du système et imaginé l'architecture finale du système, représentée par la figure ci-dessous, mais omettant certaines parties servants de liaisons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shema_simple.PNG|400px|thumb|center|Schéma simplifié du système]]&lt;br /&gt;
&lt;br /&gt;
== 5ème, 6ème et 7ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
L'algorithme de décision de la trajectoire par la Kinect étant fait, nous nous sommes penchés sur la capacité des PC embarqués disponibles à pouvoir exécuter le code de la Kinect.&lt;br /&gt;
Les premiers essais se sont révélés infructueux, les 2 PC embarquants pour exécuter le code.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors lancés dans une phase d'optimisation importante du code de gestion de la Kinect. Voici la liste des optimisations apportées :&lt;br /&gt;
* Suppression des fonctionalités non utilisé, tel que l'accéléromètre.&lt;br /&gt;
* Optimisation de Freenect, en configurant la capture de la vidéo et de la profondeur en qualité &amp;quot;low&amp;quot;&lt;br /&gt;
* Compilation de gcc optimisé avec l'option -O3&lt;br /&gt;
&lt;br /&gt;
Cependant, malgré toutes ces optimisations, le PC embarqué utilisé n'a pas réussis à exécuter le code. En effet, la totalité des paquets transitant sur USB sont perdus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons alors entrepris de monter un nouvel ordinateur embarqué. Plus puissant tout en restant basse consommation.&lt;br /&gt;
Voici la liste des composants utilisés :&lt;br /&gt;
*Carte mère : ASRock H61M-ITX MAJ du BIOS obligatoire [https://projets-ima.polytech-lille.net:40079/mediawiki/images/7/76/H61M-ITX%282.20%29ROM.zip]&lt;br /&gt;
*Processeur : Intel Core i3­3220T (2.8 GHz, 35W)&lt;br /&gt;
*Disque dur : Samsung SSD 840 120 Go&lt;br /&gt;
*Boîtier CUBE mini­ITX ­ Rouge&lt;br /&gt;
*Nous avons rajouté une alimentation PICOPSU permettant une alimentation direct en 12V.&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Nous avons reçu, pendant les vacances, les éléments que nous avions commandé, et qui étaient nécessaires au bon déroulement de notre projet. Ainsi, le Shield Sensor pour Arduino, ainsi que les connecteurs, nous sont parvenus. Nous avons également reçu les deux batteries (12V, 24Ah), pour venir en remplacement des anciennes, qui étaient totalement Hors-Service.&lt;br /&gt;
Ces séances de la semaine nous ont permis de pouvoir (re)faire les câblages de tous nos capteurs (4 capteurs avant SHARP 2Y3A003 - portée de 40 à 300 cm ; 2 capteurs arrières SHARP 2Y0A02 - portée de 20 à 150 cm) avec les nappes fournies, de manière à les brancher directement sur le Shield.&lt;br /&gt;
Nous avons également installé les nouvelles batteries, et ainsi remettre en état de marche l'alimentation du robot (l'écran du Centaure s'allume).&lt;br /&gt;
Grâce à un mini-programme, nous avons pu vérifier le bon état des capteurs. Ainsi, 3 des capteurs avant et 1 capteur arrière répondent convenablement, les deux autres capteurs normalement utilisés étant HS.&lt;br /&gt;
Un autre programme a été mis au point sur l'Arduino, demandant une simple marche avant au Centaure. Nous vérifierons son fonctionnement la semaine prochaine, tout en nous penchant également sur le rétablissement de l'arrêt d'urgence et du coupe-batterie, primordiaux avant de faire se mouvoir le robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connecteur.jpg|400px|thumb|center|Connecteurs des capteurs IR]]&lt;br /&gt;
&lt;br /&gt;
== 8ème, 9ème et 10ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
INCORPORATION DE LA GESTION DE LA KINECT AU PROJET EXISTANT&lt;br /&gt;
&lt;br /&gt;
La gestion de la Kinect est opérationnelle. Cependant il nous a fallu implanter cette gestion au reste du programme existant.&lt;br /&gt;
Le code qui nous a été légué ne compilait plus. Il nous a fallu alors effectuer un important travail&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
La commande de deux capteurs AV, de même référence que ceux déjà utilisés, ainsi que 4 relais, est lancée.&lt;br /&gt;
Pour la partie pratique, le variateur nous donne du fil à retordre, dans la mesure où toutes les sécurités de ce dernier ne sont pas indiquées dans la documentation technique. Nous nous sommes donc renseignés auprès de nos tuteurs, et nous nous sommes également référencés aux travaux antérieurs sur le Centaure. Le variateur nécessite une tension d'excitation de 60mV pour le faire démarrer. Le fonctionnement du variateur repose sur des interrupteurs. Ceux-ci doivent être dans des état complémentaires afin d'assurer la marche avant ou la marche arrière. Enfin, les moteurs étant commandés en tension, aucun retour à une tension nulle n'est permis, auquel cas la sécurité sera réactivée.&lt;br /&gt;
L'implantation d'un code Arduino pour une marche avant, arrière, ainsi qu'un arrêt, donne des résultats probants sur l'une des roues. &lt;br /&gt;
La connexion du second variateur réalisée, ainsi que la conception d'un code permettant le virage à gauche, puis à droite, nous permettent de faire &amp;quot;vadrouiller&amp;quot; le Centaure - définitivement vivant - dans le Hall de l'école, via l'interface Arduino sur un ordinateur portable (i: initialisation, a: marche avant, s: arrêt, r: marche arrière, v: virage gauche, t: virage droite). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test sur plaque LABTEC avec relay (expliquer pk pas transistor)&lt;br /&gt;
&lt;br /&gt;
Conception de la carte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_variateur.jpg|400px|thumb|Schéma de principe de la carte de commande des variateurs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_carte.jpg|400px|thumb|center|PCB de la carte de commande]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:3D_carte_commande.PNG|400px|thumb|center|Vu 3D]]&lt;br /&gt;
&lt;br /&gt;
== 11ème séances ==&lt;br /&gt;
===La Kinect===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le Robot===&lt;br /&gt;
&lt;br /&gt;
Test du code de l'Arduino pour voir les fonctions de base.&lt;br /&gt;
&lt;br /&gt;
Manque 1 relais donc pas marche arrière possible.&lt;br /&gt;
&lt;br /&gt;
Principale fonction OK&lt;br /&gt;
&lt;br /&gt;
Il faut rajouté un indicateur de niveau de batterie. Sera conçu de la manière suivante : Relais + Pont diviseur de tension (le relais permet de désactiver le pont. Ainsi nous consommons moins)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur_PCB.JPG|400px|thumb|center|PCB de la carte du capteur batterie]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carte_pont_diviseur.JPG|300px|thumb|center|PCB 3D de la carte du capteur de batterie]]&lt;br /&gt;
&lt;br /&gt;
==Etape importante==&lt;br /&gt;
&lt;br /&gt;
Petit récapitulatif à mi-projet:&lt;br /&gt;
&lt;br /&gt;
- Reste a définir les éléments de communication PC -- Arduino&lt;br /&gt;
&lt;br /&gt;
- Intégrer un régulateur de type FLOU dans l'Arduino&lt;br /&gt;
&lt;br /&gt;
- Faire la carte Relais&lt;br /&gt;
&lt;br /&gt;
- Créer la &amp;quot;mini-carte&amp;quot; permettant l'indication du niveau de batterie&lt;/div&gt;</summary>
		<author><name>Qlambert</name></author>	</entry>

	</feed>