<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Csaid-ah</id>
		<title>Wiki d'activités IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Csaid-ah"/>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php/Sp%C3%A9cial:Contributions/Csaid-ah"/>
		<updated>2026-04-25T05:14:39Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45758</id>
		<title>P5 Commande d’une centrale de production de biogaz</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45758"/>
				<updated>2017-10-22T12:49:04Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Tuteurs : Midzodzi PEKPE &amp;lt;br/&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
=Présentation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Contexte==&lt;br /&gt;
De nos jours, la gestion des déchets constitue un immense défi pour beaucoup de villes dans le monde.&lt;br /&gt;
L’utilisation de ces déchets afin de produire de la biomasse est une solution plus qu'intéressante. Cette énergie intéresse les pays riches confrontés au changement climatique et à la perspective d'une crise des ressources en hydrocarbures, fossiles ou uranium. Mais aussi les pays pauvres, qui trouvent en elle, une source d'énergie intarissable. Elle répond, en effet, à des enjeux et objectifs de développement durable et potentiellement d'économie circulaire. Substituer la biomasse aux énergies fossiles contribue à réduire l'émission de gaz à effet de serre.&lt;br /&gt;
&lt;br /&gt;
==Objectif== &lt;br /&gt;
Modéliser et commander la production de méthane dans une centrale de production de biogaz&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Le travail commencera par la modélisation du système sous Matlab Simulink, puis la détermination des méthodes de commande appropriées pour le pilotage du système. La mise en œuvre de la commande sélectionnée sera la dernière étape de ce projet. Ce projet se fera en partenariat avec le centre de production de biogaz de Safi Sana.&lt;br /&gt;
&lt;br /&gt;
==Références bibliographique==&lt;br /&gt;
&lt;br /&gt;
Modélisation de la qualité du biogaz produit par un fermenteur méthanogène et stratégie de régulation en vue de sa valorisation de Jonathan Hess.&lt;br /&gt;
&lt;br /&gt;
Modélisation des processus biochimiques de la méthanisation [ http://hmf.enseeiht.fr/travaux/bei/beiere/book/export/html/2247]&lt;br /&gt;
&lt;br /&gt;
Dynamical model development and parameter identification for an anaerobic wastewater treatment process&lt;br /&gt;
&lt;br /&gt;
Biogas Production Modelling: A Control System Engineering Approach&lt;br /&gt;
&lt;br /&gt;
Dynamical Model Development and Parameter Identification for an Anaerobic Wastewater Treatment Process (Bernard et al. 2001)&lt;br /&gt;
&lt;br /&gt;
=Travail réalisé=&lt;br /&gt;
==Préliminaire==&lt;br /&gt;
Une centrale de biogaz est composée de plusieurs cuves étanches, appelées digesteur, dans lesquelles se produit le processus de fermentation. En absence d'oxygène, des bactéries dégradent la matière organique en biogaz. Les principaux produits de cette décomposition anaérobie sont le méthane, gaz de la famille des alcanes riche en energies, et le dioxyde de carbone. Ces produits forment ainsi le biogaz qui peut être par la suite utilisé dans la production d'électricité ou du chauffage.La MEL a quant à elle mis en place un centre de valorisation organique (CVO) à Sequedin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_metha.jpg|center|]]&lt;br /&gt;
&lt;br /&gt;
J'ai dû alors effectué un important travail de recherche afin de comprendre les phénomènes biochimiques qui se produisent à l'intérieur de ces digesteurs.&lt;br /&gt;
La modélisation de ces processus biochimiques est un exercice assez délicat. En effet, il n'existe pas de lois ou de modèles universels à contrario de la Physique où des modèles connus et validés peuvent servir de base à la construction des modèles. &lt;br /&gt;
&lt;br /&gt;
=== La Méthanisation ===&lt;br /&gt;
&lt;br /&gt;
La méthanisation est un processus biologique présent naturellement dans les écosystèmes. Il s'agit d'une dégradation anaérobie de la matière organique produisant principalement du méthane et du dioxyde de carbone. La matière organique complexe est, dans un premier temps, dégradée en molécules simples qui sont ensuite minéralisées en méthane et en dioxyde de carbone. Ce processus se déroule en quatre étapes : hydrolyse, acidogénèse, acétogénèse et méthanogénèse.&lt;br /&gt;
[[Fichier:Schema_meth.jpg‎|center|]]&lt;br /&gt;
&lt;br /&gt;
'''Hydrolyse'''&lt;br /&gt;
&lt;br /&gt;
Au cours de cette réaction, la matière organique complexe est désintégrée en polysaccharides, protéines, lipides et acides nucléiques. Ces molécules sont à leur tour hydrolysées en molécules plus petites, produisant ainsi des monosaccharides, des acides aminés, des acides gras et des bases azotées. &lt;br /&gt;
&lt;br /&gt;
'''Acidogénèse'''&lt;br /&gt;
&lt;br /&gt;
Les monomères sont oxydés en acides organiques, en alcool ou en acides gras volatiles. Du dioxyde de carbone et du dihydrogène sont produits en petites quantités au cours de certaines de ces réactions.&lt;br /&gt;
&lt;br /&gt;
'''Acétogénèse'''&lt;br /&gt;
&lt;br /&gt;
Les molécules produites lors de la réaction d'acidogénèse sont alors oxydées en acide acétique. Il existe deux types de bactéries réalisant cette étape : les bactéries acétogènes syntrophes, produisant du dihydrogène lors de la réaction de formation de l'acétate, et les bactéries homoacétogènes, produisant uniquement de l'acétate à partir des acides organiques ou du dioxyde de carbone et du dihydrogène. L'acidogénèse et l'acétogénèse présentent un optimum de vitesse de réaction pour des valeur de pH allant de 5,2 à 6,2.&lt;br /&gt;
&lt;br /&gt;
'''Méthanogénèse'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette dernière réaction, le méthane est produit par des archées méthanogènes. Il existe deux voies de production du méthane : la minéralisation de l'acétate en méthane et dioxyde de carbone, et la transformation du dioxyde de carbone et du dihydrogène en méthane et en eau.&lt;br /&gt;
La méthanogénèse présente un optimum de vitesse de réaction pour des valeur de pH allant de 6,5 à 7,6.&lt;br /&gt;
&lt;br /&gt;
Des chercheurs ont pu établir des modèles permettant de décrire le processus de méthanisation.&lt;br /&gt;
&lt;br /&gt;
=== Le Modèle ADM1 ===&lt;br /&gt;
&lt;br /&gt;
Ce modèle repose sur un bilan entrée/sortie de demande chimique en oxygène (DCO). Il considère 5 étapes pour la digestion anaérobie impliquant 7 espèces bactériennes. En effet, les 4 étapes présentées plus haut, à savoir l’hydrolyse, l’acidogénèse, l’acétogénèse et la méthanogénèse, sont précédées de la solubilisation de la matière particulaire. On ajoute aussi à ces processus biochimiques ( les équilibres acide/base et les transferts entre les phases liquide et gazeuse).                                                                     				      Néanmoins bien que ce modèle soit séduisant de par l’exhaustivité des phénomènes qu’il permet de décrire, sa complexité (26 équations et plus de 80 paramètres)  en font un système fortement non-linéaire.Un autre modèle, dénommé AM2, synthétise les principaux flux de masse en ne considérant que deux population bactériennes : les acidogènes et les méthanogènes. C’est ce modèle que je vais utiliser car sa structure simple permet le développement d’observateur et de commande, la base de mon projet.&lt;br /&gt;
&lt;br /&gt;
=== Le Modèle ADM2 ===&lt;br /&gt;
&lt;br /&gt;
L’objectif de mon projet est d’utiliser un modèle pouvant être analysé mathématiquement pour déduire des lois de commande.Le modèle AM2 fut développé dans le cadre d'un projet européen sur la modélisation et le contrôle de procédés de digestion anaérobie. Les étapes de la digestion anaérobie sont réduites à 2, à savoir l'acidogénèse et la méthanogénèse. Et seuls deux substrats et deux groupes bactériens sont considérés. Ce procédé est représenté de façon macroscopique par le schéma réactionnel suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capt rea.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
les quantités µ(S)X représentent les vitesses de réaction.&lt;br /&gt;
&lt;br /&gt;
Lors de l'acidogénèse, La biomasse acidogène (X1) transforme le substrat organique S1 en dioxyde de carbone et en acide gras volatils(AGV) (S2). Et durant la méthanogénèse, Les bactéries méthanogènes (X2) présentes dans le digesteur consomment les AGV (S2) et les transforment en méthane et en dioxyde de carbone.&lt;br /&gt;
&lt;br /&gt;
Ce modèle définit un vecteur d’état ζ=(X1, X2, Z, S1, S2, C)  avec                                                                                  &lt;br /&gt;
&lt;br /&gt;
'''X1''': Concentration de la population acidogène            				                         &lt;br /&gt;
&lt;br /&gt;
'''X2''': Concentration de la population méthanogène                                                                       &lt;br /&gt;
&lt;br /&gt;
'''Z''': Alcalinité total du réacteur  (Permet de réguler le pourcentage de CO2)                              &lt;br /&gt;
&lt;br /&gt;
'''S1''': Concentration en substrat dans le réacteur                                                                                               &lt;br /&gt;
&lt;br /&gt;
'''S2''': Concentration en AGV dans le réacteur                                                                                             &lt;br /&gt;
&lt;br /&gt;
'''C''': Concentration totale en carbone inorganique&lt;br /&gt;
&lt;br /&gt;
L’évolution des variables de ce vecteur pour un réacteur à lit fixe est la suivante:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Eq_AM2.PNG| center]]&lt;br /&gt;
&lt;br /&gt;
'''μ1(S1)''': Taux de croissance de la population acidogène selon la formule de Monod&lt;br /&gt;
        &lt;br /&gt;
'''μ2(S2)''': Taux de croissance de la population méthanogène selon la formule de Haldane &lt;br /&gt;
&lt;br /&gt;
'''qC''' : Débit volumique de CO2&lt;br /&gt;
&lt;br /&gt;
'''qM''': Débit volumique de méthane&lt;br /&gt;
&lt;br /&gt;
'''PC''': Pression partielle de CO2&lt;br /&gt;
&lt;br /&gt;
'''D''': Taux de dilution&lt;br /&gt;
&lt;br /&gt;
'''α''': Pourcentage de biomasse&lt;br /&gt;
&lt;br /&gt;
'''k1''':Rendement de la dégradation du substrat  &lt;br /&gt;
&lt;br /&gt;
'''k3''':Rendement de la dégradation des AGV&lt;br /&gt;
&lt;br /&gt;
et '''k2''', '''k4''', '''k5''', '''k6'''  respectivement le rendement de production des AGV, CO2, CO2 et CH4&lt;br /&gt;
&lt;br /&gt;
==Modélisation==&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Eq_AM2.PNG&amp;diff=45757</id>
		<title>Fichier:Eq AM2.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Eq_AM2.PNG&amp;diff=45757"/>
				<updated>2017-10-22T12:37:08Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Schema_meth.jpg&amp;diff=45756</id>
		<title>Fichier:Schema meth.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Schema_meth.jpg&amp;diff=45756"/>
				<updated>2017-10-22T11:48:50Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45487</id>
		<title>P5 Commande d’une centrale de production de biogaz</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45487"/>
				<updated>2017-10-08T13:22:50Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Tuteurs : Midzodzi PEKPE &amp;lt;br/&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
=Présentation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Contexte==&lt;br /&gt;
De nos jours, la gestion des déchets constitue un immense défi pour beaucoup de villes dans le monde.&lt;br /&gt;
L’utilisation de ces déchets afin de produire de la biomasse est une solution plus qu'intéressante. Cette énergie intéresse les pays riches confrontés au changement climatique et à la perspective d'une crise des ressources en hydrocarbures, fossiles ou uranium. Mais aussi les pays pauvres, qui trouvent en elle, une source d'énergie intarissable. Elle répond, en effet, à des enjeux et objectifs de développement durable et potentiellement d'économie circulaire. Substituer la biomasse aux énergies fossiles contribue à réduire l'émission de gaz à effet de serre.&lt;br /&gt;
&lt;br /&gt;
==Objectif== &lt;br /&gt;
Modéliser et commander la production de méthane dans une centrale de production de biogaz&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Le travail commencera par la modélisation du système sous Matlab Simulink, puis la détermination des méthodes de commande appropriées pour le pilotage du système. La mise en œuvre de la commande sélectionnée sera la dernière étape de ce projet. Ce projet se fera en partenariat avec le centre de production de biogaz de Safi Sana.&lt;br /&gt;
&lt;br /&gt;
=Travail réalisé=&lt;br /&gt;
==Préliminaire==&lt;br /&gt;
Une centrale de biogaz est composée de plusieurs cuves étanches, appelées digesteur, dans lesquelles se produit le processus de fermentation. En absence d'oxygène, des bactéries dégradent la matière organique en biogaz. Les principaux produits de cette décomposition anaérobie sont le méthane, gaz de la famille des alcanes riche en energies, et le dioxyde de carbone. Ces produits forment ainsi le biogaz qui peut être par la suite utilisé dans la production d'électricité ou du chauffage.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_metha.jpg|center|]]&lt;br /&gt;
&lt;br /&gt;
J'ai dû alors effectué un important travail de recherche afin de comprendre les phénomènes biochimiques qui se produisent à l'intérieur de ces digesteurs.&lt;br /&gt;
La modélisation de ces processus biochimiques est un exercice assez délicat. En effet, il n'existe pas de lois ou de modèles universels à contrario de la Physique où des modèles connus et validés peuvent servir de base à la construction des modèles. Néanmoins un modèle générique très détaillé, baptisé ADM1, a été proposé par un groupe d'experts internationaux sous l'égide de l'International Water Association. Cependant bien qu'il soit séduisant, de par l'exhaustivité des phénomènes qu'il permet de décrire, sa grande complexité en font un système fortement non-linéaire difficile à appréhender. Par conséquent, pour ce projet, je vais choisir un modèle plus synthétique, baptisé AM2, qui se prête plus aisément à des procédures de calibration et permet le développement d'observateur de stratégies de contrôle&lt;br /&gt;
&lt;br /&gt;
'''Présentation du modèle AM2'''&lt;br /&gt;
&lt;br /&gt;
Le modèle AM2 fut développé dans le cadre d'un projet européen sur la modélisation et le contrôle de procédés de digestion anaérobie. Les étapes de la digestion anaérobie sont réduites à 2: L'acidogénèse et la méthanogénèse. Et seuls deux substrats et deux groupes bactériens sont considérés. Ce procédé est représenté de façon macroscopique par le schéma réactionnel suivant:&lt;br /&gt;
[[Fichier:Capt_rea.PNG‎|center|]]&lt;br /&gt;
&lt;br /&gt;
où les quantités µ(S)X représentent les vitesses de réaction.&lt;br /&gt;
&lt;br /&gt;
Au cours de la première étape, la biomasse acidogène (X1) transforme le substrat organique S1 en dioxyde de carbone et en acide gras volatils(AGV). Durant la deuxième, les bactéries méthanogènes présentes dans le digesteur consomment les AGV et les transforment en méthane et en dioxyde de carbone&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Capt_rea.PNG&amp;diff=45486</id>
		<title>Fichier:Capt rea.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Capt_rea.PNG&amp;diff=45486"/>
				<updated>2017-10-08T13:03:12Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45481</id>
		<title>P5 Commande d’une centrale de production de biogaz</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45481"/>
				<updated>2017-10-08T11:35:03Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Tuteurs : Midzodzi PEKPE &amp;lt;br/&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
=Présentation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Contexte==&lt;br /&gt;
De nos jours, la gestion des déchets constitue un immense défi pour beaucoup de villes dans le monde.&lt;br /&gt;
L’utilisation de ces déchets afin de produire de la biomasse est une solution plus qu'intéressante. Cette énergie intéresse les pays riches confrontés au changement climatique et à la perspective d'une crise des ressources en hydrocarbures, fossiles ou uranium. Mais aussi les pays pauvres, qui trouvent en elle, une source d'énergie intarissable. Elle répond, en effet, à des enjeux et objectifs de développement durable et potentiellement d'économie circulaire. Substituer la biomasse aux énergies fossiles contribue à réduire l'émission de gaz à effet de serre.&lt;br /&gt;
&lt;br /&gt;
==Objectif== &lt;br /&gt;
Modéliser et commander la production de méthane dans une centrale de production de biogaz&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Le travail commencera par la modélisation du système sous Matlab Simulink, puis la détermination des méthodes de commande appropriées pour le pilotage du système. La mise en œuvre de la commande sélectionnée sera la dernière étape de ce projet. Ce projet se fera en partenariat avec le centre de production de biogaz de Safi Sana.&lt;br /&gt;
&lt;br /&gt;
=Travail réalisé=&lt;br /&gt;
==Préliminaire==&lt;br /&gt;
Une centrale de biogaz est composée de plusieurs cuves étanches, appelées digesteur, dans lesquelles se produit le processus de fermentation. En absence d'oxygène, des bactéries dégradent la matière organique en biogaz. Les principaux produits de cette décomposition anaérobie sont le méthane, gaz de la famille des alcanes riche en energies, et le dioxyde de carbone. Ces produits forment ainsi le biogaz qui peut être par la suite utilisé dans la production d'électricité ou du chauffage.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_metha.jpg]]&lt;br /&gt;
&lt;br /&gt;
J'ai dû alors effectué un important travail de recherches afin de comprendre les phénomènes chimiques qui se produisent à l'intérieur de ces digesteurs.&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Schema_metha.jpg&amp;diff=45479</id>
		<title>Fichier:Schema metha.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Schema_metha.jpg&amp;diff=45479"/>
				<updated>2017-10-08T10:38:28Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45271</id>
		<title>P5 Commande d’une centrale de production de biogaz</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45271"/>
				<updated>2017-09-26T12:01:56Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Tuteurs : Midzodzi PEKPE &amp;lt;br/&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
=Présentation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Contexte==&lt;br /&gt;
De nos jours, la gestion des déchets constitue un immense défi pour beaucoup de villes dans le monde.&lt;br /&gt;
L’utilisation de ces déchets afin de produire de la biomasse est une solution plus qu'intéressante. Cette énergie intéresse les pays riches confrontés au changement climatique et à la perspective d'une crise des ressources en hydrocarbures, fossiles ou uranium. Mais aussi les pays pauvres, qui trouvent en elle, une source d'énergie intarissable. Elle répond, en effet, à des enjeux et objectifs de développement durable et potentiellement d'économie circulaire. Substituer la biomasse aux énergies fossiles contribue à réduire l'émission de gaz à effet de serre.&lt;br /&gt;
&lt;br /&gt;
==Objectif== &lt;br /&gt;
Modéliser et commander la production de méthane dans une centrale de production de biogaz&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Le travail commencera par la modélisation du système sous Matlab Simulink, puis la détermination des méthodes de commande appropriées pour le pilotage du système. La mise en œuvre de la commande sélectionnée sera la dernière étape de ce projet. Ce projet se fera en partenariat avec le centre de production de biogaz de Safi Sana.&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45270</id>
		<title>P5 Commande d’une centrale de production de biogaz</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45270"/>
				<updated>2017-09-26T12:01:38Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Tuteurs : Midzodzi PEKPE &amp;lt;br/&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
=Présentation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Contexte==&lt;br /&gt;
De nos jours, la gestion des déchets constitue un immense défi pour beaucoup de villes dans le monde.&lt;br /&gt;
L’utilisation de ces déchets afin de produire de la biomasse est une solution plus qu'intéressante. Cette énergie intéresse les pays riches confrontés au changement climatique et à la perspective d'une crise des ressources en hydrocarbures, fossiles ou uranium. Mais aussi les pays pauvres, qui trouvent en elle, une source d'énergie intarissable. Elle répond, en effet, à des enjeux et objectifs de développement durable et potentiellement d'économie circulaire. Substituer la biomasse aux énergies fossiles contribue à réduire l'émission de gaz à effet de serre.&lt;br /&gt;
&lt;br /&gt;
==Objectif== &lt;br /&gt;
Modéliser et commander la production de méthane dans une centrale de production de biogaz&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
 Le travail commencera par la modélisation du système sous Matlab Simulink, puis la détermination des méthodes de commande appropriées pour le pilotage du système. La mise en œuvre de la commande sélectionnée sera la dernière étape de ce projet. Ce projet se fera en partenariat avec le centre de production de biogaz de Safi Sana.&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45269</id>
		<title>P5 Commande d’une centrale de production de biogaz</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P5_Commande_d%E2%80%99une_centrale_de_production_de_biogaz&amp;diff=45269"/>
				<updated>2017-09-26T11:25:24Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : Page créée avec « ''Tuteurs : Midzodzi PEKPE &amp;lt;br/&amp;gt;''  =Objectif du Projet=  Concevoir un système mécatronique représentant une pompe automatique d'injection d'insuline. Le produit final doi... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Tuteurs : Midzodzi PEKPE &amp;lt;br/&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
=Objectif du Projet= &lt;br /&gt;
Concevoir un système mécatronique représentant une pompe automatique d'injection d'insuline. Le produit final doit être une réalisation d'un prototype qui sera conçu au fabricarium de Polytech.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Le traitement des déchets est un problème crucial dans les grandes villes qui doivent gérer des tonnes d’ordures chaque jour. Les stations de production de biogaz offrent une solution écologique à ce problème où une partie des déchets organiques est transformée en méthane et le reste en engrais. Ce projet a pour but la commande du processus de production du biogaz. Le travail commencera par la modélisation du système sous Matlab Simulink, puis la détermination des méthodes de commande appropriées pour le pilotage du système. La mise en œuvre de la commande sélectionnée sera la dernière étape de ce projet. Ce projet se fera en partenariat avec le centre de production de biogaz de Safi Sana.&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2017/2018&amp;diff=45268</id>
		<title>Projets IMA5 2017/2018</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2017/2018&amp;diff=45268"/>
				<updated>2017-09-26T11:18:22Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en allant modifier le format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
Toutes les sources doivent être déposées sur notre archive GIT. Le service est disponible à l'URL [https://archives.plil.fr archives.plil.fr]. Connectez-vous avec vos identifiants Polytech'Lille. Sauf indication contraire de vos encadrants, rendez le projet public et mettez le lien sur votre Wiki. Vous pouvez trouver de la documentation sur ce système d'archives sur ce [https://git-scm.com/book/fr/v1 site].&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Projet&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Encadrant Ecole&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Rapport décembre&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Rapports finaux&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Vidéo&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P1 Conception d'une pompe automatique à insuline]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Alice Coffin / Amina Fahem&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Belkacem Ould Bouamama&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P18 Localisation of quadrotors]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Nicky UNG / Hugo Delatte&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Jérémie DEQUIDT / Gang ZHENG&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P25 Développement d'un cobot ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Tristan HART&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Rodolphe Astori / Alexandre Boé / Xavier Redon / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P29 QT pour tablette à retour tactile]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;lValentin BEAUCHAMP / Vivian SENAFFE&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Laurent GRISONI&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P33 Utilisation de Nao avec des enfants autistes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Antoine ARNAUDET&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Thomas VANTROYS&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P34 Robot reconstructeur de mouvement]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Baptiste GRILLERE / Jean-Baptiste SAISON&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Rochdi MERZOUKI / Guillaume DEWAELE&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P21 Projet bras déformable antagoniste]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Florian GIOVANNANGELI&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Thor BIEZE&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P20 Projet marionnette déformable interactive ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Bacem HAGUI&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Félix VANNESTE, Jeremie DEQUIDT&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P5 Commande d’une centrale de production de biogaz ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Cheikh Soilihi SAID AHMED&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Midzodzi PEKPE &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42743</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42743"/>
				<updated>2017-05-19T21:35:38Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : /* Objectif */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
&lt;br /&gt;
Le projet initial consistait à créer un kit de robot mobile pour l'enseignement secondaire. Etant donné la cible de ce projet toutes les parties doivent être facilement utilisables.&lt;br /&gt;
Le but est qu'à terme, on puisse avoir un robot mobile conçu à partir d'éléments de base et de logiciels de conception libres tels que fritzing.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 et au delà !!&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 5h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Prise en main et documentation technique&lt;br /&gt;
| &lt;br /&gt;
| 10h&lt;br /&gt;
| 5h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Wiki&lt;br /&gt;
|&lt;br /&gt;
| 1h&lt;br /&gt;
| 1h&lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|  &lt;br /&gt;
| 9h&lt;br /&gt;
|-&lt;br /&gt;
| Schéma electronique et routage&lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 10h&lt;br /&gt;
| 8h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Codage et simulation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 13h&lt;br /&gt;
| 15h&lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 18h&lt;br /&gt;
|-&lt;br /&gt;
| Conception chassis&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3h&lt;br /&gt;
|-&lt;br /&gt;
| Rapport et présentation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 6h&lt;br /&gt;
|}&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FT232.PNG|500px|thumb|center|Fig 9]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Capturefintrav.PNG|Fig 9.3: Atmega traversant&lt;br /&gt;
Fichier:CMS.PNG|Fig 9.4: Atmega CMS&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
&lt;br /&gt;
Comment générer un PWM:&lt;br /&gt;
&lt;br /&gt;
Les Timers sont des compteurs cadencés selon une certaine fréquence déﬁnie. Lorsqu’il atteint son maximum (255 pour 8 bits et 65535 pour 16 bits ), il passe à 0 et recommence à compter. Ce passage de MAX à 0 peut s’accompagner d’une interruption interne. A ces Timers se rajoutent un comparateur dont on peut déﬁnir le seuil à l’aide du registre OCRxx. Lorsque le registre TCNTn du timer atteint la valeur de OCRn, alors la patte OCn change de valeur, passant de 0 à 1 ou de 1 à 0 selon la conﬁguration puis retournant à la valeur initiale lorsque TCNTn passe de MAX à 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration demandée est définie par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot2.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21.1]]&lt;br /&gt;
&lt;br /&gt;
Ensuite pour lire la vitesse, j’utilise le timer 2 pour générer des interruptions. Étant un timer 8 bits, il n’est pas possible de générer une interruption toutes les secondes. Ainsi pour remédier à cela, je décide d’en générer toutes les millisecondes et dans la routine incrémenter un compteur qui, lorsqu'elle vaut la valeur 1000 entre dans une boucle qui nous permettra de rafraîchir la vitesse.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Init_vitesse.PNG|550px|thumb|center|Fig 21.1]]   &lt;br /&gt;
&lt;br /&gt;
Le disque que j’ai modélisé sur Onshape (figure 21.3)contient 8 encoches. Ainsi pour avoir la vitesse en tour par secondes, on doit diviser, dans la routine d'interruption,la valeur du compteur par 8.&lt;br /&gt;
[[Fichier:Routine.PNG|550px|thumb|left|Fig 21.2]]&lt;br /&gt;
[[Fichier:Roue_encod.PNG|300px|thumb|center|Fig 21.3]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine je me suis occupé de l'implémentation du code permettant au robot de suivre une ligne. Le capteur utilisé est le QRE1113, il est composé d'une led infrarouge et d'un phototranstior. Le principe de fonctionnement est le suivant: le capteur étant orienté vers le sol, la LED émettrice envoie une lumière infrarouge que le sol réfléchit en direction du phototransistor qui capte ainsi la quantité de lumière en retour. Sachant que les couleurs foncées réfléchissent moins facilement la lumière que les couleurs claires. On pourra ainsi différencier une ligne noire d'une zone blanche.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Qre.PNG|Fig 22:Fonctionnement&lt;br /&gt;
Fichier:CabSuiv.PNG|Fig 23:Schéma de câblage &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur utilisé étant analogique, j'ai utilisé le CAN du µC. Les voies de lectures sont la voie 3,4 et 5 (fig 23). je définis alors une fonction lecture_CAN pour qui prend en argument la voie de lecture et retourne la valeur du CAN relatif à la voie de lecture(fig 24) &lt;br /&gt;
[[Fichier:CAN1.PNG|550px|thumb|center|Fig 24]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 8 et au delà ====&lt;br /&gt;
j’ai travaillé sur la conception sur Onshape d’un châssis qui permettra d’accueillir les deux types motorisations ainsi que la carte de capteurs QRE1113 qui se sera suspendu à l’avant du châssis. Pour changer de moteur, il suffira d'enlever le bouchon rectangulaire et de disposer de la façon suivante: Le moto-reducteur de qualité correcte sera disposé sur la largeur alors que celle d'entrée de gamme, sera elle disposée sur la longueur.  &lt;br /&gt;
[[Fichier:Chassis.PNG|550px|thumb|center|Fig 25]]&lt;br /&gt;
 &lt;br /&gt;
J'ai aussi travaillé sur le code de fonctionnement générale du robot dont l'algorithme est représenté par le grafcet ci-dessous:&lt;br /&gt;
[[Fichier:Grafcet.PNG|550px|thumb|center|Fig 26]]&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;br /&gt;
*Code : [[Fichier:Code.zip]]&lt;br /&gt;
*Rapport : [[Fichier:Rapport_Projet.pdf‎]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42725</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42725"/>
				<updated>2017-05-19T19:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
&lt;br /&gt;
Le projet initial consistait à créer un kit de robot mobile pour l'enseignement secondaire. Etant donné la cible de ce projet toutes les parties doivent être facilement utilisables.&lt;br /&gt;
Le but est qu'à terme, on puisse avoir un robot mobile conçu à partir d'éléments de base et de logiciels de conception libre tels que fritzing.&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 et au delà !!&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 5h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Prise en main et documentation technique&lt;br /&gt;
| &lt;br /&gt;
| 10h&lt;br /&gt;
| 5h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Wiki&lt;br /&gt;
|&lt;br /&gt;
| 1h&lt;br /&gt;
| 1h&lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|  &lt;br /&gt;
| 9h&lt;br /&gt;
|-&lt;br /&gt;
| Schéma electronique et routage&lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 10h&lt;br /&gt;
| 8h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Codage et simulation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 13h&lt;br /&gt;
| 15h&lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 18h&lt;br /&gt;
|-&lt;br /&gt;
| Conception chassis&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3h&lt;br /&gt;
|-&lt;br /&gt;
| Rapport et présentation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 6h&lt;br /&gt;
|}&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FT232.PNG|500px|thumb|center|Fig 9]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Capturefintrav.PNG|Fig 9.3: Atmega traversant&lt;br /&gt;
Fichier:CMS.PNG|Fig 9.4: Atmega CMS&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
&lt;br /&gt;
Comment générer un PWM:&lt;br /&gt;
&lt;br /&gt;
Les Timers sont des compteurs cadencés selon une certaine fréquence déﬁnie. Lorsqu’il atteint son maximum (255 pour 8 bits et 65535 pour 16 bits ), il passe à 0 et recommence à compter. Ce passage de MAX à 0 peut s’accompagner d’une interruption interne. A ces Timers se rajoutent un comparateur dont on peut déﬁnir le seuil à l’aide du registre OCRxx. Lorsque le registre TCNTn du timer atteint la valeur de OCRn, alors la patte OCn change de valeur, passant de 0 à 1 ou de 1 à 0 selon la conﬁguration puis retournant à la valeur initiale lorsque TCNTn passe de MAX à 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration demandée est définie par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot2.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21.1]]&lt;br /&gt;
&lt;br /&gt;
Ensuite pour lire la vitesse, j’utilise le timer 2 pour générer des interruptions. Étant un timer 8 bits, il n’est pas possible de générer une interruption toutes les secondes. Ainsi pour remédier à cela, je décide d’en générer toutes les millisecondes et dans la routine incrémenter un compteur qui, lorsqu'elle vaut la valeur 1000 entre dans une boucle qui nous permettra de rafraîchir la vitesse.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Init_vitesse.PNG|550px|thumb|center|Fig 21.1]]   &lt;br /&gt;
&lt;br /&gt;
Le disque que j’ai modélisé sur Onshape (figure 21.3)contient 8 encoches. Ainsi pour avoir la vitesse en tour par secondes, on doit diviser, dans la routine d'interruption,la valeur du compteur par 8.&lt;br /&gt;
[[Fichier:Routine.PNG|550px|thumb|left|Fig 21.2]]&lt;br /&gt;
[[Fichier:Roue_encod.PNG|300px|thumb|center|Fig 21.3]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine je me suis occupé de l'implémentation du code permettant au robot de suivre une ligne. Le capteur utilisé est le QRE1113, il est composé d'une led infrarouge et d'un phototranstior. Le principe de fonctionnement est le suivant: le capteur étant orienté vers le sol, la LED émettrice envoie une lumière infrarouge que le sol réfléchit en direction du phototransistor qui capte ainsi la quantité de lumière en retour. Sachant que les couleurs foncées réfléchissent moins facilement la lumière que les couleurs claires. On pourra ainsi différencier une ligne noire d'une zone blanche.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Qre.PNG|Fig 22:Fonctionnement&lt;br /&gt;
Fichier:CabSuiv.PNG|Fig 23:Schéma de câblage &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur utilisé étant analogique, j'ai utilisé le CAN du µC. Les voies de lectures sont la voie 3,4 et 5 (fig 23). je définis alors une fonction lecture_CAN pour qui prend en argument la voie de lecture et retourne la valeur du CAN relatif à la voie de lecture(fig 24) &lt;br /&gt;
[[Fichier:CAN1.PNG|550px|thumb|center|Fig 24]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 8 et au delà ====&lt;br /&gt;
j’ai travaillé sur la conception sur Onshape d’un châssis qui permettra d’accueillir les deux types motorisations ainsi que la carte de capteurs QRE1113 qui se sera suspendu à l’avant du châssis. Pour changer de moteur, il suffira d'enlever le bouchon rectangulaire et de disposer de la façon suivante: Le moto-reducteur de qualité correcte sera disposé sur la largeur alors que celle d'entrée de gamme, sera elle disposée sur la longueur.  &lt;br /&gt;
[[Fichier:Chassis.PNG|550px|thumb|center|Fig 25]]&lt;br /&gt;
 &lt;br /&gt;
J'ai aussi travaillé sur le code de fonctionnement générale du robot dont l'algorithme est représenté par le grafcet ci-dessous:&lt;br /&gt;
[[Fichier:Grafcet.PNG|550px|thumb|center|Fig 26]]&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;br /&gt;
*Code : [[Fichier:Code.zip]]&lt;br /&gt;
*Rapport : [[Fichier:Rapport_Projet.pdf‎]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42660</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42660"/>
				<updated>2017-05-19T16:08:47Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 et au delà !!&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 5h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Prise en main et documentation technique&lt;br /&gt;
| &lt;br /&gt;
| 10h&lt;br /&gt;
| 5h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Wiki&lt;br /&gt;
|&lt;br /&gt;
| 1h&lt;br /&gt;
| 1h&lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|  &lt;br /&gt;
| 9h&lt;br /&gt;
|-&lt;br /&gt;
| Schéma electronique et routage&lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 10h&lt;br /&gt;
| 8h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Codage et simulation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 13h&lt;br /&gt;
| 15h&lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 18h&lt;br /&gt;
|-&lt;br /&gt;
| Conception chassis&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3h&lt;br /&gt;
|-&lt;br /&gt;
| Rapport et présentation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 6h&lt;br /&gt;
|}&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FT232.PNG|500px|thumb|center|Fig 9]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Capturefintrav.PNG|Fig 9.3: Atmega traversant&lt;br /&gt;
Fichier:CMS.PNG|Fig 9.4: Atmega CMS&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
&lt;br /&gt;
Comment générer un PWM:&lt;br /&gt;
&lt;br /&gt;
Les Timers sont des compteurs cadencés selon une certaine fréquence déﬁnie. Lorsqu’il atteint son maximum (255 pour 8 bits et 65535 pour 16 bits ), il passe à 0 et recommence à compter. Ce passage de MAX à 0 peut s’accompagner d’une interruption interne. A ces Timers se rajoutent un comparateur dont on peut déﬁnir le seuil à l’aide du registre OCRxx. Lorsque le registre TCNTn du timer atteint la valeur de OCRn, alors la patte OCn change de valeur, passant de 0 à 1 ou de 1 à 0 selon la conﬁguration puis retournant à la valeur initiale lorsque TCNTn passe de MAX à 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration demandée est définie par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot2.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21.1]]&lt;br /&gt;
&lt;br /&gt;
Ensuite pour lire la vitesse, j’utilise le timer 2 pour générer des interruptions. Étant un timer 8 bits, il n’est pas possible de générer une interruption toutes les secondes. Ainsi pour remédier à cela, je décide d’en générer toutes les millisecondes et dans la routine incrémenter un compteur qui, lorsqu'elle vaut la valeur 1000 entre dans une boucle qui nous permettra de rafraîchir la vitesse.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Init_vitesse.PNG|550px|thumb|center|Fig 21.1]]   &lt;br /&gt;
&lt;br /&gt;
Le disque que j’ai modélisé sur Onshape (figure 21.3)contient 8 encoches. Ainsi pour avoir la vitesse en tour par secondes, on doit diviser, dans la routine d'interruption,la valeur du compteur par 8.&lt;br /&gt;
[[Fichier:Routine.PNG|550px|thumb|left|Fig 21.2]]&lt;br /&gt;
[[Fichier:Roue_encod.PNG|300px|thumb|center|Fig 21.3]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine je me suis occupé de l'implémentation du code permettant au robot de suivre une ligne. Le capteur utilisé est le QRE1113, il est composé d'une led infrarouge et d'un phototranstior. Le principe de fonctionnement est le suivant: le capteur étant orienté vers le sol, la LED émettrice envoie une lumière infrarouge que le sol réfléchit en direction du phototransistor qui capte ainsi la quantité de lumière en retour. Sachant que les couleurs foncées réfléchissent moins facilement la lumière que les couleurs claires. On pourra ainsi différencier une ligne noire d'une zone blanche.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Qre.PNG|Fig 22:Fonctionnement&lt;br /&gt;
Fichier:CabSuiv.PNG|Fig 23:Schéma de câblage &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur utilisé étant analogique, j'ai utilisé le CAN du µC. Les voies de lectures sont la voie 3,4 et 5 (fig 23). je définis alors une fonction lecture_CAN pour qui prend en argument la voie de lecture et retourne la valeur du CAN relatif à la voie de lecture(fig 24) &lt;br /&gt;
[[Fichier:CAN1.PNG|550px|thumb|center|Fig 24]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 8 et au delà ====&lt;br /&gt;
j’ai travaillé sur la conception sur Onshape d’un châssis qui permettra d’accueillir les deux types motorisations ainsi que la carte de capteurs QRE1113 qui se sera suspendu à l’avant du châssis. Pour changer de moteur, il suffira d'enlever le bouchon rectangulaire et de disposer de la façon suivante: Le moto-reducteur de qualité correcte sera disposé sur la largeur alors que celle d'entrée de gamme, sera elle disposée sur la longueur.  &lt;br /&gt;
[[Fichier:Chassis.PNG|550px|thumb|center|Fig 25]]&lt;br /&gt;
 &lt;br /&gt;
J'ai aussi travaillé sur le code de fonctionnement générale du robot dont l'algorithme est représenté par le grafcet ci-dessous:&lt;br /&gt;
[[Fichier:Grafcet.PNG|550px|thumb|center|Fig 26]]&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;br /&gt;
*Code : [[Fichier:Code.zip]]&lt;br /&gt;
*Rapport : [[Fichier:Rapport_Projet.pdf‎]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Code.zip&amp;diff=42659</id>
		<title>Fichier:Code.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Code.zip&amp;diff=42659"/>
				<updated>2017-05-19T16:08:02Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Mes_Circuits.zip&amp;diff=42649</id>
		<title>Fichier:Mes Circuits.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Mes_Circuits.zip&amp;diff=42649"/>
				<updated>2017-05-19T15:47:10Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : a téléversé une nouvelle version de « Fichier:Mes Circuits.zip »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42547</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42547"/>
				<updated>2017-05-19T09:06:53Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FT232.PNG|500px|thumb|center|Fig 9]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Capturefintrav.PNG|Fig 9.3: Atmega traversant&lt;br /&gt;
Fichier:CMS.PNG|Fig 9.4: Atmega CMS&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
&lt;br /&gt;
Comment générer un PWM:&lt;br /&gt;
&lt;br /&gt;
Les Timers sont des compteurs cadencés selon une certaine fréquence déﬁnie. Lorsqu’il atteint son maximum (255 pour 8 bits et 65535 pour 16 bits ), il passe à 0 et recommence à compter. Ce passage de MAX à 0 peut s’accompagner d’une interruption interne. A ces Timers se rajoutent un comparateur dont on peut déﬁnir le seuil à l’aide du registre OCRxx. Lorsque le registre TCNTn du timer atteint la valeur de OCRn, alors la patte OCn change de valeur, passant de 0 à 1 ou de 1 à 0 selon la conﬁguration puis retournant à la valeur initiale lorsque TCNTn passe de MAX à 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration demandée est définie par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot2.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21.1]]&lt;br /&gt;
&lt;br /&gt;
Ensuite pour lire la vitesse, j’utilise le timer 2 pour générer des interruptions. Étant un timer 8 bits, il n’est pas possible de générer une interruption toutes les secondes. Ainsi pour remédier à cela, je décide d’en générer toutes les millisecondes et dans la routine incrémenter un compteur qui, lorsqu'elle vaut la valeur 1000 entre dans une boucle qui nous permettra de rafraîchir la vitesse.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Init_vitesse.PNG|550px|thumb|center|Fig 21.1]]   &lt;br /&gt;
&lt;br /&gt;
Le disque que j’ai modélisé sur Onshape (figure 21.3)contient 8 encoches. Ainsi pour avoir la vitesse en tour par secondes, on doit diviser, dans la routine d'interruption,la valeur du compteur par 8.&lt;br /&gt;
[[Fichier:Routine.PNG|550px|thumb|left|Fig 21.2]]&lt;br /&gt;
[[Fichier:Roue_encod.PNG|300px|thumb|center|Fig 21.3]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine je me suis occupé de l'implémentation du code permettant au robot de suivre une ligne. Le capteur utilisé est le QRE1113, il est composé d'une led infrarouge et d'un phototranstior. Le principe de fonctionnement est le suivant: le capteur étant orienté vers le sol, la LED émettrice envoie une lumière infrarouge que le sol réfléchit en direction du phototransistor qui capte ainsi la quantité de lumière en retour. Sachant que les couleurs foncées réfléchissent moins facilement la lumière que les couleurs claires. On pourra ainsi différencier une ligne noire d'une zone blanche.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Qre.PNG|Fig 22:Fonctionnement&lt;br /&gt;
Fichier:CabSuiv.PNG|Fig 23:Schéma de câblage &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur utilisé étant analogique, j'ai utilisé le CAN du µC. Les voies de lectures sont la voie 3,4 et 5 (fig 23). je définis alors une fonction lecture_CAN pour qui prend en argument la voie de lecture et retourne la valeur du CAN relatif à la voie de lecture(fig 24) &lt;br /&gt;
[[Fichier:CAN1.PNG|550px|thumb|center|Fig 24]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 8 et au delà ====&lt;br /&gt;
j’ai travaillé sur la conception sur Onshape d’un châssis qui permettra d’accueillir les deux types motorisations ainsi que la carte de capteurs QRE1113 qui se sera suspendu à l’avant du châssis. Pour changer de moteur, il suffira d'enlever le bouchon rectangulaire et de disposer de la façon suivante: Le moto-reducteur de qualité correcte sera disposé sur la largeur alors que celle d'entrée de gamme, sera elle disposée sur la longueur.  &lt;br /&gt;
[[Fichier:Chassis.PNG|550px|thumb|center|Fig 25]]&lt;br /&gt;
 &lt;br /&gt;
J'ai aussi travaillé sur le code de fonctionnement générale du robot dont l'algorithme est représenté par le grafcet ci-dessous:&lt;br /&gt;
[[Fichier:Grafcet.PNG|550px|thumb|center|Fig 26]]&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;br /&gt;
*Rapport : [[Fichier:Rapport_Projet.pdf‎]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:FT232.PNG&amp;diff=42546</id>
		<title>Fichier:FT232.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:FT232.PNG&amp;diff=42546"/>
				<updated>2017-05-19T08:55:02Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:CMS.PNG&amp;diff=42545</id>
		<title>Fichier:CMS.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:CMS.PNG&amp;diff=42545"/>
				<updated>2017-05-19T08:52:05Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42526</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42526"/>
				<updated>2017-05-18T18:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
&lt;br /&gt;
Comment générer un PWM:&lt;br /&gt;
&lt;br /&gt;
Les Timers sont des compteurs cadencés selon une certaine fréquence déﬁnie. Lorsqu’il atteint son maximum (255 pour 8 bits et 65535 pour 16 bits ), il passe à 0 et recommence à compter. Ce passage de MAX à 0 peut s’accompagner d’une interruption interne. A ces Timers se rajoutent un comparateur dont on peut déﬁnir le seuil à l’aide du registre OCRxx. Lorsque le registre TCNTn du timer atteint la valeur de OCRn, alors la patte OCn change de valeur, passant de 0 à 1 ou de 1 à 0 selon la conﬁguration puis retournant à la valeur initiale lorsque TCNTn passe de MAX à 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration demandée est définie par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot2.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21.1]]&lt;br /&gt;
&lt;br /&gt;
Ensuite pour lire la vitesse, j’utilise le timer 2 pour générer des interruptions. Étant un timer 8 bits, il n’est pas possible de générer une interruption toutes les secondes. Ainsi pour remédier à cela, je décide d’en générer toutes les millisecondes et dans la routine incrémenter un compteur qui, lorsqu'elle vaut la valeur 1000 entre dans une boucle qui nous permettra de rafraîchir la vitesse.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Init_vitesse.PNG|550px|thumb|center|Fig 21.1]]   &lt;br /&gt;
&lt;br /&gt;
Le disque que j’ai modélisé sur Onshape (figure 21.3)contient 8 encoches. Ainsi pour avoir la vitesse en tour par secondes, on doit diviser, dans la routine d'interruption,la valeur du compteur par 8.&lt;br /&gt;
[[Fichier:Routine.PNG|550px|thumb|left|Fig 21.2]]&lt;br /&gt;
[[Fichier:Roue_encod.PNG|300px|thumb|center|Fig 21.3]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine je me suis occupé de l'implémentation du code permettant au robot de suivre une ligne. Le capteur utilisé est le QRE1113, il est composé d'une led infrarouge et d'un phototranstior. Le principe de fonctionnement est le suivant: le capteur étant orienté vers le sol, la LED émettrice envoie une lumière infrarouge que le sol réfléchit en direction du phototransistor qui capte ainsi la quantité de lumière en retour. Sachant que les couleurs foncées réfléchissent moins facilement la lumière que les couleurs claires. On pourra ainsi différencier une ligne noire d'une zone blanche.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Qre.PNG|Fig 22:Fonctionnement&lt;br /&gt;
Fichier:CabSuiv.PNG|Fig 23:Schéma de câblage &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur utilisé étant analogique, j'ai utilisé le CAN du µC. Les voies de lectures sont la voie 3,4 et 5 (fig 23). je définis alors une fonction lecture_CAN pour qui prend en argument la voie de lecture et retourne la valeur du CAN relatif à la voie de lecture(fig 24) &lt;br /&gt;
[[Fichier:CAN1.PNG|550px|thumb|center|Fig 24]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 8 et au delà ====&lt;br /&gt;
j’ai travaillé sur la conception sur Onshape d’un châssis qui permettra d’accueillir les deux types motorisations ainsi que la carte de capteurs QRE1113 qui se sera suspendu à l’avant du châssis. Pour changer de moteur, il suffira d'enlever le bouchon rectangulaire et de disposer de la façon suivante: Le moto-reducteur de qualité correcte sera disposé sur la largeur alors que celle d'entrée de gamme, sera elle disposée sur la longueur.  &lt;br /&gt;
[[Fichier:Chassis.PNG|550px|thumb|center|Fig 25]]&lt;br /&gt;
 &lt;br /&gt;
J'ai aussi travaillé sur le code de fonctionnement générale du robot. L'algorithme est défini par le grafcet ci-dessous:&lt;br /&gt;
[[Fichier:Grafcet.PNG|550px|thumb|center|Fig 26]]&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;br /&gt;
*Rapport : [[Fichier:Rapport_Projet.pdf‎]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Roue_encod.PNG&amp;diff=42525</id>
		<title>Fichier:Roue encod.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Roue_encod.PNG&amp;diff=42525"/>
				<updated>2017-05-18T18:14:56Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Grafcet.PNG&amp;diff=42524</id>
		<title>Fichier:Grafcet.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Grafcet.PNG&amp;diff=42524"/>
				<updated>2017-05-18T18:10:03Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Chassis.PNG&amp;diff=42514</id>
		<title>Fichier:Chassis.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Chassis.PNG&amp;diff=42514"/>
				<updated>2017-05-18T17:20:22Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42332</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42332"/>
				<updated>2017-05-16T17:45:54Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
&lt;br /&gt;
Comment générer un PWM:&lt;br /&gt;
&lt;br /&gt;
Les Timers sont des compteurs cadencés selon une certaine fréquence déﬁnie. Lorsqu’il atteint son maximum (255 pour 8 bits et 65535 pour 16 bits ), il passe à 0 et recommence à compter. Ce passage de MAX à 0 peut s’accompagner d’une interruption interne. A ces Timers se rajoutent un comparateur dont on peut déﬁnir le seuil à l’aide du registre OCRxx. Lorsque le registre TCNTn du timer atteint la valeur de OCRn, alors la patte OCn change de valeur, passant de 0 à 1 ou de 1 à 0 selon la conﬁguration puis retournant à la valeur initiale lorsque TCNTn passe de MAX à 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration demandée est définie par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot2.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21.1]]&lt;br /&gt;
&lt;br /&gt;
Ensuite pour lire la vitesse, j’utilise le timer 2 pour générer des interruptions. Étant un timer 8 bits, il n’est pas possible de générer une interruption toutes les secondes. Ainsi pour remédier à cela, je décide d’en générer toutes les millisecondes et dans la routine incrémenter un compteur qui, lorsqu'elle vaut la valeur 1000 entre dans une boucle qui nous permettra de rafraîchir la vitesse. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Init_vitesse.PNG|550px|thumb|left|Fig 21.1]] [[Fichier:Init_vitesse.PNG|550px|thumb|right|Fig 21.1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine je me suis occupé de l'implémentation du code permettant au robot de suivre une ligne. Le capteur utilisé est le QRE1113, il est composé d'une led infrarouge et d'un phototranstior. Le principe de fonctionnement est le suivant: le capteur étant orienté vers le sol, la LED émettrice envoie une lumière infrarouge que le sol réfléchit en direction du phototransistor qui capte ainsi la quantité de lumière en retour. Sachant que les couleurs foncées réfléchissent moins facilement la lumière que les couleurs claires. On pourra ainsi différencier une ligne noire d'une zone blanche.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Qre.PNG|Fig 22:Fonctionnement&lt;br /&gt;
Fichier:CabSuiv.PNG|Fig 23:Schéma de câblage &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur utilisé étant analogique, j'ai utilisé le CAN du µC. Les voies de lectures sont la voie 3,4 et 5 (fig 23). je définis alors une fonction lecture_CAN pour qui prend en argument la voie de lecture et retourne la valeur du CAN relatif à la voie de lecture( fig 24) &lt;br /&gt;
[[Fichier:CAN1.PNG|550px|thumb|center|Fig 24]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 8 et au delà ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;br /&gt;
*Rapport : [[Fichier:Rapport_Projet.pdf‎]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42331</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42331"/>
				<updated>2017-05-16T17:26:23Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
&lt;br /&gt;
Comment générer un PWM:&lt;br /&gt;
&lt;br /&gt;
Les Timers sont des compteurs cadencés selon une certaine fréquence déﬁnie. Lorsqu’il atteint son maximum (255 pour 8 bits et 65535 pour 16 bits ), il passe à 0 et recommence à compter. Ce passage de MAX à 0 peut s’accompagner d’une interruption interne. A ces Timers se rajoutent un comparateur dont on peut déﬁnir le seuil à l’aide du registre OCRxx. Lorsque le registre TCNTn du timer atteint la valeur de OCRn, alors la patte OCn change de valeur, passant de 0 à 1 ou de 1 à 0 selon la conﬁguration puis retournant à la valeur initiale lorsque TCNTn passe de MAX à 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration demandée est définie par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot2.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21.1]]&lt;br /&gt;
&lt;br /&gt;
Ensuite pour lire la vitesse, j’utilise le timer 2 pour générer des interruptions. Étant un timer 8 bits, il n’est pas possible de générer une interruption toutes les secondes. Ainsi pour remédier à cela, je décide d’en générer toutes les millisecondes et dans la routine incrémenter un compteur qui, lorsqu'elle vaut la valeur 1000 entre dans une boucle qui nous permettra de rafraîchir la vitesse. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Init_vitesse.PNG|Fig 21.2:Configuration Timer&lt;br /&gt;
Fichier:Routine.PNG|Fig 21.3:Routine&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine je me suis occupé de l'implémentation du code permettant au robot de suivre une ligne. Le capteur utilisé est le QRE1113, il est composé d'une led infrarouge et d'un phototranstior. Le principe de fonctionnement est le suivant: le capteur étant orienté vers le sol, la LED émettrice envoie une lumière infrarouge que le sol réfléchit en direction du phototransistor qui capte ainsi la quantité de lumière en retour. Sachant que les couleurs foncées réfléchissent moins facilement la lumière que les couleurs claires. On pourra ainsi différencier une ligne noire d'une zone blanche.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Qre.PNG|Fig 22:Fonctionnement&lt;br /&gt;
Fichier:CabSuiv.PNG|Fig 23:Schéma de câblage &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur utilisé étant analogique, j'ai utilisé le CAN du µC. Les voies de lectures sont la voie 3,4 et 5 (fig 23). je définis alors une fonction lecture_CAN pour qui prend en argument la voie de lecture et retourne la valeur du CAN relatif à la voie de lecture( fig 24) &lt;br /&gt;
[[Fichier:CAN1.PNG|550px|thumb|center|Fig 24]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;br /&gt;
*Rapport : [[Fichier:Rapport_Projet.pdf‎]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Init_vitesse.PNG&amp;diff=42330</id>
		<title>Fichier:Init vitesse.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Init_vitesse.PNG&amp;diff=42330"/>
				<updated>2017-05-16T17:18:20Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Routine.PNG&amp;diff=42329</id>
		<title>Fichier:Routine.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Routine.PNG&amp;diff=42329"/>
				<updated>2017-05-16T17:16:38Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Init_mot2.PNG&amp;diff=42328</id>
		<title>Fichier:Init mot2.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Init_mot2.PNG&amp;diff=42328"/>
				<updated>2017-05-16T17:01:01Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42327</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42327"/>
				<updated>2017-05-16T17:00:28Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
&lt;br /&gt;
Comment générer un PWM:&lt;br /&gt;
&lt;br /&gt;
Les Timers sont des compteurs cadencés selon une certaine fréquence déﬁnie. Lorsqu’il atteint son maximum (255 pour 8 bits et 65535 pour 16 bits ), il passe à 0 et recommence à compter. Ce passage de MAX à 0 peut s’accompagner d’une interruption interne. A ces Timers se rajoutent un comparateur dont on peut déﬁnir le seuil à l’aide du registre OCRxx. Lorsque le registre TCNTn du timer atteint la valeur de OCRn, alors la patte OCn change de valeur, passant de 0 à 1 ou de 1 à 0 selon la conﬁguration puis retournant à la valeur initiale lorsque TCNTn passe de MAX à 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration demandée est définie par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init mot.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine je me suis occupé de l'implémentation du code permettant au robot de suivre une ligne. Le capteur utilisé est le QRE1113, il est composé d'une led infrarouge et d'un phototranstior.Le principe de fonctionnement est le suivant: le capteur étant orienté vers le sol, la LED émettrice envoie une lumière infrarouge que le sol réfléchit en direction du phototransistor qui capte ainsi la quantité de lumière en retour. Sachant que les couleurs foncées réfléchissent moins facilement la lumière que les couleurs claires. On pourra ainsi différencier une ligne noire d'une zone blanche.&lt;br /&gt;
[[Fichier:Qre.PNG|550px|thumb|center|Fig 22]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CabSuiv.PNG|550px|thumb|center|Fig 23]]&lt;br /&gt;
&lt;br /&gt;
Le capteur utilisé étant analogique, j'ai utilisé le CAN du µC. Les voies de lectures sont la voie 3,4 et 5 (fig 23). je definis alors une fonction lecture_CAN pour qui prend en argument la voie de lecture et retourne la valeur du CAN relatif à la voie de lecture( fig 24) &lt;br /&gt;
[[Fichier:CAN1.PNG|550px|thumb|center|Fig 24]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;br /&gt;
*Rapport : [[Fichier:Rapport_Projet.pdf‎]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Init_mot.PNG&amp;diff=42326</id>
		<title>Fichier:Init mot.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Init_mot.PNG&amp;diff=42326"/>
				<updated>2017-05-16T16:58:26Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : a téléversé une nouvelle version de « Fichier:Init mot.PNG »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Init_mot.PNG&amp;diff=42325</id>
		<title>Fichier:Init mot.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Init_mot.PNG&amp;diff=42325"/>
				<updated>2017-05-16T16:57:19Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : a téléversé une nouvelle version de « Fichier:Init mot.PNG »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_Projet.pdf&amp;diff=42138</id>
		<title>Fichier:Rapport Projet.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_Projet.pdf&amp;diff=42138"/>
				<updated>2017-05-12T08:43:04Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : a téléversé une nouvelle version de « Fichier:Rapport Projet.pdf »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42122</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42122"/>
				<updated>2017-05-12T00:48:14Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : /* Livrables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
Cette  configuration est réalisée par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine je me suis occupé de l'implémentation du code permettant au robot de suivre une ligne. Le capteur utilisé est le QRE1113, il est composé d'une led infrarouge et d'un phototranstior.Le principe de fonctionnement est le suivant: le capteur étant orienté vers le sol, la LED émettrice envoie une lumière infrarouge que le sol réfléchit en direction du phototransistor qui capte ainsi la quantité de lumière en retour. Sachant que les couleurs foncées réfléchissent moins facilement la lumière que les couleurs claires. On pourra ainsi différencier une ligne noire d'une zone blanche.&lt;br /&gt;
[[Fichier:Qre.PNG|550px|thumb|center|Fig 22]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CabSuiv.PNG|550px|thumb|center|Fig 23]]&lt;br /&gt;
&lt;br /&gt;
Le capteur utilisé étant analogique, j'ai utilisé le CAN du µC. Les voies de lectures sont la voie 3,4 et 5 (fig 23). je definis alors une fonction lecture_CAN pour qui prend en argument la voie de lecture et retourne la valeur du CAN relatif à la voie de lecture( fig 24) &lt;br /&gt;
[[Fichier:CAN1.PNG|550px|thumb|center|Fig 24]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;br /&gt;
*Rapport : [[Fichier:Rapport_Projet.pdf‎]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42121</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=42121"/>
				<updated>2017-05-12T00:47:07Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : /* Livrables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
Cette  configuration est réalisée par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine je me suis occupé de l'implémentation du code permettant au robot de suivre une ligne. Le capteur utilisé est le QRE1113, il est composé d'une led infrarouge et d'un phototranstior.Le principe de fonctionnement est le suivant: le capteur étant orienté vers le sol, la LED émettrice envoie une lumière infrarouge que le sol réfléchit en direction du phototransistor qui capte ainsi la quantité de lumière en retour. Sachant que les couleurs foncées réfléchissent moins facilement la lumière que les couleurs claires. On pourra ainsi différencier une ligne noire d'une zone blanche.&lt;br /&gt;
[[Fichier:Qre.PNG|550px|thumb|center|Fig 22]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CabSuiv.PNG|550px|thumb|center|Fig 23]]&lt;br /&gt;
&lt;br /&gt;
Le capteur utilisé étant analogique, j'ai utilisé le CAN du µC. Les voies de lectures sont la voie 3,4 et 5 (fig 23). je definis alors une fonction lecture_CAN pour qui prend en argument la voie de lecture et retourne la valeur du CAN relatif à la voie de lecture( fig 24) &lt;br /&gt;
[[Fichier:CAN1.PNG|550px|thumb|center|Fig 24]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;br /&gt;
*Rapport : [[Rapport_Projet.pdf‎]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_Projet.pdf&amp;diff=42120</id>
		<title>Fichier:Rapport Projet.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_Projet.pdf&amp;diff=42120"/>
				<updated>2017-05-12T00:45:28Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=41362</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=41362"/>
				<updated>2017-04-23T18:35:52Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
Cette  configuration est réalisée par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine je me suis occupé de l'implémentation du code permettant au robot de suivre une ligne. Le capteur utilisé est le QRE1113, il est composé d'une led infrarouge et d'un phototranstior.Le principe de fonctionnement est le suivant: le capteur étant orienté vers le sol, la LED émettrice envoie une lumière infrarouge que le sol réfléchit en direction du phototransistor qui capte ainsi la quantité de lumière en retour. Sachant que les couleurs foncées réfléchissent moins facilement la lumière que les couleurs claires. On pourra ainsi différencier une ligne noire d'une zone blanche.&lt;br /&gt;
[[Fichier:Qre.PNG|550px|thumb|center|Fig 22]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CabSuiv.PNG|550px|thumb|center|Fig 23]]&lt;br /&gt;
&lt;br /&gt;
Le capteur utilisé étant analogique, j'ai utilisé le CAN du µC. Les voies de lectures sont la voie 3,4 et 5 (fig 23). je definis alors une fonction lecture_CAN pour qui prend en argument la voie de lecture et retourne la valeur du CAN relatif à la voie de lecture( fig 24) &lt;br /&gt;
[[Fichier:CAN1.PNG|550px|thumb|center|Fig 24]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:CAN1.PNG&amp;diff=41361</id>
		<title>Fichier:CAN1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:CAN1.PNG&amp;diff=41361"/>
				<updated>2017-04-23T18:30:07Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:CabSuiv.PNG&amp;diff=41360</id>
		<title>Fichier:CabSuiv.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:CabSuiv.PNG&amp;diff=41360"/>
				<updated>2017-04-23T18:27:34Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Qre.PNG&amp;diff=41359</id>
		<title>Fichier:Qre.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Qre.PNG&amp;diff=41359"/>
				<updated>2017-04-23T18:26:00Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=41356</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=41356"/>
				<updated>2017-04-23T16:38:17Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : /* Semaine 6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
Cette  configuration est réalisée par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes INT0 et INT1. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=41355</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=41355"/>
				<updated>2017-04-23T16:36:47Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
Cette  configuration est réalisée par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
Notre robot sera équipé de deux codeurs incrémentaux qui seront montés sur les moteurs. Cette fonction sera réalisée par le composant ktir0221ds. Il s'agit d'une fourche composée d'une diode infrarouge et de deux phototransistors montés en Darlington, ce qui permet une réponse très rapide. Ainsi si nous placions une roue à encoches entre la diode et le phototransistor, la fourche renverrait une série d'implusions: état bas lorsque une encoche se présente devant la diode et laisse ainsi passer le faisceau, état haut sinon (fig 20). Ce qui nous permettra par la suite de determiner la vitesse de rotation ou mesurer la position du robot.&lt;br /&gt;
[[Fichier:Fourche.PNG|550px|thumb|center|Fig 20]]&lt;br /&gt;
&lt;br /&gt;
Au niveau du code, j'ai choisi d'utiliser les interruptions externes. On génère une interruption à chaque front descendant pour aller incrémenter un compteur. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Encodeur.PNG|550px|thumb|center|Fig 21]]&lt;br /&gt;
&lt;br /&gt;
====Semaine 7====&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Encodeur.PNG&amp;diff=41354</id>
		<title>Fichier:Encodeur.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Encodeur.PNG&amp;diff=41354"/>
				<updated>2017-04-23T16:34:17Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Fourche.PNG&amp;diff=41353</id>
		<title>Fichier:Fourche.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Fourche.PNG&amp;diff=41353"/>
				<updated>2017-04-23T16:33:18Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=41330</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=41330"/>
				<updated>2017-04-22T10:59:07Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Au cours de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir compiler mon code avant de le tester avec Proteus.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis donc référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
Cette  configuration est réalisée par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit logiquement donner la même vitesse au deux moteurs.&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester cette fonction, j'ai mis en place une simulation sous Proteus (figure 14), contenant, entre autre, un oscilloscope pour visualiser le PWM et des leds, aux broches PD7 et PB0, représentant le moteur B et aux broches PB1 et PB3  pour le moteur A. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MontSimu.PNG|Fig 14 &lt;br /&gt;
Fichier:SimuAvance.PNG|Fig 15: Etat lors de l'execution de la fonction Avance&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai implémenter et testé les fontions permettant de réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 16]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 17 &lt;br /&gt;
Fichier:Stop.PNG|Fig 18&lt;br /&gt;
Fichier:Recule.PNG|Fig 19&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 6====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:SimuAvance.PNG&amp;diff=41329</id>
		<title>Fichier:SimuAvance.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:SimuAvance.PNG&amp;diff=41329"/>
				<updated>2017-04-22T10:52:30Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:MontSimu.PNG&amp;diff=41328</id>
		<title>Fichier:MontSimu.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:MontSimu.PNG&amp;diff=41328"/>
				<updated>2017-04-22T10:52:12Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : a téléversé une nouvelle version de « Fichier:MontSimu.PNG »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:MontSimu.PNG&amp;diff=41327</id>
		<title>Fichier:MontSimu.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:MontSimu.PNG&amp;diff=41327"/>
				<updated>2017-04-22T10:47:13Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Recule.PNG&amp;diff=41326</id>
		<title>Fichier:Recule.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Recule.PNG&amp;diff=41326"/>
				<updated>2017-04-22T10:16:51Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : a téléversé une nouvelle version de « Fichier:Recule.PNG »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=41223</id>
		<title>IMA4 2016/2017 P25 Robot mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=IMA4_2016/2017_P25_Robot_mobile&amp;diff=41223"/>
				<updated>2017-04-12T21:12:13Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges ==&lt;br /&gt;
====Objectif====&lt;br /&gt;
Le but est concevoir un robot mobile à partir d'éléments de base. Les parties à réaliser sont le châssis hors moteurs et la carte électronique à base d'ATMega328p.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Partir du stage de l'an passé concernant [[la plateforme robotique pour l'enseignement secondaire]] et le finaliser. Les modifications à apporter sont au niveau de :&lt;br /&gt;
*La carte principale.&lt;br /&gt;
**La version à base d'ATmega traversant, et réalisée dans le cadre du stage de l'an dernier, est presque fonctionnelle. Elle nécessite cependant quelques changements: lier les LEDs à une tension VCC=5V au lieu de la masse, changer la capacité des condensateurs du quartz à 22 pF, changer l'emplacement de quelques composants, tel que le quartz, qui doit être éloigné du convertisseur afin d'éviter les perturbations causées par ce dernier, tout en étant proche du µC. De même que pour les capacités de découplage qui doivent être proche du μC.&lt;br /&gt;
**La version à base d'ATmega CMS, faite dans le cadre du projet [http://projets-ima.plil.net/mediawiki/index.php?title=Optimisation_de_cartes_de_contr%C3%B4le_de_robot_mobile], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.&lt;br /&gt;
*Du châssis:  concevoir un châssis qui arrive à porter les deux types de motorisation : moto-réducteur d'entrée de gamme et moto-réducteur de qualité correcte.&lt;br /&gt;
*De la carte moteur : relier les deux plans de masse.&lt;br /&gt;
*De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.&lt;br /&gt;
*Des piles : à mettre au dessous du châssis.&lt;br /&gt;
*La carte ultrason : concevoir une carte électronique avec des capteurs ultrason plus performants que sur les capteurs d'entrée de gamme du commerce. Réaliser le schématique et le PCB avec le logiciel Fritzing.&lt;br /&gt;
*Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques:matériel et logiciel ===&lt;br /&gt;
&lt;br /&gt;
Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.&lt;br /&gt;
*Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape&lt;br /&gt;
*Châssis : Plexiglas, moteur-réducteur ;&lt;br /&gt;
*Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.&lt;br /&gt;
*Capteurs ultrason&lt;br /&gt;
*Capteurs Vitesse: Encodeurs incrémentaux&lt;br /&gt;
&lt;br /&gt;
=== Liste des tâches  ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai&lt;br /&gt;
**Changement des LEDs, capacités..&lt;br /&gt;
* Diagnostique des problèmes de la carte ATmega CMS en faisant des essais&lt;br /&gt;
**Soudage du quartz&lt;br /&gt;
* Proposer un modèle du châssis et faire une simulation sur Onshape&lt;br /&gt;
* Vérifier la carte moteur et faire des modifications jugées nécessaires&lt;br /&gt;
* Essais sur la carte suiveur de ligne &lt;br /&gt;
* Pour la carte ultrason, cette partie est la plus compliquée et qui prend le plus du temps, il faut faire le schématique et le PCB de nouveau, ainsi que changer les capteurs ultrasons&lt;br /&gt;
* Intégrer des capteurs vitesse pour avoir un retour sur les motorisations&lt;br /&gt;
&lt;br /&gt;
=== Calendrier Prévisionnel  ===&lt;br /&gt;
* 10H: Prise en main du logiciel Fritzing&lt;br /&gt;
* 20H sur la carte ultrason&lt;br /&gt;
* 10H: Réparation et simulation de la carte principale&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Cahier des charges &lt;br /&gt;
| 1H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Etat d'avancement du projet==&lt;br /&gt;
&lt;br /&gt;
===Phase préparatoire===&lt;br /&gt;
&lt;br /&gt;
Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .&lt;br /&gt;
&lt;br /&gt;
====Semaine 1====&lt;br /&gt;
&lt;br /&gt;
Cette semaine fut entièrement consacrée à la prise en main des différents logiciels nécessaire à l'aboutissement du projet. Nous avons aussi repris les traveaux sur l'Atmega traversant et apportés les modifications explicités dans le cahier des charges. A savoir: &lt;br /&gt;
* Augmenter l'espacement entre le quartz et le convertisseur.&lt;br /&gt;
* Rapprocher le quartz et les capacités de découplage du µC.&lt;br /&gt;
* Lier l'anode des diodes d'état à une tension Vcc.&lt;br /&gt;
  &lt;br /&gt;
Nos modifications ont abouti aux schématique et PCB ci dessous:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;450px&amp;quot; heights=&amp;quot;450&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueTr.PNG|Fig.1:Schématique&lt;br /&gt;
Fichier:PCBtr.PNG|Fig.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 2====&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons bossé sur la conception des cartes qui vont gérer la fonction suiveur de lignes et les moteurs( avec encodeur ). Nous avons abouti aux résultats suivants:&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction suiveur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueSuiv.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBsuiv.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour la fonction moteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueMot.PNG|Fig 3.1:Schématique&lt;br /&gt;
Fichier:PCBmot.PNG|Fig 3.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Semaine 3====&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attaqués à la version CMS de l'Atmega au cours de cette semaine. En prenant en compte les remarques des travaux précédents, nous avons choisi de remplacer le quartz par un quartz plus grand :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:SchematiqueCMS.PNG|Fig 4.1:Schématique&lt;br /&gt;
Fichier:PCBCMS.PNG|Fig 4.2:PCB&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:&lt;br /&gt;
&lt;br /&gt;
* Le circuit du module USB FT232R des deux cartes principales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB.PNG|500px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le routage de toutes les cartes:&lt;br /&gt;
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500px&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:MoteurFin.PNG|Fig 6:Carte moteur&lt;br /&gt;
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 4====&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons eu un autre entretien avec nos encadrants. En effet, ils n'étaient pas très emballés par la production de la semaine précédente. Dans cette optique, ils nous ont demandé de tout d'abord, revoir le routage, puis rajouter les empreintes de résistances aux pins TXD et RXD du FT232R au cas où(car sur deux datasheets différentes, une présente ces résistances alors que l'autre non), rechercher les bonnes valeurs de condensateurs à l'entrée et à la sortie du LM1117, enlever la résistance et le condensateur aux bornes des pins RTS et DTR du FT232R, et enfin, de faire en sorte que toutes les pistes venant de composants en top soit en bottom. Cette semaine était donc consacrée à la réalisation de ses tâches.&lt;br /&gt;
&lt;br /&gt;
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]&lt;br /&gt;
&lt;br /&gt;
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;550px&amp;quot; heights=&amp;quot;550&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur&lt;br /&gt;
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Semaine 5====&lt;br /&gt;
&lt;br /&gt;
Ayant relativement avancé sur les cartes, je décide de basculer sur la partie programmation. Pour ce faire, j'ai installé Atmel studio pour pouvoir éventuellement déboguer mon code.&lt;br /&gt;
J'implémente, pour commencer, la partie du code qui va commander les moteurs. D'un point de vue hardware, cette fonction est rempli par le composant TB6612FNG. Je me suis alors référé à la datasheet de ce dernier pour mieux comprendre son fonctionnement.&lt;br /&gt;
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.&lt;br /&gt;
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]&lt;br /&gt;
&lt;br /&gt;
En se référant au schéma de cablâge entre l'atmega et le TB6612FNG (fig. 11), je dois configurer les pins PB3, PB1, PD7 et PD8 en sortie et génerer un PWM sur les pins de sortie OC0A du timer0 et OC1B du timer1.&lt;br /&gt;
Cette  configuration est réalisée par la fonction init_mot:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:init_mot.PNG|500px|thumb|center|Fig 12]]&lt;br /&gt;
&lt;br /&gt;
Puis j'ai crée des fonctions pour chaque combinaison de commande du moteur. Pour la commande avancé tout droit, par exemple, je mets la broche 1 du port B à l'état 0 et la broche 3 du port B à l'état 1 pour le moteur A, la broche 7 du port D à l'état haut et la broche 0 du port B à l'état bas conformément au schéma de cablage ainsi qu'à la table de fonctionnement du TB6612FNG. La vitesse des moteurs est quant à elle fonction du rapport cyclique µ du PWM. Ce dernier peut être modifié grâce aux registres OCR0A et OCR1B, par la formule '''µ= OCRxx/255'''. Pour avancer droit, on doit donner la même vitesse au deux moteur&lt;br /&gt;
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En suivant la même méthodologie,j'ai définis d'autres fontions pour réculer, s'arrêter, tourner à droite et tourner à gauche:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 14]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;350px&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:Short_brake.PNG|Fig 15 &lt;br /&gt;
Fichier:Stop.PNG|Fig 16&lt;br /&gt;
Fichier:Recule.PNG|Fig 17&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Livrables ==&lt;br /&gt;
&lt;br /&gt;
*Cartes : [[Fichier:Mes_Circuits.zip]]&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Avance.PNG&amp;diff=41222</id>
		<title>Fichier:Avance.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Avance.PNG&amp;diff=41222"/>
				<updated>2017-04-12T21:08:05Z</updated>
		
		<summary type="html">&lt;p&gt;Csaid-ah : a téléversé une nouvelle version de « Fichier:Avance.PNG »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csaid-ah</name></author>	</entry>

	</feed>