Contrôle de bras robotique, 2012/2013, TD3
Sommaire
Evaluation informatique et électronique
Gestion de projet / rédaction Wiki
- Informatique :
- Electronique :
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
> INFORMATIQUE
28/03 : Séance 1 > Découverte et analyse du projet, envoi d'informations au robot
- Installation de la librairie J-Querry
- Installation du paquetage libusb-1.0-0-dev mais était déjà installé.
- Analyse et exécution du programme C : demon.c
- Test des différentes commandes vers le robot (m1+, m1-, m2+...) en MODE_MANUAL puis en MODE_UDP.
- Début de création du site web de gestion du robot :
- Dans var/www/bras, création de la page commande.php
- Création d'une page HTML commande_bras_robot.html avec création de boutons et des commandes associées,
- Ajout d'une image du robot pour le site web, ajout du fichier jquery.js pour gestion des commandes.
03/04 : Séance 2 > Récupération des valeurs des accéléromètres sur l'interface Web
- Création de nouveaux fichiers à partir de codes existants.
- Création d'un fichier C permettant la configuration de la liaison série : serial.c avec inclusion de serial.h - Récupération des informations des accéléromètres via la liaison série et affichage dans un premier temps sur le terminal (création du fichier C lportserie.c).
- Identification des différents accéléromètres du robot à partir des valeurs reçues par la liaison série (quelques difficultés à réaliser cette partie).
- Récupération des 4 valeurs des 4 accéléromètres sous la forme d'une chaine de caractères qui sera ensuite utilisée dans l'interface Web.
- Création du dossier cgi-bin sur le serveur. - Modification du fichier commande_bras_robot.php pour affichage des valeurs des accéléromètres sur le site Web.
- Création de nouvelles fonctions display et charger pour récupérer les valeurs à partir du programme C.
- A la fin de la séance les valeurs sont bien affichées sur le site Web.
-> Il convient maintenant de trouver un moyen pour récupérer une à une ces valeurs à partir de la chaine de caractères (grâce à l'utilisation d'une fonction
- javascript (recherches sur internet). -> Il conviendra de convertir ces valeurs pour les rendre interprétables par l'utilisateur.
-> Il reste à terminer l'interface Web par l'ajout de schémas de variation des angles des accéléromètres.
-> Il faudra également terminer le placement des boutons aux endroits adéquats par rapport à l'image du robot sur le site Web.
> ELECTRONIQUE
Description du système : Partie électronique
Ce système est constitué de deux sous-systèmes communiquant par le protocole série ; une carte FoxBoard et une carte FPGA incluse sur la NanoBoard.
Ce projet a pour but de mesurer la position de la boussole et la pression appliquée sur un capteur de pression. Les mesures se basent sur la conversion analogique-numérique de signaux.
La conversion analogique-numérique développée dans ce projet est basée sur la génération de signaux PWM (Pulse Width Modulation, ou Modulation de Largeur d'Impulsions) puis par leur filtrage (filtre passe-bas) permettant d'obtenir une tension continue variable représentant la valeur numérique.
Le capteur de pression donne une tension continue proportionnelle à la pression à laquelle il est soumis. Ce module est composé de deux parties : une partie implémentée dans la carte FPGA de la NanoBoard et une partie analogique réalisée sur une plaque d'essais.
28/03 : Séance 1 : Découverte et analyse du projet
-Prise en main de la Nanoboard grâce au tutoriel fourni.
Explication du fonctionnement :
Nous pouvons constater qu’en laissant votre doigt appuyé sur le bouton poussoir SW0, Le compteur compte à partir de la valeur fixée par le bus AOUT. En relâchant votre doigt, le compteur est en mode chargement.
-Prise de connaissance de la partie électronique du sujet.
- Recherche d'une solution mettre en place une PWM autrement qu'avec le "circuit tout fait" d'Altium.
- Objectif prochaine séance : Début de la conception de la partie FPGA.
03/04 : Séance 2 : Test de la partie FPGA
La partie implantée dans le FPGA a pour fonction de générer 2 signaux PWM dont la tension moyenne (après filtrage) varie de zéro volt jusqu'à la tension maximale des composants.
Le signal PWM est un signal de fréquence constante, mais dont on change le rapport cyclique grâce à une donnée de commande codée sur huit bits.
Ainsi, la donnée de commande correspond indirectement à la valeur moyenne du signal PWM.
-Partie FPGA: finie.
- Objectif prochaine séance : Conception de la partie analogique
11/04 : Séance 3 : Test de la partie analogique
La partie analogique permet de comparer la valeur moyenne du signal PWM (signal issu de la NanoBoard) avec la tension provenant des composants. Tant que la valeur moyenne du signal PWM (réglée par la donnée de commande V0) est inférieure à la tension provenant du composant, la sortie du comparateur est à 0V.
Lorsque la valeur moyenne du signal PWM devient supérieure ou égale à la tension du composant, la sortie du comparateur passe à +Vcc. À ce moment-là, la donnée de commande correspond à la représentation numérique de la tension du composant (conversion analogique-numérique).
L’écriture dans la mémoire ne se faisant que sur un seul octet, on mémorise le résultat de la Conversion Analogique Numérique dans une bascule de type D flip-flop version bus 8 bits.
Afin de simplifier la vérification du fonctionnement, nous avons utilisé l'analyseur logique.
-Test final de l'ensemble.
On peut voir :
D8 la PWM à rapport cyclique variable
En jaune la sortie du circuit RC
D10 V_0 Compare
D14 le signal de "flag" destiné à la communication série RS 232.
Et en blanc le bus avec le résultat de la CAN visible juste après un front mont montant sur V_0 compare (ici D10)
L'adaptation du capteur de pression/jauge de contrainte :
En fesant des mesures de résistance nous obtenons, 2,9 kOhms quant on appuie dessus et l'infinie sinon, on adopte donc le montage suivant :
On determine R2 = 4 kOhms pour avoir la tension de sortie entre 0 et 2.9 Volts.
Voir ci dessous, pour l'explication de la valeur non constante sur le BUS : (Quelques remarques et critique sur la solution)
On remarquera que l'on ne peut convertir que de 0 à 254, car D14 ici et le flag or nous n'avons pas le bon mot sur le bus :
Quelques remarques et critique sur la solution :
Nous avous pus constatez quelques problémes notamment sur le fait que la valeur sur le BUS "n'arréte pas de changer".
Ce probléme aurai pus étre regler avec la modification de la partie analogique en utilisant un étage de comparaison à cycle d'hystérésis. (un hystérésis de +0,3 Volt aurai suffit.)
Suivit d'un simple comparateur pour s'assurer que la tension peut étre supporter pour la nano-board.
Aussi on remarque que notre solution peut convertir une ten tension comprise entre 0.4 et 2.9-3.0V Volts.
Il faut donc rajoute un étage pour adapter la tension à convertir en 0-5 Volts pour qu'elle se situe entre 0.4 et 2.9-3.0V Volts celui-ci sera en amont de V_0.
Et quelques Quick Print montrant que cela fonctionne :
Nous avons fait quelques points mais pas assez, voici un aperçu peu précis de la caractéristique de notre CAN :