<?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=Mdujard1</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=Mdujard1"/>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Mdujard1"/>
		<updated>2026-05-15T21:58:32Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4214</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4214"/>
				<updated>2013-02-25T14:09:44Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 18/02 au 22/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchronisé sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
&lt;br /&gt;
*Etude des signaux sur l'analyseur logique afin de régler les problèmes de synchronisation.&lt;br /&gt;
=&amp;gt; cette étude montre bien le lien entre les 3 signaux href, vsyn et pclk.&lt;br /&gt;
&lt;br /&gt;
*On a donc recherché d'éventuelles erreurs dans notre programme.&lt;br /&gt;
On a fini par se rendre compte que la configuration par I2C n'avait pas fonctionné car on était toujours à 50 images par seconde.&lt;br /&gt;
=&amp;gt; on s'est donc repenché sur l'I2C pour trouver ce qui n'allait pas.&lt;br /&gt;
&lt;br /&gt;
*Il s'est avéré que c'était la bibliothèque Wire.h du logiciel Arduino qui ne fonctionnait pas.&lt;br /&gt;
On a donc cherché une alternative et on directement écris dans les registres voulus à l'aide de la fonction&lt;br /&gt;
     write_Register(registre, valeur);&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; on a réussi à configurer la caméra (vérification à l'analyseur logique ok)&lt;br /&gt;
&lt;br /&gt;
On envisage de passer sous VHDL si la synchronisation ne marche toujours pas.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
&lt;br /&gt;
*On a retenté le programme en C avec la nouvelle configuration I2C, sans succès.&lt;br /&gt;
&lt;br /&gt;
On a donc pris deux chemins différents:&lt;br /&gt;
&lt;br /&gt;
-un a poursuivi en VHDL&lt;br /&gt;
&lt;br /&gt;
-l'autre sur Arduino&lt;br /&gt;
&lt;br /&gt;
*VHDL&lt;br /&gt;
**établissement d'un plan en deux parties: &lt;br /&gt;
-synchronisation sur une image mais obtention de plusieurs erreurs : deux évènements consécutifs pas possibles (on ne peut surveiller à la suite vsyn'event et href'event).                            On a donc essayé avec des wait() mais sans succès (car non compatible avec liste de sensibilité) &lt;br /&gt;
=&amp;gt;plusieurs tentatives de corriger (sans les wait): sans résultat.&lt;br /&gt;
On envisage de stocker toutes les valeurs dans un tableau.&lt;br /&gt;
&lt;br /&gt;
-synchronisation sur le moniteur qui sera utilisé&lt;br /&gt;
*Arduino&lt;br /&gt;
**tentative de synchronisation des signaux en lisant sur les pin digitales configurées en entrée.&lt;br /&gt;
On obtient des valeurs comprises entre 0 et 255, mais elles varient beaucoup trop pour que ça soit cohérent. De plus l'affichage sur l'écran ne donne rien de concret.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;br /&gt;
&lt;br /&gt;
*VHDL&lt;br /&gt;
&lt;br /&gt;
On a mis de côté pour le moment la synchronisation sur une image afin de travailler plus sur la synchronisation du module VGA du moniteur d'ordinateur. Pour le tester il a fallu créer une table et la remplir avec des valeurs afin d'afficher une image (dans notre cas ce sera un carré vert avec 2 points rouge à l'intérieur de 32x32 px). La résolution de notre image est petite étant donnée qu'on est limité en &amp;quot;block ram&amp;quot;. Il faudra réduire le nombre de pixels capturés par la caméra (On a à disposition 576k bits et pour une résolution complète, il faudrait 352x288x8x3/2 = 1,2M bits).&lt;br /&gt;
La synchronisation s'est faite avec deux compteurs (un ligne et un colonne) afin de déterminer la position du spot lumineux du moniteur.&lt;br /&gt;
Après de multiples erreurs lié au logiciel altium et au langage VHDL, on fini par obtenir l'image sur l'écran.&lt;br /&gt;
&lt;br /&gt;
On décide donc de retenter la récupération des données pour remplir la table. On décide de prendre un pixel sur deux et une ligne sur deux afin de ne pas dépasser le nombre de block ram. Cependant cela ne fonctionne pas, il y a une erreur à la compilation. Il semblerait qu'Altium n'arrive pas à compiler la table d'une dimension de 38016. Ceci est étrange car dans un test précédent nous avions réussi à créer une table de 101376. &lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'avons pas eu le temps de régler ce problème.&lt;br /&gt;
&lt;br /&gt;
*Arduino&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, nous avons fait fonctionner l'accéléromètre : tout marche bien et on affiche bien les valeurs sur l'écran lcd.&lt;br /&gt;
&lt;br /&gt;
Après l’échec de la semaine passé, nous nous somme rendu compte que la synchronisation de signaux ne pouvait pas se faire même en lisant directement dans les registres : cela prend beaucoup trop de temps. Nous avons donc cherché et décidé d'utiliser les pins d'interruption du Arduino. Dans la théorie le code est bon : pour une interruption de vsyn, on passe à un un booléen test, de même pour href. Ainsi, si les deux booléens de test sont à un et que l'on a une interruption sur pclk, alors on pourra faire une lecture convenable et l'envoyer sur l'écran lcd.&lt;br /&gt;
Cela n'a pas marché car la valeur 8 est toujours retournée.&lt;br /&gt;
Nous essayerons, jusqu'au dernier moment de le faire fonctionner pour pouvoir présenter un résultat concret.&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4213</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4213"/>
				<updated>2013-02-25T13:49:01Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 11/02 au 15/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchronisé sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
&lt;br /&gt;
*Etude des signaux sur l'analyseur logique afin de régler les problèmes de synchronisation.&lt;br /&gt;
=&amp;gt; cette étude montre bien le lien entre les 3 signaux href, vsyn et pclk.&lt;br /&gt;
&lt;br /&gt;
*On a donc recherché d'éventuelles erreurs dans notre programme.&lt;br /&gt;
On a fini par se rendre compte que la configuration par I2C n'avait pas fonctionné car on était toujours à 50 images par seconde.&lt;br /&gt;
=&amp;gt; on s'est donc repenché sur l'I2C pour trouver ce qui n'allait pas.&lt;br /&gt;
&lt;br /&gt;
*Il s'est avéré que c'était la bibliothèque Wire.h du logiciel Arduino qui ne fonctionnait pas.&lt;br /&gt;
On a donc cherché une alternative et on directement écris dans les registres voulus à l'aide de la fonction&lt;br /&gt;
     write_Register(registre, valeur);&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; on a réussi à configurer la caméra (vérification à l'analyseur logique ok)&lt;br /&gt;
&lt;br /&gt;
On envisage de passer sous VHDL si la synchronisation ne marche toujours pas.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
&lt;br /&gt;
*On a retenté le programme en C avec la nouvelle configuration I2C, sans succès.&lt;br /&gt;
&lt;br /&gt;
On a donc pris deux chemins différents:&lt;br /&gt;
&lt;br /&gt;
-un a poursuivi en VHDL&lt;br /&gt;
&lt;br /&gt;
-l'autre sur Arduino&lt;br /&gt;
&lt;br /&gt;
*VHDL&lt;br /&gt;
**établissement d'un plan en deux parties: &lt;br /&gt;
-synchronisation sur une image mais obtention de plusieurs erreurs : deux évènements consécutifs pas possibles (on ne peut surveiller à la suite vsyn'event et href'event).                            On a donc essayé avec des wait() mais sans succès (car non compatible avec liste de sensibilité) &lt;br /&gt;
=&amp;gt;plusieurs tentatives de corriger (sans les wait): sans résultat.&lt;br /&gt;
On envisage de stocker toutes les valeurs dans un tableau.&lt;br /&gt;
&lt;br /&gt;
-synchronisation sur le moniteur qui sera utilisé&lt;br /&gt;
*Arduino&lt;br /&gt;
**tentative de synchronisation des signaux en lisant sur les pin digitales configurées en entrée.&lt;br /&gt;
On obtient des valeurs comprises entre 0 et 255, mais elles varient beaucoup trop pour que ça soit cohérent. De plus l'affichage sur l'écran ne donne rien de concret.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4212</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4212"/>
				<updated>2013-02-25T13:43:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 11/02 au 15/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchronisé sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
&lt;br /&gt;
*Etude des signaux sur l'analyseur logique afin de régler les problèmes de synchronisation.&lt;br /&gt;
=&amp;gt; cette étude montre bien le lien entre les 3 signaux href, vsyn et pclk.&lt;br /&gt;
&lt;br /&gt;
*On a donc recherché d'éventuelles erreurs dans notre programme.&lt;br /&gt;
On a fini par se rendre compte que la configuration par I2C n'avait pas fonctionné car on était toujours à 50 images par seconde.&lt;br /&gt;
=&amp;gt; on s'est donc repenché sur l'I2C pour trouver ce qui n'allait pas.&lt;br /&gt;
&lt;br /&gt;
*Il s'est avéré que c'était la bibliothèque Wire.h du logiciel Arduino qui ne fonctionnait pas.&lt;br /&gt;
On a donc cherché une alternative et on directement écris dans les registres voulus à l'aide de la fonction&lt;br /&gt;
     write_Register(registre, valeur);&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; on a réussi à configurer la caméra (vérification à l'analyseur logique ok)&lt;br /&gt;
&lt;br /&gt;
On envisage de passer sous VHDL si la synchronisation ne marche toujours pas.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
&lt;br /&gt;
*On a retenté le programme en C avec la nouvelle configuration I2C, sans succès.&lt;br /&gt;
On a donc pris deux chemins différents:&lt;br /&gt;
**un a poursuivi en VHDL&lt;br /&gt;
**l'autre sur Arduino&lt;br /&gt;
&lt;br /&gt;
*VHDL&lt;br /&gt;
**établissement d'un plan en deux parties: &lt;br /&gt;
***synchronisation sur une image mais obtention de plusieurs erreurs : deux évènements consécutifs pas possibles (on ne peut surveiller à la suite vsyn'event et href'event).                            On a donc essayé avec des wait() mais sans succès (car non compatible avec liste de sensibilité) &lt;br /&gt;
 =&amp;gt;plusieurs tentatives de corriger (sans les wait): sans résultat.&lt;br /&gt;
 On envisage de stocker toutes les valeurs dans un tableau.&lt;br /&gt;
&lt;br /&gt;
***synchronisation sur le moniteur qui sera utilisé&lt;br /&gt;
*Arduino&lt;br /&gt;
**tentative de synchronisation des signaux en lisant sur les pin digitales configurées en entrée&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4211</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4211"/>
				<updated>2013-02-25T13:42:18Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 11/02 au 15/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchronisé sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
&lt;br /&gt;
*Etude des signaux sur l'analyseur logique afin de régler les problèmes de synchronisation.&lt;br /&gt;
=&amp;gt; cette étude montre bien le lien entre les 3 signaux href, vsyn et pclk.&lt;br /&gt;
&lt;br /&gt;
*On a donc recherché d'éventuelles erreurs dans notre programme.&lt;br /&gt;
On a fini par se rendre compte que la configuration par I2C n'avait pas fonctionné car on était toujours à 50 images par seconde.&lt;br /&gt;
=&amp;gt; on s'est donc repenché sur l'I2C pour trouver ce qui n'allait pas.&lt;br /&gt;
&lt;br /&gt;
*Il s'est avéré que c'était la bibliothèque Wire.h du logiciel Arduino qui ne fonctionnait pas.&lt;br /&gt;
On a donc cherché une alternative et on directement écris dans les registres voulus à l'aide de la fonction&lt;br /&gt;
     write_Register(registre, valeur);&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; on a réussi à configurer la caméra (vérification à l'analyseur logique ok)&lt;br /&gt;
&lt;br /&gt;
On envisage de passer sous VHDL si la synchronisation ne marche toujours pas.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
&lt;br /&gt;
*On a retenté le programme en C avec la nouvelle configuration I2C, sans succès.&lt;br /&gt;
On a donc pris deux chemins différents:&lt;br /&gt;
**un a poursuivi en VHDL&lt;br /&gt;
**l'autre sur Arduino&lt;br /&gt;
&lt;br /&gt;
*VHDL&lt;br /&gt;
**établissement d'un plan en deux parties: &lt;br /&gt;
***synchronisation sur une image mais obtention de plusieurs erreures : deux évenements consécutifs pas possibles (on ne peut surveiller à la suite vsyn'event et href'event). On a donc esseyé avec des wait() mais sans succès (car non compatible avec liste de sensibilité)&lt;br /&gt;
=&amp;gt;plusieurs tentatives de corriger (sans les wait): sans résultat.&lt;br /&gt;
***synchronisation sur le moniteur qui sera utilisé&lt;br /&gt;
*Arduino&lt;br /&gt;
**tentative de synchronisation des signaux en lisant sur les pin digitales configurées en entrée&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4210</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4210"/>
				<updated>2013-02-25T13:41:07Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 11/02 au 15/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchronisé sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
&lt;br /&gt;
*Etude des signaux sur l'analyseur logique afin de régler les problèmes de synchronisation.&lt;br /&gt;
=&amp;gt; cette étude montre bien le lien entre les 3 signaux href, vsyn et pclk.&lt;br /&gt;
&lt;br /&gt;
*On a donc recherché d'éventuelles erreurs dans notre programme.&lt;br /&gt;
On a fini par se rendre compte que la configuration par I2C n'avait pas fonctionné car on était toujours à 50 images par seconde.&lt;br /&gt;
=&amp;gt; on s'est donc repenché sur l'I2C pour trouver ce qui n'allait pas.&lt;br /&gt;
&lt;br /&gt;
*Il s'est avéré que c'était la bibliothèque Wire.h du logiciel Arduino qui ne fonctionnait pas.&lt;br /&gt;
On a donc cherché une alternative et on directement écris dans les registres voulus à l'aide de la fonction&lt;br /&gt;
     write_Register(registre, valeur);&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; on a réussi à configurer la caméra (vérification à l'analyseur logique ok)&lt;br /&gt;
&lt;br /&gt;
On envisage de passer sous VHDL si la synchronisation ne marche toujours pas.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
&lt;br /&gt;
*On a retenté le programme en C avec la nouvelle configuration I2C, sans succès.&lt;br /&gt;
On a donc pris deux chemins différents:&lt;br /&gt;
**un a poursuivi en VHDL&lt;br /&gt;
**l'autre sur Arduino&lt;br /&gt;
&lt;br /&gt;
*VHDL&lt;br /&gt;
**établissement d'un plan en deux parties: &lt;br /&gt;
***synchronisation sur une image mais obtention de plusieurs erreures : deux évenements consécutifs pas possibles (on ne peut surveiller à la suite vsyn'event et href'event).&lt;br /&gt;
On a donc esseyé avec des wait() mais sans succès (car non compatible avec liste de sensibilité)&lt;br /&gt;
***synchronisation sur le monteur qui sera utilisé&lt;br /&gt;
*Arduino&lt;br /&gt;
**tentative de synchronisation des signaux en lisant sur les pin digitales configurées en entrée&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4209</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4209"/>
				<updated>2013-02-25T13:37:54Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 11/02 au 15/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchronisé sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
&lt;br /&gt;
*Etude des signaux sur l'analyseur logique afin de régler les problèmes de synchronisation.&lt;br /&gt;
=&amp;gt; cette étude montre bien le lien entre les 3 signaux href, vsyn et pclk.&lt;br /&gt;
&lt;br /&gt;
*On a donc recherché d'éventuelles erreurs dans notre programme.&lt;br /&gt;
On a fini par se rendre compte que la configuration par I2C n'avait pas fonctionné car on était toujours à 50 images par seconde.&lt;br /&gt;
=&amp;gt; on s'est donc repenché sur l'I2C pour trouver ce qui n'allait pas.&lt;br /&gt;
&lt;br /&gt;
*Il s'est avéré que c'était la bibliothèque Wire.h du logiciel Arduino qui ne fonctionnait pas.&lt;br /&gt;
On a donc cherché une alternative et on directement écris dans les registres voulus à l'aide de la fonction&lt;br /&gt;
     write_Register(registre, valeur);&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; on a réussi à configurer la caméra (vérification à l'analyseur logique ok)&lt;br /&gt;
&lt;br /&gt;
On envisage de passer sous VHDL si la synchronisation ne marche toujours pas.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
&lt;br /&gt;
*On a retenté le programme en C avec la nouvelle configuration I2C, sans succès.&lt;br /&gt;
On a donc pris deux chemins différents:&lt;br /&gt;
**un a poursuivi en VHDL&lt;br /&gt;
**l'autre sur Arduino&lt;br /&gt;
&lt;br /&gt;
*VHDL&lt;br /&gt;
**établissement d'un plan en deux parties: &lt;br /&gt;
***synchronisation sur une image&lt;br /&gt;
***synchronisation sur le monteur qui sera utilisé&lt;br /&gt;
*Arduino&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4208</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4208"/>
				<updated>2013-02-25T13:19:05Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 4/02 au 8/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchronisé sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
&lt;br /&gt;
*Etude des signaux sur l'analyseur logique afin de régler les problèmes de synchronisation.&lt;br /&gt;
=&amp;gt; cette étude montre bien le lien entre les 3 signaux href, vsyn et pclk.&lt;br /&gt;
&lt;br /&gt;
*On a donc recherché d'éventuelles erreurs dans notre programme.&lt;br /&gt;
On a fini par se rendre compte que la configuration par I2C n'avait pas fonctionné car on était toujours à 50 images par seconde.&lt;br /&gt;
=&amp;gt; on s'est donc repenché sur l'I2C pour trouver ce qui n'allait pas.&lt;br /&gt;
&lt;br /&gt;
*Il s'est avéré que c'était la bibliothèque Wire.h du logiciel Arduino qui ne fonctionnait pas.&lt;br /&gt;
On a donc cherché une alternative et on directement écris dans les registres voulus à l'aide de la fonction&lt;br /&gt;
     write_Register(registre, valeur);&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; on a réussi à configurer la caméra (vérification à l'analyseur logique ok)&lt;br /&gt;
&lt;br /&gt;
On envisage de passer sous VHDL si la synchronisation ne marche toujours pas.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4207</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4207"/>
				<updated>2013-02-25T13:18:31Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 4/02 au 8/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchronisé sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
&lt;br /&gt;
*Etude des signaux sur l'analyseur logique afin de régler les problèmes de synchronisation.&lt;br /&gt;
=&amp;gt; cette étude montre bien le lien entre les 3 signaux href, vsyn et pclk.&lt;br /&gt;
&lt;br /&gt;
*On a donc recherché d'éventuelles erreurs dans notre programme.&lt;br /&gt;
On a fini par se rendre compte que la configuration par I2C n'avait pas fonctionné car on était toujours à 50 images par seconde.&lt;br /&gt;
=&amp;gt; on s'est donc repenché sur l'I2C pour trouver ce qui n'allait pas.&lt;br /&gt;
&lt;br /&gt;
*Il s'est avéré que c'était la bibliothèque Wire.h du logiciel Arduino qui ne fonctionnait pas.&lt;br /&gt;
On a donc cherché une alternative et on directement écris dans les registres voulus à l'aide de la fonction&lt;br /&gt;
     write_Register(registre, valeur);&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; on a réussi à configurer la caméra (vérification à l'analyseur logique ok)&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4206</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4206"/>
				<updated>2013-02-25T13:16:23Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 4/02 au 8/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchronisé sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
&lt;br /&gt;
*Etude des signaux sur l'analyseur logique afin de régler les problèmes de synchronisation.&lt;br /&gt;
=&amp;gt; cette étude montre bien le lien entre les 3 signaux href, vsyn et pclk.&lt;br /&gt;
&lt;br /&gt;
*On a donc recherché d'éventuelles erreurs dans notre programme.&lt;br /&gt;
On a fini par se rendre compte que la configuration par I2C n'avait pas fonctionné car on était toujours à 50 images par seconde.&lt;br /&gt;
=&amp;gt; on s'est donc repenché sur l'I2C pour trouver ce qui n'allait pas.&lt;br /&gt;
&lt;br /&gt;
*Il s'est avéré que c'était la bibliothèque Wire.h du logiciel Arduino qui ne fonctionnait pas.&lt;br /&gt;
On a donc cherché une alternative et on directement écris dans les registres voulus à l'aide de la fonction&lt;br /&gt;
     write_Register(registre, valeur);&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4205</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4205"/>
				<updated>2013-02-25T13:10:04Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 4/02 au 8/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchronisé sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
&lt;br /&gt;
*Etude des signaux sur l'analyseur logique afin de régler les problèmes de synchronisation.&lt;br /&gt;
=&amp;gt; cette étude montre bien le lien entre les 3 signaux href, vsyn et pclk.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4204</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4204"/>
				<updated>2013-02-25T12:57:27Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 28/01 au 1/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchronisé sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4203</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4203"/>
				<updated>2013-02-25T12:56:06Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 28/01 au 1/02 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
&lt;br /&gt;
À partir des résultats de la semaine précédente, nous avons tenté d'obtenir uniquement une image (toujours sur le terminal).&lt;br /&gt;
Pour cela, on s'est synchroniser sur une nouvelle image en attendant un front montant de VSYN (signal de synchronisation d'une nouvelle image). Puis il a fallu prendre en compte le signal HREF (un niveau haut indique qu'on se situe toujours sur une même ligne de l'image et un front descendant indique la fin d'une ligne). Après ce test, nous n'avons plus rien observé sur le terminal. Il semblerait que la synchronisation ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
On a donc décidé de lire les signaux de synchronisation à la place des données. On a bien observé des valeurs qui varient, il y a donc bien des changements d'état de ces signaux. On a tenté de comptabiliser le nombre de changement de ces signaux sur un nombre de lecture donnée. On a remarqué que pclk gardait toujours l'état 1.&lt;br /&gt;
Nous avons, par la suite tenter d'obtenir une bonne synchronisation mais sans succès.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4202</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4202"/>
				<updated>2013-02-25T12:42:12Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 21/01 au 25/01 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
=&amp;gt; on affiche des données. On analysera cela la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4201</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4201"/>
				<updated>2013-02-25T12:40:57Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 21/01 au 25/01 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; on voit des données mais le logiciel plante après un peu de temps, cela est surement du à la vitesse de transmission.&lt;br /&gt;
&lt;br /&gt;
On décide donc de passer sous Altium Designer avec un embeded projet pour avoir accès à un terminal (et programmation en C).&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4200</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4200"/>
				<updated>2013-02-25T12:39:10Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 21/01 au 25/01 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                  &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; trop de données transmises et donc on ne voit pas tout&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4199</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4199"/>
				<updated>2013-02-25T12:37:12Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 21/01 au 25/01 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                 &lt;br /&gt;
                                     &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
=&amp;gt; trop de données transmises et donc on ne voit pas tout&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4198</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4198"/>
				<updated>2013-02-25T12:36:57Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 21/01 au 25/01 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                 &lt;br /&gt;
                                     &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
*Test de lecture des données via le port série du Arduino.&lt;br /&gt;
 =&amp;gt; trop de données transmises et donc on ne voit pas tout&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4197</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4197"/>
				<updated>2013-02-25T12:35:41Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 21/01 au 25/01 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
&lt;br /&gt;
*Configuration I2C de la caméra                 &lt;br /&gt;
                                     &lt;br /&gt;
  &lt;br /&gt;
  void config_cam(){      //I2C pour config camera&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  &lt;br /&gt;
  Wire.beginTransmission(0xc0); // transmit to device #192 CA88&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // soft reset&lt;br /&gt;
  Wire.write((uint8_t) 0xa4);&lt;br /&gt;
  delay(100);&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x12);&lt;br /&gt;
  Wire.requestFrom( 0xc0, 1);&lt;br /&gt;
  Serial.print(&amp;quot;lecture : &amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;%d&amp;quot;, Wire.read());&lt;br /&gt;
  &lt;br /&gt;
  Wire.write((uint8_t) 0x11);     // vitesse = 2 i/s&lt;br /&gt;
  Wire.write((uint8_t) 0x3F);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x12);     // RGB&lt;br /&gt;
  Wire.write((uint8_t) 0x2C);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.write((uint8_t) 0x13);     // 8 bit mode&lt;br /&gt;
  Wire.write((uint8_t) 0x21);&lt;br /&gt;
  //delay(1000);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4196</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4196"/>
				<updated>2013-02-25T12:30:09Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 14/01 au 18/01 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
**Configuration par I2C =&amp;gt; utilisation d'un arduino atméga pour le faire car c'est plus simple que sur FPGA &lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4195</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4195"/>
				<updated>2013-02-25T12:28:52Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Semaine du 14/01 au 18/01 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
*Etude du matériel&lt;br /&gt;
*Etablissement d'un cahier des charges&lt;br /&gt;
**Etudes des possibilité&lt;br /&gt;
**plus tendance à travailler sur le FPGA, à longs termes, que sur le arduino (capacité de calculs)&lt;br /&gt;
*Fonctionnement de la caméra:&lt;br /&gt;
**mode RGB&lt;br /&gt;
**Résolution 352x288&lt;br /&gt;
**Un pixel de caméra par couleur&lt;br /&gt;
**Chaque pixel est codé sur un octet&lt;br /&gt;
**Organisation spatiale et envoie de données pas très intuitif&lt;br /&gt;
*Fonctionnement de l'écran LCD&lt;br /&gt;
**un pixel est RGB =&amp;gt; envoie de 12 bits, 4 bits par couleur&lt;br /&gt;
&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4194</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4194"/>
				<updated>2013-02-25T12:21:52Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Séance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du 14/01 au 18/01====&lt;br /&gt;
==== Semaine du 21/01 au 25/01====&lt;br /&gt;
==== Semaine du 28/01 au 1/02====&lt;br /&gt;
==== Semaine du 4/02 au 8/02====&lt;br /&gt;
==== Semaine du 11/02 au 15/02====&lt;br /&gt;
==== Semaine du 18/02 au 22/02====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4193</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4193"/>
				<updated>2013-02-25T12:19:32Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Séance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;br /&gt;
==== Semaine du ====&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4192</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4192"/>
				<updated>2013-02-25T12:18:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Matériel à disposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
[[Image:ov.jpeg|thumb|alt=Texte alternatif|OV662 Image Sensor]]&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Ov.jpeg&amp;diff=4191</id>
		<title>Fichier:Ov.jpeg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Ov.jpeg&amp;diff=4191"/>
				<updated>2013-02-25T12:18:24Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4190</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4190"/>
				<updated>2013-02-25T12:10:58Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Matériel à disposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
*Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
*Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
*Arduino Atméga 2560.&lt;br /&gt;
*Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
*Un analyseur logique.&lt;br /&gt;
*Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
*PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
*logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
*logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4189</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4189"/>
				<updated>2013-02-25T12:10:17Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Matériel à disposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
&lt;br /&gt;
Pour effectuer ce projet, nous avions plusieurs instruments et matériaux à disposition. En voici une liste détaillée:&lt;br /&gt;
•	Caméra CA88 : caméra 1/4” avec sortie digitale 8 ou 16 bits. Le capteur d’image OV6620 est de type CMOS. Cette caméra est configurable via un bus I2C (résolution, FPS, Gamma, gain, balance des blancs...).&lt;br /&gt;
•	Nanoboard Xilinx, Spartan 3 (FPGA).&lt;br /&gt;
•	Arduino Atméga 2560.&lt;br /&gt;
•	Ecran LCD Color Shield Phillips (de chez Sparkfun) pour arduino.&lt;br /&gt;
•	Un analyseur logique.&lt;br /&gt;
•	Un accéléromètre ADXL3xx (pour Arduino).&lt;br /&gt;
•	PC + 2 moniteurs.&lt;br /&gt;
&lt;br /&gt;
•	logiciel Altium Designer version 9 puis 10 (différents problèmes sont intervenus lors des compilations…)&lt;br /&gt;
•	logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4188</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4188"/>
				<updated>2013-02-25T12:09:38Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Présentation du projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de mettre en œuvre une caméra à l'aide d'un Arduino et/ou d’une nanoboard FPGA XILINX (carte Altium). L’objectif étant d’afficher l’image soit sur un écran LCD prévu pour Arduino soit sur un moniteur d'ordinateur. L’un des objectifs finaux étant d’afficher, en  surimpression, du contenu comme l'état de capteurs (accéléromètre, température, ...) sous forme de texte, d'images, dynamiques ou non.&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4187</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4187"/>
				<updated>2013-02-25T12:07:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre dernière année à Polytech, nous avons dû nous atteler  à un projet de fin d’étude durant le mois et demi qui a suivi le retour de notre semestre à l’étranger. Dans ces conditions, nous avons choisi le sujet &amp;quot;Lunette à vision augmentée&amp;quot;.	&lt;br /&gt;
En effet, ce sujet est  plus dans une optique Systèmes Communicants et a attiré notre curiosité (suite, par exemple, à l’annonce des Google glasses, de l’Oculus Rift de Valve...).	&lt;br /&gt;
Nous allons donc voir à travers ce Wiki le déroulement par semaine de ce projet.&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4186</id>
		<title>Lunette à vision augmentée</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Lunette_%C3%A0_vision_augment%C3%A9e&amp;diff=4186"/>
				<updated>2013-02-25T12:05:23Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : Page créée avec « == Introduction ==  == Présentation du projet ==  == Matériel à disposition ==  == Séance == »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
&lt;br /&gt;
== Matériel à disposition ==&lt;br /&gt;
&lt;br /&gt;
== Séance ==&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2424</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2424"/>
				<updated>2012-05-08T10:40:51Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Onzième séance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
Cette reprise de projet a pour but d'améliorer l'utilisation du capteur de couleurs sur le DFRobot Rover et d'enlever l'arduino présent sur le second châssis (il doit être capable de fonctionner sans).&lt;br /&gt;
Bien sur, tout cela en gardant les fonctionnalités du projet de l'année passée.&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dfrobots.jpg|right|400px|DFRobots Rover V1.5]]&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
* Foxboards&lt;br /&gt;
* Second châssis fonctionnant par Phidgets &lt;br /&gt;
* Câbles variés (série, rj45...)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques. &lt;br /&gt;
*capteur de couleur ADJD S371 CR999.&lt;br /&gt;
*boussole LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
*Confection de câbles d'alimentation à partir de câbles série pour pouvoir alimenter les foxboards &lt;br /&gt;
*Entretiens mécanique du robot&lt;br /&gt;
::=&amp;gt; rénovation partielle du robot (chenilles, moteurs)&lt;br /&gt;
::=&amp;gt; réparation du port USB&lt;br /&gt;
::=&amp;gt; amélioration de l'agencement du robot (câblage entièrement refait)&lt;br /&gt;
*Larges modifications du code source arduino en ce qui concerne le capteur de couleur (principalement)&lt;br /&gt;
*Amélioration du reste des fonctionnalités implémentées sur le robot&lt;br /&gt;
*Création d'un fichier ReadMe pour faciliter la reprise du projet (tous les documents relatifs à ce projet seront également placés dans le dossier ou se trouve le readme dans la foxboard.&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- boussole : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2423</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2423"/>
				<updated>2012-05-08T10:40:24Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Présentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
Cette reprise de projet a pour but d'améliorer l'utilisation du capteur de couleurs sur le DFRobot Rover et d'enlever l'arduino présent sur le second châssis (il doit être capable de fonctionner sans).&lt;br /&gt;
Bien sur, tout cela en gardant les fonctionnalités du projet de l'année passée.&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dfrobots.jpg|right|400px|DFRobots Rover V1.5]]&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
* Foxboards&lt;br /&gt;
* Second châssis fonctionnant par Phidgets &lt;br /&gt;
* Câbles variés (série, rj45...)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques. &lt;br /&gt;
*capteur de couleur ADJD S371 CR999.&lt;br /&gt;
*boussole LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
*Confection de câbles d'alimentation à partir de câbles série pour pouvoir alimenter les foxboards &lt;br /&gt;
*Entretiens mécanique du robot&lt;br /&gt;
::=&amp;gt; rénovation partielle du robot (chenilles, moteurs)&lt;br /&gt;
::=&amp;gt; réparation du port USB&lt;br /&gt;
::=&amp;gt; amélioration de l'agencement du robot (câblage entièrement refait)&lt;br /&gt;
*Larges modifications du code source arduino en ce qui concerne le capteur de couleur (principalement)&lt;br /&gt;
*Amélioration du reste des fonctionnalités implémentées sur le robot&lt;br /&gt;
*Création d'un fichier ReadMe pour faciliter la reprise du projet (tous les documents relatifs à ce projet seront également placés dans le dossier ou se trouve le readme dans la foxboard.&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- boussole : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2422</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2422"/>
				<updated>2012-05-08T10:19:19Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Réalisations concrètes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dfrobots.jpg|right|400px|DFRobots Rover V1.5]]&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
* Foxboards&lt;br /&gt;
* Second châssis fonctionnant par Phidgets &lt;br /&gt;
* Câbles variés (série, rj45...)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques. &lt;br /&gt;
*capteur de couleur ADJD S371 CR999.&lt;br /&gt;
*boussole LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
*Confection de câbles d'alimentation à partir de câbles série pour pouvoir alimenter les foxboards &lt;br /&gt;
*Entretiens mécanique du robot&lt;br /&gt;
::=&amp;gt; rénovation partielle du robot (chenilles, moteurs)&lt;br /&gt;
::=&amp;gt; réparation du port USB&lt;br /&gt;
::=&amp;gt; amélioration de l'agencement du robot (câblage entièrement refait)&lt;br /&gt;
*Larges modifications du code source arduino en ce qui concerne le capteur de couleur (principalement)&lt;br /&gt;
*Amélioration du reste des fonctionnalités implémentées sur le robot&lt;br /&gt;
*Création d'un fichier ReadMe pour faciliter la reprise du projet (tous les documents relatifs à ce projet seront également placés dans le dossier ou se trouve le readme dans la foxboard.&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- boussole : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2421</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2421"/>
				<updated>2012-05-08T10:16:57Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Matériel requis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dfrobots.jpg|right|400px|DFRobots Rover V1.5]]&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
* Foxboards&lt;br /&gt;
* Second châssis fonctionnant par Phidgets &lt;br /&gt;
* Câbles variés (série, rj45...)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques. &lt;br /&gt;
*capteur de couleur ADJD S371 CR999.&lt;br /&gt;
*boussole LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
*Confection de câbles d'alimentation à partir de câbles série pour pouvoir alimenter les foxboards &lt;br /&gt;
*Entretiens mécanique du robot&lt;br /&gt;
::=&amp;gt; rénovation partielle du robot (chenilles, moteurs)&lt;br /&gt;
::=&amp;gt; réparation du port USB&lt;br /&gt;
::=&amp;gt; amélioration de l'agencement du robot (câblage entièrement refait)&lt;br /&gt;
*Larges modifications du code source arduino en ce qui concerne le capteur de couleur (principalement)&lt;br /&gt;
*Amélioration du reste des fonctionnalités implémentées sur le robot&lt;br /&gt;
*Création d'un fichier ReadMe pour faciliter la reprise du projet&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- boussole : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2420</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2420"/>
				<updated>2012-05-08T10:15:44Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Matériel requis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dfrobots.jpg|right|400px|DFRobots Rover V1.5]]&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
* Foxboards&lt;br /&gt;
* Second châssis fonctionnant par Phidgets &lt;br /&gt;
* Câbles variés (série, rj45...)&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques. &lt;br /&gt;
*capteur de couleur ADJD S371 CR999.&lt;br /&gt;
*boussole LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
*Confection de câbles d'alimentation à partir de câbles série pour pouvoir alimenter les foxboards &lt;br /&gt;
*Entretiens mécanique du robot&lt;br /&gt;
::=&amp;gt; rénovation partielle du robot (chenilles, moteurs)&lt;br /&gt;
::=&amp;gt; réparation du port USB&lt;br /&gt;
::=&amp;gt; amélioration de l'agencement du robot (câblage entièrement refait)&lt;br /&gt;
*Larges modifications du code source arduino en ce qui concerne le capteur de couleur (principalement)&lt;br /&gt;
*Amélioration du reste des fonctionnalités implémentées sur le robot&lt;br /&gt;
*Création d'un fichier ReadMe pour faciliter la reprise du projet&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- boussole : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Dfrobots.jpg&amp;diff=2419</id>
		<title>Fichier:Dfrobots.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Dfrobots.jpg&amp;diff=2419"/>
				<updated>2012-05-08T10:14:35Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2417</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2417"/>
				<updated>2012-05-08T10:03:41Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Matériel requis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
* Foxboards&lt;br /&gt;
* Second châssis fonctionnant par Phidgets &lt;br /&gt;
* Câbles variés (série, rj45...)&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques. &lt;br /&gt;
*capteur de couleur ADJD S371 CR999.&lt;br /&gt;
*boussole LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
*Confection de câbles d'alimentation à partir de câbles série pour pouvoir alimenter les foxboards &lt;br /&gt;
*Entretiens mécanique du robot&lt;br /&gt;
::=&amp;gt; rénovation partielle du robot (chenilles, moteurs)&lt;br /&gt;
::=&amp;gt; réparation du port USB&lt;br /&gt;
::=&amp;gt; amélioration de l'agencement du robot (câblage entièrement refait)&lt;br /&gt;
*Larges modifications du code source arduino en ce qui concerne le capteur de couleur (principalement)&lt;br /&gt;
*Amélioration du reste des fonctionnalités implémentées sur le robot&lt;br /&gt;
*Création d'un fichier ReadMe pour faciliter la reprise du projet&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- boussole : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2416</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2416"/>
				<updated>2012-05-08T09:56:54Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Réalisations concrètes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques. &lt;br /&gt;
*capteur de couleur ADJD S371 CR999.&lt;br /&gt;
*boussole LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
*Confection de câbles d'alimentation à partir de câbles série pour pouvoir alimenter les foxboards &lt;br /&gt;
*Entretiens mécanique du robot&lt;br /&gt;
::=&amp;gt; rénovation partielle du robot (chenilles, moteurs)&lt;br /&gt;
::=&amp;gt; réparation du port USB&lt;br /&gt;
::=&amp;gt; amélioration de l'agencement du robot (câblage entièrement refait)&lt;br /&gt;
*Larges modifications du code source arduino en ce qui concerne le capteur de couleur (principalement)&lt;br /&gt;
*Amélioration du reste des fonctionnalités implémentées sur le robot&lt;br /&gt;
*Création d'un fichier ReadMe pour faciliter la reprise du projet&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- boussole : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2415</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2415"/>
				<updated>2012-05-08T09:48:19Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Quatorzième séance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques. &lt;br /&gt;
*capteur de couleur ADJD S371 CR999.&lt;br /&gt;
*boussole LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
*Confection de câbles d'alimentation à partir de câbles série pour pouvoir alimenter les foxboards &lt;br /&gt;
*Entretiens mécanique du robot&lt;br /&gt;
::=&amp;gt; rénovation partielle du robot (chenilles, moteurs)&lt;br /&gt;
::=&amp;gt; réparation du port USB&lt;br /&gt;
::=&amp;gt; amélioration de l'agencement du robot&lt;br /&gt;
*Larges modifications du code source arduino en ce qui concerne le capteur de couleur (principalement)&lt;br /&gt;
*Amélioration du reste des fonctionnalités implémentées sur le robot&lt;br /&gt;
*Création d'un fichier ReadMe pour faciliter la reprise du projet&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- boussole : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2414</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2414"/>
				<updated>2012-05-08T09:47:54Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Matériel à acheter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques. &lt;br /&gt;
*capteur de couleur ADJD S371 CR999.&lt;br /&gt;
*boussole LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
*Confection de câbles d'alimentation à partir de câbles série pour pouvoir alimenter les foxboards &lt;br /&gt;
*Entretiens mécanique du robot&lt;br /&gt;
::=&amp;gt; rénovation partielle du robot (chenilles, moteurs)&lt;br /&gt;
::=&amp;gt; réparation du port USB&lt;br /&gt;
::=&amp;gt; amélioration de l'agencement du robot&lt;br /&gt;
*Larges modifications du code source arduino en ce qui concerne le capteur de couleur (principalement)&lt;br /&gt;
*Amélioration du reste des fonctionnalités implémentées sur le robot&lt;br /&gt;
*Création d'un fichier ReadMe pour faciliter la reprise du projet&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- compas : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2413</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2413"/>
				<updated>2012-05-08T09:47:01Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Matériel à acheter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques. &lt;br /&gt;
*capteur de couleur.&lt;br /&gt;
*boussole.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
*Confection de câbles d'alimentation à partir de câbles série pour pouvoir alimenter les foxboards &lt;br /&gt;
*Entretiens mécanique du robot&lt;br /&gt;
::=&amp;gt; rénovation partielle du robot (chenilles, moteurs)&lt;br /&gt;
::=&amp;gt; réparation du port USB&lt;br /&gt;
::=&amp;gt; amélioration de l'agencement du robot&lt;br /&gt;
*Larges modifications du code source arduino en ce qui concerne le capteur de couleur (principalement)&lt;br /&gt;
*Amélioration du reste des fonctionnalités implémentées sur le robot&lt;br /&gt;
*Création d'un fichier ReadMe pour faciliter la reprise du projet&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- compas : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2412</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2412"/>
				<updated>2012-05-08T09:46:01Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Réalisations concrètes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
*Confection de câbles d'alimentation à partir de câbles série pour pouvoir alimenter les foxboards &lt;br /&gt;
*Entretiens mécanique du robot&lt;br /&gt;
::=&amp;gt; rénovation partielle du robot (chenilles, moteurs)&lt;br /&gt;
::=&amp;gt; réparation du port USB&lt;br /&gt;
::=&amp;gt; amélioration de l'agencement du robot&lt;br /&gt;
*Larges modifications du code source arduino en ce qui concerne le capteur de couleur (principalement)&lt;br /&gt;
*Amélioration du reste des fonctionnalités implémentées sur le robot&lt;br /&gt;
*Création d'un fichier ReadMe pour faciliter la reprise du projet&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- compas : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2411</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2411"/>
				<updated>2012-05-08T09:38:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Matériel requis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Châssis DFRobots Rover V1.5&lt;br /&gt;
**Arduino ATMega328P&lt;br /&gt;
**Moteurs Tamiya L293&lt;br /&gt;
* Servomoteur HS-422&lt;br /&gt;
* Sonar SRF-05&lt;br /&gt;
* Bus I2C (Inter Integrated Circuit)&lt;br /&gt;
* Capteur de couleurs ADJD-S371&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- compas : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2410</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2410"/>
				<updated>2012-05-08T09:34:07Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Huitième séance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Exemple de matériel&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLÈME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neuvième séance ====&lt;br /&gt;
&lt;br /&gt;
* tableau récapitulatif de la correspondance des variables entre les programmes arduino et rfrobot.c et conduire.html&lt;br /&gt;
**on s'est rendu compte que le programme que nous modifions n'était pas le bon.  PRESENCE DE 3 FICHIERS RFROBOT.C !!! =&amp;gt; suppressions des fichiers inutiles&amp;lt;br /&amp;gt;&lt;br /&gt;
::donc le tableau récapitulatif est maintenant correct. &lt;br /&gt;
*mode autonome anormalement lent... après inspection : un cable s'était débranché =&amp;gt; dorénavant completement opérationnel &lt;br /&gt;
&lt;br /&gt;
==== Dixième séance ====&lt;br /&gt;
&lt;br /&gt;
*proposition de solution pour le capteur de couleur :&amp;lt;br /&amp;gt;&lt;br /&gt;
:il est évident que le code précédent ne fonctionne pas à la lumière ambiante, les conditions sur les valeurs sont éronnées.&amp;lt;br /&amp;gt;&lt;br /&gt;
On pense donc revoir les conditions et essayer de travailler en &amp;quot;rapports&amp;quot; ainsi peut importe les valeurs reçues par le capteur, il devrait fonctionner.&amp;lt;br /&amp;gt;&lt;br /&gt;
On veut également prendre en compte l'intensité lumineuse : on branche le signal sur une pin PWM pour pouvoir ensuite faire varier l'intensité lumineuse de la LED.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- on aimerait que la luminosité n'influt pas sur la valeur relevée.&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; on aimerait donc créée une sorte de fonction ou calcul : &amp;lt;br /&amp;gt;clear 0V-----------255&amp;lt;br /&amp;gt;&lt;br /&gt;
::nV?----------30&lt;br /&gt;
&lt;br /&gt;
Prochaine séance, ça serait bien d'arriver à calibrer le capteur de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Onzième séance ====&lt;br /&gt;
&lt;br /&gt;
*objectif :&lt;br /&gt;
- Faire varier intensité de la LED du capteur du couleur avec signal PWM. DONE !!! (reste à savoir où le placer dans le programme et comment la faire varier).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour l'instant c'est dans suivi sens 1 et la fonction &amp;quot;turn&amp;quot; !!&lt;br /&gt;
- Réussir le calibrage du capteur (trouver une relation).&amp;lt;br /&amp;gt;&lt;br /&gt;
- On peut commander l'intensité lumineuse!! avec la pin digital 10 (PWM)&amp;lt;br /&amp;gt;&lt;br /&gt;
::On calcule l'intensité avec la variable &amp;quot;ccValue&amp;quot; de manière à allumer la led avec une intensité différente !&amp;lt;br /&amp;gt;&lt;br /&gt;
::On prospose &amp;quot;255-ccValue&amp;quot; mais cela ne fonctionne pas correctement (erreur digital/analog)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Problème la LED fonctionne avec le digitalwrtite mais pas avec l'analogWrite !!&amp;lt;br /&amp;gt; &lt;br /&gt;
:=&amp;gt; SOLUTION CHANGER DE PIN -------&amp;gt; PIN 11 POUR LA LED&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le signal PWM fonctionne mais que pendant 5s !!&amp;lt;br /&amp;gt;&lt;br /&gt;
Peut etre qu'il y a trop de données envoyées? ''solution :'' réduire la mise à jour de la LED ?&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecrire moins souvent sur le port série?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Douzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a essayer de comprendre le problème. Il en résulte que on sait toujours pas MAIS &lt;br /&gt;
la pin 10 fonctionne indépendamment du programme&lt;br /&gt;
- elle fonctionne avec une communication série et I2C après plusieurs tests&lt;br /&gt;
- qu'un analogWrite 255 fonctionne&lt;br /&gt;
- que la fonction getcolorvalue plante dès que l'on a un analogWrite dedans.&amp;lt;br /&amp;gt;&lt;br /&gt;
::Test avec un autre arduino =&amp;gt; le programme ne fonctionne pas non plus =&amp;gt; pas un probleme hardware&amp;lt;br /&amp;gt;&lt;br /&gt;
:Pas besoin non plus de reécrire la fonction analogWrite.&lt;br /&gt;
&lt;br /&gt;
==== Treizième séance ====&lt;br /&gt;
&lt;br /&gt;
- Tentative de solutions : résoudre le problème ou le contourner...?&amp;lt;br /&amp;gt; &lt;br /&gt;
-- fonction en plus avec seulement analogwrite...??&amp;lt;br /&amp;gt;&lt;br /&gt;
-- problème récupérer la valeur de ccValue? en passant par pointeur?&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; solution non trouvée. &lt;br /&gt;
&lt;br /&gt;
==== Quatorzième séance ====&lt;br /&gt;
&lt;br /&gt;
*PROBLEME : appel de la fonction getcolourValue() avec un while =&amp;gt; bug meme sans analog write... !!!&amp;lt;br /&amp;gt; &lt;br /&gt;
- solution ? reécrire une fonction spéciale pour le suivi de sens?&amp;lt;br /&amp;gt;&lt;br /&gt;
- nouveau capteur de couleurs : '''ADJD S371 CR999'''&amp;lt;br /&amp;gt;&lt;br /&gt;
- compas : '''LSM303 Breakout Board - Tilt Compensated Compass sku: SEN-10703''' Pour permettre de bien suivre une ligne droite et de corriger le cas échéant&amp;lt;br /&amp;gt;&lt;br /&gt;
- Problème du capteur de couleur introuvable =&amp;gt; changement capteur de couleur&lt;br /&gt;
::=&amp;gt; ÇA MARCHE !! Après quelques retouches, on arrive à faire varier l'intensité lumineuse de manière soft.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Fabrication support pour le nouveau capteur (soudure + perçage).&amp;lt;br /&amp;gt;&lt;br /&gt;
-Prochains objectifs : étalonner les valeurs des couleurs RVB. Ainsi on pourra finaliser la fonction suivre_sens_1.&lt;br /&gt;
&lt;br /&gt;
==== Quinzième séance ====&lt;br /&gt;
&lt;br /&gt;
* On a changé la manière de définir les couleurs. Nous travaillons maintenant avec des rapports! ainsi on peut trouver la couleur peut importe l'intensité lumineuse.&lt;br /&gt;
Enfin il nous reste à trouver une contrainte supplémentaire sur le BLANC..&amp;lt;br /&amp;gt;&lt;br /&gt;
On a actuellement :&amp;lt;br /&amp;gt;&lt;br /&gt;
RED = rouge&amp;lt;br /&amp;gt;&lt;br /&gt;
BLACK = vert&amp;lt;br /&amp;gt;&lt;br /&gt;
GREEN = bleu&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut donc changer les noms pour plus de cohérence dans le programme. Et définir le blanc. Après les fonctions &amp;quot;suivi_sens&amp;quot; pourront fonctionner normalement...&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2409</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=2409"/>
				<updated>2012-05-08T08:27:42Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Septième séance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Exemple de matériel&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième séance ====&lt;br /&gt;
&lt;br /&gt;
*Soudure du port usb situé à l'arrière du châssis n°1.&lt;br /&gt;
*Tests pour vérifier que la soudure est correcte =&amp;gt; le port usb est fragilisé (il peut y avoir un faux contact sur la branche 3), mais le port fonctionne. &lt;br /&gt;
*Premier tests pour faire avancer le châssis n°1 =&amp;gt; le robot avance, et peut être commandé au clavier par liaison série (sans soucis).&lt;br /&gt;
*Remarques :&lt;br /&gt;
**Le châssis n'avance pas sans alimentation usb =&amp;gt; solution : changement de piles + léger étirement des chenilles (pour tenter de réduire le couple résistant). &lt;br /&gt;
**Après le robot se déplace mais toujours avec difficulté =&amp;gt; autre solution envisagée : graissage du mécanisme mais non réalisée.&lt;br /&gt;
&lt;br /&gt;
==== Troisième séance ====&lt;br /&gt;
&lt;br /&gt;
*Récupération de la version finale de l'image système de la Foxboard. (notre version n'était pas la plus avancée).&lt;br /&gt;
*Remise en fonctionnement du wifi de la foxboard =&amp;gt; la foxboard arrive maintenant à se connecter au réseau de l'école.&lt;br /&gt;
&lt;br /&gt;
==== Quatrième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons trouvé le nom du capteur de couleur utilisé (aucune trace de son achat ou son nom dans le projet précédent). =&amp;gt; ADJD-s371&lt;br /&gt;
*Chaîne de communication web =&amp;gt; fox =&amp;gt; arduino rétabli.&lt;br /&gt;
*Test du mode manuel via interface web =&amp;gt; le robot fonctionne normalement(après écriture du code arduino en fonction du code déjà existant).&lt;br /&gt;
&lt;br /&gt;
==== Cinquième séance ====&lt;br /&gt;
&lt;br /&gt;
*récupération d'un exemple de code pour le capteur de couleur or Problème : cela ne fonctionne pas.&lt;br /&gt;
**teste avec une LED 256 couleurs =&amp;gt; pas de lumière.&lt;br /&gt;
*Après une batterie de testes entre les deux arduinos et les deux capteurs de lumière (identiques) nous en déduisons qu'un des capteurs est mort. &lt;br /&gt;
*Problème non réglé : avec le capteur de couleur opérationnel, il ne fonctionne pas avec le châssis n°1 =&amp;gt; prochaine séance : vérification du câblage avec un ohmmètre.&lt;br /&gt;
&lt;br /&gt;
==== Sixième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons vérifié tout le câblage pour trouver pourquoi la LED du capteur de couleur ne s'allumait pas :&lt;br /&gt;
**Finalement, il semble que le bus gris (I2C) ne fonctionne pas : faux contact sur la branche 4.&lt;br /&gt;
**Après avoir &amp;quot;gratté&amp;quot; un peu la broche le câble fonctionne.&lt;br /&gt;
**Solution magique = solution provisoire. Donc nous ferons peut être un autre bus.&lt;br /&gt;
*Projet à venir : &lt;br /&gt;
**Construire une plaque pour la version définitive du hardware (plus solide). &lt;br /&gt;
**Etablir un début de code pour faire fonctionner le capteur de couleur.&lt;br /&gt;
&lt;br /&gt;
==== Septième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons scié la plaque pour avoir un circuit définitif. Or nous n'avions pas de fer à souder =&amp;gt; prochaine séance.&lt;br /&gt;
*Test du code du capteur de lumière avec la LED =&amp;gt; cela fonctionne. (on a de la lumière : mais Maxime a la peau bleu...)&lt;br /&gt;
**Donc On va chercher par la suite à comprendre le code pour avoir des couleurs cohérentes.&lt;br /&gt;
&lt;br /&gt;
==== Huitième séance ====&lt;br /&gt;
&lt;br /&gt;
*Nous avons fait des tests pour calibrer le capteur de couleur : nous réussissons à avoir des couleurs dont les valeurs sont comprises entre entre 0 et 255. &lt;br /&gt;
**Problème &lt;br /&gt;
=&amp;gt; la luminosité ambiante joue énormément sur les valeurs retournées par le capteur (puisque nous avons enlevé le cache qui entourait le capteur !&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; tentative d'harmonisation des couleurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONSTATATION : en faisant varier les valeurs des gains associés à chaque couleur (sensibilité) , impossible d'arriver clairement à faire quelquechose de propre.&amp;lt;br /&amp;gt;&lt;br /&gt;
OR en diminuant la distance par rapport au sol du capteur, les différenciations sont un peu plus efficace.&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; Solution envisagée : diminuer la position du capteur de lumière pour réduire l'effet de la luminositée ambiante?&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Nous avons besoin de 4 couleurs pour que le robot puisse suivre la ligne correctement.&amp;lt;br /&amp;gt;&lt;br /&gt;
	- on définit le blanc comme &amp;gt;245 dans les trois couleurs.&lt;br /&gt;
	- création d'un fonction &amp;quot;getvalue&amp;quot; pour la couleur de la LED : nous abandonnerons la LED une fois que nous auront bien compris le code.&lt;br /&gt;
	  Nous observons les données envoyées sur le port série. Nous arrivons à peu près a avoir des valeurs correctes (nous atténuons la valeurs des couleurs non      dominantes).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	PROBLEME : On doit choisir 3 couleurs faciles à capter : rouge, blanc, et ??!&amp;lt;br /&amp;gt;&lt;br /&gt;
	Impossible de trouver une configuration de couleur assez stable! &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=1597</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=1597"/>
				<updated>2012-02-09T10:08:36Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Matériel à acheter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Exemple de matériel&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
*câbles de connexions pour l'adaptateur placé sur le cpu de la Foxboard pour faciliter l'implémentation des périphériques.&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=1595</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=1595"/>
				<updated>2012-02-09T10:04:31Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Première séance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Exemple de matériel&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
*Réparation d'un cable de multimètre.&lt;br /&gt;
*Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
*Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
*Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=1594</id>
		<title>Robots mobiles 2012</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Robots_mobiles_2012&amp;diff=1594"/>
				<updated>2012-02-09T10:03:54Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Première séance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
== Préparation du projet ==&lt;br /&gt;
&lt;br /&gt;
=== Matériel requis ===&lt;br /&gt;
&lt;br /&gt;
* Exemple de matériel&lt;br /&gt;
&lt;br /&gt;
=== Matériel à acheter ===&lt;br /&gt;
&lt;br /&gt;
== Avancement du projet==&lt;br /&gt;
&lt;br /&gt;
=== Objectifs suggérés par les encadrants ===&lt;br /&gt;
&lt;br /&gt;
=== Réalisations concrètes ===&lt;br /&gt;
&lt;br /&gt;
=== Séances ===&lt;br /&gt;
&lt;br /&gt;
==== Première séance ====&lt;br /&gt;
&lt;br /&gt;
-Réparation d'un cable de multimètre.&lt;br /&gt;
-Fabrication de deux alimentations USB pour les Foxboards.&lt;br /&gt;
-Récupération des images systeme des deux Foxboards du projet de l'année passée.&lt;br /&gt;
-Vérification de la communication via une clé Wifi entre la Foxboard et un ordinateur de TP.&lt;br /&gt;
&lt;br /&gt;
=== Résultats ===&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Contr%C3%B4le_LED_256_couleurs,_groupe_A&amp;diff=1394</id>
		<title>Contrôle LED 256 couleurs, groupe A</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Contr%C3%B4le_LED_256_couleurs,_groupe_A&amp;diff=1394"/>
				<updated>2011-06-05T09:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Schéma électronique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Première Séance (18/05)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie électronique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Se familiariser avec le sujet.&lt;br /&gt;
*Analyser clairement ce que l'on nous demande de faire.&lt;br /&gt;
*Commencer à réaliser le programme sur Altium designer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deux des trois objectifs sont remplis. Le plus dur a été de comprendre comment réaliser le signal PWM pour une LED, la difficulté était&lt;br /&gt;
dans la conversion d'un signal numérique en un signal temporel, nous avons remarqué que si l'on obtenait le moyen de réaliser la commande d'une &lt;br /&gt;
LED, nous avions celle des deux autres. Nous avons une solution potentielle sur papier pour une seule LED, (alors que notre programme doit en contenir&lt;br /&gt;
3) que nous testerons à la prochaine séance.&lt;br /&gt;
&amp;lt;p&amp;gt;Le processus de notre sujet est &amp;lt;/p&amp;gt;&lt;br /&gt;
[[Fichier:processus.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie informatique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Se familiariser avec le sujet.&lt;br /&gt;
*Analyser clairement ce que l'on nous demande de faire.&lt;br /&gt;
*Familiarisation avec le langage Javascript (recherche de grammaire et d'exemples, téléchargement de bibliothèques...) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes informés sur la structure du langage javascript, tout en faisant une piqûre de rappel de php &amp;amp;html. Les recherches sur internet ont permis de trouver plusieurs types de sliders, nous avons dû modifier les fonctions, du moins les ré-arranger pour qu'ils puisent être compatible avec les bibliothèque utilisées (prototype &amp;amp; Jquery). Au final, nous avons les trois sliders, gérant chacun la quantité de rouge, de vert et de bleu.&lt;br /&gt;
&lt;br /&gt;
==Deuxième Séance (20/05)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie électronique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Réaliser le programme sur Altium designer pour le fonctionnement d'une seule LED.&lt;br /&gt;
*Le tester avec la nanoboard et une LED.&lt;br /&gt;
*Faire le programme avec les 3 LED.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous n'avons réalisé qu'un seul des 3 objectifs. Nous n'avons pas eu le temps de tester sur une LED. On remarque qu'il est aisé de réaliser le dernier objectif une fois le deuxième objectif réalisé. Il nous ne restera donc, si notre programme marche pour une LED, qu'a utiliser un démultiplexeur pour n'avoir qu'une entrée dans le programme (cahier des charges). Nous essaierons de réaliser ceci lors de la dernière séance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie informatique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Créer une fenêtre dont la couleur sera définie par la quantité de couleurs indiquée par les sliders&lt;br /&gt;
*Créer le programme permettant de faire le lien entre le site internet et la maquette.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons eu pas mal de difficultés pour extraire des fonctions gérant les sliders la variable qui contient la &amp;quot;quantité&amp;quot; de rouge, de vert ou de bleu.&lt;br /&gt;
Nous avons donc du créer trois fonctions différentes pour pouvoir les obtenir. Ensuite il a fallut les convertir en hexadécimale pour pouvoir donner à la fenêtre la couleur voulue (en additionnant juste les trois nombres hexadécimaux). Nous n'avons pas pu continuer et créer le programme de lien entre le site et la maquette. Le démon à tout de même était compilé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troisème Séance (27/05)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie électronique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Tester notre programme pour une branche de la LED.&lt;br /&gt;
*Faire le schéma de montage pour prendre en compte les 2 autres couleurs de la LED.&lt;br /&gt;
*Réaliser le multiplexage demandé dans le cahier des charges.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
Nous avons testé notre programme qui marchait parfaitement pour une LED en début de séance, puis nous l'avons élargit pour pouvoir contrôler les 2 autres LED sans multiplexage. Ce programme marchait également parfaitement. Ensuite nous avons réalisé le multipexage des entrées. Nous avons eu des soucis, et le programme ne fonctionne pas parfaitement, il fait varier l'intensité des LED mais sans jamais éteindre complètement la LED 256 couleurs... Nous avons cherché notre erreur due forcément au multiplexage mais sans succès. Nous savons juste que ce n'est pas un problème de hardware. mais nous n'avons pas eu le temps de résoudre ce soucis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie informatique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Terminer le programme faisant le lien entre la page internet et l'interface munie de LED.&lt;br /&gt;
* Transférer le tout sur la FoxBoard, tester avec le périphérique fourni et si cela marche tester avec la NanoBoard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Au final, le programme permettant de créer les trois fichiers texte contenants les valeurs des couleurs (RVB) fonctionne, il a été testé directement à partir du PC via la liaison série. Nous avons chargé le programme sur la FoxBoard mais à cause du manque de temps nous n'avons pu compiler le programme (difficulté à installer les bibliothèques adéquates sur la FoxBoard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Numéro ordi : tutur01&lt;br /&gt;
&lt;br /&gt;
IP 172.26.79.101&lt;br /&gt;
==Partie FPGA==&lt;br /&gt;
&lt;br /&gt;
Pour ce projet nous avons du repartir notre trinôme en fonction des 2 matières (informatique et électronique). Nous avons décidé, à l'unanimité que Maxime s'occuperait de la partie info car il est le meilleur d'entre nous. Guanqun et moi même avons donc travaillé ensemble sur la partie électronique. Nous allons dans un premier temps récapituler notre avancement dans le projet en ce qui concerne la partie électronique puis ensuite nous verrons la partie informatique.&lt;br /&gt;
&lt;br /&gt;
'''Partie électronique :'''&lt;br /&gt;
&lt;br /&gt;
*La première séance, il faut être honnête, a été relativement peu productive. Ni Guanqun ni moi n'arrivions à cerner ce que l'on nous demandait de faire. En effet, l'ensemble du cahier des charges était relativement clair, nous pensions l'avoir compris assez vite. Mais la où nous bloquions, c'était pour savoir comment réaliser les fonctions demandées. En réalité, après discutions avec le professeur Boé, nous nous sommes rendu compte que nous n'avions pas réellement saisi ce que l'on nous demandait. Ainsi, il nous a orienté pour qu'on puisse avancer, et rattraper notre retard.Le problème était de construire un signal PWM; or dans la librairie de Altium designer, il y avait une fonction permettant de la créer. Cependant, ne sachant pas comment cela fonctionnait, nous avons décidé de la recréer. M.Boé nous a vraiment bien aidé pour la compréhension du signal PWM et donc pour pouvoir réussir à le recréer (il suffisait d'utiliser un compteur). Ainsi à environ 10 min de la fin de la séance, nous avions compris le sujet et n'avions plus qu'à le tester la séance prochaine. Nous avions donc pris du retard, car nous voulions commencer à faire le schéma dans altium designer. Ainsi, nous ne partions pas très confiant.&lt;br /&gt;
&lt;br /&gt;
*Lors de la deuxième séance, nous avons donc commencé à réaliser le schéma dans Altium designer. La tâche ne fut pas forcément facile, car bien que nous ayons compris la théorie du signal PWM, c'est à dire comment il fonctionne, il fallait trouver comment le réaliser avec les composants du logiciel. Composants qui ont chacun leur documentation pour comprendre leur fonctionnement. Nous nous sommes donc dans un premier temps inspirer de l'exemple réalisé dans le pdf qui explique le fonctionnement de la nanoboard avec Altium designer, pour avoir les grandes lignes de notre schéma. Ensuite nous avons du réaliser le signal PWM à l'aide d'un compteur et d'un comparateur. Nous avons donc passer pas mal de temps pour réaliser ceci. Nous avons par la suite eu un problème de nature du signal (numérique ou analogique) nous voulions mettre un CAN pour avoir un signal analogique, mais le professeur Boé nous a dit que c'était inutile (encore une perte de temps). Le signal que nous créions n'était pas un signal continu! donc impossible de l'envoyer vers une LED. Nous devions donc réaliser un filtrage passe bas pour obtenir un signal continu (la valeur moyenne). Nous avons donc réussi à réaliser notre schéma, avons calculé la résistance qu'il fallait pour avoir un courant de 9mA pour protéger la nanoboard, mais n'avons pas eu le temps de le tester sur une LED. Nous réaliserions le montage lors de la prochaine séance.&lt;br /&gt;
&lt;br /&gt;
*Enfin la dernière séance; nous devions absolument réussir à faire varier l'intensité de la LED. Si nous réussissions pour une, nous avions le schéma pour les 2 autres. Le dernier et unique problème serait le multiplexage demandé. Ainsi, très vite nous avons réalisé en début de séance la maquette (filtre RC plus la LED), et avons testé le programme. Et pour notre plus grande surprise, ça ne marchait pas. Nous avons donc regardé notre schéma sur altium pour finalement remarqué une &amp;quot;erreur d’inattention&amp;quot;. En effet le comparateur était un &amp;quot;égal&amp;quot; alors que nous voulions un &amp;quot;inférieur ou égal&amp;quot;. Cette erreur corrigée, notre LED fonctionnait correctement (variation de l'intensité lumineuse). Donc nous avons donc réalisé le schéma pour trois LED, sans multiplexage dans un premier temps pour vérifier que cela fonctionnait. Et de nouveau notre LED 256 couleurs n'a pas répondu à nos attentes! Seulement 2 des 3 couleurs fonctionnaient; nous avons donc déduit que c'était notre maquette qui était défectueuse. Après &amp;quot;réparations&amp;quot;, notre LED 256 couleurs fonctionnait parfaitement. Enfin nous devions nous attaquer au problème du multiplexage, nous avons demandé des renseignements aux professeurs qui nous encadraient pour pouvoir bien comprendre ce que l'on nous demandait et ce que l'on réalisait. Ainsi, on devait réaliser une sorte de pseudo mémoire qui sélectionne une des 3 &amp;quot;cases&amp;quot; possible (Rouge,vert, bleu) en continu. Nous avons donc réalisé ceci, mais le problème était que le compteur (qui permettait de sélectionner les différentes consignes) ne comptait que jusqu'à 4 (0..3) M.Boé nous a dit qu'on pouvait créer un compteur qui comptait de 0 à 2. Nous avons donc dans un premier temps réalisé ceci. Or on a remarqué que ça ne fonctionnait pas exactement comme on voulait. (la LED ne s'éteignait pas, il y avait toujours une faible lueur). On a ensuite remarqué que le compteur &amp;quot;custom&amp;quot; ne marchait pas. Donc on a utilisé un compteur &amp;quot;normal&amp;quot; comptant de 0 à 3 et on a créer une condition pour que le compteur s'initialise a 0 quand il arrive à 2. Cependant, malgré cela, notre LED en avait décidé autrement... elle n'a pas changé de comportement. Nous avons donc demandé de l'aide aux enseignants qui nous encadraient, mais ils n'ont pas trouvé pourquoi elle se comportait comme ça. Nous sommes donc resté avec le schéma suivant comme schéma final. Il réalisent presque le cahier des charges, en effet, seul la luminosité est un peu défectueuse; la LED ne s'éteint pas , mais reste faiblement allumée. Nous ne savons pas pourquoi car elle marchait très bien sans multiplexage...&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous pouvons dire que le cahier des charges n'est que partiellement rempli. Même si on est très porche du résultat attendu, nous n'avons pas réellement rempli l'objectif. Mais sommes donc un peu déçu car nous avions presque réussi. Nous pensons que si nous avions été plus efficace lors de la première séance, nous aurions eu un peu plus de temps pour résoudre le problème et donc remplir parfaitement le cahier des charges.&lt;br /&gt;
&lt;br /&gt;
== Schéma électronique  ==&lt;br /&gt;
[[Fichier:captureschema.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On créé et génère trois signaux de PWM (huit bits) qui représentent bien les couleurs Rouge, Verte et bleue sur le logiciel Altium Designer.Après on change les rapports cycliques de ces signaux grâce à une donnée de commande, puis on met le signal passer par un filtre passe-bas(resistance=325Ω et condensateur=225nf) ainsi d’obtenir une couleur voulue. A la fin, on peut voir la couleur bien allumée sur le LED.&lt;br /&gt;
&lt;br /&gt;
==Partie Informatique==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous allons faire ici un résumé du déroulement des séances, en ce qui concerne la partie informatique. &lt;br /&gt;
*Lors de la première séance, je me suis tout d'abord renseigné sur le langage javascript en lisant et en faisant des exemples grâce au site du zéro, ce qui m'a permit d'obtenir les bases de ce langage. Ceci étant fait, j'ai téléchargé les deux bibliothèques conseillées par les profs., c'est à dire la librairie Prototype et la librairie Jquery. J'y ai cherché des fonctions permettant de faire des sliders, mais ce fut un échec ! J'ai donc immédiatement cherché des exemples sur internet. Comme il y en avait beaucoup, j'ai pris celui qui me semblait le moins complexe histoire d'avoir le moins de code possible. J'ai donc modifié la fonction pour que le sliders puisse varier entre 0 et 255 (pour correspondre à toutes les variations de couleur). Malgré tout, cela m'a pris une séance entière (familiarisation avec le langage, recherche de sliders.&lt;br /&gt;
&lt;br /&gt;
*Lors de la seconde séance, j'ai ajouté les deux autres sliders correspondant aux couleurs verte et bleue. J'ai rangé les trois sliders dans un tableau pour optimiser la page. j'ai ensuite créé un carré dans lequel s'affichera la couleur résultante des trois sliders, ceci n'a pas créé de problème. Le plus difficile a été d'extraire les variable contenant le nombre décimal compris entre 0 et 255 des trois sliders. Avec l'aide du prof, j'ai créé trois fonctions set_red set_green et set_blue qui permettent d'extraire la valeur voulue et de la convertir en hexadécimale. Enfin j'ai crée une fonction qui modifie le style du carré (pour nous ce sera uniquement la couleur de fond). La couleur étant la somme des trois valeurs hexadécimales. Tout fonctionne bien, mais je remarque que lorsque les curseurs sont à zéro, le carré reste noir. En effet, à zéro, la couleur n'est pas du type #000000 mais du type #000 il en va de même pour tout les nombres compris entre 0 et 16. Il a donc fallu rajouter une ligne de code pour vérifier la longueur des données et rajouter un zéro au cas ou la longueur de la valeur hexadécimale n'est pas suffisante. A la fin de la séance, les trois sliders et la fenêtre sont opérationnels.&lt;br /&gt;
&lt;br /&gt;
*Lors de la dernière séance, il a fallu modifier l'exemple de programme de dialogue entre la page internet et le démon (compilé au préalable bien entendu). J'ai donc virer les 3/4 du code existant et insérer les lignes permettant de créer trois fichiers texte (dans lequel seront rangées les valeurs correspondant à la quantité de rouge, de vert et de bleu. En compilant et en respectant les consignes, le programme marche bien et la liaison entre le site internet et la maquette à disposition s'effectue correctement (malgré quelques bugs corrigé à l'aide du prof). C'est maintenant que ça se gate. j'ai réussi à configurer la FoxBoard, à y mettre le programme mais les bibliothèques n'étaient pas dans la FoxBoard et je n'ai pas eu le temps de les y télécharger par manque de temps.&lt;br /&gt;
Au final, le sujet info est fait au 3/4, le dialogue via le port série entre la page et la maquette est opérationnel. Avec un peu plus de temps j'aurais pu compiler le programme sur la FoxBoard et le faire fonctionner via le wifi.&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Contr%C3%B4le_LED_256_couleurs,_groupe_A&amp;diff=1393</id>
		<title>Contrôle LED 256 couleurs, groupe A</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Contr%C3%B4le_LED_256_couleurs,_groupe_A&amp;diff=1393"/>
				<updated>2011-06-05T09:47:47Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Partie Informatique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Première Séance (18/05)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie électronique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Se familiariser avec le sujet.&lt;br /&gt;
*Analyser clairement ce que l'on nous demande de faire.&lt;br /&gt;
*Commencer à réaliser le programme sur Altium designer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deux des trois objectifs sont remplis. Le plus dur a été de comprendre comment réaliser le signal PWM pour une LED, la difficulté était&lt;br /&gt;
dans la conversion d'un signal numérique en un signal temporel, nous avons remarqué que si l'on obtenait le moyen de réaliser la commande d'une &lt;br /&gt;
LED, nous avions celle des deux autres. Nous avons une solution potentielle sur papier pour une seule LED, (alors que notre programme doit en contenir&lt;br /&gt;
3) que nous testerons à la prochaine séance.&lt;br /&gt;
&amp;lt;p&amp;gt;Le processus de notre sujet est &amp;lt;/p&amp;gt;&lt;br /&gt;
[[Fichier:processus.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie informatique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Se familiariser avec le sujet.&lt;br /&gt;
*Analyser clairement ce que l'on nous demande de faire.&lt;br /&gt;
*Familiarisation avec le langage Javascript (recherche de grammaire et d'exemples, téléchargement de bibliothèques...) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes informés sur la structure du langage javascript, tout en faisant une piqûre de rappel de php &amp;amp;html. Les recherches sur internet ont permis de trouver plusieurs types de sliders, nous avons dû modifier les fonctions, du moins les ré-arranger pour qu'ils puisent être compatible avec les bibliothèque utilisées (prototype &amp;amp; Jquery). Au final, nous avons les trois sliders, gérant chacun la quantité de rouge, de vert et de bleu.&lt;br /&gt;
&lt;br /&gt;
==Deuxième Séance (20/05)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie électronique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Réaliser le programme sur Altium designer pour le fonctionnement d'une seule LED.&lt;br /&gt;
*Le tester avec la nanoboard et une LED.&lt;br /&gt;
*Faire le programme avec les 3 LED.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous n'avons réalisé qu'un seul des 3 objectifs. Nous n'avons pas eu le temps de tester sur une LED. On remarque qu'il est aisé de réaliser le dernier objectif une fois le deuxième objectif réalisé. Il nous ne restera donc, si notre programme marche pour une LED, qu'a utiliser un démultiplexeur pour n'avoir qu'une entrée dans le programme (cahier des charges). Nous essaierons de réaliser ceci lors de la dernière séance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie informatique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Créer une fenêtre dont la couleur sera définie par la quantité de couleurs indiquée par les sliders&lt;br /&gt;
*Créer le programme permettant de faire le lien entre le site internet et la maquette.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons eu pas mal de difficultés pour extraire des fonctions gérant les sliders la variable qui contient la &amp;quot;quantité&amp;quot; de rouge, de vert ou de bleu.&lt;br /&gt;
Nous avons donc du créer trois fonctions différentes pour pouvoir les obtenir. Ensuite il a fallut les convertir en hexadécimale pour pouvoir donner à la fenêtre la couleur voulue (en additionnant juste les trois nombres hexadécimaux). Nous n'avons pas pu continuer et créer le programme de lien entre le site et la maquette. Le démon à tout de même était compilé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troisème Séance (27/05)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie électronique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Tester notre programme pour une branche de la LED.&lt;br /&gt;
*Faire le schéma de montage pour prendre en compte les 2 autres couleurs de la LED.&lt;br /&gt;
*Réaliser le multiplexage demandé dans le cahier des charges.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
Nous avons testé notre programme qui marchait parfaitement pour une LED en début de séance, puis nous l'avons élargit pour pouvoir contrôler les 2 autres LED sans multiplexage. Ce programme marchait également parfaitement. Ensuite nous avons réalisé le multipexage des entrées. Nous avons eu des soucis, et le programme ne fonctionne pas parfaitement, il fait varier l'intensité des LED mais sans jamais éteindre complètement la LED 256 couleurs... Nous avons cherché notre erreur due forcément au multiplexage mais sans succès. Nous savons juste que ce n'est pas un problème de hardware. mais nous n'avons pas eu le temps de résoudre ce soucis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie informatique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Terminer le programme faisant le lien entre la page internet et l'interface munie de LED.&lt;br /&gt;
* Transférer le tout sur la FoxBoard, tester avec le périphérique fourni et si cela marche tester avec la NanoBoard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Au final, le programme permettant de créer les trois fichiers texte contenants les valeurs des couleurs (RVB) fonctionne, il a été testé directement à partir du PC via la liaison série. Nous avons chargé le programme sur la FoxBoard mais à cause du manque de temps nous n'avons pu compiler le programme (difficulté à installer les bibliothèques adéquates sur la FoxBoard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Numéro ordi : tutur01&lt;br /&gt;
&lt;br /&gt;
IP 172.26.79.101&lt;br /&gt;
==Partie FPGA==&lt;br /&gt;
&lt;br /&gt;
Pour ce projet nous avons du repartir notre trinôme en fonction des 2 matières (informatique et électronique). Nous avons décidé, à l'unanimité que Maxime s'occuperait de la partie info car il est le meilleur d'entre nous. Guanqun et moi même avons donc travaillé ensemble sur la partie électronique. Nous allons dans un premier temps récapituler notre avancement dans le projet en ce qui concerne la partie électronique puis ensuite nous verrons la partie informatique.&lt;br /&gt;
&lt;br /&gt;
'''Partie électronique :'''&lt;br /&gt;
&lt;br /&gt;
*La première séance, il faut être honnête, a été relativement peu productive. Ni Guanqun ni moi n'arrivions à cerner ce que l'on nous demandait de faire. En effet, l'ensemble du cahier des charges était relativement clair, nous pensions l'avoir compris assez vite. Mais la où nous bloquions, c'était pour savoir comment réaliser les fonctions demandées. En réalité, après discutions avec le professeur Boé, nous nous sommes rendu compte que nous n'avions pas réellement saisi ce que l'on nous demandait. Ainsi, il nous a orienté pour qu'on puisse avancer, et rattraper notre retard.Le problème était de construire un signal PWM; or dans la librairie de Altium designer, il y avait une fonction permettant de la créer. Cependant, ne sachant pas comment cela fonctionnait, nous avons décidé de la recréer. M.Boé nous a vraiment bien aidé pour la compréhension du signal PWM et donc pour pouvoir réussir à le recréer (il suffisait d'utiliser un compteur). Ainsi à environ 10 min de la fin de la séance, nous avions compris le sujet et n'avions plus qu'à le tester la séance prochaine. Nous avions donc pris du retard, car nous voulions commencer à faire le schéma dans altium designer. Ainsi, nous ne partions pas très confiant.&lt;br /&gt;
&lt;br /&gt;
*Lors de la deuxième séance, nous avons donc commencé à réaliser le schéma dans Altium designer. La tâche ne fut pas forcément facile, car bien que nous ayons compris la théorie du signal PWM, c'est à dire comment il fonctionne, il fallait trouver comment le réaliser avec les composants du logiciel. Composants qui ont chacun leur documentation pour comprendre leur fonctionnement. Nous nous sommes donc dans un premier temps inspirer de l'exemple réalisé dans le pdf qui explique le fonctionnement de la nanoboard avec Altium designer, pour avoir les grandes lignes de notre schéma. Ensuite nous avons du réaliser le signal PWM à l'aide d'un compteur et d'un comparateur. Nous avons donc passer pas mal de temps pour réaliser ceci. Nous avons par la suite eu un problème de nature du signal (numérique ou analogique) nous voulions mettre un CAN pour avoir un signal analogique, mais le professeur Boé nous a dit que c'était inutile (encore une perte de temps). Le signal que nous créions n'était pas un signal continu! donc impossible de l'envoyer vers une LED. Nous devions donc réaliser un filtrage passe bas pour obtenir un signal continu (la valeur moyenne). Nous avons donc réussi à réaliser notre schéma, avons calculé la résistance qu'il fallait pour avoir un courant de 9mA pour protéger la nanoboard, mais n'avons pas eu le temps de le tester sur une LED. Nous réaliserions le montage lors de la prochaine séance.&lt;br /&gt;
&lt;br /&gt;
*Enfin la dernière séance; nous devions absolument réussir à faire varier l'intensité de la LED. Si nous réussissions pour une, nous avions le schéma pour les 2 autres. Le dernier et unique problème serait le multiplexage demandé. Ainsi, très vite nous avons réalisé en début de séance la maquette (filtre RC plus la LED), et avons testé le programme. Et pour notre plus grande surprise, ça ne marchait pas. Nous avons donc regardé notre schéma sur altium pour finalement remarqué une &amp;quot;erreur d’inattention&amp;quot;. En effet le comparateur était un &amp;quot;égal&amp;quot; alors que nous voulions un &amp;quot;inférieur ou égal&amp;quot;. Cette erreur corrigée, notre LED fonctionnait correctement (variation de l'intensité lumineuse). Donc nous avons donc réalisé le schéma pour trois LED, sans multiplexage dans un premier temps pour vérifier que cela fonctionnait. Et de nouveau notre LED 256 couleurs n'a pas répondu à nos attentes! Seulement 2 des 3 couleurs fonctionnaient; nous avons donc déduit que c'était notre maquette qui était défectueuse. Après &amp;quot;réparations&amp;quot;, notre LED 256 couleurs fonctionnait parfaitement. Enfin nous devions nous attaquer au problème du multiplexage, nous avons demandé des renseignements aux professeurs qui nous encadraient pour pouvoir bien comprendre ce que l'on nous demandait et ce que l'on réalisait. Ainsi, on devait réaliser une sorte de pseudo mémoire qui sélectionne une des 3 &amp;quot;cases&amp;quot; possible (Rouge,vert, bleu) en continu. Nous avons donc réalisé ceci, mais le problème était que le compteur (qui permettait de sélectionner les différentes consignes) ne comptait que jusqu'à 4 (0..3) M.Boé nous a dit qu'on pouvait créer un compteur qui comptait de 0 à 2. Nous avons donc dans un premier temps réalisé ceci. Or on a remarqué que ça ne fonctionnait pas exactement comme on voulait. (la LED ne s'éteignait pas, il y avait toujours une faible lueur). On a ensuite remarqué que le compteur &amp;quot;custom&amp;quot; ne marchait pas. Donc on a utilisé un compteur &amp;quot;normal&amp;quot; comptant de 0 à 3 et on a créer une condition pour que le compteur s'initialise a 0 quand il arrive à 2. Cependant, malgré cela, notre LED en avait décidé autrement... elle n'a pas changé de comportement. Nous avons donc demandé de l'aide aux enseignants qui nous encadraient, mais ils n'ont pas trouvé pourquoi elle se comportait comme ça. Nous sommes donc resté avec le schéma suivant comme schéma final. Il réalisent presque le cahier des charges, en effet, seul la luminosité est un peu défectueuse; la LED ne s'éteint pas , mais reste faiblement allumée. Nous ne savons pas pourquoi car elle marchait très bien sans multiplexage...&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous pouvons dire que le cahier des charges n'est que partiellement rempli. Même si on est très porche du résultat attendu, nous n'avons pas réellement rempli l'objectif. Mais sommes donc un peu déçu car nous avions presque réussi. Nous pensons que si nous avions été plus efficace lors de la première séance, nous aurions eu un peu plus de temps pour résoudre le problème et donc remplir parfaitement le cahier des charges.&lt;br /&gt;
&lt;br /&gt;
== Schéma électronique  ==&lt;br /&gt;
[[Fichier:captureschema.JPG]]&lt;br /&gt;
On crée et génère trois signaux de PWM(huit bits) qui bien représentent les couleurs Rouge, Vert et bleu sur le logiciel Altium Designer, après on change les rapport cyclique de ces signaux grâce à une donnée de commande, puis on mette le signal passer un filtre passe-bas(resistance=325Ω et condensateur=225nf) ainsi d’obtenir une couleur voulue. A la fin, on peut voir la couleur bien allumée sur le LED.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Partie Informatique==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous allons faire ici un résumé du déroulement des séances, en ce qui concerne la partie informatique. &lt;br /&gt;
*Lors de la première séance, je me suis tout d'abord renseigné sur le langage javascript en lisant et en faisant des exemples grâce au site du zéro, ce qui m'a permit d'obtenir les bases de ce langage. Ceci étant fait, j'ai téléchargé les deux bibliothèques conseillées par les profs., c'est à dire la librairie Prototype et la librairie Jquery. J'y ai cherché des fonctions permettant de faire des sliders, mais ce fut un échec ! J'ai donc immédiatement cherché des exemples sur internet. Comme il y en avait beaucoup, j'ai pris celui qui me semblait le moins complexe histoire d'avoir le moins de code possible. J'ai donc modifié la fonction pour que le sliders puisse varier entre 0 et 255 (pour correspondre à toutes les variations de couleur). Malgré tout, cela m'a pris une séance entière (familiarisation avec le langage, recherche de sliders.&lt;br /&gt;
&lt;br /&gt;
*Lors de la seconde séance, j'ai ajouté les deux autres sliders correspondant aux couleurs verte et bleue. J'ai rangé les trois sliders dans un tableau pour optimiser la page. j'ai ensuite créé un carré dans lequel s'affichera la couleur résultante des trois sliders, ceci n'a pas créé de problème. Le plus difficile a été d'extraire les variable contenant le nombre décimal compris entre 0 et 255 des trois sliders. Avec l'aide du prof, j'ai créé trois fonctions set_red set_green et set_blue qui permettent d'extraire la valeur voulue et de la convertir en hexadécimale. Enfin j'ai crée une fonction qui modifie le style du carré (pour nous ce sera uniquement la couleur de fond). La couleur étant la somme des trois valeurs hexadécimales. Tout fonctionne bien, mais je remarque que lorsque les curseurs sont à zéro, le carré reste noir. En effet, à zéro, la couleur n'est pas du type #000000 mais du type #000 il en va de même pour tout les nombres compris entre 0 et 16. Il a donc fallu rajouter une ligne de code pour vérifier la longueur des données et rajouter un zéro au cas ou la longueur de la valeur hexadécimale n'est pas suffisante. A la fin de la séance, les trois sliders et la fenêtre sont opérationnels.&lt;br /&gt;
&lt;br /&gt;
*Lors de la dernière séance, il a fallu modifier l'exemple de programme de dialogue entre la page internet et le démon (compilé au préalable bien entendu). J'ai donc virer les 3/4 du code existant et insérer les lignes permettant de créer trois fichiers texte (dans lequel seront rangées les valeurs correspondant à la quantité de rouge, de vert et de bleu. En compilant et en respectant les consignes, le programme marche bien et la liaison entre le site internet et la maquette à disposition s'effectue correctement (malgré quelques bugs corrigé à l'aide du prof). C'est maintenant que ça se gate. j'ai réussi à configurer la FoxBoard, à y mettre le programme mais les bibliothèques n'étaient pas dans la FoxBoard et je n'ai pas eu le temps de les y télécharger par manque de temps.&lt;br /&gt;
Au final, le sujet info est fait au 3/4, le dialogue via le port série entre la page et la maquette est opérationnel. Avec un peu plus de temps j'aurais pu compiler le programme sur la FoxBoard et le faire fonctionner via le wifi.&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Contr%C3%B4le_LED_256_couleurs,_groupe_A&amp;diff=1392</id>
		<title>Contrôle LED 256 couleurs, groupe A</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Contr%C3%B4le_LED_256_couleurs,_groupe_A&amp;diff=1392"/>
				<updated>2011-06-04T21:02:08Z</updated>
		
		<summary type="html">&lt;p&gt;Mdujard1 : /* Schéma électronique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Première Séance (18/05)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie électronique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Se familiariser avec le sujet.&lt;br /&gt;
*Analyser clairement ce que l'on nous demande de faire.&lt;br /&gt;
*Commencer à réaliser le programme sur Altium designer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deux des trois objectifs sont remplis. Le plus dur a été de comprendre comment réaliser le signal PWM pour une LED, la difficulté était&lt;br /&gt;
dans la conversion d'un signal numérique en un signal temporel, nous avons remarqué que si l'on obtenait le moyen de réaliser la commande d'une &lt;br /&gt;
LED, nous avions celle des deux autres. Nous avons une solution potentielle sur papier pour une seule LED, (alors que notre programme doit en contenir&lt;br /&gt;
3) que nous testerons à la prochaine séance.&lt;br /&gt;
&amp;lt;p&amp;gt;Le processus de notre sujet est &amp;lt;/p&amp;gt;&lt;br /&gt;
[[Fichier:processus.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie informatique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Se familiariser avec le sujet.&lt;br /&gt;
*Analyser clairement ce que l'on nous demande de faire.&lt;br /&gt;
*Familiarisation avec le langage Javascript (recherche de grammaire et d'exemples, téléchargement de bibliothèques...) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes informés sur la structure du langage javascript, tout en faisant une piqûre de rappel de php &amp;amp;html. Les recherches sur internet ont permis de trouver plusieurs types de sliders, nous avons dû modifier les fonctions, du moins les ré-arranger pour qu'ils puisent être compatible avec les bibliothèque utilisées (prototype &amp;amp; Jquery). Au final, nous avons les trois sliders, gérant chacun la quantité de rouge, de vert et de bleu.&lt;br /&gt;
&lt;br /&gt;
==Deuxième Séance (20/05)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie électronique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Réaliser le programme sur Altium designer pour le fonctionnement d'une seule LED.&lt;br /&gt;
*Le tester avec la nanoboard et une LED.&lt;br /&gt;
*Faire le programme avec les 3 LED.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous n'avons réalisé qu'un seul des 3 objectifs. Nous n'avons pas eu le temps de tester sur une LED. On remarque qu'il est aisé de réaliser le dernier objectif une fois le deuxième objectif réalisé. Il nous ne restera donc, si notre programme marche pour une LED, qu'a utiliser un démultiplexeur pour n'avoir qu'une entrée dans le programme (cahier des charges). Nous essaierons de réaliser ceci lors de la dernière séance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie informatique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Créer une fenêtre dont la couleur sera définie par la quantité de couleurs indiquée par les sliders&lt;br /&gt;
*Créer le programme permettant de faire le lien entre le site internet et la maquette.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons eu pas mal de difficultés pour extraire des fonctions gérant les sliders la variable qui contient la &amp;quot;quantité&amp;quot; de rouge, de vert ou de bleu.&lt;br /&gt;
Nous avons donc du créer trois fonctions différentes pour pouvoir les obtenir. Ensuite il a fallut les convertir en hexadécimale pour pouvoir donner à la fenêtre la couleur voulue (en additionnant juste les trois nombres hexadécimaux). Nous n'avons pas pu continuer et créer le programme de lien entre le site et la maquette. Le démon à tout de même était compilé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troisème Séance (27/05)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie électronique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Tester notre programme pour une branche de la LED.&lt;br /&gt;
*Faire le schéma de montage pour prendre en compte les 2 autres couleurs de la LED.&lt;br /&gt;
*Réaliser le multiplexage demandé dans le cahier des charges.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
Nous avons testé notre programme qui marchait parfaitement pour une LED en début de séance, puis nous l'avons élargit pour pouvoir contrôler les 2 autres LED sans multiplexage. Ce programme marchait également parfaitement. Ensuite nous avons réalisé le multipexage des entrées. Nous avons eu des soucis, et le programme ne fonctionne pas parfaitement, il fait varier l'intensité des LED mais sans jamais éteindre complètement la LED 256 couleurs... Nous avons cherché notre erreur due forcément au multiplexage mais sans succès. Nous savons juste que ce n'est pas un problème de hardware. mais nous n'avons pas eu le temps de résoudre ce soucis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT SIZE=3&amp;gt;&amp;lt;u&amp;gt;Partie informatique:&amp;lt;/u&amp;gt;&amp;lt;/FONT SIZE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Objectifs :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Terminer le programme faisant le lien entre la page internet et l'interface munie de LED.&lt;br /&gt;
* Transférer le tout sur la FoxBoard, tester avec le périphérique fourni et si cela marche tester avec la NanoBoard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT COLOR=#444444&amp;gt;&amp;lt;u&amp;gt;'''Fin de séance :'''&amp;lt;/u&amp;gt;&amp;lt;/FONT COLOR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Au final, le programme permettant de créer les trois fichiers texte contenants les valeurs des couleurs (RVB) fonctionne, il a été testé directement à partir du PC via la liaison série. Nous avons chargé le programme sur la FoxBoard mais à cause du manque de temps nous n'avons pu compiler le programme (difficulté à installer les bibliothèques adéquates sur la FoxBoard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Numéro ordi : tutur01&lt;br /&gt;
&lt;br /&gt;
IP 172.26.79.101&lt;br /&gt;
==Partie FPGA==&lt;br /&gt;
&lt;br /&gt;
Pour ce projet nous avons du repartir notre trinôme en fonction des 2 matières (informatique et électronique). Nous avons décidé, à l'unanimité que Maxime s'occuperait de la partie info car il est le meilleur d'entre nous. Guanqun et moi même avons donc travaillé ensemble sur la partie électronique. Nous allons dans un premier temps récapituler notre avancement dans le projet en ce qui concerne la partie électronique puis ensuite nous verrons la partie informatique.&lt;br /&gt;
&lt;br /&gt;
'''Partie électronique :'''&lt;br /&gt;
&lt;br /&gt;
*La première séance, il faut être honnête, a été relativement peu productive. Ni Guanqun ni moi n'arrivions à cerner ce que l'on nous demandait de faire. En effet, l'ensemble du cahier des charges était relativement clair, nous pensions l'avoir compris assez vite. Mais la où nous bloquions, c'était pour savoir comment réaliser les fonctions demandées. En réalité, après discutions avec le professeur Boé, nous nous sommes rendu compte que nous n'avions pas réellement saisi ce que l'on nous demandait. Ainsi, il nous a orienté pour qu'on puisse avancer, et rattraper notre retard.Le problème était de construire un signal PWM; or dans la librairie de Altium designer, il y avait une fonction permettant de la créer. Cependant, ne sachant pas comment cela fonctionnait, nous avons décidé de la recréer. M.Boé nous a vraiment bien aidé pour la compréhension du signal PWM et donc pour pouvoir réussir à le recréer (il suffisait d'utiliser un compteur). Ainsi à environ 10 min de la fin de la séance, nous avions compris le sujet et n'avions plus qu'à le tester la séance prochaine. Nous avions donc pris du retard, car nous voulions commencer à faire le schéma dans altium designer. Ainsi, nous ne partions pas très confiant.&lt;br /&gt;
&lt;br /&gt;
*Lors de la deuxième séance, nous avons donc commencé à réaliser le schéma dans Altium designer. La tâche ne fut pas forcément facile, car bien que nous ayons compris la théorie du signal PWM, c'est à dire comment il fonctionne, il fallait trouver comment le réaliser avec les composants du logiciel. Composants qui ont chacun leur documentation pour comprendre leur fonctionnement. Nous nous sommes donc dans un premier temps inspirer de l'exemple réalisé dans le pdf qui explique le fonctionnement de la nanoboard avec Altium designer, pour avoir les grandes lignes de notre schéma. Ensuite nous avons du réaliser le signal PWM à l'aide d'un compteur et d'un comparateur. Nous avons donc passer pas mal de temps pour réaliser ceci. Nous avons par la suite eu un problème de nature du signal (numérique ou analogique) nous voulions mettre un CAN pour avoir un signal analogique, mais le professeur Boé nous a dit que c'était inutile (encore une perte de temps). Le signal que nous créions n'était pas un signal continu! donc impossible de l'envoyer vers une LED. Nous devions donc réaliser un filtrage passe bas pour obtenir un signal continu (la valeur moyenne). Nous avons donc réussi à réaliser notre schéma, avons calculé la résistance qu'il fallait pour avoir un courant de 9mA pour protéger la nanoboard, mais n'avons pas eu le temps de le tester sur une LED. Nous réaliserions le montage lors de la prochaine séance.&lt;br /&gt;
&lt;br /&gt;
*Enfin la dernière séance; nous devions absolument réussir à faire varier l'intensité de la LED. Si nous réussissions pour une, nous avions le schéma pour les 2 autres. Le dernier et unique problème serait le multiplexage demandé. Ainsi, très vite nous avons réalisé en début de séance la maquette (filtre RC plus la LED), et avons testé le programme. Et pour notre plus grande surprise, ça ne marchait pas. Nous avons donc regardé notre schéma sur altium pour finalement remarqué une &amp;quot;erreur d’inattention&amp;quot;. En effet le comparateur était un &amp;quot;égal&amp;quot; alors que nous voulions un &amp;quot;inférieur ou égal&amp;quot;. Cette erreur corrigée, notre LED fonctionnait correctement (variation de l'intensité lumineuse). Donc nous avons donc réalisé le schéma pour trois LED, sans multiplexage dans un premier temps pour vérifier que cela fonctionnait. Et de nouveau notre LED 256 couleurs n'a pas répondu à nos attentes! Seulement 2 des 3 couleurs fonctionnaient; nous avons donc déduit que c'était notre maquette qui était défectueuse. Après &amp;quot;réparations&amp;quot;, notre LED 256 couleurs fonctionnait parfaitement. Enfin nous devions nous attaquer au problème du multiplexage, nous avons demandé des renseignements aux professeurs qui nous encadraient pour pouvoir bien comprendre ce que l'on nous demandait et ce que l'on réalisait. Ainsi, on devait réaliser une sorte de pseudo mémoire qui sélectionne une des 3 &amp;quot;cases&amp;quot; possible (Rouge,vert, bleu) en continu. Nous avons donc réalisé ceci, mais le problème était que le compteur (qui permettait de sélectionner les différentes consignes) ne comptait que jusqu'à 4 (0..3) M.Boé nous a dit qu'on pouvait créer un compteur qui comptait de 0 à 2. Nous avons donc dans un premier temps réalisé ceci. Or on a remarqué que ça ne fonctionnait pas exactement comme on voulait. (la LED ne s'éteignait pas, il y avait toujours une faible lueur). On a ensuite remarqué que le compteur &amp;quot;custom&amp;quot; ne marchait pas. Donc on a utilisé un compteur &amp;quot;normal&amp;quot; comptant de 0 à 3 et on a créer une condition pour que le compteur s'initialise a 0 quand il arrive à 2. Cependant, malgré cela, notre LED en avait décidé autrement... elle n'a pas changé de comportement. Nous avons donc demandé de l'aide aux enseignants qui nous encadraient, mais ils n'ont pas trouvé pourquoi elle se comportait comme ça. Nous sommes donc resté avec le schéma suivant comme schéma final. Il réalisent presque le cahier des charges, en effet, seul la luminosité est un peu défectueuse; la LED ne s'éteint pas , mais reste faiblement allumée. Nous ne savons pas pourquoi car elle marchait très bien sans multiplexage...&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous pouvons dire que le cahier des charges n'est que partiellement rempli. Même si on est très porche du résultat attendu, nous n'avons pas réellement rempli l'objectif. Mais sommes donc un peu déçu car nous avions presque réussi. Nous pensons que si nous avions été plus efficace lors de la première séance, nous aurions eu un peu plus de temps pour résoudre le problème et donc remplir parfaitement le cahier des charges.&lt;br /&gt;
&lt;br /&gt;
== Schéma électronique  ==&lt;br /&gt;
[[Fichier:captureschema.JPG]]&lt;br /&gt;
On crée et génère trois signaux de PWM(huit bits) qui bien représentent les couleurs Rouge, Vert et bleu sur le logiciel Altium Designer, après on change les rapport cyclique de ces signaux grâce à une donnée de commande, puis on mette le signal passer un filtre passe-bas(resistance=325Ω et condensateur=225nf) ainsi d’obtenir une couleur voulue. A la fin, on peut voir la couleur bien allumée sur le LED.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Partie Informatique==&lt;/div&gt;</summary>
		<author><name>Mdujard1</name></author>	</entry>

	</feed>