Skip to content

VlogUS_Wiki

LuKBonenfant edited this page Apr 10, 2025 · 44 revisions

VlogUS

VlogUS est un projet open-source dédié au développement d'un robot delta capable de suivre les visages en temps réel grâce à un flux vidéo. Conçu par une équipe de la 69ᵉ promotion en S4, ce wiki documente en détail toutes les étapes nécessaires à sa reproduction, tant sur le plan mécanique que logiciel. Amusez-vous bien !

1. Choix de license

Étant donné que notre projet est en open source, nous avons choisi la licence MIT pour sa grande permissivité et sa simplicité. Cette licence offre aux utilisateurs la liberté de modifier, distribuer, exploiter commercialement ou utiliser notre projet de manière privée selon leurs besoins. Cependant, nous n’offrons aucune garantie quant aux conséquences de son utilisation, et les utilisateurs ne peuvent pas nous tenir responsables en cas de préjudice ou de tout autre problème.

Pour une explication détaillée de la licence, consultez le fichier LICENSE.

2. Liste du matériel

Pièce Prix Lien Quantité
Moteur pas-à-pas NEMA17 12.76$ Lien 1
Contrôleur de moteur pas-à-pas 21.49$ Lien 1
DYNAMIXEL XL430-W250-T 73.38$ Lien 3
M5x20 Vis Socket Head 0.44$ Lien 4
M5x20 tête plate 0.83$ Lien 4
M4x16 tête plate 0.66$ Lien 6
M4x16 Vis Socket Head 0.41$ Lien 6
M2x10 Vis Socket Head 0.55$ Lien 4
M2x20 Vis Pan Head 0.60$ Lien 12
Écrous M5 0.29$ Lien 4
Inserts M5 11.49$ Lien 16
Inserts M4 14.99$ Lien 12
Raspberry Pi5 113.95$ Lien 1
OpenRB-150 24.90$ Lien 1
Joints à rotule 14.66$ Lien 12
Roulement à bille 10.59$ Lien 1
Tiges filetées M5 15.99$ Lien 6

3. Liste des pièces à imprimer

Les pièces suivantes sont imprimées en 3D afin de minimiser la masse du robot. Elles ont toutes un remplissage de 15 % et le slicer utilisé est OrcaSlicer. Elles sont conçues pour être compatibles avec un plateau d'impression de 220 mm x 220 mm.

Pièce Lien Quantité
Boite pour électronique Lien 1
Plaque arrière du support de caméra Lien 1
Plaque avant du support de caméra Lien 1
Engrenage #1 pour support de caméra Lien 1
Engrenage #2 pour support de caméra Lien 1
Monture pour cellulaire Lien 1
Crémaillère pour caméra Lien 1
Bras droit pour cellulaire Lien 1
Bras gauche pour cellulaire Lien 1
Base du robot Lien 1
Stand Lien 1
Effecteur Lien 1
Support moteurs Lien 3
Biceps Lien 3

4. Assemblage

4.1. Mécanique

L'assemblage mécanique du robot peut se faire en quatre (4) parties. Pour voir l'assemblage final, cliquez ici. Sinon, les vues suivantes pourront être utiles :

Vue 1 - Boite pour électronique et piédestal:

La boite électrique est tenue au piédestal avec 4 vis Socket head M5x20 ainsi que 4 écrous M5.

Description

Vue 2 - Base et supports moteurs

La base circulaire du robot est fixée au piédestal avec 4 vis à tête plate M5x20. Quatre (4) inserts sont dans dans le piédestal. Les supports à moteur sont tenus à la base circulaire avec 6 vis à tête plate M4x16. Dans les 2 trous des supports, mettre des inserts M4.

Description

Vue 3 - Moteurs, biceps et tiges

Les moteurs sont tenus avec 4 vis M2.5x20 aux supports. Les deux trous au bout du biceps permettent de mettre des inserts M5 afin de pouvoir y visser les joints à rotule. Les tiges filetées se vissent dans les côtés femelles des joints à rotules. Les biceps sont tenus sur les moteurs à l'aide de 4 vis M2x20.

Description

Vue 4 - Support à caméra

Le support caméra est imprimé en 3D. Il est maintenu au robot avec 4 vis M4x16. 2 vis M4x16 tiennent mécanisme de sur la monture. Toutes les autres pièces sont tenues par compression. Le moteur pas-à-pas NEMA17 est maintenu sur la base par 4vis M2x10.

Description

Électrique

