IMA4 2016/2017 P25 Robot mobile : Différence entre versions

De Wiki de Projets IMA
(Semaine 3)
Ligne 80 : Ligne 80 :
  
  
<gallery widths="550px" heights="550">
+
<gallery widths="450px" heights="450">
 
Fichier:SchematiqueTr.PNG|Fig.1:Schématique
 
Fichier:SchematiqueTr.PNG|Fig.1:Schématique
 
Fichier:PCBtr.PNG|Fig.2:PCB
 
Fichier:PCBtr.PNG|Fig.2:PCB
Ligne 119 : Ligne 119 :
 
* Le circuit du module USB FT232R des deux cartes principales:
 
* Le circuit du module USB FT232R des deux cartes principales:
  
[[Fichier:USB.PNG]]
+
 
 +
[[Fichier:USB.PNG|500px|thumb|center|]]
 +
 
  
 
* Le routage de toutes les cartes:
 
* Le routage de toutes les cartes:
[[Fichier:MCtraversantFin1.PNG|Atmega traversant]]
+
[[Fichier:MCtraversantFin1.PNG|500px|thumb|center|Atmega traversant]]
  
  
  
<gallery widths="550px" heights="550">
+
<gallery widths="500px" heights="500">
 
Fichier:MoteurFin.PNG|Fig 6:Carte moteur
 
Fichier:MoteurFin.PNG|Fig 6:Carte moteur
 
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur
 
Fichier:SuiveurFin.PNG|Fig 7:Carte suiveur
 
</gallery>
 
</gallery>
 +
 +
 +
====Semaine 4====
 +
 +
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.
 +
 +
Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.
 +
 +
[[Fichier:USB2.jpg|500px|thumb|center|Fig 8]]
 +
 +
Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:
 +
 +
<gallery widths="550px" heights="550">
 +
Fichier:CaptureSuivFin.PNG|Fig 9.1 Carte moteur
 +
Fichier:Capturemotfin.PNG|Fig 9.2:Carte suiveur
 +
</gallery>
 +
 +
[[Fichier:Capturefintrav.PNG|500px|thumb|center|Fig 9.3]]
 +
 +
 +
====Semaine 5====
 +
 +
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.
 +
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.
 +
La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.
 +
[[Fichier:Tablemot.PNG|500px|thumb|center|Fig 10]]
 +
 +
 +
 +
[[Fichier:Broche.PNG|500px|thumb|center|Fig 11]]
 +
 +
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.
 +
Cette  configuration est réalisée par la fonction init_mot:
 +
 +
[[Fichier:init_mot.PNG|500px|thumb|center|Fig 12]]
 +
 +
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
 +
[[Fichier:Avance.PNG|550px|thumb|center|Fig 13]]
 +
 +
 +
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:
 +
 +
[[Fichier:Av_dte_gche.PNG|550px|thumb|center|Fig 14]]
 +
 +
<gallery widths="350px" heights="350">
 +
Fichier:Short_brake.PNG|Fig 15
 +
Fichier:Stop.PNG|Fig 16
 +
Fichier:Recule.PNG|Fig 17
 +
</gallery>
 +
 +
  
 
== Livrables ==
 
== Livrables ==
  
 
*Cartes : [[Fichier:Mes_Circuits.zip]]
 
*Cartes : [[Fichier:Mes_Circuits.zip]]

Version du 12 avril 2017 à 21:12

Cahier des charges

Objectif

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.

Description du projet

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 :

  • La carte principale.
    • 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.
    • La version à base d'ATmega CMS, faite dans le cadre du projet [1], ne fonctionne pas, peut-être à cause du quartz qui s'avère difficile à souder.
  • 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.
  • De la carte moteur : relier les deux plans de masse.
  • De la carte suiveur de ligne : vérifier sa performance, prévoir son positionnement sur le chassis.
  • Des piles : à mettre au dessous du châssis.
  • 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.
  • Retour de vitesse : implanter un capteur de vitesse sur toutes les motorisations.

Choix techniques:matériel et logiciel

Après le premier rendez-vous avec notre encadrant, nous avons établi une première liste non exhaustive des composants que nous utiliserons.

  • Le logiciel qui sera utilisé est Fritzing. Pour la conception du châssis, on prévoit utiliser Onshape
  • Châssis : Plexiglas, moteur-réducteur ;
  • Cartes électroniques : résistances, capteurs optiques, amplificateurs, connecteurs RJ11.
  • Capteurs ultrason
  • Capteurs Vitesse: Encodeurs incrémentaux

Liste des tâches

  • Effectuer les modifications nécessaires sur la carte ATmega traversant et faire l'essai
    • Changement des LEDs, capacités..
  • Diagnostique des problèmes de la carte ATmega CMS en faisant des essais
    • Soudage du quartz
  • Proposer un modèle du châssis et faire une simulation sur Onshape
  • Vérifier la carte moteur et faire des modifications jugées nécessaires
  • Essais sur la carte suiveur de ligne
  • 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
  • Intégrer des capteurs vitesse pour avoir un retour sur les motorisations

Calendrier Prévisionnel

  • 10H: Prise en main du logiciel Fritzing
  • 20H sur la carte ultrason
  • 10H: Réparation et simulation de la carte principale

Feuille d'heures

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
Cahier des charges 1H


Etat d'avancement du projet

Phase préparatoire

Vendredi 16/12/16 - Rendez-vous avec M.Redon pour la présentation du projet et la définition du cahier des charges .

Semaine 1

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:

  • Augmenter l'espacement entre le quartz et le convertisseur.
  • Rapprocher le quartz et les capacités de découplage du µC.
  • Lier l'anode des diodes d'état à une tension Vcc.

Nos modifications ont abouti aux schématique et PCB ci dessous:


Semaine 2

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:

  • Pour la fonction suiveur:


  • Pour la fonction moteur:


Semaine 3

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 :


Nous avons aussi, après s'être entretenu avec nos encadrants, modifié:

  • Le circuit du module USB FT232R des deux cartes principales:


USB.PNG


  • Le routage de toutes les cartes:
Atmega traversant



Semaine 4

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.

Pour les valeurs de condensateurs, conformément à la datasheet du LM1117 (figure 8) on choisit une valeur de 10µF pour les deux.

Fig 8

Les figure ci-dessous présentent le schéma de câblage actualisé du FT232R ainsi que le routage des différentes cartes:

Fig 9.3


Semaine 5

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. 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. La commande de chaque moteur est réalisé grâce à une combinaison de quatre signaux suivant la table ci-dessous.

Fig 10


Fig 11

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. Cette configuration est réalisée par la fonction init_mot:

Fig 12

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

Fig 13


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:

Fig 14


Livrables