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

De Wiki d'activités IMA

1ère séance: Informatique:

Au cours de la première séance nous avons pris connaissance des différentes commandes du robot en mode manuel depuis le terminal. Ensuite nous avons pu créer un début de page HTML dite de 'test' qui est fourni dans les annexes afin de pouvoir tester les fonctions de Websockets. Afin de réaliser le système des Websocket nous avons ajouté au code déjà existant les différentes commandes présentes dans la source du démon. Ceci nous permet donc maintenant, depuis la page HTML de test, d'envoyer des commandes du type M1+ ou M4- off et de les send (envoyer) directement au bras robotisé sans repasser par le terminal.

Nous avons également décidé d'intégrer une photo du bras à la page HTML en l'annotant comme ceci: - M1 - M2 - M3 - M4 - M5 - LED Puis en ajoutant une légende avec pour chacune de ces annotations un bouton + et un bouton - sur lesquels l'utilisateur cliquera afin d'effectuer les opérations voulues. En ce qui concerne la LED, elle ne peut être éteinte ou allumée seulement si une commande est envoyée: les boutons + et - de la LED n'existeront donc pas car ils doivent être alliés à une autre commande moteur.

Comme solution a ce problème de LED nous avons: - Proposer les boutons + et - pour la LED et programmer par exemple un mouvement de moteur en plus -> M5+ on M5+ off Nous allons essayer toutes ces idées lors de la prochaine séance.

Pagehtml.png

1ère séance : électronique

Lors de cette première séance, nous avons étudié la partie électronique du sujet et nous nous sommes intéréssés à la configuration des capteurs de pression. Ces capteurs de pression délivrent une tension qui est proportionelle à la pression calculée. Or cette tension est un signal analogique que la carte incluse sur la Nanoboard ne peut traiter directement. Nous avons donc conclue qu’il serait indispensable de passer par un convertisseur analogique numérique (CAN).

Pour mettre en place ce convertisseur, nous avons eu comme idée de créer un signal de tension créé à partir d’une valeur numérique en passant par une PWM. L’idée est ici de modifier le rapport cyclique du signal grâce à une commande codée sur 8 bits. Afin de nous familiariser avec le matériel et le logiciel Altium nous avons fait en sorte de visualiser un signal PWM, ce qui nous a donné l’oscillographe ci-dessous. Nous avons également visualisé l’évolution du signal en fonction de la commande sous 8 bits et remarquer que la fréquence n’était pas modifié.


Oscillo.jpeg


L'idée est désormais de transformer ce signal en un signal de rampe dont la valeur moyenne sera directement lié à la commande numérique sous 8 bits. Il nous suffira ensuite de comparer cette valeur à la tension que l'on veut mesurer et de récupérer la valeur numérique correspondante dès que la tension PWM est supérieur à la tension du composant.


'''2e séance : partie informatique'''

Lors de cette 2e séance, nous avons continuer à tester le bras robotique à l'aide des commandes que nous lui envoyions manuellement. Ensuite, nous avons continuer à construire la page web qui permettra de contrôler le bras via le réseau. Nous avons donc compléter le code Javascript de la page HTML, afin de faire apparaitre différents boutons qui permettent de bouger les différents moteurs.

Une fois ce travail finit, nous nous sommes attaqués à une autre partie du problème, que nous avons trouvé assez difficile : le port série. En effet, nous devons récupérer les valeurs du potentiomètre et des 3 accéléromètres présent sur le bras robotique, et les afficher sur la page web. Nous avons donc travaillé sur le fichier donné en exemple, qui permet d'envoyer un octet sur le port série, et d'en récupérer 8. Cependant, le code qui était présent sur la carte ARDUINO n'était pas le même que celui dont nous nous attendions. Nous avons donc du modifier le code de façon à ce qu'il nous renvoi bien 8 octets après que l'on en ait envoyer un. Cette partie nous a occupé pendant une bonne partie de la séance. Nous avons également commencé à rechercher comment modifier le fond d'une page internet, bien que cette partie est purement esthétique, et donc facultative.


2e séance : électronique

Lors de cette séance, nous avons mis en place la partie numérique sous Altium puis l'avons testé à l'aide de la Nanoboard.

A l'aide d'un compteur 8 bits, nous avons généré le signal PWM puis avons réglé les fréquences des générateurs d'horloge.

Le schéma de la partie numérique est le suivant :

600px


L'idée est désormais de filtrer le signal PWM (port HB2) afin d'obtenir un signal de rampe, pour cela, nous utiliserons un simple filtre RC passe bas. Ensuite, nous devrons comparer la valeur moyenne de ce signal avec la tension du capteur de pression pour obtenir le résultat de la comparaison sur le port HA2 (nous avons songé à utiliser un AOP en comparateur simple ou en comparateur à Hystérésis). Cela nous permettra de récupérer la valeur numérique directement visible sur les LEDS via le FD8B qui va enregistrer les 8 bits correspondant au signal analogique dès que la tension PWM sera égale à la tension du capteur.

Nous réaliserons la partie analogie lors de la prochaine séance.