Skip to content
interface-graphique2 edited this page Sep 3, 2024 · 20 revisions

Bienvenue au WikiHow de StringUS!

­StringUs est un projet de S4 open source fait par les étudiants en génie robotique de la 68ᵉ promotion. Le but est de faire un robot Scara qui crée du "String art" à partir d'images numériques et de rendre le tout accessible pour n'importe qui avec de l'intérêt ! :shipit:

Aperçu du résultat final

1. Contenu logiciel

La section suivante couvre l'installation des logiciels et des librairies nécessaires à la compilation du code.

1.1 Installation d'Arduino IDE

Afin d'installer Arduino IDE et les librairies nécessaires pour coder les moteurs, il suffit de suivre les étapes suivantes :

  1. Télécharger l'application Arduino IDE ici
  2. Ouvrir l'application et se rendre dans Fichier, puis Préférences
  3. Dans la section URL de gestionnaire de cartes supplémentaires, rajouter la ligne suivante: https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json
  4. Confirmer les changements en pressant OK dans le bas à droite de l'écran.
  5. Enfin, installer les librairies Motorcontrole dans la section Outils puis Type de carte et Gestionnaire de carte. Taper OpenCR dans la barre de recherche et installer les librairies.

1.2 Installation des librairies pour OpenCR

Afin de pouvoir compiler le code de la carte OpenCR, il est nécessaire d'installer quelques librairies selon les étapes suivantes :

  1. Ouvrir l'application Arduino IDE et se rendre dans Croquis, puis Inclure une bibliothèque et sélectionner Gestionnaires de bibliothèques

  2. Rentrer Dynamixel dans la barre de recherche

  3. Installer les libraires

1.3.1 Distribution

Pour executer le programme vous pouvez télécharger le dossier dist.zip, l'extraire, et double-clicker sur StringUS.exe. Ce dossier contient déjà un environnement python et tous les dépendances. Si vous voulez executer le programme dans votre propre environnement python, télécharger le git et passer à la section suivante.

1.3.2 Librairies nécessaires

  • PyQt5
  • opencv-python
  • csv
  • numpy
  • pillow
  • scipy
  • imageio-ffmpeg
  • numba
  • pandas
  • pyserial
  • qimage2ndarray (pip install)

1.4 Démarrage du GUI

Pour démarrer le GUI, executer le script StringUS/GUI/STRINGUS_GUI.py

1.5 Utilisation du GUI

1.5.1 Installer les libraires

Pour utiliser le GUI, il faut installer la librairie PyQT5 et PIL

1.5.2 Fenêtre Principale

La fenêtre principale est la page d'accueil du GUI.

1.5.2.1 Procédure de calibration

Lors de la première initialisation du robot ou lors d'un changement de table tournante (changement d'oeuvre), il faut procéder à la calibration du robot. Après avoir démarré le GUI, il est nécessaire de sélectionner le port de communication entre l'ordinateur utilisé et l'arduino. Pour ce faire, sous l'onglet Tools, choisir Connection Port. Normalement, l'option Auto devrait automatiquement trouver le port relié au microcontrôleur. Au cas où ca ne fonctionne pas, et que l'arduino est bien relié à l'ordinateur par un câble USB-C permettant la communication de données (càd, pas power only), on peut manuellement sélectionner le port de son choix et tester la communication. Un coup le port trouvé, appuyer sur Enregistrer. Il est aussi nécessaire de préciser qu'en ouvrant l'onglet, si la communication est déjà établie, il n'est pas nécessaire de peser sur enregistrer ou même de ré-ouvrir l'onglet Connection Port.

L'étape suivante consiste à calibrer les positions d'approches et les séquences de contournage de clou. Pour ce faire, sous l'onglet Tools, choisir l'option Calibration. Un menu de calibration devrait apparaitre. Une liste d'options est disponible pour chaque côté du robot. La première étape est de marquer au crayon Sharpie ou d'une quelconque autre manière la position du clou qui est le plus possible au centre du robot (le premier clou aligné entre les supports à moteurs, ou complètement au "Sud" du robot). Ensuite, les options Envoyer robot à approche X feront pivoter la table à une position. Il est ensuite possible de désactiver le torque moteur avec le checkbox en bas à gauche pour bouger manuellement (ouioui, avec tes mains) les bras du robot pour placer le bout du end-effector juste devant le clou marqué précdemment (1-2 cm devant). Une fois la position désirée atteinte, il faut ré-activer le torque moteurs. En pesant ensuite sur Calibrer Approche X, le robot enregistrera cette position comme la bonne position d'approche. Il faut ensuite re-calibrer la séquence de contournage en pesant sur Calibrer Cercle X. Le robot ira se placer à la position d'approche et désactivera automatiquement le torque moteurs. Il sera ensuite possible de manuellement bouger l'end-effector autour du clou marqué (bouger tranquillement, 3 sec suffit). La calibration est maintenant terminée! Il est possible de re-produire la séquence pour vérifier que tout roule sur des roulettes avec les boutons Voir Séquence Complète. La calibration doit être effectuée des deux côtés du robot (Est/Ouest). Bravo!

