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

De Wiki d'activités IMA
Révision datée du 28 avril 2014 à 18:00 par Jwasilew (discussion | contributions) (Frameworks)

Introduction

Bras Robotique

Le projet de contrôle du bras robotique a été le projet confiés à quatre élèves IMA du groupe de TD n°2, durant l'année 2014: Jean Wasilewski, Pierre Letousey, Mehdi Zeggai et Timothée Teneur.

Le projet vise à contrôler un bras robotique, ainsi qu'à en récupérer la valeurs des capteurs en temps réel.

Il se découpe donc en deux parties. Une première partie informatique, ayant pour objectif de créer une interface Web permettant de gérer les mouvements du robot.

Et une deuxième partie, électronique quant à elle, visant à assurer la communication entre les capteurs et l'interface Web.


Matériel utilisé

Pour parvenir à cet objectif, il a été nécessaire d'utiliser le matériel suivant:

  • Un bras robotique controlable par USB
  • Une FoxBoard
  • Un Arduino Mega (temporaire)
  • Une carte électronique de liaison entre l'Arduino et les capteurs
  • Une NanoBoard


Principe de fonctionnement

Schéma de fonctionnement du bras robotique, première version

Dans un premier temps, pour la partie informatique, la NanoBoard a été remplacé par un Arduino Mega.

L'Arduino a servi à effectuer les fonctions que la NanoBoard sera amener à faire dans la partie électronique.

Le code source de l'Arduino est disponible ici.

Le principe de fonctionnement est le suivant, l'utilisateur donne des ordres au bras, celui-ci les effectuent, et retourne toute les informations d'état.

Et cela, en cliquant sur des boutons généré par un code HTML hébergé sur la FoxBoard, affiché par un serveur Web lighthttpd.

Ces pages Web vont ordonner au bras de bouger, à travers l'interface USB-Série du bras robotique.

Elle vont aussi, en meme temps, récupérer les valeurs des capteurs, à l'aide de l'Arduino Mega et de la carte de liaison.


Pour la seconde partie du projet, la carte Arduino a été abandonnée au profit d'une de la NanoBoard.

L'objectif recherché est le suivant, pouvoir réaliser un circuit capable de remplacer l'ensemble Aduino Mega et Carte de liaison.


La partie informatique

L'objectif de cette partie est de créer une interface homme-machine permettant de controler le bras robotique, tout en récupérant les données des différents capteurs.

Frameworks

Afin de réaliser l'interface utilisateur, ce projet utilise le framework [Bootstrap], qui permet en peu de lignes de créer un environnement simple et clair.

Ce framework utilise, pour son fonctionnement interne, le framework [jQuery].

Quant aux requetes pour récupérer les capteurs, le site Web utilise une fonction permettant de lire le contenu d'un fichier mis en paramètre, dont le code source est disponible ici.

Une fois ces frameworks installés, le système suit le schéma suivant.

Bras Robotique

Interface

Pour l'interface, il a été décidé que l'utilisateur ne pourrait se déplacer que sur cinq pages :

  • La page d'accueil
  • La page "A propos de" (qui ne sera pas détaillé après puisque qu'elle ne contient pas de contenu apportant quelque chose au projet)
  • La page du mode manuel
  • La page du mode séquentiel
  • La page du mode automatique

La page d'accueil

Dans cette page, l'utilisateur a le choix entre les différents mode de fonctionnements du robot, accessible à l'aide de boutons.

La page contient une barre de navigation, qui sera commune à toute les pages, permettant de revenir à la page d'accueil, ou d'accéder à la page "à propos de".

La page du mode manuel

Le mode manuel à été le premier mode à être créer, puisqu'il a permis de vérifier que tous les autres modes fonctionnaient correctement (autant la partie électronique que les modes automatique et séquentiel).

Il se compose 12 boutons ordonnées dans un tableau, chaque bouton permettant de tourner un moteur dans un sens ou l'autre, ou de serrer ou dé-serrer la pince, ou encore d'allumer ou d’éteindre la LED.

Chaque bouton contient la propriété javascript [onClick], qui effectue une action javascript lors d'un clique sur le bouton.

Plus précisément, chaque bouton a dans sa propriété [onClick] la fonction cmd, avec comme paramètre, la commande à envoyer au serveur UDP contrôlant le robot

La page du mode séquentiel

La page du mode automatique

Conclusion

La partie électronique

Carte de liaison

Convertisseur Analogique/Numérique

Conclusion

Conclusion Finale