Contrôle de bras robotique, 2011/2012, TD3
Sommaire
Introduction
Bilan des séances
Séance 1 (20/04/2012)
Durant cette séance, nous avons tout d'abord déterminé le sujet, nous avons choisi le sujet se rapportant au Contrôle de bras robotique. Notre première tâche fut de s'approprier le sujet en comprenant le rôle de chaque sous-système (foxboard,nanoboard...).
Une fois le sujet assimilé, nous avons décidé d'entreprendre dans un premier temps l’élaboration de l'interface web.
Nous avons pour cela divisé la tâche en deux dans un souci d'efficacité :
- un membre du binôme travailla sur la compréhension du démon, sa compilation et la gestion de l’envoi des commandes au robot
- tandis que le second membre travailla sur la conception de l'interface web en HTML et CSS en local.
Dans un premier temps, nous avons réalisé ceci entièrement en HTML, CSS et PHP. Cependant l'enseignant nous fit remarqué que les requête PHP réactualisé entièrement la page, il nous a donc encouragé à utiliser du Javascript pour une meilleur conformité du Web 2.0. Ainsi, une fonction Javascript permet d'appeler une page PHP dont le code envoi la commande par protocole UDP au robot.
Nous avons ensuite fusionné nos deux travaux afin d'obtenir l'interface web visible ci-dessous :
L'interface fonctionne correctement, il nous reste encore à gérer l'affichage des données provenant du bras robotisé.
Séance 2 (11/05/2012)
Durant cette séance, nous avons dans un premier temps travaillé ensemble sur la partie électronique. Après avoir avoir mené une réflexion commune et déterminé la solution à adopter en ce qui concerne les schémas électroniques, nous avons scindé notre binôme en 2 : l'un continua la réalisation de la partie électronique pendant que l'autre continua la partie informatique.
Partie électronique
En électronique nous avons décidé de créer un montage comportant un PWM ainsi que des registre formant un compteur. Ceci sera simulé par une NanoBoard.
- 7 broches seront utilisé pour afficher via des leds la valeur du compteur. (HB3, 5, 7, 9, 11, 13)
On simule via un "configurable IO" ces leds.
- 1 broche (HA3) sort du PWM (qui fournit un signal en créneau). Nous allons, via une partie analogique placé sur un plaque LabTec, intégrer ce signal grâce à un filtre passe bas.
- On choisira une fréquence d'horloge du compteur beaucoup plus faible que la fréquence du PWM
La partie analogique est composé de:
- 1 capacité de 63nF
- 2 résistances de 100 Ohms et 300 KOhms
La sonde de poids à une résistance quasi-infinie à vide. Par contre sa résistance diminue en fonction du poids situé au dessus d'elle.
A la sortie du filtre est placé un AOP qui permet de comparer 2 valeurs (montage comparateur) ceci nous permettant de signaler la présence d'un objet. Lorsqu'il y a un objet celui-ci renvoie la valeur "1" (ici 0.5V pour la nanoboard) permettant de réinitialisé les compteurs et de détecter l'objet.
Il nous reste à faire:
- Déterminer les valeurs des résistances et capacité pour détecter l'objet.
- Prendre en compte sur la nanoboard la détection et donc la réinitialisation.
Partie informatique
La partie concernant la commande du bras étant finis, il reste à réaliser l'affichage des données des différents capteurs. Pour cela, il a fallu tout d'abord se renseigner quant au matériel utilisé :
- L'arduino est un arduino mega 2560
- Les accéléromètres sont des sparkfun ADXL335
- La boussole est un sparkfun HMC6352
Une fois ces informations récupérées, le membre du binôme en charge de la partie informatique chercha des programmes basiques récupérant les valeurs des différents capteurs. Après adaptation du code, il a été possible de recevoir via le port série les différentes données.
Il reste à modifié la page web afin qu'elle puisse récupéré les donnés depuis le port série. Après une discussion avec l'enseignant, il a été décidé que la meilleur des solutions était que la page web envois un signal sur le port série, puis lorsque l'arduino détecte ce signal, il envois à son tour les données des capteurs sur le port série.
Conclusion
L'adresse en local du site de contrôle du bras est http://127.0.0.1/