La figure suivante présente les branchements requis pour faire fonctionner le système VlogUS. Il est possible d'utiliser des ports GPIO différents sur le Raspberry Pi. Il est aussi nécessaire de calibrer le courant maximal passant dans le contrôleur du moteur pas à pas. Ce dernier est en mesure de supporter 1,2A au maximum, mais cela le fait surchauffer. Puisque le couple maximal n'est pas necéssaire, il est décidé de seulement lui envoyer 0,8A. Afin de le calibrer il faut un multimètre et deux sources de tension, une à 12V et l'autre à 3.3V ou 5V(Dépends de la tension de votre microcontrôleur). Un tournevis, un breadboard et des pinces crocodiles sont aussi necéssaires. Des lunettes de sécurité sont fortement recommandées.

Étapes pour calibrer le courant au moteur pas-à-pas :

  1. Trouvez la valeur de la résistance de détection(Rsense) de votre contrôleur de moteur pas à pas. Celle-ci peut être déterminée en mesurant la résistance près du cadran à l'aide d'un multimètre. Dans le cas du A4988 utilisé dans ce projet, la résistance mesurée était de 0,05 Ω. Cependant, cette valeur peut varier selon le fabricant, il est donc important de la vérifier.
  2. Trouver la valeur de Vref à l'aide de l'équation de courant limite. Dans le cas du A4988, l'équation est Imax*8*Rsense = Vref. L'objectif est de déterminer la valeur de Vref correspondant à Imax. Donc quand nous évaluons: (0,8A)*8*(0,05Ω) = 0,32V.
  3. Commencez par installer le contrôleur sur le breadboard sans rien connecter ni allumer. Branchez ensuite la borne positive d'une source de tension de 12V à la pin VMOT du contrôleur et la borne négative au GND adjacent. Répétez l’opération avec une source de tension de 3,3V ou 5V en la connectant à la pin VDD. Assurez-vous de ne pas brancher les pins 1A, 1B, 2A et 2B au moteur, car la valeur de Vref pourrait être fausse et risque d’endommager le moteur. Gardez vos sources de tension éteintes.
  4. À l'aide d'un multimètre réglé en mode tension, connectez la borne positive au cadran (si votre tournevis est métallique, branchez le dessus et vous pouvez l'utiliser directement pour la mesure) et la borne négative à un GND. Une fois les connexions en place, allumez vos sources de tension.
  5. À l’aide du tournevis, tournez lentement le cadran jusqu’à atteindre la valeur de Vref souhaitée. Faites-le progressivement pour ajuster précisément la tension. Une fois que la valeur de Vref est atteinte, éteignez vos sources de tension et débranchez ensuite les fils.

Description

L'image ci-dessous, montre les tensions utilisées pour que le robot fonctionne de manière optimale.

Description

Informatique

Du côté informatique, les programmes fonctionnent fonctionnent su VSCode V1.98.2. Nous avions fait une mise-à-jour, mais la version suivante était instable. PlatformIO permet de programmer le OpenRB, donc les moteurs.

Téléverser le code dans le OpenRB :

  1. Dans l'onglet « Extensions », rechercher « PlatformIO » et l'installer
  2. Ouvrir le dossier /path/Vers/Le/Projet/VlogUS/OpenRB

Créer l'exécutable à partir du C++ :

  1. Dans l'onglet « Extensions », rechercher « CMake Tools » et l'installer
  2. Cliquer sur le bouton Build

Créer l'environnement Python :

  1. Écrire dans le terminal
  2.   cd /path/Vers/Le/Projet/
      pip install -r requirements.txt

Faire fonctionner le code :

  1. Écrire dans le terminal
  2.   cd /path/Vers/Le/Projet/
      source myenv/bin/activate
      python3 app.py
  3. Un URL devrait apparaître dans le terminal. Ex: https://192.168.0.20
  4. Entrer l'URL dans un navigateur sur votre appareil mobile. Ex: https://192.168.0.20

Améliorations proposées pour VlogUS

Côté mécanique

  • Zone atteignable de l’effecteur : Allonger les biceps et avant-bras pour suivre des mouvements plus éloignés et éviter de sortir du cadre caméra.
    • Nécessite d’augmenter la hauteur de la base pour éviter que les bras touchent la table.
  • Équilibrage de l’effecteur : Optimiser la position du support caméra pour contrebalancer le moteur pas à pas, assurant une caméra horizontale (non inclinée).
  • Renfort de la base : Ajouter des renforts à la boîte électronique (trou des fils) pour éviter la déformation lors de mouvements rapides.

Côté informatique

  • Fluidité et précision des mouvements : Réduire les saccades pour améliorer la qualité vidéo.
    • Problème : Le Raspberry Pi manque de puissance pour analyser les images et gérer les tâches simultanément.
    • Solution : Passer à un micro-ordinateur plus performant, comme le Jetson Nano.