De retour à la fenêtre principale, il est possible de sélectionner l'image souhaitée en cliquant sur Browse et de rentrer les spécification de l'oeuvre en cours. Il est aussi possible de télecharger des paramètres préalablement enregistrer en cliquant sur le menu déroulant File en haut à droit puis Open. C'est aussi à cette endroit que les fichiers peuvent être enregistrés et qu'il est possible de démarrer le robot depuis la dernière position de l'oeuvre en cours.

1.5.2.2 Fenêtre Paramètres Avancés

Dans cette fenêtre, il est possible de modifier certains paramètres soient la séquence de fil, la grosseur du fil, le poids du fil par pixel et la modification des couleurs pré-selectionnées. Il est aussi possible de faire des modifications d'images comme le recadrage par exemple.

Warning

Il est conseillé de bien connaitre ces paramètres avant de les modifiers.

1.5.2.3 Fenêtre Progression

C'est dans cette fenêtre que l'état de la progression est affiché. Il est possible de visualier ou devrait être le robot dans le processus et de mettre sur pause le robot. C'est aussi dans cette fenêtre que la couleur à changer sera affiché. Lorsque celle-ci sera affiché, le robot se mettra sur pause automatiquement. Il faudra ensuite changer la couleur et cliquer sur Resume pour repartir le robot.

2. Composantes physiques

2.1 Découpage de bois

Dans le dossier Documents/Materiel/DecoupeDeBois

La pièce intitulée BaseBois.STL contient toutes les dimensions de la grande planche qui supporte l'ensemble du projet. Il est possible d'usiner l'ensemble à la main comme nous avons fait ou bien de le séparer en plusieurs morceaux pour le faire à la découpe laser. Pour le faire à la main, il est recommandé de pré-percer les trous pour ne pas briser la planche. Le premier modèle de planche fut découpé à la main, mais pour les autres itérations la planche était découpée au laser pour plus de simplicité et d'efficacité.

2.2 Commande de matériel

Dans le dossier Documents/Materiel/Consommables

Pour ce matériel, il faut le commander en ligne soit avec McMasterCarr, Amazon ou bien un magasin de matériel. Certaines pièces étaient fournies dans le cadre de ce projet, mais à l'aide de la documentation dans le dossier, il est possible de tout retrouver facilement en ligne.

2.3 Imprimante 3D

Dans le dossier Documents/Materiel/Imprimante3D

L'ensemble des pièces se trouve dans les documents dans la section imprimante 3D. Presque toutes les pièces rentrent dans une imprimante de même ou plus grande dimension qu'une Ultimaker S3 (Les dimensions d'une Anycubic Mega X ou plus est nécessaire pour les Cercle_1sur5.STL). Si certaines pièces sont trop grandes pour votre imprimante, il est toujours possible de les séparer en sous-sections. En ce qui concerne les paramètres de l'imprimante, un remplissage de 15% avec tous les supports fonctionne très bien.

Tip

Faites attention de bien orienter certaines pièces pour éviter des supports inutiles et désagréables à enlever :)

3. Assemblage

Le projet utilise une combinaison de pièces imprimées 3D, de pièces de bois découpées et de pièces achetées pour fonctionner. Ainsi, une fois que tout le matériel est réuni, il est possible de se fier aux assemblages dans les documents pour savoir comment tout installer ensemble. L'emplacement de chaque pièce et de chaque connexion est indiqué dans ceux-ci. Finalement, après avoir monté le tout et avoir mis en place le code sur l'ordinateur, il faut se connecter à l'Arduino et commencer à s'amuser ! Voici un aperçu de l'assemblage final disponible en dessin 3D avec ce lien : Assemblage Final

Warning

C'est vraiment ardu d'installer les clous, mais ca en vaut la peine :)

4. Conclusion

Finalement, si l'équipe de StringUS avait à revoir un aspect du projet, ce serait le choix de moteur. Par exemple, des moteurs pas à pas seraient beaucoup mieux pour le contrôle et la précision du robot. En effet, les moteurs Dynamixels emmènent beaucoup de problèmes et de complexité pour peu d'avantages comparée à ceux-ci. Bonne chance et amusez-vous, ce projet fut très plaisant à faire et si vous avez des questions n'hésitez pas ! Cependant, si l'équipe de StringUS avait à revoir un aspect du projet, ce serait le choix de moteur. En effet, des moteurs pas à pas seraient beaucoup mieux pour le contrôle et la précision du robot. En effet, les moteurs Dynamixels emmènent beaucoup de problèmes et de complexité pour peu d'avantages.

5. Licence

Licence de MIT.