Contrôle de bras robotique, 2012/2013, TD2

De Wiki de Projets IMA

Evaluation informatique et électronique

Gestion de projet / rédaction Wiki

  • Informatique :
  • Electronique :

Présentation

Dans notre projet, l' électronique a pour but de récupérer la valeur d'un capteur de pression. En effet celui-ci se comporte comme une résistance variable, la valeur que l'on récupérera sera donc une valeur analogique (tension). Nous aurons donc pour but de créer un convertisseur analogique vers numérique. De cette manière, la transmission pourra se faire via une communication série.

Partie numérique


Partie analogique

La partie analogique se compose d'un amplificateur opérationnelle monté en comparateur, de résistances, de capacité et d'un capteur de pression. L'AOp nous permet de comparer la tension issue du capteur avec la tension de la PWM filtrée. Lorsque la tension de la PWM est supérieur à la tension du capteur la sortie de l'AOp est à 1 logique (5V). Afin de pouvoir comparer la tension de la PWM nous avons du la filtrer à l'aide d'un filtre passe-bas pour obtenir une rampe de tension (Rappel : le signal d'une PWM est un signal carré de rapport cyclique variable).

Note .

Test fonctionnels

  • Sous-système.
    • Sous-système informatique :
    • Sous-système électronique :

Qualité de la réalisation

  • Informatique : Note .
    • procédure de test :
    • pages HTML et Javascript :
    • scripts PHP ou programmes C :
    • installation sur FoxBoard :
  • Electronique : Note .
    • qualité de la réalisation :
    • tests autonomes :

Bilan

Note finale :

Rapports des élèves

Objectif du projet :

  • Réaliser une interface Web de pilotage de bras robotique permettant de commander les différents moteurs du bras.
  • Afficher la position du bras ainsi que des objets placés sur les capteurs de position.


Le projet se compose de trois parties :

  • Partie électronique : Réalisation d’un convertisseur analogique numérique (CAN) permettant de connaître la valeur d’un capteur de pression. Pour la réalisation du CAN, nous avions besoin d’un mélange d’électronique numérique (NanoBoard) et d’électronique analogique (comparateurs, résistances…).
  • Partie Informatique : Réalisation d’un fichier html comprenant du Javascript , du Php ainsi qu’un programme en langage C. Les programmes sont ensuite stockés sur une FoxBoard, serveur relié au bras robotique, ce qui permet de commander le bras n’importe où lorsqu’on est connecté à la FoxBoard.
  • Partie permettant de rendre compatibles les systèmes informatiques et électroniques afin de pouvoir faire une bonne liaison série.


PARTIE ELECTRONIQUE

  • Séance 1 :


La première séance a servi à comprendre le lien entre le logiciel Altium et la NanoBoard. Sur Altium, des composants sont mis à disposition (bascules RS, D, des compteurs…). Le but est, à partir de ces composants, de les relier pour concevoir le système désiré (ici un CAN). Ensuite, le système ainsi réalisé est adapté pour fonctionner sur la NanoBoard.


Schéma de principe :


Schéma à faire.png

Le Convertisseur analogique numérique), à partir d’une Modulation à Largeur d'Impulsions (MLI) aussi appelée PWM , permet de comparer la valeur de la PWM avec la tension du capteur de pression afin de connaître la valeur de ce dernier. Pour cela, nous avons du adapter les tensions du capteur et de la PWM pour que les résultats puissent correspondre. C’est-à-dire que lorsque le capteur ne reçoit aucune pression, la valeur de la tension est par exemple de 3.3V alors la PWM doit être au maximum à 3.3V.


La PWM sera crée par la Nanoboard. Ce signal sera dans la partie analogique, filtré par un filtre passe-bas puis comparé avec un comparateur.


schéma de déroulement :

Partienumetanal.png


La valeur du capteur de pression sera donnée par la PWM, lorsque la la tension de la PWM sera supérieure à la valeur du capteur, le comparateur enverra un 1 logique ou 5V (0 sinon) au fpga qui enregistrera la valeur de la PWM dans un registre 8 bits. Ce résultat sera alors envoyé périodiquement par liaison série à la FoxBoard.


Lorsque le sujet était clair, des tests sur Altium ont été effectués. Le bloc PWM était mis à notre disposition afin de voir comment cela fonctionner. Nous avons fait des tests et nous sommes arrivés à cela :


Seance1.png

Exemple de MLI


Dans ce schéma, il y a deux compteurs. Le premier, qui compte jusqu'à 256, représente la période de la PWM et le second quant à lui permet de faire varier la rapport cyclique. Plus le rapport cyclique du signal est grand, plus la valeur de la tension de la PWM sera grande.

Le deuxième compteur servant à générer le rapport cyclique doit varier à chaque nouveau comptage de la PWM. Par exemple, le compteur U5 est initialement à 0, le compteur U4 compte jusqu'à 256, puis retombe à 0. Lorsqu'il est égal à 0, il incrémente le compteur U5 grâce à la broche CEO et passe ainsi à 1, ainsi de suite jusqu'à son maximum qui est T, la période de la PWM.

La fréquence de l'horloge est celle de la Nanoboard 50MHz. Cependant, nous avons eu recours à la CLKGEN afin de diminuer la fréquence à 1MHz.





Nous n'avons pas fini sur le fpga, il reste seulement la gestion de la mémorisation car on ne veut mémoriser la valeur de la PWM seulement quand nous avons la réelle valeur du capteur de pression.


  • Séance 2 :


Basculepourmemorisation.png

Nous avons rajouté un registre 8 bits afin de mémoriser la valeur du capteur de pression lorsque l'on obtient une valeur du capteur.


Pour les tests, nous avons mis en sortie un panneau de 8 leds ainsi qu'un afficheur digital afin de visualiser le résultat et de pouvoir comparer le résultat par rapport au vrai.


La partie analogique a été également faite:

Schéma électrique.png

Pour le capteur de pression, nous avons ajouté des diviseurs de tension. Un pour réduire la tension d'entrée de 3.3V à 3V car le signal de la PWM va seulement jusqu'à 3V. Or, si le capteur présente une tension de 3.3V, nous ne pouvons trouver aucun résultat. Ensuite, le deuxième sert à avoir un équivalent en tension de la pression exercé sur le capteur. Lorsque le capteur est mis fortement sous pression, l'équivalent en tension est de 0V, alors que lorsque le capteur n'est exercé à aucune pression, l'image en tension est de 3V. Le comparateur a pour valeur de référence 0V et 5V afin de pouvoir communiquer correctement avec la Nanoboard qui peut recevoir 0V, ce qui correspond à un 0 logique et 5V, ce qui correspond à un 1 logique.


Le filtre passe bas appliqué sur la PWM permet d'obtenir la valeur analogique recherchée.


Définition des valeurs des composants:

  • Composants du filtre passe bas :


la fréquence de résonance devait être inférieure à la fréquence du système (1Mhz/256 = 3KHz).

=> fn < fs (fréquence du système)

fn < 3KHz

Or on sait que : fn = 1/(2piRC)

=> C = 330nF R = 2K ohms


  • Composants du diviseur de tension avec capteur de pression


Il suffisait seulement ici d'avoir une à compléter


  • Composants du premier diviseur de tension

Il fallait respecter l'adaptation d'impédance. Il fallait donc avoir une impédance beaucoup plus grande en sortie du diviseur de tension.

Soit que la résistance en sortie du diviseur de tension soit beaucoup plus grande que l'impédance relié à la masse.

On a donc choisi une résistance de 1K ohms pour la résistance connectée à la masse et celle en entrée, la valeur est de 100 ohms.



  • Séance 3 :