Contrôle de bras robotique, 2013/2014, TD1

De Wiki d'activités IMA

Introduction



Le projet Contrôle de bras robotique a pour objectif principal ,la réalisation d'une interface Web via laquelle d'une part on peut contrôler le bras,d'autre part on peut visualiser les différentes valeurs des capteurs .Ce qui nous permettent d'avoir une idée sur la position du bras et des blocs à déplacer . Pour la réalisation de ce projet nous étions une équipe de deux personnes,pour la répartition des taches la partie informatique à été traitée par Abdelwahab Lbouchouari ,et la partie électronique par Lu Xia.


La partie informatique


Mise en situation

Dans cette partie le travail demandé par le cahier de charge été de réaliser une interface Web qui sera constituée d'une image du bras avec des boutons permettant d'envoyer une impulsion au moteurs dans un sens ou dans l'autre. Il faut aussi avoir des champs textes dans lesquels s'affichent les valeurs provenant des divers capteurs de position.

Pour réaliser cela on avait à notre disposition :

  • Le bras robotisé .
  • Trois accéléromètres .
  • Une FoxBoard .
  • une platine Arduino MEGA pour l'évaluation de la partie informatique

Séance 1 (07/05/2014)

Cette séance à été consacré à la découverte et l'analyse de projet ainsi qu'au cahier de charge.Au tout début grâce à la commende gcc -o Demon -DMODE_MANUAL -DVERBOSE demon-bras.c -lusb-1.0 on a pu compilé le programme demonc.c et on a réussit à contrôler le robot , en mode manuel .

Partie de code fournissant les commandes à envoyer en mode manuel :

Code1.png


Mais ce Control été pénible car il faut taper à la main chaque commende ,ce qui prend énormément du temps ,d'où l’intérêt de l’utilisation de mode UDP,avec une page web ce processus de Control été plus fluide et plus pratique surtout quand il s'agit d'amener le bras à une positon particulière.


Partie de code fournissant les commandes à envoyer au robot en mode UDP:

Demon.udp.png

Les taches principales réalisées pendant cette séance sont :

  • la création de la page de commende PHP : bras.php ,à partir de l'exemple fourni ,et l'appel de cette page via l'URL http://localhost/bras.php?cmd=.." .
  • le test des différents commendes UDP ,cela se fait en appelant notre page via l'URL avec les commandes données qui figurent sur le code de Demon (A,a,B,b,...).
  • le téléchargement de la librairie J-Query .
  • l'affichage des valeurs des différentes capteurs sur le terminale .

Séance 2 (14/05/2014)

Cette séance à été consacrée à la réalisation de la page Web ,un grand intérêt a été porté a l'aspect esthétique de la page .la page a été principalement codé en HTML ,accompagné d'un fichier CSS et d'un dossier pour les polices .L’intérêt été de séparer la partie de code consacrée aux taches techniques et celle dédiée à la mise en forme. Notre interface Web à donc prit la forme finale suivante :

Inter1.png Titre1.png

Interface55.png

Séance 3 (21/05/2014)

Après avoir réussit à afficher les valeurs des capteurs sur le terminal ,ainsi que le contrôle de bars via UDP,l'objectif de cette séance été d'intégrer toutes ces options dans la page HTML déjà codé .Pour faire un système de contrôle complet capable de diriger le bras ainsi que voir les différentes valeurs des capteurs ce qui donne une idée sur sa position. Pour cela nous avons utilisé quelques fonctions JavaScript ,la toute première permet d'envoyer à l'adresse( URL:http://localhost/bras.php?) une des 12 commendes.Lors de l’appui sur un bouton on fait appel à la fonction JavaScript (nommée ici controler1) ,cette dernière prend l'URL et lui transmis une commende.la commende est alors exécuté par le Demon ,lancé en même temps.

La partie de code qui gère les boutons est la suivante :

Code2.png

la fonction est codé comme suit :

Controler.png


L'avantage la fonction controlet1 ,c'est que il codé de sorte qu'il accepte un paramètre et l'envois à notre page PHP. Cela simplifier le travail réalisé,car sinon on aura 12 fonctions une par commande.

La partie électronique


Séance 1 (07/05/2014)

Cette partie a été consacré à la découverte de la Nanoboard ,cette dernière permet de générer des saigneux PWM.la valeur moyenne de ces saigneux est obtenu grâce à un filtre composé d'un résistance et d'une capacité .Avec un comparateur, on compare ces signaux avec la tension des capteurs de pressions et puis on régénère à nouveau des saigneux PWM. On récupére ces signaux pour la partie informatique. Le principe est résumé sur le graphe :

Elec1.png

Séance 2 (14/05/2014)

Réalisation de montage suivant ,qui permet de créer des signaux PWM. Pour cela on utilise deux compteurs et un comparateur.

Elec3.png

La fréquence de signal généré par la NANOBOARD est 50MHz. Dans ce montage,la générateur U1 crée une fréquence de 5MHz et l’autre génère une fréquence de 19,607 KHz. dans ce cas on obtient deux signaux de différentes fréquence,l’un est f est l’autre est f/256.(car le compteur est de 8 bits et 2^8=256).Après on comparer les deux signaux en utilisant le comparateur U3,on peut obtient le signal PWM de rapport cyclique différent. Après l'exécution on obtient les courbes suivante :

Elec4.png

Elel5.png

Séance 3 (21/05/2014)

Réalisation de filtre RC :Pour générer la valeur moyenne de PWM qu'on déjà obtenu ,il faut utiliser un filtre passe bas RC .Tout grâce à la formule,on a la fréquence coupure est: fc=1/2piRC. On applique alors comme valeurs R= 1kΩ et C = 1uF . On a alors le montage suivant :

El1.png

El2.png

Et on obtient une ligne horizontale et on modifie la valeur C=8nf,et on obtient le résultat suivant :

El3.png

Après il faut comparer la tension du capteur de pression et ce signal.

El4.png

El6.png


Conclusion

Ce projet nous a permis tout d'abord de se familiariser avec différentes langages de programmation Web,dont le HTML ,le JavaScript PHP. On a aussi eu l'occasion de découvrir et de manipuler le logiciel Altium Designer . La partie informatique a été finalisé et il fonctionne bien ,elle remplie sont objectif principal qui est la commande de Robot .L'affichage des valeurs des capteurs a bien été prise en compte sur la page réalisé,mais l'affichage des valeurs des capteurs de pressions n'été pas possible car la partie électronique n'as pas été finalisé. La partie électronique nous permet de voir une autre utilisation de logiciel Altium Designer ,déjà utilisé en conception de circuit électronique.