IMA3/IMA4 2021/2023 P8 : Différence entre versions
(→Les servomoteurs) |
(→Les servomoteurs) |
||
Ligne 34 : | Ligne 34 : | ||
===Les servomoteurs=== | ===Les servomoteurs=== | ||
− | Le montage est composé de deux servomoteurs AX-12, développés par la société Robotis. Chaque moteur | + | Le montage est composé de deux servomoteurs AX-12, développés par la société Robotis. Chaque moteur gère l'inclinaison du plateau mobile sur un axe en particulier. Ils sont reliés au labyrinthe via un système bielle-manivelle, permettant de transformer le mouvement de rotation du moteur en une translation, ce qui a comme effet de faire basculer le plateau vers le haut et vers le bas. C'est par le biais de ces moteurs que nous pouvons faire se déplacer la balle sur le plateau. |
[[Fichier:servoAX12.png|180px]] | [[Fichier:servoAX12.png|180px]] | ||
Version du 13 mai 2023 à 11:26
Sommaire
- 1 Résumé
- 2 Présentation générale
- 3 Gestion de projet
- 3.1 Contenu des séances
- 3.1.1 Séance du 10 Octobre (Vanne piézoélectrique)
- 3.1.2 Séance du 21 Octobre (Vanne piézoélectrique)
- 3.1.3 Séance du 28 Octobre
- 3.1.4 Séance du 18 Novembre
- 3.1.5 Séance du 21 Novembre
- 3.1.6 Séance du 25 Novembre
- 3.1.7 Séance du 28 Novembre
- 3.1.8 Séance du 8 Décembre
- 3.1.9 Séance du 15 Décembre
- 3.1.10 Séance du 18 Janvier
- 3.1.11 Séance du 25 Janvier
- 3.1.12 Séance du 1er Février
- 3.1.13 Séance du 8 Février
- 3.1.14 Séance du 15 Février
- 3.1.15 Séance du 15 Février
- 3.1.16 Séance du 1er Mars
- 3.1.17 Séance du 8 Mars
- 3.1.18 Séance du 15 Mars
- 3.1 Contenu des séances
- 4 Réalisations et résultats
- 5 Bilan
Résumé
Cette page est dédiée au groupe travaillant sur le labyrinthe automatique dans le cadre des projets IMA3/IMA4.
Présentation générale
Groupe
Nous sommes quatre étudiants en Systèmes Embarqués :
- Romain Pouillard
- Hugo Legendre
- Antoine Vion
- Dann Rodenburg (a rejoint le projet au début du Semestre 7)
Contexte
Initialement, nous travaillions sur une autre thématique de projet, qui était la Vanne Piézoélectrique. C'est après avoir rencontré plusieurs problèmes pendant l'avancement de notre projet, que nous nous sommes résolus à changer de sujet pour le labyrinthe automatique. Pour réaliser notre projet, nous avons récupéré la base d'un ancien projet IMA traitant un sujet similaire à celui-ci.
Il est intéressant de chercher à résoudre un labyrinthe. En effet, il est courant de rencontrer des situations qui se rapprochent d'un labyrinthe, telles que ne pas se retrouver sur le plan d'une ville ou d'un bâtiment. Or, la résolution d'un labyrinthe est un cas complexe qui peut vite devenir un casse-tête.
Objectif
Notre objectif est d'améliorer le fonctionnement de la maquette que nous avons récupéré. Il s'avère que le projet que nous avons récupéré n'est pas complètement opérationnel et qu'il ait besoin que nous retravaillons la partie mécanique et la partie informatique du projet. La finalité est d'avoir un labyrinthe plus complexe, capable d'amener la balle au point d'arrivé quelque soit le point de départ.
Description
Fonctionnement attendu
Une balle est placée dans le labyrinthe : peut importe sa position de départ, le système doit être capable d'amener la balle jusqu'à la sortie. Une fois la balle arrivée à la sortie, le système stabilise la balle à ce point. Pour faire rouler la balle, le plateau pivote sur deux axes différents.
Le labyrinthe
Le labyrinthe est représenté par une planche en bois, sur laquelle sont collés des murs en bois. C'est sur ce plateau que se déplace la balle.
Les servomoteurs
Le montage est composé de deux servomoteurs AX-12, développés par la société Robotis. Chaque moteur gère l'inclinaison du plateau mobile sur un axe en particulier. Ils sont reliés au labyrinthe via un système bielle-manivelle, permettant de transformer le mouvement de rotation du moteur en une translation, ce qui a comme effet de faire basculer le plateau vers le haut et vers le bas. C'est par le biais de ces moteurs que nous pouvons faire se déplacer la balle sur le plateau.
La caméra
Au dessus du plateau du labyrinthe, on retrouve une caméra Pixycam qui filme le labyrinthe. Elle est capable de détecter la balle et les murs, grâce à une sélection de couleur. Par exemple, la balle étant bleue, la caméra associe chaque pixel bleu à la balle.
La carte
Les servomoteurs et la caméra sont reliés à la carte Arduino UNO, sur laquelle se trouve le programme qui contrôle notre système.
Gestion de projet
Contenu des séances
Les séances dédiées au projet ont repris le 10 Octobre 2022. Lors des deux premières séances, nous avons travaillés sur la Vanne Piézoélectrique.
Séance du 10 Octobre (Vanne piézoélectrique)
Nous avons dressé la liste des composants que nous aurions besoin pour notre projet : Un capteur de pression, deux capteurs de débit et deux capteurs de tension. De plus, nous avons commencé à faire des recherches sur les muscles pneumatiques et à regarder quelle carte électronique nous pourrions utiliser.
Séance du 21 Octobre (Vanne piézoélectrique)
Nous avons tenté de faire fonctionner un système de 8 vannes avec un module Dspace que M. Lakhal nous a fourni en vue du projet. Cependant, nous avons manqué de données sur les vannes et la simulation sur Matlab était corrompue. De ce fait, nous n'avons pas été en mesure de contrôler les vannes.
Séance du 28 Octobre
Après avoir passé la majorité de la séance à essayer de faire fonctionner le module Dspace, nous avons cherché une autre alternative pour notre projet : Par manque de temps et de moyens, notre encadrant nous a proposé de changer de projet pour travailler sur le labyrinthe autonome. Nous avons utilisé le reste du temps de la séance à prendre en main notre nouveau projet. Pour répartir au mieux les tâches pour le projet, on a formé deux binômes : l'un formé de Romain et Antoine qui vont s'occuper de la partie mécanique, de l'amélioration du labyrinthe et l'autre formé de Dann et Hugo qui vont écrire le programme du labyrinthe.
Séance du 18 Novembre
Nous nous sommes intéressés au fonctionnement de la caméra Pixycam. Pour avoir accès à la vidéo et aux paramètres de la caméra, nous avons utilisé le logiciel Piximon. Grâce à ce logiciel, nous avons défini plusieurs groupes de couleurs : tous les pixels bleus sont associés à la caméra, et en tant que simple test, du rose pour détecter un mur. On a pris conscience qu'il faudra prendre des couleurs bien distinctes pour bien différencier les différentes parties du labyrinthe. Ensuite, on a lancé le programme présent sur la carte du projet. Pendant l'exécution du programme, la caméra détecte la position de la balle et l'envoie à la carte via une liaison série. En parallèle, nous avons commencé à réfléchir à d'autres moyens pour remplacer la colle qui fixe tous les éléments du montage, dans le but de le rendre plus esthétique et plus robuste.
Séance du 21 Novembre
Pendant cette séance, nous avons étudié le code déjà existant dans la carte. On a remarqué que l'un des servomoteurs ne répondait pas, il s'agissait en fait d'une erreur de port. Puis, on a défini la direction et le sens des axes sur lesquels la balle se déplace. Après cela, on a souligné la nécessité d'initialiser le système de coordonnées du labyrinthe. En effet, si le plateau n'est pas initialement droit ou si la caméra a bougé (ce cas est assez fréquent car la fixation de la caméra n'est pas solide).
Séance du 25 Novembre
L'objectif de cette séance est de comprendre comment commander les servomoteurs avec la librairie DynamixelSerial. Avec la commande moveSpeed(), on peut commander les moteurs en renseignant la position angulaire cible et la vitesse à laquelle le moteur va tourner. Cette commande est intéressante car elle permet de commander un moteur en sélectionnant son identifiant. Cependant, nous n'avons pas réussi à faire fonctionner les deux moteurs en même temps. Lorsque l'on disait aux deux moteurs, d'identifiant 1 et 2, de tourner, seul le moteur 2 répondait. D'un autre côté, on a pensé à remplacer le plateau en bois du labyrinthe par du plexiglas.
Séance du 28 Novembre
Nous avons élaboré les plans d'un nouveau labyrinthe, pour pouvoir ensuite le couper à la découpeuse laser. Cette version du labyrinthe sera plus compliquée que celle que l'on a récupérée. Puis on a résolu le problème avec les servomoteurs de la séance précédente : il s'agissait d'un câble liant l'un des moteurs à la carte qui était défectueux. Contrairement à ce que nous pensions, cela n'était pas dû à un problème provenant du servomoteur, car nous avons emprunté un autre servomoteur et nous étions confronté au même problème. Nous avons donc récupéré un autre câble pour régler le problème.
Séance du 8 Décembre
Ayant encadré le projet que nous avons récupéré, M. Conrard nous a proposé de nous apporter son aide pour le projet. Il nous a montré le logiciel RoboPlus, qui permet de tester en commandant manuellement les moteurs et de changer les variables comme par exemple son identifiant. On est à présent sûr que les problèmes rencontrés précédemment avec les moteurs n'étaient pas dus aux identifiants. Etant donné du retard que nous avons pris, nous nous sommes fixés un objectif intermédiaire, inspiré de la vidéo que M. Lakhal nous a envoyé qui est de garder la balle stable sur un seul axe. Le but est de réussir à manipuler la balle sur un axe, et quand cela sera terminé, il ne restera plus qu'à faire pareil avec l'autre axe pour pouvoir contrôler la balle sur deux axes. RoboPlus permet également d'écrire un programme et de directement l'envoyer vers moteur grâce à un contrôleur. Les exemples de code nous ont permis de comprendre qu'il faut paramétrer les moteurs en mode "joint", c'est-à-dire que la position angulaire des moteurs sera limitée afin de ne pas endommager le plateau du labyrinthe.
Séance du 15 Décembre
On a commencé à écrire un programme permettant de garder une balle en équilibre sur un axe, en utilisant un des servomoteurs.
Séance du 18 Janvier
Nous avons poursuivi l'étude cinématique du projet, dont le dimensionnement de la bielle qui lie le moteur au plateau du labyrinthe. Grâce à la formation au découpage laser au Fabricarium qu'Antoine et Romain ont pu bénéficier , nous avons découpé des plaques de plexiglas pour former la nouvelle base et le nouveau plateau. Enfin, nous avons commencé la simulation d'un PID pour pouvoir ensuite l'implémenter dans notre code.