# Projet ROB3 2025

# Le sujet du projet

Vous êtes réparti.e.s en groupes de 6 élèves, votre but est de concevoir et fabriquer un robot capable de réaliser un exercice défini dans le présent cahier des charges.

### 1. Le robot

#### 1.1 Description générale.

  
Vous devez construire un robot schématisé sur la figure 1 et composé de la façon suivante :

- Un charriot mobile de type unicycle amené à se déplacer dans un plan horizontal (le sol d’une arène de jeu).
- Un bras à 1 ddl fixé sur le charriot mobile. Le bras est constitué d’un parallélogramme dans le plan vertical, la barre fixée au charriot se situant dans le plan horizontal, perpendiculairement à l’essieu.
- Une pince montée vers l’avant du robot sur la barre horizontale mobile du parallélogramme.

Vous êtes réparti.e.s en groupes de 6 élèves, votre but est de concevoir et fabriquer un robot capable de réaliser un exercice défini dans le présent cahier des charges.

![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-02/embedded-image-tfxeuatt.png)

*Figure 1 : allure générale du robot.*

#### 1.2 Matériel à disposition pour la fabrication du robot et de son contrôleur

Un kit pour l’équipe composé de :

- Une pince 3551 fournie en kit, avec un servo moteur intégré.
- Trois moteurs KTECH MS4015-V3 contrôlables en vitesse et intégrant une mesure de position.
- Deux roues Pleine Guitel Hervieu Ø 50mm destinées à être motorisée et une roue pivotante Guitel Hervieu, Ø 50mm.
- Une carte Arduino UNO + un shield Arduino pour la communication via un bus CAN avec les moteurs
- Deux capteurs de distance à ultrasons HC-SR04
- Une batterie RS PRO 12V 1.2Ah. Un kit de connexion permettant d’alimenter l’Arduino avec la batterie.

Dans le FABLAB Sorbonne Université, sont également disponibles :

- Des planches de médium, 300mmx600mm ép. 6mm ou 3mm, découpables au LASER dans le FABLAB.
- Des petits composants électroniques et mécaniques standard.
- Du filament pour les imprimantes 3D du FABLAB.

### 2. La tâche

La tâche consiste à déplacer un objet depuis sa configuration initiale vers la configuration finale, à l’intérieur d’une arène.

#### 2.1 L'objet

L’objet est constitué d’un de trois corps empilés selon un axe vertical :

- En bas : un parallélépipède base carrée de 30 mm et de hauteur h, comprise entre 30mm et 60 mm (inconnue avant l’épreuve).
- Au milieu : un parallélépipède de hauteur 30 mm et de section carrée de 10 mm de côté, par laquelle le robot doit le saisir.
- En haut, un cube d’arête 30 mm.

L’assemblage est jointif, mesure au total 60 + h mm de hauteur ; les faces des trois solides sont perpendiculaires deux à deux et leurs trois centres sont alignés sur une droite verticale, cf. Figure 2. L’équipe qui souhaite en connaître son poids peut le peser.

![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-02/embedded-image-fmkuohgf.png)

*Figure 2 : objet à manipuler. Il doit être saisi avec la pince dans la partie amincie*

#### 2.2 L'arène et la tâche à réaliser

L’arène est un plan horizontal carré bordé par des murets verticaux de 10 cm de hauteur. La distance entre les faces intérieures de deux murets opposés est de 1500 ± 10 mm. L’arène est représentée sur la figure 3 par le carré bleu ABCD.

Dans la configuration initiale, le centre de l’objet est placé à une distance a<sub>1</sub> du côté AC et à une distance d<sub>1</sub> du côté AB. Dans la configuration finale désirée, le centre de l’objet doit être placé à une distance a<sub>2</sub> du côté BD et à une distance d<sub>2</sub> du côté CD.

Dans les deux configurations, les faces de l’objet sont parallèles aux côtés du carré.

Les distances a<sub>1</sub>, a<sub>2</sub>, d<sub>1</sub> et d<sub>2</sub> sont inconnues du robot, mais respectent la condition suivante : 350 mm&gt;a<sub>1</sub>, a<sub>2 </sub>,d<sub>1</sub>, d<sub>2</sub>&gt;250 mm

Pour pouvoir localiser l’objet et la position désirée, trois bornes cubiques (en violet sur la figure 3), de même empreinte au sol que l’objet à saisir, sont positionnés contre les côtés du carré :

- Le premier est plaqué sur le côté BD, et son centre est distant du côté AB de d<sub>1</sub> ;
- Le deuxième est plaqué sur le côté AC, et son centre est distant du côté CD de d<sub>2</sub> ;
- Le troisième est plaqué sur le côté CD, et son centre est distant du côté BD de a<sub>2</sub>.

Au début du jeu, le robot est placé par l’équipe dans une configuration initiale. Dans cette configuration :

- La distance entre le centre de son essieu et le côté BD est a<sub>3</sub>, imposée par l’arbitre (mais inconnue avant l’épreuve) entre 350 et 600 mm.
- La distance entre le centre de son essieu et le côté AB est d<sub>3</sub>, imposée par l’arbitre (mais inconnue avant l’épreuve) entre 800 et 1000 mm.
- L’orientation est choisie par l’équipe.

![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-02/embedded-image-vq0ocn2i.png)

*Figure 3 : arène avec le robot dans sa configuration de départ, l’objet dans ses configurations de départ (en vert) et d’arrivée (en orange), les obstacles fixes (violet).*

<span style="font-size: 11.0pt; line-height: 107%; font-family: 'Century Gothic',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: FR; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Au top départ de l’arbitre, l’équipe actionne un bouton poussoir monté sur le robot. Le robot doit alors fonctionner en mode automatique (sans pilote ni aide humaine).</span>

### 3. Score

Une partie de la note du module (10 points sur 20) est attribuée lors de la démonstration de la dernière séance (à 10h, 10h45 et 11h30, ordre de passage tiré au sort). Le barème est le suivant

<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" id="bkmrk-le-robot-se-d%C3%A9place%C2%A0" style="width: 100%; border-collapse: collapse; border: none; height: 160px;" width="100%"><tbody><tr style="height: 20px;"><td style="width: 375.4pt; border: 1pt solid windowtext; padding: 0cm 5.4pt; height: 20px;" valign="top" width="501">Le robot se déplace après le top départ et s’arrête sans taper dans un obstacle

</td><td style="width: 77.7pt; border-top: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 20px;" valign="top" width="104">1 point

</td></tr><tr style="height: 20px;"><td style="width: 375.4pt; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 20px;" valign="top" width="501">Le robot sait se déplacer en maintenant constante (à 5% près) une distance par rapport au muret<span style="mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast;">.</span>

</td><td style="width: 77.7pt; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 20px;" valign="top" width="104">2 points

</td></tr><tr style="height: 20px;"><td style="width: 375.4pt; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 20px;" valign="top" width="501">Le robot sait détecter les bornes placées le long du muret et changer son comportement en conséquence

</td><td style="width: 77.7pt; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 20px;" valign="top" width="104">1 point

</td></tr><tr style="height: 20px;"><td style="width: 375.4pt; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 20px;" valign="top" width="501">Le robot sait tourner de 90° (+/- 2)

</td><td style="width: 77.7pt; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 20px;" valign="top" width="104">1 point

</td></tr><tr style="height: 20px;"><td style="width: 375.4pt; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 20px;" valign="top" width="501">Le robot sait saisir l’objet s’il est droit devant lui, à une distance inconnue

</td><td style="width: 77.7pt; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 20px;" valign="top" width="104">2 points

</td></tr><tr style="height: 20px;"><td style="width: 375.4pt; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 20px;" valign="top" width="501">Le robot sait relâcher l’objet et se dégager, l’objet restant droit

</td><td style="width: 77.7pt; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 20px;" valign="top" width="104">1 point

</td></tr><tr style="height: 20px;"><td style="width: 375.4pt; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 20px;" valign="top" width="501">L’objet est à moins de 3 cm/20 degrés du but à la fin

</td><td style="width: 77.7pt; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 20px;" valign="top" width="104">1 point

</td></tr><tr style="height: 20px;"><td style="width: 375.4pt; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 20px;" valign="top" width="501">L’objet est à moins de 0,5 cm / 3 degrés du but à la fin

</td><td style="width: 77.7pt; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext; padding: 0cm 5.4pt; height: 20px;" valign="top" width="104">1 point

</td></tr></tbody></table>

L’équipe dispose de deux essais, on garde la meilleure note. Si les deux essais aboutissent à une note inférieure à 5, l’équipe peut proposer une démonstration des capacités du robot correspondant à l’attribution de points (par exemple ils placent le robot en face de l’objet et l’objet prend le robot).

A noter que le score ne constitue que la moitié des points. Les 10 autres points seront attribués à l’équipe sur la base de :

- Qualité de l’organisation de l’équipe, sérieux, régularité de la progression
- <span style="text-indent: -18pt;">Qualité de la conception (logicielle et matérielle)</span>
- Qualité de la réalisation (logicielle et matérielle)
- Qualité du comportement du robot (maîtrise, robustesse, rapidité, etc.).

Lorsqu’il apparaît que la contribution des élèves au projet est raisonnablement bien répartie entre ses membres, tous les élèves ont la même note. Cependant, une modulation de +/- 3 points est possible individuellement à partir de :

- La contribution individuelle : sérieux, engagement, assiduité, prise d’initiative.
- La capacité à articuler son travail personnel avec celui du reste de l’équipe.
- La capacité à expliquer sa contribution personnelle et les choix retenus tout au long du projet.

### 4. Liste des fichiers fournis

- Ressources CAO.zip contient les fichiers Solidworks des composants fournis ou disponibles
- datashetts.zip contient les documentations de quelques-uns des composants fourni

# Présentation initiale

Sur cette page, vous pourrez trouvez les slides de la présentation qui vous est faite lors de la première séance :

[Projet de robotique expérimentale - présentation séance 1.pdf](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1256)

# Quelques liens utiles vers des tutos, docs, etc.

#### 1. Programmation Arduino  


- Documentation officielle Arduino  
    
    - Référence Arduino : [https://www.arduino.cc/reference/en/](https://www.arduino.cc/reference/en/)
    - Utilisation des interruptions :  
        
        - [https://www.arduino.cc/reference/en/language/functions/interrupts/interrupts/](https://www.arduino.cc/reference/en/language/functions/interrupts/interrupts/)
        - [https://www.arduino.cc/reference/en/language/functions/externalinterrupts/attachinterrupt/](https://www.arduino.cc/reference/en/language/functions/externalinterrupts/attachinterrupt/)
- Divers tutoriels et exemples. Il existe des exemples dans l'IDE (Fichiers &gt; Exemples) :

- - [https://docs.arduino.cc/built-in-examples/](https://docs.arduino.cc/built-in-examples/)
    - [https://docs.arduino.cc/tutorials/](https://docs.arduino.cc/tutorials/)

#### 2. Schéma électrique

- Utilisation de résistances de rappel : [http://wiki.t-of.info/Arduino/R%C3%A9sistanceDeRappel](http://wiki.t-of.info/Arduino/R%C3%A9sistanceDeRappel)
- Utilisation de boutons poussoirs : [https://docs.arduino.cc/built-in-examples/digital/StateChangeDetection](https://docs.arduino.cc/built-in-examples/digital/StateChangeDetection)
- Utilisation d'une LED : [https://docs.arduino.cc/built-in-examples/basics/Fade](https://docs.arduino.cc/built-in-examples/basics/Fade)

#### 3. Conception mécanique

<div class="gmail_default" id="bkmrk-m.-carillet-vous-a-p">- M. Carillet vous a préparé un petit tuto pour préparer la découpe laser : [https://youtu.be/IkJtQY5cAtI](https://youtu.be/IkJtQY5cAtI)
- Modèles volumiques des composants fournis ou disponibles : [Composants CAO](https://dropsu.sorbonne-universite.fr/s/mrjpLjkgjFq73wN)
- [Fiche très résumée sur les montages de roulements.pdf](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1253)
- [Tutoriel d'utilisation du site monbureau.upmc.fr](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1254)
- Quelques éléments déjà très documentés mais vous trouverez une courte synthèse ici : [cinematique\_robot\_unicycle.pdf](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1313)

  
</div>

# PROJET ROB3 Léo, Christian, Bastien, Quentin, Nicolas, Skander

#### 06/02/2025:

#### Activités du jour:

- Diagramme de Gantt
- Répartition des rôles
- Design générale du robot
- Définition de la logique du code
- Découverte du matériel

##### **Diagramme de Gantt**

- Nombre de séance et objectif remplie
- A remplir dans les détails au fil du projet

##### **Répartitions des rôles**

- Pôles informatique : Nicolas, Skander, Quentin
- Responsable électronique: Christian (responsable batterie)
- Responsable mécanique : Bastien (responsable mécanique), Léo , Christian
- Chef de projet/Secrétaire : Quentin

##### **Design générale du robot**

- Base du robot rectangulaire
- 2 bras articulés reliés au châssis
- Pince reliée au bras articulés
- Dimension générale du robot à déterminer
- Pièce de liaison à définir

##### **Définition de la logique du code**

- Fonction a coder: Avancer, Tourner sur place, Détection, Hauteur, Attraper cube
- **Logique du code**
    - Trouve un mur et le longer
    - Trouver l'obstacle marquant la position de l'objet
    - Trouver le premier obstacle qui marque l'arrivée
    - Trouver le second obstacle qui marque l'arrivée
    - S'arrêter

##### **Découverte du matériel**

<span style="text-decoration: underline;">A faire pour la séance suivante</span>

Lire la documentation des pièces électroniques

#### 27/02/2025:

#### **Activités du jour:**

Pôles mécanique :

- Définition précises des dimensions du robot ( mesure en millimètre )
- Choix de la technique utilisé pour les pivots : Vis-rondelle-tube-rondelle-écrou serré pour bloquer les solides du pivot

*Photo de la solution pivot a fournir*

[![tp rob.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-02/scaled-1680-/cJqtp-rob.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-02/cJqtp-rob.jpg)

Pôles informatique et électronique:

- Test sur le fonctionnement de la carte Arduino Bus CAN + SHIELD : le Shield permet d'éviter le bruitage des signaux sur l'entrée/sortie
- Utilisation de plusieurs moteurs simultanément différenciés par leurs PIN, code Arduino a ajouter.
- Test de fonctionnement du capteur : fonctionnement du Capteur ultrasons HC-SR04 et code utilisé en annexe
- Test de fonctionnement de la pince : code utiliser en annexe

Durant la prochaine séance :

- Pôle électronique : faire un schéma papier des fils électriques sur la maquette, à tester le plus tôt possible
- Pôle mécanique : prendre en main la machine de découpe laser et commencer la modélisation
- Pôle informatique : coder toutes les fonctions et les tester sans le robot, puis si possible sur la maquette

### **Annexe:**

**Documents rattaché :**

TUTO\_capteur.pdf

Pince.pdf

#### 13/03/2025:

#### **Activités du jour:**

Pôles mécanique :

- Modélisation des pièces du robot, d'abord dans une version complète puis dans sa version détaillé pièce par pièce
- Test de fonctionnement de la découpe laser pour ajuster les dimensions pour les emboitements de pièce
- Modélisation du châssis a découper pour la prochaine séance
- A faire : créé le bras de la pince

Pôles informatique :

- Connexion et commande de plusieurs moteurs sur la carte Arduino, ajouter les capteurs par la suite
- Création de la fonction avancer tout droit et de la boucle d'asservissement pour que le robot reste parallèle au mur
- Tester la fonction réaliser dès que le châssis est en terminer
- A faire : codé la fonction du choix de la hauteur de la pince

Pôles informatique et électronique:

- Création du schéma du câblage des composants ( à refaire au propre )
- A faire : aider les autres pôles

### **Annexe:**

Schéma du câblage

[![Capture d'écran 2025-03-13 110950.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/scaled-1680-/capture-decran-2025-03-13-110950.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/capture-decran-2025-03-13-110950.png)

#### 27/03/2025:

#### **Activités du jour:**

Pôles mécanique :

- Définition des étalonnages pour des assemblages de pièces de grandes tailles : 
    - males = 10 mm , 10 mm
    - femelle = 9,70 mm , 10 mm , 30 mm
- A faire pour la prochaine fois : 
    - impression et démoulage du châssis
    - terminer la modélisation de la pince et imprimer

Pôles informatique :

- forme détaillé du script principal
- code pour monter et descendre la pince
- A faire pour la prochaine fois : 
    - tester le code sur le robot et régler les potentiels dysfonctionnement

Pôles électronique :

- modélisation de pièce pour le pole mécanique

#### **Points clés de la conception mécanique finale du robot :**

##### <span style="text-decoration: underline;">Liaisons pivots :</span>

Les liaisons pivots, dans la pince du robot, ont été réalisées avec un axe entre les pièces. Cet axe a été fabriqué avec un morceau de carton entouré de scotch. Ce procédé a été utilisé en raison de l'adaptabilité de la pièce à des trous de diamètre variable.

##### <span style="text-decoration: underline;">Supports moteurs :</span>

Les supports des moteurs sont deux pièces permettant de tenir les moteurs du robot. Ils ont été modélisé sous Solidworks puis découpé avec la découpeuse laser. Les supports sont maintenu en position avec deux équerres découpées elles aussi avec la même machine. Ces équerres permettent de résoudre le problème de surcharge de l'arrière du robot, ce qui écartait les roues et faisait toucher le sol au robot. Elles on été collé avec de la colle à bois de l'autre coté des roues afin d'éviter d'éventuel frottements ou conflit avec les roues.

##### <span style="text-decoration: underline;">Support pince :</span>

Le support de la pince a été réalisé sous Solidworks puis découper en MDF 3mm. Une seule pièce a été réalisé pour le support de la pince et le haut du bras. La pince est vissé dans cette pièce.

##### <span style="text-decoration: underline;">Support capteur droit :</span>

Le capteur droit se trouve sur la droite du robot, orienté vers le mur. Le capteur est tenu vers le sol par une pièce. Le capteur est tenu dans cette pièce par les "yeux" du capteur qui sont coincé dans la pièce.

##### <span style="text-decoration: underline;">Support capteur pince :</span>

Le capteur pince se trouve sur le bras du robot, orienté vers l'avant. Le capteur est tenu en dessous de la pince, le support est monté serré sur le bras du robot. Le capteur est tenu dans cette pièce par les "yeux" du capteur qui sont coincé dans la pièce.

---

Les fichiers Solidworks sont en annexe.

---

#### **Activités et travaux réalisés en autonomie :**

  
Après avoir réalisé que notre châssis comportait de nombreux problèmes de conception, nous avons changé la plupart des pièces et opté pour un modèle plus simple, dont les pièces sont en fichiers joints à ce wiki. Les pièces ont été réalisées par le pôle mécanique et le montage a été réalisé par Bastien, qui a également essayé d'y implémenter un bouton (sans succès).

Sur le modèle de ce robot, il y a eu quelques modifications visibles sur la vidéo partagée.

La principale méthode retenue pour la conception du code fut l'utilisation des "switch" et du passage d'un cas à un autre à l'aide de conditions définies grâce à nos capteurs. De plus, nous avons grandement utilisé les "delays", que ce soit pour réaliser des mouvements comme tourner à 90 degrés ou encore pour avancer d'une distance prédéfinie. Cette méthode est donc principalement expérimentale, très sensible aux perturbations ; néanmoins, l'utilisation d'un code très simple limite le nombre de "bugs" et rend sa compréhension simple. Le code est joint dans un fichier .txt nommé *code\_final\_6* ; de nombreux commentaires expliquent le code. Il ne faut pas non plus oublier nos documents qui expliquent la pince et les capteurs.

Dans le détail, Skander s'est occupé de l'utilisation de la pince et des capteurs, Nicolas a écrit le corps du code et a essayé d'y implémenter un correcteur. Enfin, Quentin a réalisé les parties de code pour attraper et déposer l'objet. Le reste du code a été développé en groupe, sans répartition spécifique.

Nous avons remarqué expérimentalement que les capteurs nous renvoyaient régulièrement des valeurs aberrantes. Nous avons donc utilisé un filtre pour limiter ces valeurs. De plus, il est préférable de placer les capteurs perpendiculairement au plan observé et de bien les orienter.

**Récapitulatif :**  
Ce projet permet de mieux comprendre l'intérêt de chaque matière étudiée durant la Robotique et de les appliquer. Il nous apprend également ce que représente un travail de groupe sur le long terme.

Ce que nous aurions pu améliorer :

- Mieux organiser notre temps en définissant des dates pour chaque étape et en les respectant
- Prendre le temps de se mettre d'accord sur le fonctionnement précis du robot dès le début, et ne pas s'en tenir à une version globale afin d'éviter les surprises ou les malentendus
- Ne pas hésiter à utiliser des prototypes pour tester rapidement le code
- Travailler par paire, avec une personne à l'aise et une débutante, pour à la fois apprendre et ne pas perdre trop de temps quand c'est la course contre la montre

# Projet-ROB3 Fatoumata, Pierre, Arthur, Jules, Antoine et Noah

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/2Wwimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/2Wwimage.png)

## **Cahier du jour 06/02/2025:**

### **Activités du jour**

##### <span style="text-decoration: underline;">**Brainstorming et conception**</span>

Nous avons débuté la journée par une session de brainstorming afin de définir l'apparence et les fonctionnalités de notre robot en nous basant sur le cahier des charges.

Nous avons opté pour une conception rectangulaire avec deux roues principales et une roue folle à l’arrière. Le robot sera équipé de deux capteurs ultrasons pour mesurer des distances :

- Un capteur sur la pince.
- Un capteur sur le côté droit du robot est aligné à l'essieu des roues motrices.

Pierre et Antoine sont chargés de réaliser les premiers travaux de CAO (Conception Assistée par Ordinateur), incluant la modélisation du robot et châssis ainsi que la définition de ses dimensions.

##### <span style="text-decoration: underline;">**Développement informatique**</span>

Côté informatique, nous avons décidé d’implémenter un système odométrique permettant de suivre les coordonnées du robot en temps réel. Ce système prend en compte :

- La position en X et Y.
- L’orientation angulaire du robot.

L’algorithme correspondant a été établi dans un premier temps par Jules et Noah il permettra de déterminer et ajuster la position du robot en fonction des données captées.

Dans l’algorithme les différents comportements seront liés, la recherche des positions des balises se fera en même temps que le trajet vers la pièce à prendre, puis la recherche de la troisième balise se fera en même temps que le transport de l’objet vers la zone de dépôt.

Arthur a fait le lien entre la partie mécanique et informatique.

Fatoumata également et s'est chargée de la rédaction du wiki et du diagramme de Gantt

##### <span style="text-decoration: underline;">**Répartitions des rôles**</span>

- Responsable informatique : Noah(prend un capteur cette semaine)
- Responsable électronique: Noah
- Responsable mécanique :Pierre
- Responsable wiki: Fatoumata
- Chef de projet: Arthur

##### <span style="text-decoration: underline;">**Prochaines étapes**</span>

- Débuter la modélisation CAO.
- Se renseigner sur l'odométrie.
- tester le matériel électronique.

## **Cahier du jour 20/02/2025:**

### **Activités du jour**

##### <span style="text-decoration: underline;">**Mécanique**</span>

- Châssis modélisé :  
      
    [![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/2Ceimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/2Ceimage.png)
- Utilisation de la découpeuse laser Trotec Speedy 100.
- Récupération d’une planche MDF de 6 mm auprès du FabLab et découpe du châssis avec la découpeuse laser.  
    Malheureusement, il y a eu un petit défaut : le laser de découpe n’est pas allé assez loin dans la planche. (NB: A posteriori, le problème venait de la planche qui était légèrement trop grande, nous n'avons eu des problèmes que sur cette planche et on a eu le même problème de découpe pour d'autres pièces que le châssis) Il faudra ré-usiner le châssis au même endroit pour finir la coupe.

##### <span style="text-decoration: underline;">**Informatique**</span>

- Test du capteur et du moteur.
- Compréhension du pilotage des moteurs en fonction de la distance.
- Test du fonctionnement de deux moteurs ensemble ainsi que de leur réponse en fonction d'une distance mesurée.

## **Cahier du jour - 27/02/2025**

### **Activités du jour**

##### <span style="text-decoration: underline;">**Mécanique**</span>

- Modélisation du robot avec le positionnement des différents objets à placer sur le châssis : [Chassis Robot.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1450)
- Début de la conception du bras motorisé : [Bras.rar](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1452)

##### <span style="text-decoration: underline;">**Informatique**</span>

- Apprentissage de la bibliothèque servo.h pour ouvrir et fermer la pince grâce à Arduino (on peut maintenant faire bouger la pince)
- Construction de l'algorithme de déplacement grâce à l'odométrie et au comportement du robot
- Travail sur les codeurs incrémentaux avec les moteurs

## **Cahier du jour - 13/03/2025:**

### **Activités du jour**

##### <span style="text-decoration: underline;">**Mécanique**</span>

- Modélisation du bras motorisé avec pince, intégration et placement dans le châssis.
- Ajustement du châssis avec les éléments de mise et de maintient en position.
- Robot prêt pour l'usinage.

##### <span style="text-decoration: underline;">**Informatique**</span>

- Écriture des fonctions permettant l’ouverture et la fermeture de la pince.
- Gestion de trois moteurs simultanément via Arduino.
- Développement et correction de l’algorithme de déplacement du robot dans l’arène.

## **Cahier du jour - 27/03/2025:**

### **Activités du jour**

##### <span style="text-decoration: underline;">**Mécanique**</span>

- Réusinage du châssis, en ajoutant des trous pour faire passer les pièces "pattes" et les pièces support moteur du bras. Mais également d'un trou pour faire passer la roue folle (le marquage que nous avions réalisé n'avait pas fonctionné lors du premier usinage) et usinage des pièces complémentaires en MDF 6mm. Usinage à l'aide de la découpeuse laser Trotec Speedy 100.
    
    [![IMG_1085.JPG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/img-1085.JPG)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/img-1085.JPG)
- Optimisation de l'utilisation de la matière première, notamment par l'utilisation de chute et de l'optimisation de l'espace sur Inkskape.
- Usinage des pièces support bras/moteur et des pièces pattes : [support brasSLDPRT.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1467) [support moteur.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1468)
    
    [![IMG_1087.JPG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/img-1087.JPG)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/img-1087.JPG)

##### <span style="text-decoration: underline;">**Informatique**</span>

- Étude du modèle mécanique pour la mise en place de l’odométrie

## **Cahier du jour - 03/04/2025**

### **Activités du jour**

##### <span style="text-decoration: underline;">**Mécanique**</span>

- Assemblage des pièces, re-modélisation de la pièce "patte" qui ne convenait plus à l'équipe Informatique et réusinage de celle-ci. Début du premier "roulage" du robot. Usinage du bras de la pince en MDF 6mm. [bras1.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1463) [Bras2.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1465) [bras3.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1464) [piece pour pince.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1466)
    
    [![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/YyJimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/YyJimage.png)

##### <span style="text-decoration: underline;">**Informatique**</span>

- Codage des différents mouvements possible du robot, modification du code de l'odométrie pour que le robot réel réalise ce que l'on voulait théoriquement.

##### <span style="text-decoration: underline;">**Électronique :**</span>

- Mise en place de l'électronique de puissance et de commande. Ajout, en accord avec le responsable informatique, d'un bouton "Arrêt" (qui pourra servir dans un autre cas, mais qui sert d'arrêt pour les premières phases de test).

## **Cahier du jour - 10/04/2025**

### **Activités du jour**

##### <span style="text-decoration: underline;">**Mécanique**</span>

- Assemblage des pièces de la pince et collage au châssis, re-modélisation de la pièce "patte" (réusinage de celle-ci) pour y ajouter l'insertion d'une tige et d'un fusible : [Piece Roue Patte du Robot.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1460)  
    [![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/UGximage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/UGximage.png)
- Trou de 5mm réalisés avec une perceuse dans le châssis pour faire passer les fils à l'intérieur.
- Modélisation d'une petite plaque d'immatriculation et de son support. Usinage du support sur des chutes de MDF et de la plaque dans une chute de PPMA Rose 3mm : [plaque d'imatriculation.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1461)
    
    [![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/nX7image.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/nX7image.png)
- Découpe, à la scie, d'une petite partie du bras de la pince pour mieux y loger le capteur à ultrason.
- Gravure d'un QR code ramenant vers cette page du Wiki sur une chute de PPMA Noir 3mm (en utilisant la Trotec Speedy 100). Collage de ce même QR code en dessous du châssis à l'aide de double-face.
- Collage du capteur à ultrason sur la pièce "patte" et sur la pince à l'aide de double-face. Début du positionnement de la carte Arduino et de la Batterie, fixés au châssis à l'aide de double-face.
    
    [![IMG_1296.JPG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/img-1296.JPG)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/img-1296.JPG)

##### <span style="text-decoration: underline;">**Électronique :**</span>

- Réalisation d'un soudage précis sur une plaque de test de l'électronique de puissance pour un meilleur rendu visuel et logistique. Tirage des câbles et connexion de tous les éléments.

## **Cahier du jour - 21/05/2025**

### **Activités du jour**

##### <span style="text-decoration: underline;">**Mécanique**</span>

- Ajout d'une petite pièce qui sert à tenir le capteur. Que ce soit sur la pince ou sur la patte. Elles sont assez fragiles, mais permettent de mieux tenir le capteur tout en étant une solution "plus propre" que du gaffeur.
- **Pièce\_tient\_capteur sur la patte : [piece pour capteur patte.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1458)**
    
    [![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/4ahimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/4ahimage.png)
- **Pièce\_tient\_capteur sur la pince : [piece pour capteur pince.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1459)**
- [![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/vbfimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/vbfimage.png)

## **Cahier du jour - 28/05/2025**

### **Activités du jour**

##### <span style="text-decoration: underline;">**Mécanique**</span>

- Le moteur de la pince ne délivrant pas un couple assez important, nous avons décidé de rajouter une excroissance à un des bras du moteur pour y ajouter un contrepoids. Re-modélisation de cette pièce, ajout d'un trou plus gros pour y faire passer un roulement (pour réduire les frottements). Usinage dans une chute de MDF 6mm avec la Trotec Speedy 100 : [bras3.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1464)  
    [![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/cLfimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/cLfimage.png)
- Cependant, cette solution n'a pas totalement fonctionné, le bras arrivait à partir, mais avait du mal à revenir. Nous avons donc décidé d'ajouter un élastique pour ne plus avoir de problème, la plaque d'immatriculation initialement esthétique servira de buté.  
    Pour rendre le tout plus solide, nous avons refait les pièces "portes plaques". [Piece plaque d'imatriculation.SLDPRT](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1457)  
    [![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/X1Wimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/X1Wimage.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/scaled-1680-/IbVimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-05/IbVimage.png)
    
    ##### <span style="text-decoration: underline;">**Électronique**</span>
- Mise en place du câble management.

##### <span style="text-decoration: underline;">**Informatique**</span>

- Le code de l’asservissement du bras est fonctionnel. Le modèle mécanique mis en place permet d’assurer le bon fonctionnement global du bras.
- Les roues glissent lors des virages ce qui fausse l’odométrie, donc nous avons ajouté du scotch double face sur les roues. Il était cependant trop adhésif par rapport au couple moteur donc nous avons dû ajouter de la poussière pour essayer de mieux maîtriser le rapport adhérence/couple moteur.

## **Cahier du jour - 04/06/2025**

### **Activités du jour**

##### **<u>Mécanique: </u>**

- Modélisation d'une petite pièce support pour les boutons prévoir et usinage de celle-ci dans une chute de PPMA Orange fluo 3mm &amp; usinage des pièces supports à la plaque d'immatriculation dans une chute de MDF 6mm à l'aide de la Trotec Speedy100 : [Piece support boutton poussoir.svg](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1456)

[![IMG_4775.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/img-4775.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/img-4775.jpeg)

### <span style="text-decoration: underline;">**Résumé générale du projet**</span>

L’objectif de ce projet était de **concevoir, modéliser, assembler et programmer un robot mobile autonome**, capable de :

- Se déplacer de manière autonome ;
- Détecter des balises ;
- Saisir un objet à l’aide d’un bras motorisé ;
- Transporter cet objet vers une zone de dépôt.

Le travail a été réparti entre les membres de l’équipe, chacun ayant une responsabilité définie (mécanique, électronique, informatique, rédaction wiki, gestion de projet). Cette organisation a favorisé l’autonomie, la coordination et la progression régulière du projet.

#### <span style="text-decoration: underline;">**Répartition des tâches:**</span>

<div align="left" dir="ltr" id="bkmrk-nom-r%C3%94les-t%C3%82ches-r%C3%89a"><table style="width: 89.876543%;"><colgroup><col style="width: 14.423077%;" width="81"></col><col style="width: 19.230769%;" width="175"></col><col style="width: 66.208791%;" width="471"></col></colgroup><tbody><tr><td>NOM

</td><td>RÔLES

</td><td>TÂCHES RÉALISÉES

</td></tr><tr><td>ARTHUR

</td><td>Chef de projet

</td><td>- Coordination des équipes mécaniques, informatiques et électroniques
- Interface entre les disciplines techniques
- participation au travail de chaque équipe
- Installation de scotch sur les roues pour éviter le glissement et réduire les erreurs d’odométrie
- mise en place du câble management
- montage des différents éléments du robot
- Corrections et débogage du code en fin de projet

</td></tr><tr><td>ANTOINE

</td><td>Équipe mécanique

</td><td>- modélisation , conception et assemblage du bras
- usinage de pièce et assemblage du robots, perçage ...
- calcul théorique lié à la mécanique du système

</td></tr><tr><td>NOAH

</td><td>Responsable électronique

Responsable informatique

</td><td>- Intégration et câblage des moteurs
- Soudure sur plaque de test
- Mise en place de l’électronique de puissance
- Ajout d’un bouton d’arrêt
- Connexion de tous les éléments électroniques
- Conception de l’algorithme d’odométrie (position X, Y, orientation)
- Développement des comportements du robot : prise d’objet, détection des balises, trajet vers zone de dépôt
- Programmation Arduino : contrôle de moteurs

  
</td></tr><tr><td>PIERRE

</td><td>Responsable mécanique

</td><td>- Modélisation CAO du robot (châssis, bras, pince,..)
- Étude Mécanique.
- Découpe laser en MDF 6 mm et en PPMA 3mm et impression 3D
- Assemblage du robot, perçages, fixation des composants
- Aide à la rédaction du wiki

</td></tr><tr><td>FATOUMATA

</td><td>Responsable wiki / gestion

</td><td>- Rédaction régulière du wiki de projet
- Mise à jour des cahiers de jour
- Calcul théorique de l’avancement de la pince en fonction de l’angle <span class="katex"><span class="katex-mathml">θ</span></span> du moteur du bras
- Pose d'une tige filetée pour éviter l'affaissement du châssis

</td></tr><tr><td>JULES

</td><td>Équipe informatique

</td><td>- Élaboration et suivi du diagramme de Gantt
- conception d'un premier algorithme des comportements

  
</td></tr></tbody></table>

</div>#### <span style="text-decoration: underline;">**Pistes d'améliorations :**</span>

Lors de ce projet, nous avons rencontré plusieurs difficultés que nous ne sommes pas parvenu à résoudre dans les temps.

- Le principe de l’odométrie repose sur une rotation précise de 90°, calculée en fonction des dimensions des roues et du châssis du robot.  
    Pour tenter de pallier ce problème, nous avons appliqué du ruban adhésif double face sur les roues, avec de la poussière afin de limiter le couple moteur nécessaire et améliorer temporairement l’adhérence. Cette solution n’a cependant été efficace que durant quelques essais, la poussière ayant rapidement saturé l’adhésif. Ce manque d’adhérence a donc provoqué des erreurs de rotation, compromettant le bon déroulement du projet.  
    Comme le montre l’une des vidéos en pièce jointe, le capteur atteint parfois le seuil de détection d’une balise avant même de l’avoir croisée en raison d’un défaut de parallélisme du robot par rapport au mur dû à l'erreur de rotation que l'on ne peut pas corriger avec l'odométrie. Il aurait fallut se servir des capteurs pour faire un suivi du mur à distance fixe tout en mettant "en pause" l'odométrie". Même lorsque nous tentons de corriger manuellement la trajectoire en poussant le robot, celui-ci conserve un cap biaisé puisque l’angle θ cible n’est pas modifié. Il convient de noter que ce défaut d’adhérence ne pouvait raisonnablement être anticipé lors de la phase de conception du robot.
- Le deuxième problème majeur rencontré concernait des erreurs de communication entre le bus CAN et les moteurs, entraînant des blocages du programme.Ce n’est qu’après la présentation orale que nous avons réussi à contourner partiellement ce dysfonctionnement, après y avoir consacré huit heures supplémentaires (intervention de M. Morel après six heures d’efforts, suivie de deux heures supplémentaires). Bien que le problème persiste encore, il ne bloque désormais plus l’exécution du code, comme le montre la vidéo jointe.
- Une piste d’amélioration plus générale pour le groupe concerne le manque de rigueur dans la phase de conception, qui a été, à tort, reléguée au second plan au profit du bricolage et de solutions improvisées. Cette approche a conduit à des erreurs nécessitant la re-fabrication de certaines pièces, engendrant ainsi des pertes en matériel, en temps et en budget.
- Avec du recul, nous pensons qu’une répartition des tâches moins segmentée aurait été plus efficace, notamment parce que le développement du code nécessitait un accès direct au robot. Une conception plus approfondie en amont aurait permis d’anticiper des problèmes tels que le couple moteur insuffisant ou la distance entre les roues trop faible pour la précision nécessaire à la bonne rotation. Cela nous aurait ensuite permis de travailler ensemble sur la partie informatique, afin que chaque membre du groupe puisse y contribuer. Il aurait été plus pertinent que chacun puisse intervenir sur l’ensemble des aspects du projet, conformément à l’objectif d’apprentissage global du projet (cf. APP).
- Enfin, nous aurions pu améliorer notre organisation en intégrant plus systématiquement des outils de gestion de projet, tels que le diagramme de Gantt, ainsi qu’en instaurant des phases de briefing et de débriefing en début et fin de séance (10 premières et dernières minutes). Par ailleurs, consacrer davantage de temps au brainstorming individuel avant la mise en commun en groupe aurait permis de structurer plus efficacement nos idées.

# Projet ROB3 (Noah, Ali, Leo, Maeline, Pierre-Alexandre, Marita)

<span style="color: rgb(224, 62, 45);">**Équipe :** </span>

**DUVERNOIS--DUPARC Maéline :** Équipe informatique / responsable mise à jour Wiki

**EL HAJJ Marita** : responsable électronique/ responsable batteries

**EYNARD Noah** : chef de projet / équipe mécanique

**MEDDAD Ali** : Équipe informatique

**MONCEAU Pierre-Alexandre** : responsable informatique / responsable moteurs

**SABATIÉ Léo :** responsable mécanique

<span style="text-decoration: underline;"><span style="color: rgb(224, 62, 45); text-decoration: underline;">**Séance 1 :**</span></span>

<span style="color: rgb(53, 152, 219);"><span style="text-decoration: underline;">**Décisions collectives :**</span> </span>

- Répartitions des rôles + des équipes
- Définitions des grandes étapes et tâches du projet
- Diagramme de Gantt<span style="color: rgb(0, 0, 0);"></span>
- Premiers questionnements

<span style="text-decoration: underline;"><span style="color: rgb(45, 194, 107); text-decoration: underline;">**Types de comportement :** </span></span>

- comportement originel (appuyer sur le bouton)
- repositionnement par rapport au bord droit
- avancer tout droit par rapport au bord avant
- détecter obstacles
- détecter un plot
- tourner de 90°
- vérifier l’alignement avec l’objet
- Régler la hauteur de la pince
- saisir l’objet
- poser l‘objet (sans qu’il tombe)
- se dégager de l’objet

<span style="text-decoration: underline;"><span style="color: rgb(45, 194, 107); text-decoration: underline;">**Problématiques :** </span></span>

- Comment se repérer dans l’espace ?
- Comment trouver l’objet ? évaluer les distances pour le saisir ?
- poser le robot bien droit pour qu’il avance en ligne droite
- comment différencier les plots pour l’objet et ceux pour la destination ?
- sens de capteurs horizontal / vertical ?
- Capteur sur le châssis ou sur la pince ? : sur la prince pour baisser la pince en conséquence pour saisir et poser l’objet
- comment faire pour que l’objet ne tombe pas en le posant
- Position de l’objet ?
- comment détecter les plots → même chose que pour l’objet
- comment faire pour que le robot comprenne que c’est un plot et ne s’éloigne pas simplement du mur pour maintenir la distance de sécurité

Recherche de dimensionnement de l'arène, totem et robot :

[![porjetRob recherches dimensionnement.PNG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/porjetrob-recherches-dimensionnement.PNG)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/porjetrob-recherches-dimensionnement.PNG)

<span style="text-decoration: underline; color: rgb(186, 55, 42);">**Séance 2**</span>

**<span style="color: rgb(45, 194, 107);">Décisions : </span>**

**Équipe méca :** imprimer et découper au laser les pièces pour monter le châssis test (mauvais prototype) pour pouvoir commencer à expérimenter le code.

**Équipe info :** commencer à faire fonctionner les moteurs et la pince

**Équipe électronique:** test du programme arduino avec le capteur HC-SR04 et des grandeurs qu’il retourne avec une vérification des mesures.

**<span style="color: rgb(45, 194, 107);">Rapports d’activité : </span>**

<span style="text-decoration: underline;">**DUVERNOIS--DUPARC Maéline :** </span>Écriture du code pour ouvrir et fermer la pince. Problème rencontré fermeture de la pince et le moteur force car il n’atteint pas la position demandée. Lecture de la librairie Arduino Servo. On connaît maintenant les commandes nécessaires à l’ouverture et à la fermeture de la pince.

**<span style="text-decoration: underline;">EL HAJJ Marita :</span>** Test des capteurs HC-SR04: Le code utilisé est le code publié sur le forum d’Arduino (ref. sitographie). Le capteur mesure à l’aide d’ultrasons la distance d’un obstacle par rapport au capteur. La mesure est précise pour des objets opaques. Pour des objets translucides (ex: règle qui peut faire passer de la lumière) les mesures ne sont pas très exactes surtout à de petites distances. La vitesse de déplacement de l’objet est limitée; quand on bouge brusquement l’objet, les mesures de la distance sont aléatoires et donc erronées (point à prendre en compte dans le pilotement de la vitesse du robot). Une autre limite du capteur est le placement de l’objet en face; un objet incliné est mal lu en distance, si l’objet est placé au milieu des deux “yeux” du capteur il est aussi mal lu, et s’il est placé uniquement sur un seul des yeux pareil. Distance minimale de lecture correcte: 4cm, Distance maximale/limite: 40cm.

**<span style="text-decoration: underline;">EYNARD Noah :</span>** Modélisation du Chassis et du soutient du moteur pour le bras. Choix der la solution du bras / Pince. Choix de la solution pour pivot glissant des bielles : un tube modélisé en impression 3D avec une vis/ écrous / rondelle

**<span style="text-decoration: underline;">MEDDAD Ali :</span>** schématisation des positions variables du totem, position initiale du robot et le point de dépôt, la hauteur variable du totem et la position du capteur et pince par rapport au bras et au châssis. initialisation des fonctions nécessaire pour capter le totem.

**<span style="text-decoration: underline;">MONCEAU Pierre-Alexandre : </span>**mise en marche de la découpe laser “360”, découpe de test de dimensionnement pour le châssis. Mise en marche des moteurs (avec code d’automatique).

**<span style="text-decoration: underline;">SABATIE Léo :</span>** Modélisation de la solution pour fixer les moteurs au châssis. Réalisation d’un premier test pour ajuster les dimensions (jeu entre le châssis et la pièce pour fixer le moteur). Modélisation de la solution pour régler la hauteur de la pince.

**<span style="color: rgb(45, 194, 107);">Points validés :</span>** - fonctionnement de la pince

\- fonctionnement des capteurs

\- fonctionnement des moteurs

Recherche d'Algorithmes :

[![recherche Algo.PNG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/recherche-algo.PNG)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/recherche-algo.PNG)

<span style="text-decoration: underline;">**<span style="color: rgb(186, 55, 42); text-decoration: underline;">Séance 3</span>**</span>

**<span style="color: rgb(45, 194, 107);">Rapports d’activité : </span>**

**<span style="text-decoration: underline;">DUVERNOIS--DUPARC Maéline:</span>** Réalisation des fonctions d’ouverture et de fermeture de la pince. Tentative avec Marita d’écrire un programme qui permet de modifier la vitesse de rotation des moteurs en fonction de la distance mesurée par le capteur : échec. Création d’un github pour l’écriture partagée du code.

**<span style="text-decoration: underline;">EL HAJJ Marita :</span>** Tentative avec Maéline d’asservissement du moteur en fonction de la distance calculee par le capteur. Gestion du diagramme de Gantt et des fichiers communs du groupe.

**<span style="text-decoration: underline;">EYNARD Noah : </span>**Ajustement de la CAO du châssis pour prendre en compte la taille du moteur et le capteur. Recherche de solution pour le capteur sur la pince → Trouvé. Modélisation de cette Solution et lancement de l’impression 3D. On a résolu toutes les solutions afin de détecter l’objet (par le haut)

**<span style="text-decoration: underline;">MEDDAD Ali :</span>** recherche de solution pour positionner le capteur en considérant ses contraintes techniques pour arranger la partie mécanique et informatique. Réalisation des algorithmes de la 1er et 2eme étapes pour faciliter le codage avec les fonctions de base.

**<span style="text-decoration: underline;">MONCEAU Pierre-Alexandre :</span>** Mise en marche de l’autre découpe laser « 100 ». Asservissement d’un moteur en position par rapport à un angle. Mise en marche de deux moteurs en même temps.

<span style="text-decoration: underline;">**SABATIÉ Léo :** </span>ajustement du dimensionnement des pièces pour faire le lien entre les moteurs (pour le déplacement, et pour le bras) et le châssis. Impression de plusieurs pièces jusqu'à un dimensionnement convenable (Mise en marche de l’autre découpe laser « 100 »). Châssis prêt à être imprimé pour faciliter le travail de la partie informatique.

**<span style="color: rgb(45, 194, 107);">Points validés :</span>** fonctions ouverture et fermeture pince

**<span style="color: rgb(45, 194, 107);">Points non validés :</span>** Asservissement du moteur en fonction de la distance calculee par le capteur.

<span style="text-decoration: underline; color: rgb(186, 55, 42);">**Séance 4**</span>

**<span style="color: rgb(45, 194, 107);">Décisions : </span>**

**Équipe informatique :** Tests des fonctions

**Équipe mécanique :** Impression du chassis

**Équipe électronique :** Alimentation de l’arduino et des moteurs avec la batterie

**<span style="color: rgb(45, 194, 107);">Rapports d’activité : </span>**

**<span style="text-decoration: underline;">DUVERNOIS--DUPARC Maéline:</span>** Réalisation des fonctions globales états du robot pour le case dans le loop. Problème avec les fonctions de la pince corrigées. Travail sur le code de gestion des moteurs.

**<span style="text-decoration: underline;">EL HAJJ Marita :</span>** Alimentation de l’Arduino avec la batterie. Optimisation du code des moteurs/avancement/capteurs.

<span style="text-decoration: underline;">**EYNARD Noah :** </span>Plusieurs tests d’impression 3D : trous pour les capteurs, trous pour l’encastrement du support capteur sur le bras. Choix des ajustements. Impression du support pour le capteur sur le bras. Modélisation et découpe du capteur sur le côté du châssis. On choisit 3.05mm pour l’encastrement du capteur et plutôt 16.2mm pour les diamètres des yeux (même si 16.1 avec beaucoup de ponçage suffit).

- Prochaines étapes pour la méca : Dimensionnement des bras et des pivots (nouvelles impression 3D)

**<span style="text-decoration: underline;">MEDDAD Ali :</span>** Algorithme d’asservissement pour être parallèle au mur, algorithme de la 3éme étape où on prend le totem, dessins des étapes 1 et 2 pour visualiser leur déroulement.

**<span style="text-decoration: underline;">MONCEAU Pierre-Alexandre :</span>** mise en marche du programme du robot (les 3 premières étapes) “dans le vide”. Assemblage proto1 du robot et test réel de ses 3 premières étapes.

Etape 1 : attente du clique bouton

Etape 2 : avance jusqu'à une certaine distance puis tourner 90deg.

Etape 3 : avancer droit parallèlement au mur

**<span style="text-decoration: underline;">SABATIÉ Léo : </span>**correction des ajustements et impression du châssis. Quelques problèmes surviennent après impression donc il faut les régler (passage des fils,...). Trouver une solution pour le bras.

**<span style="color: rgb(45, 194, 107);">Points validés : </span>**le robot avance, capte et tourne quand necessaire.

**<span style="color: rgb(45, 194, 107);">Points non validés : </span>**tourner de 90deg.

Câblage du robot :

[![projetRob cablage.PNG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/projetrob-cablage.PNG)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/projetrob-cablage.PNG)

<span style="text-decoration: underline; color: rgb(186, 55, 42);">**Séance 5**</span>

**<span style="color: rgb(45, 194, 107);">Rapports d’activité : </span>**

**<span style="text-decoration: underline;">DUVERNOIS--DUPARC Maéline:</span>** faire la fonction avec Marita pour piloter le bras et le faire passer d’une position haute à une position basse. Problème du programme mémoriser la position initiale. Tests de la fonction d’asservissement de la position du robot par rapport au mur dans l’arêne.

**<span style="text-decoration: underline;">EL HAJJ Marita :</span>** faire la fonction avec Maéline qui sert à piloter le bras du robot et donc faire passer le moteur d’une position à une autre. faire le ‘cable management’ du robot et faire le point sur le matériel nécessaire pour la finalisation du robot.

**<span style="text-decoration: underline;">EYNARD Noah : </span>**Première découpe laser pour ma part (pour des équerres). Modélisation d’équerres et autres solutions pour ajuster la stabilité du robot. Modélisation et découpe du bras portant la pince, assemblage avec les tuyaux en 3D. Le robot commence à s’approcher de sa forme finale, il faudra penser au cable management : faire des trous.

**<span style="text-decoration: underline;">MEDDAD Ali :</span>** Amélioration des fonctions « tourner à Gauche » et de l’asservissement avec Pierre-Alexandre et vérification de détection de l’objet à 10cm qui est importante pour l'étape de prise de l’objet. Essais de modélisation et simulation du robot sur Tinkercad et Webot.

**<span style="text-decoration: underline;">SABATIÉ Léo :</span>** impression du système pour régler la hauteur de la pince (le bras). collage des pièces sur le châssis pour que la partie info puisse réellement tester leur code. recherche d’une solution pour éviter le fléchissement des roues et impression de la piece.

<span style="text-decoration: underline;">**MONCEAU Pierre-Alexandre :**</span> Réglage de la fonction « tourner à Gauche » afin que le robot tourne parfaitement à 90deg. Développement et test de la fonction d’asservissement de la position du robot par rapport au mur à sa droite. Participation au tournage du mini-reportage sur notre projet robotique.

**<span style="color: rgb(45, 194, 107);">Points validés : </span>**le robot avance parallèlement au mur à une distance de 10cm, capte les plots et tourne de 90deg quand necessaire. la conception mécanique est quasi terminée.

**<span style="color: rgb(45, 194, 107);">Points non validés :</span>** Ajuster la distance du capteur afin qu’il reconnaisse le plot du mur. ajuster le fonctionnement du moteur du bras et faire la fonction pour capter et chopper l’objet. .

<span style="text-decoration: underline; color: rgb(186, 55, 42);">**Séances libres**</span>

**<span style="color: rgb(45, 194, 107);">Rapports d’activité : </span>**

**<span style="text-decoration: underline;">Pôle mécanique : </span>**Création du contre poids pour permettre au bras de se relever avec le poids de la pince et de l'objet.

<span style="text-decoration: underline;">**Pôle informatique**</span> : Finalisation du code pour les déplacements du robot, ainsi que les actions de la pince pour attraper et relâcher l'objet.

<span style="text-decoration: underline;">**Pôle électronique** </span>: Câble management + recharge de la batterie.

<span style="text-decoration: underline;">**Problèmes / solutions :** </span>

Le poids de la pince et de l'objet était trop important et le bras ne parvenait pas à se redresser. Le couple du moteur était insuffisant. Les moteurs ont donc été débridés et malgré cela les mouvements du bras étaient restreints. L'équipe mécanique a pensé a jouté un contre poids pour faciliter les déplacements de la pince. Le problème a été de savoir où placé le contre poids et sa taille pour ne pas gêner les déplacements.

<span style="text-decoration: underline;">**Problème non résolu :**</span>

On a rencontré un problème lorsqu'on teste le robot en autonomie (sans qu'il soit branché au PC). Le servomoteur n'a pas l'air d'avoir assez de courant pour maintenir l'objet. Après l'avoir attrapé, il le relâche et retourne à l'étape 1 du programme sans raison. On a essayé de mettre un condensateur en parallèle avec l'alimentation , enlever les serial print, vérifier le void setup, etc. mais rien n'a changé. On n'a pas réussi à résoudre le problème et donc on fait la démonstration en étant branché au PC.

Version finale du robot :

[![robot.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/3Z0robot.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/3Z0robot.jpg)

# Projet Rob3 (Gaelle, Raphaël, Sofiane, Jean, Yves-Harold, Stanislas)

## **RobotPince**

### **Informations**

<table border="1" id="bkmrk-nom-pr%C3%A9nom-email-ben" style="border-collapse: collapse; width: 100%; height: 203px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29px;"><td style="height: 29px;">**NOM Prénom**</td><td style="height: 29px;">**Email**</td></tr><tr style="height: 29px;"><td style="height: 29px;">BENRABIA Sofiane</td><td style="height: 29px;">s.benavron@gmail.com</td></tr><tr style="height: 29px;"><td style="height: 29px;">MARDIKIAN Gaelle</td><td style="height: 29px;">gaellemardikian29@gmail.com</td></tr><tr style="height: 29px;"><td style="height: 29px;">MOUSSAY Raphaël</td><td style="height: 29px;">raphael.moussay@gmail.com</td></tr><tr style="height: 29px;"><td style="height: 29px;">ORIEUX Jean</td><td style="height: 29px;">jeanorx@gmail.com</td></tr><tr style="height: 29px;"><td style="height: 29px;">PINART MENUGE Stanislas</td><td style="height: 29px;">stanislas.pinart@gmail.com</td></tr><tr style="height: 29px;"><td style="height: 29px;">VALCIUS Yves Harold</td><td style="height: 29px;">yvesharoldvalcius11@gmail.com</td></tr></tbody></table>

#### Cursus

Polytech 3eme année | Spécialité: Robotique

#### Délais

<div aria-label="Options de section de page" class="pointer-container" id="bkmrk-%C2%A0" refs="pointer@pointer" tabindex="-1"><div class="pointer flex-container-row items-center justify-space-between p-s anim "><div class="flex-container-row items-center gap-s" refs="pointer@mode-section"><button class="text-button icon px-xs" title="Mode Lien Permanent, Cliquer pour afficher la balise d'inclusion"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button><div class="input-group"> <button class="button outline icon" title="Copier le lien" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button></div></div></div></div>Début: 13/02/24 | Fin: 06/06/24

### **But, objectifs et contexte** 

Le projet s’inscrit dans le cadre du projet de robotique. Il a pour but de concevoir, fabriquer et programmer un robot mobile autonome capable de manipuler un objet dans un environnement contraint. Plus précisément, le robot doit être en mesure de localiser un objet, de le saisir à l’aide d’un bras articulé muni d’une pince, de le déplacer et de le déposer avec précision à un emplacement cible au sein d’une arène délimitée. Ce projet met en œuvre des compétences en conception mécanique, en électronique embarquée et en programmation, notamment à travers l’utilisation d’un microcontrôleur Arduino et de capteurs permettant la détection et la navigation. Il s’inscrit dans un contexte pédagogique visant à initier les étudiants au travail en équipe autour d’un projet technique concret, en mobilisant des ressources disponibles au Fablab de Sorbonne Université. L'évaluation finale repose autant sur les performances du robot lors d’une démonstration que sur la qualité globale de la démarche de conception et de réalisation menée par l’équipe.

#### Matériel

Le matériel qu'on a à notre disposition sont les suivants :

3 moteurs

une pince motorisée

une carte Arduino UNO et un bus can

un bouton poussoir  
deux roue à fixer sur les moteurs   
une roue folle  
des fils   
deux labdeck

une batterie



### **Activités** 

<div align="left" dir="ltr" id="bkmrk-13%2F02%2F2025-activit%C3%A9s"><table><colgroup><col width="116"></col><col width="424"></col><col width="206"></col><col width="219"></col></colgroup><tbody><tr><td><span style="background-color: rgb(241, 196, 15);">13/02/2025</span>

</td><td>Activités

</td><td>Problèmes

</td><td>Prochain Objectifs

</td></tr><tr><td>Stanislas

</td><td>Compréhension du fonctionnement de l’ultrason. Mettre un capteur au niveau de l’essieu pour détecter les obstacles (horizontal), et un au niveau de la pince pour la hauteur de l'objet (vertical).

</td><td>  
</td><td>  
</td></tr><tr><td>Raphaël

</td><td>Aujourd'hui, j'ai créé deux fichiers DXF pour tester la découpe laser. Le premier fichier évalue les diamètres de 12,9 mm, 13 mm et 13,1 mm, tandis que le second teste les diamètres de 12,95 mm, 13,05 mm et 13,15 mm. Les deux fichiers incluent également un système d'assemblage avec des dents rectangulaires qui s'emboîtent pour relier les plaques entre elles.

</td><td>Aucun soucis à noter

</td><td>Lors de la prochaine séance, je devrai réaliser la découpe laser et tester l'ajustement avec les roulements

</td></tr><tr><td>Gaëlle

</td><td>Coder et tester le capteur l’ultrason

Commencer à comprendre le fonctionnement de la pince (code et branchement)

</td><td>  
Imprécision du capteur

</td><td>Code de la pince

</td></tr><tr><td>Jean

</td><td>Recherche de solutions techniques pour le châssis pour répondre aux différents problèmes (hauteur de la roue pivotante trop élevée, position des lidars, etc...)

</td><td>Toujours pas de solutions viable

</td><td>Trouver une solution pour le châssis, pince + plateau

</td></tr><tr><td>Yves Harold

</td><td>Régler la précision du capteur ultrason

Imprécision du capteur : 0.5 cm

A quel position, et comment le capteur il capte la distance

</td><td>Le capteur capte tout droit et augmente un peu la distance mesurée quand y a un angle

</td><td>Position des capteurs, et code pour capter les bonnes distances

</td></tr><tr><td>Sofiane

</td><td>Recherche de solution mécanique pour réaliser le châssis, plus particulièrement la pince.

- La pince doit aller assez bas pour attraper l’objet dans le pire cas du très bas.

</td><td>-Roue folle trop haute

-Solution pour la pince: La descendre du bras, le bras aura une forme de Z

</td><td>Solution pour les roues

</td></tr><tr><td>GENERAL

</td><td>  
</td><td>  
</td><td>Finalisez le GANT + Châssis

</td></tr></tbody></table>

</div><div align="left" dir="ltr" id="bkmrk-06%2F03%2F2025-activit%C3%A9s"><table><colgroup><col width="117"></col><col width="419"></col><col width="160"></col><col width="232"></col></colgroup><tbody><tr><td><span style="background-color: rgb(241, 196, 15);">06/03/2025</span>

</td><td>Activités

</td><td>Problèmes

</td><td>Prochains objectifs

</td></tr><tr><td>Stanislas

</td><td>Schéma des ensembles roue/moteur. S’assurer de la MIP et de la MAP pour tous les éléments.

Mesure des dimensions des composants grâce à solidworks.

</td><td>Mesurer les pièces précisément sur solidworks

</td><td>Dimensionner la pince

</td></tr><tr><td>Raphael

</td><td>Aujourd’hui, j’ai poursuivi les tests de découpe laser pour ajuster l’encastrement des roulements et des liaisons entre les plaques. Après avoir constaté que le diamètre de 12,9 mm commençait à encastrer, j’ai testé des diamètres de 12,85 mm et 12,8 mm. Le diamètre de 12,85 mm était encore légèrement trop grand, tandis que celui de 12,8 mm a permis un encastrement parfait avec le roulement. Les liaisons entre les planches ont également bien fonctionné avec les dimensions de rectangles choisies (5,2 mm x 4,8 mm).

</td><td>Mauvaise échelle des pièces découpés lors de l'utilisation d’Inscape

</td><td>Modéliser le châssis

</td></tr><tr><td>Gaëlle

</td><td>Réaliser la communication entre la pince et Arduino. Branchement du moteur avec le bus CAN

  
</td><td>Assemblage de la pince compliqué pour avoir une rotation cohérente

</td><td>Code pour commander le moteur

</td></tr><tr><td>Jean

</td><td>Schéma du châssis, du bras et des pivots, ainsi que la pince et le capteur au bout du bras.

Début des mesures de chaque pièces

Résolution des problèmes de la semaine dernière concernant les solutions de la pince et de la forme du châssis

</td><td>Mauvais schéma de la roue et du pivot châssis/pince

</td><td>Dimensionnement du châssis et de la pince pour modélisation

</td></tr><tr><td>Yves-Harold

</td><td>Structure de code pour commander le moteur, Communication du CAN avec le moteur.

</td><td>Problème code pour faire tourner les moteurs

</td><td>Faire tourner les moteurs un à un et ensuite indépendamment

</td></tr><tr><td>Sofiane

</td><td>/

</td><td>/

</td><td>/

</td></tr></tbody></table>

</div><div align="left" dir="ltr" id="bkmrk-20%2F03%2F2025-activit%C3%A9s"><table><colgroup><col width="116"></col><col width="424"></col><col width="206"></col><col width="219"></col></colgroup><tbody><tr><td><span style="background-color: rgb(241, 196, 15);">20/03/2025</span>

</td><td>Activités

</td><td>Problèmes

</td><td>Prochain Objectifs

</td></tr><tr><td>Stanislas

</td><td>Calcul avec des inconnues des dimensions du bras qui porte la pince et le capteur, les barres qui pivotent.

Réglage des derniers problèmes de dimensionnement de la pince. Schématisation finales

</td><td>Largeur de la pince vis à vis de la largeur du bras → Écart de 6 mm et résolu en écartant le bras avec deux pièces rallonges

</td><td>Assemblage des pièces du robot

</td></tr><tr><td>Raphaël

</td><td>Modélisation du châssis à partir des schémas.

Test d’usinage des encastrements pour les détecteurs de distance -&gt; Diamètre d’usinage 16 mm

</td><td>Problème de taille d’encastrement → Résolu avec 2/10 de millimètres

</td><td>Usinage de toutes les pièces

</td></tr><tr><td>Gaëlle

</td><td>Mise en commun des codes moteurs et des détecteurs de distance pour commander les moteurs en fonction des distances récupérées.

</td><td>Problème avec la communication arduino

  
</td><td>Finir l’algorithme reliant distance et moteurs

</td></tr><tr><td>Jean

</td><td>Assemblage des roues sur leur support et les moteurs.

Finalisation des problèmes liés au dimensionnement des fixation moteurs.

</td><td>Taille de trous pour les vis→ perçage

</td><td>Recherche et mise en place de l’odométrie

</td></tr><tr><td>Yves Harold

</td><td>Créer les fonctions de déplacement en changeant les consignes moteurs. Indépendance des moteurs en fonction des ID.

</td><td>Création des tableaux en fonction des ID. Fonction loop() mal géré pour stopper les moteurs

</td><td>Finir commande des moteurs en vitesse et en position

</td></tr><tr><td>Sofiane

</td><td>Mécanique:

- dimensions du bras de robot pour qu’il puisse attraper l’objet minimum quand l’angle du bras est de 20° et attraper l’objet de taille max quand l’angle est de 50°.
- équation du mouvement pour que face à l’objet la pince ait un mouvement de translation rectiligne parallèle au sol.

Algorithme:

- algorithme du déplacement du robot dans l’arène. Le robot doit pouvoir se déplacer simplement jusqu’à l’objet puis jusqu’à la zone de dépôt.

</td><td>l’équation du mouvement en translation dépend de l’angle du bas au lieu de la vitesse du moteur, et donne la valeur d’une longueur clé mais pas du déplacement nécessaire

</td><td>Finir l’équation du mouvement en translation.

</td></tr></tbody></table>

</div><table border="1" id="bkmrk-18%2F04%2F2025-activit%C3%A9s" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 11.6164%;"></col><col style="width: 44.8591%;"></col><col style="width: 21.2528%;"></col><col style="width: 22.1234%;"></col></colgroup><tbody><tr><td>18/04/2025</td><td>Activités</td><td>Problèmes</td><td>Prochains Objectifs</td></tr><tr><td>Raphaël</td><td>Modélisation de toutes les pièces, création des sous-assemblages et de l'assemblage final sur Solidworks</td><td>  
</td><td>Découpe laser des pièces et assemblage du robot</td></tr></tbody></table>

<div align="left" dir="ltr" id="bkmrk--2"></div><div align="left" dir="ltr" id="bkmrk-14%2F05%2F2025-activit%C3%A9s"><table><colgroup><col width="116"></col><col width="424"></col><col width="206"></col><col width="219"></col></colgroup><tbody><tr><td><span style="background-color: rgb(241, 196, 15);">14/05/2025</span>

</td><td>Activités

</td><td>Problèmes

</td><td>Prochain Objectifs

</td></tr><tr><td>Stanislas

</td><td>  
</td><td>  
</td><td>  
</td></tr><tr><td>Raphaël

</td><td>Transformation de toutes les pièces en format DXF et découpe laser des pièces. Assemblage du robot

</td><td>  
</td><td>  
</td></tr><tr><td>Gaëlle

</td><td>  
</td><td>  
  
</td><td>  
</td></tr><tr><td>Jean

</td><td>  
Découpe au laser des pièces. Assemblage du robot

</td><td>  
</td><td>  
</td></tr><tr><td>Yves Harold

</td><td>Odométrie pour mesurer la distance et angle</td><td>  
</td><td>  
</td></tr><tr><td>Sofiane

</td><td>  
</td><td>  
</td><td>  
</td></tr><tr><td>GENERAL

</td><td>  
</td><td>  
</td><td></td></tr></tbody></table>

</div><div align="left" dir="ltr" id="bkmrk-15%2F05%2F2025-activit%C3%A9s"><table><colgroup><col width="116"></col><col width="424"></col><col width="206"></col><col width="219"></col></colgroup><tbody><tr><td><span style="background-color: rgb(241, 196, 15);">15/05/2025</span>

</td><td>Activités

</td><td>Problèmes

</td><td>Prochain Objectifs

</td></tr><tr><td>Stanislas

</td><td>Amélioration du Gant. Formule du temps de rotation pour obtenir l’angle du bras du robot, pour le code arduino.

</td><td>  
</td><td>  
</td></tr><tr><td>Raphaël

</td><td>Finaliser la modélisation des pièces supplémentaires (Crochet pour moteurs), mise en place des différentes pièces sur le robot

Perçage et collage de certains emboîtement pour faciliter le montage

</td><td>  
</td><td>  
</td></tr><tr><td>Gaëlle

</td><td>Coder le moteur du bras du robot spécifiquement la limite d’angle

</td><td>  
  
</td><td>Finir le code pour bras pince

</td></tr><tr><td>Jean

</td><td>Mise en page du rapport avec dessin et schéma.

Mise en place des différentes pièces sur le robot

</td><td>  
</td><td>Le rapport

</td></tr><tr><td>Yves Harold

</td><td>Bonne lecture de l'état des moteurs et odométrie.

</td><td>  
</td><td>finaliser l’odométrie pour commander en angle ou en distance.

</td></tr><tr><td>Sofiane

</td><td>Travail sur le rapport, mise en page.

Théorie angle distance pour la pince

</td><td>  
</td><td>  
</td></tr><tr><td>GENERAL

</td><td>  
</td><td>Bras trop lourd</td><td></td></tr></tbody></table>

</div><table border="1" id="bkmrk-04%2F06%2F2025-activit%C3%A9s" style="border-collapse: collapse; width: 100%; height: 330.4px;"><colgroup><col style="width: 12.8522%;"></col><col style="width: 43.0054%;"></col><col style="width: 21.2534%;"></col><col style="width: 22.7407%;"></col></colgroup><tbody><tr style="height: 29.6px;"><td style="height: 29.6px;">04/06/2025</td><td style="height: 29.6px;">Activités</td><td style="height: 29.6px;">Problèmes</td><td style="height: 29.6px;">Prochains objectifs</td></tr><tr style="height: 102.4px;"><td style="height: 102.4px;">Stanislas</td><td style="height: 102.4px;">Code en delay du temps pendant lequel les moteurs tournent une fois la balise trouvée, avant de tourner et être face à l'objet.

Calcul du recul pour poser l'objet au bon endroit

</td><td style="height: 102.4px;">Hauteur inconnue de la zone saisissable de l'objet -&gt; approximation</td><td style="height: 102.4px;">  
</td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;">Raphaël</td><td style="height: 46.4px;">Mise en place de l'élastique pour compenser le poids du bras. Code du bouton poussoir pour démarrer et arrêter le code global.</td><td style="height: 46.4px;">  
</td><td style="height: 46.4px;">  
</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Gaëlle   
</td><td style="height: 29.6px;">Code du capteur de la pince pour repérer et attraper l'objet</td><td style="height: 29.6px;">  
</td><td style="height: 29.6px;">  
</td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;">Jean</td><td style="height: 46.4px;">Bouton poussoir: découpe pour l'installer sur le robot et branchements sur la labdeck</td><td style="height: 46.4px;">  
</td><td style="height: 46.4px;">  
</td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;">Yves Harold</td><td style="height: 46.4px;">Implémenter les fonctions pour avancer d'une certaine distance et tourner, en utilisant l'odométrie.</td><td style="height: 46.4px;">Ne marche pas avec ReadMotorState</td><td style="height: 46.4px;">  
</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Sofiane</td><td style="height: 29.6px;">Amélioration du rapport</td><td style="height: 29.6px;">  
</td><td style="height: 29.6px;"> </td></tr></tbody></table>

<table border="1" id="bkmrk-05%2F06%2F2025-activit%C3%A9s" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 24.9383%;"></col><col style="width: 24.9383%;"></col><col style="width: 24.9383%;"></col><col style="width: 24.9383%;"></col></colgroup><tbody><tr><td>05/06/2025</td><td>Activités</td><td>Problèmes</td><td>Prochains Objectifs</td></tr><tr><td>Stanislas

</td><td>Finalisation du Gant et des activités</td><td>  
</td><td>  
</td></tr><tr><td>Raphaël

</td><td>Refonte du code global</td><td>  
</td><td>  
</td></tr><tr><td>Gaëlle</td><td>Refonte du code global</td><td>  
</td><td>  
</td></tr><tr><td>Jean</td><td>Refonte du code global</td><td>  
</td><td>  
</td></tr><tr><td>Yves Harold</td><td>Refonte du code global. Gant</td><td>  
</td><td>  
</td></tr><tr><td>Sofiane</td><td>Finalisation du rapport</td><td>  
</td><td> </td></tr></tbody></table>

### **Solution technique**  


<span style="text-decoration: underline;">Principe:</span>

Le robot possède deux roues motorisées à l'arrière et une roue folle à l'avant. Un bras actionné par un troisième moteur est attaché sur lui. Le robot possède deux capteurs ultrasons qui lui permettent de s'orienter.

- Le bras est composé de trois parties, celle à laquelle est fixée la pince est relié au corps du robot par deux barres parallèles, de sorte à ce que la pince soit toujours horizontale.
- Les roues arrières sont contrôlées grâce aux moteurs en utilisant l'odométrie pour permettre un mouvement de rotation.
- Un moteur est utilisé pour abaisser remonter le bras.
- Un capteur ultrason est placé sur la pince pour qu'il soit capable de trouver la poignée de l'objet
- Un capteur ultrason est placé sur son flan droit pour l'aider à s'orienter.

<span style="text-decoration: underline;">Croquis:</span>

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/AlAimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/AlAimage.png)

<span style="text-decoration: underline;">Problèmes: </span>

- Le Bras étant trop lourd, le moteur n'a pas assez de couple pour le remonter.
- La pince est trop haute même si le bras est au plus bas

<span style="text-decoration: underline;">Solution:</span>

Nous avons choisit de placer un élastique à l'arrière du bras pour compenser son poids. Nous avons choisit cette solution plutôt qu'un contrepoids car ne demandait moins de matériel et était très simple à ajouter à notre robot. Sur la barre horizontale, nous avons aussi démonté la partie supérieure, car même si elle assurait une rigidité elle était trop lourde, et sans, la rigidité reste suffisante.

Pour le problème de la pince, on rajoute au bout du bras une structure permettant de placer la pince et le capteur.

### **Conception détaillée**

<span style="text-decoration: underline;">Plan:</span>

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/21zimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/21zimage.png)

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/WsWimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/WsWimage.png)

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/itLimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/itLimage.png)

[![IKRimage.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/ikrimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/ikrimage.png)[![Gntimage.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/gntimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/gntimage.png)

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/6zWimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/6zWimage.png)

<span style="text-decoration: underline;">Schéma électronique:</span>

Sur notre schéma nous avons un interrupteur qui nous permet d'allumer le robot et un bouton permettant de l'activer.

[![WhatsApp Image 2025-06-04 à 18.09.17_4e92b62b.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/whatsapp-image-2025-06-04-a-18-09-17-4e92b62b.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/whatsapp-image-2025-06-04-a-18-09-17-4e92b62b.jpg)

<span style="text-decoration: underline;">Modélisation 3D:</span>

[![Capture d'écran 2025-06-09 205951.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/capture-decran-2025-06-09-205951.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/capture-decran-2025-06-09-205951.png)

### **Programmation**

<span style="text-decoration: underline;">Organigramme:</span>

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/Rezimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/Rezimage.png)

# PROJET ROB3 (Mattéo, Mathis, Manu, Victor, Maxence, Athar, Maxime) .

### **Schwarzy**


#### **Répartition des rôles :**

- Responsable informatique : Maxence
- Pôles informatique : Maxence, Manu, Mathis
- Responsable électronique: Mattéo
- Pôle électronique : Matthéo, Victor
- Responsable mécanique : Maxime
- Pôle mécanique : Maxime, Athar
- Chef de projet : Victor
- Responsable batterie :Athar
- Responsable moteur : Matthéo
- Responsable Planning : Mathis

#### **Pôles informatique :**

- Stratégies pour réaliser l'objectif : (position des capteurs pour localiser les différents obstacles/objets)
- Test du capteur ultrason avec la carte arduino
- Modification du programme arduino pour avoir une meilleur précision de la distance
- Test des moteurs CC (un puis deux)
- Test du servomoteur

[![IMG_1893.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/img-1893.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/img-1893.jpeg)

#### **Pôle électronique :**

- Determination du câblage pour les moteurs

Les moteurs ont besoin d'être alimenté en 12V DC de plus ils communiquent via le bus CAN(les bornes H et L sur le shield ). Les trois moteurs sont branchés en série, ils s’alimentent mutuellement grâce aux 2 ports V+ et V- sur chaque moteur (comme montré sur le schéma du câblage). La carte arduino peut-être alimentée directement en 12V via la prise jack  
  
[![1000004687.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/Pvz1000004687.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/Pvz1000004687.jpg)

- Determination du câblage des capteurs et actionneurs : les pins des capteurs et de la pince ont été définis comme tel:

[![1000004691.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/1000004691.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/1000004691.jpg)

Le plus compliqué a été de gérer le 5V commun. Pour se faire nous avons utilisé des wago personels.  
  
Des soudures on été faites pour relier certains câbles et les agrandir. Nous avons envisagé d’utiliser une labdec pour simplifier les branchements, mais nous n’avions pas assez de place.

#### **Pôle mécanique :**

- Imagination du Robot :

Tout d'abord il faut prendre en compte le cahier des charges et concevoir plusieurs schémas de robots et choisir une des propositions.

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/Tadimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/Tadimage.png)

On a choisi de nous inspirer d'un bélier (l'arme de siège) pour concevoir le robot.

- Conception de la pince :

Ensuite on conçoit la pièce centrale du Robot. On a imaginé une pièce cubique facilitant le passage des fils et renforçant la structure. Cette pièce est équipée de la pince plastique et d'un capteur.

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/Y1dimage.png) ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/Y1dimage.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/MK2image.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/MK2image.png)

[ ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/yrJimage.png)

- Conception des bras et pilier :

<span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">On a conçu le système avec roulements qui connecte le bras et une autre pièce, ce système est le même au deux extrémités de celui-ci (la pince et le pilier). </span>

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/eDHimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/eDHimage.png)

On a conçu 4 piliers leur bras pour que la pince est un mouvement stable.

On a rajouté des renforts en haut et en bas des piliers.

- Ajout des Roues :

On a d'abord ajouté les roues avec leur moteur à l'avant au milieu des piliers puis on a rajouté la roue folle à l'arrière. Il a fallu faire attention à la différence de hauteur entre les différentes roues pour que le plateau reste parallèle au sol et au passage des fils.

Notre première idée de renfort ne marchait pas car la partie cyan tourne, Il y aurait trop de frottement.

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/HwNimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/HwNimage.png)

Donc nous avons imaginé un système de renfort plus classique

[ ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/HwNimage.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/Eg6image.png) ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/Eg6image.png)[ ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/TmFimage.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/DCUimage.png) ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/DCUimage.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/TmFimage.png) ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/TmFimage.png)

Pour la roue folle on a choisi de faire la MIP

[ ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/IpBimage.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/OCEimage.png) ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/OCEimage.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/lYhimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/lYhimage.png)

- Ajout du moteur pour le bras :

On a choisi de déporter le moteur, on ne l'a pas mis à la place d'un pilier. On a utilisé un système d'engrenage et le même système de support que celui des roues.

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/jU3image.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/jU3image.png)

- Ajout de la batterie et de la carte Arduino :

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/O59image.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/O59image.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/1tOimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/1tOimage.png)

- Optimisations :

Rajout de barres entre les roulements pour rajouter de la stabilité, transformant les deux liaisons rotule en une pivot.

#### **Séances :** 

<span style="text-decoration: underline;">**Séance 1 :13/02/2025**</span>

- Répartitions des rôles
- Découverte des différents pièces + multiples tests
- Commencement du Planning

<span style="text-decoration: underline;">**Séance 2 : matinée 06/03 :**</span>

   
Diagramme de Gantt   
Modélisation Solidworks Pratiquement terminée   
AF : motoriser moteur et pince (capteur US déjà fait)

**Info**    
Ils ont une idée de l’algorithme qui devra être implémenté. Ils doivent commencer à le coder pour le tester.   
Faire marcher les moteurs et la pince en fournissant les codes arduinos à l’équipe électronique.

Ils veulent tester le capteur pour évaluer sa précision et voir si on peut effectivement l’utiliser de la façon prévue dans l’algorithme qu’ils ont préparé.

Ils ont besoin de le tester leur code en situation réelle.   
Ils ont changé de code arduino pour faire marcher le capteur. La nouvelle version est plus précise car elle traite la distance en mm, au lieu de la traiter en cm auparavant.

**Modélisation / Méca**

Ils ont modélisé les différentes pièces du robot : le châssis, le bras ainsi que son système d’activation avec l’un des 3 moteurs et un engrenage. \[rajouter d’autres pièces éventuellement\]

Procédé choisit pour la conception des pièces du robot (hors moteurs, pince, capteurs et roues) : découpage laser de pièces de bois aggloméré.

Modèle pour le recul du robot en fonction de l’angle du bras : comme le bras à une trajectoire circulaire, sa position change lorsque l’on l’actionne. On fait donc avancer ou reculer le robot lors du mouvement du bras pour qu’il reste à la même position. Besoin de déterminer une relation entre l’angle de levée du bras et du recul du robot pour compenser.

Prise en main de la découpe laser, essai pour déterminer les incertitudes de la découpe, et définir le "serrage" voulu pour les pièces. Impression des premières pièces du modèle ensuite.

Question : le guidage du mouvement est-t-il fonctionnel ? Le fait d’avoir 4 liaisons / guidages pour une seule transmission de mouvement via l’engrenage est efficace ?

**Électronique :**

Faire fonctionner les moteurs, la pince.

Moteur : on a lu la documentation du branchement. On a réussi à le faire tourner. On adapte le code pour faire fonctionner 3 moteurs en série ensemble. Code TP de Maurel

Bouton (interrupteur) : branchement trouvé et effectué par Matis (doc arduino)

Pince : Manu, doc et branchement Arduino

<span style="text-decoration: underline;">**Séance 3 en autonomie, 13 mars (aprem) :**</span>

  
**Mécanique**

Imprécisions finies, commencer à imprimer les pièces, calculer rotation des roues et déplacement (Atthar et Maxime)

**Informatique &amp; Électronique**

Mattéo : faire fonctionner les moteurs en série

Manu : faire fonctionner la pince. Implémenter un code qui permet de contrôler la pince en fonction d’une distance voulue en cm, et pas par rapport à un angle.

<span style="text-decoration: underline;">**Scéance 4 20/04**</span>

<span style="text-decoration: underline;">**Scéance 5 : 15/05/2025**</span>

**Pôles informatique :**

- Organigramme du programme principal
- Organigramme des sous programme<span class="Apple-converted-space"> </span>
- Répartition des fonctions à réaliser:
- Tourner à 90° // Mathis
- Ouverture et fermeture de la pince // Fait par Manu
- Recherche Balise // Maxence
- Odometrie // Mathis
- Calibration // Manu
- Objet // Maxence<span class="Apple-converted-space"> </span>
- Compensation mouvement bras // Mathis

[![S0Eimage.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/embedded-image-18ldfwkb.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/S0Eimage.png)

[![Image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/bMaimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/bMaimage.png)

[![Image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/P4zimage.png)0](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/P4zimage.png)

[![Image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/jdfimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/jdfimage.png)

**Pôle électronique :**

- Debridage des moteurs + ajout de vel max
- Relier tous les câbles des servo moteurs + les deux capteurs aux VCC et GND
- Relier les câbles de data au pins que voulais le pôle informatique<span class="Apple-converted-space"> </span>

**Pôle mécanique :**

Constat d’une erreur avec la conception de la pièce support du capteur (problème de côté avec les vis). Autre problème avec hauteur du capteur -&gt; changement de fonctionnement dans le code pour la détection du haut du totem. On commence la "recherche" de la poignée du totem en partant du bas (au lieux de partir du haut).

**Activité 22/05/2025**

**Pôle informatique :**

- Test de fonctionnement des trois moteurs ( le robot peut avancer et lever son bras )
- Recherche de la valeur du couple nécessaire au moteur pour lever le bras tout en haut
- Continuation des fonctions odometrie, tourner à 90°, avancer, ect.. pour les modifier suite à leur non fonctionnement

**Pôle électronique :**

- mise en place des branchements<span class="Apple-converted-space"> </span>

**Pôle mécanique :**

- essais d’améliorer le lever de bras avec un élastique pour soulager le moteur, puis finalement le moteur a un couple suffisamment pour maintenir le bras lever<span class="Apple-converted-space"> </span>

**Activité 04/06/2025**

**Pôle informatique :**

- mise en commun des différents code réalisés par chacun des membres du pôle informatique
- test des fonctions
- après plusieurs essais, et de mesure, amélioration de la fonction pour avance
- fonction odometrie n’a pas l’air de fonctionner correctement et elle est utilisée pour tourner à 90° donc création d’une fonction plus expérimentale ou on va faire tourner le robot à une certaine vitesse pendant un certain temps pour obtenir 90°.
- test de la fonction qui permet de lire<span class="Apple-converted-space"> </span>

**Pôle électronique :<span class="Apple-converted-space"> </span>**

- amélioration des branchements wago
- mise en place du bouton sur le robot
- recharge de la batterie ainsi que test du fonctionnement avec uniquement la batterie<span class="Apple-converted-space"> </span>

**Pôle mécanique :**

- amélioration et conception de nouvelles pièces pour un meilleur maintien de la batterie

**Activité 05/06/2025 : Passage**

**Pôle informatique :**

Debogage

**Pôle électronique :**

Ressoudage de cable débranché/ cassé

# Projet ROB3 (Diyana, Émile, Rayan, Matthieu, Pierre-Louis, Esteban)

### <span style="color: rgb(0, 0, 0);">1. Présentation et organisation</span>

#### <span style="color: rgb(0, 0, 0);">1.1. Objectif général</span>

<span style="color: rgb(0, 0, 0);">Dans le cadre de notre Projet ROB3, nous devons concevoir un robot autonome capable de déplacer un objet depuis une position initiale vers une position finale définie à l’intérieur d’une arène. Celui-ci, doit être constitué d’un chariot mobile de type unicycle, d’un bras à 1 DDL en parallélogramme vertical, et d’une pince montée à l’avant. Il doit pouvoir saisir l’objet donné à un emplacement précis qui sera donné par l’arbitre le jour de l’évaluation. L’objet présente une zone “amincie”, imposant alors une prise précise à notre robot.</span>

<span style="color: rgb(0, 0, 0);">Ces positions n’étant pas connues à l’avance, il est donc nécessaire de concevoir un robot capable de se déplacer tout en détectant son environnement afin d’ajuster sa trajectoire, d’éviter tout obstacle, sans aucune interaction humaine.</span>

<span style="color: rgb(0, 0, 0);">Ce projet mobilise alors 3 pôles complémentaires qui seront chacun pilotés par différents responsables :</span>

- <span style="color: rgb(0, 0, 0);">Pôle mécanique : conception du châssis, du bras et gestion des différentes contraintes physiques associées → Matthieu</span>
- <span style="color: rgb(0, 0, 0);">Pôle électronique : câblage des éléments, connexions entre composants, et veiller à l’alimentation de la batterie, du bon fonctionnement des capteurs, servomoteurs, capteurs… → Rayan</span>
- <span style="color: rgb(0, 0, 0);">Pôle Informatique : développement des comportements du robot (déplacement, pince, capteurs…) → Pierre-Louis</span>

<span style="color: rgb(0, 0, 0);">Ces pôles seront alors coordonnés par un responsable chargé de la planification, et l’organisation générale des différentes tâches de chacun ainsi que la cohésion des différents groupes → Esteban</span>

<span style="color: rgb(0, 0, 0);">Afin de permettre une collaboration efficace et équilibrée, il a été décidé que les tâches seraient réparties selon les affinités de chacun, sur tous les membres de l'équipe, sans limiter obligatoirement les membres à un seul pôle.</span>

### <span style="color: rgb(0, 0, 0);">2. Réalisation</span>

#### <span style="color: rgb(0, 0, 0);">2.1 Séance 1 : Introduction</span>  


<span style="color: rgb(0, 0, 0);">***- 13/02/25 -*** </span>

<span style="color: rgb(0, 0, 0);">Dans cette première séance d'introduction, nous avons commencé par découvrir les attendus du projet, le matériel fourni ainsi que les fichiers et documentations disponibles sur le Wiki. Suite à nos premiers échanges, nous avons pu convenir d'un premier modèle de conception pour notre machine, permettant alors de poser les bases de notre organisation et de définir les tâches à répartir pour chaque pôle dans notre diagramme de Gantt. </span>

<span style="color: rgb(0, 0, 0);">Nous avons ainsi abouti à un schéma général de notre stratégie de conception :</span>

<span style="color: rgb(0, 0, 0);">[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/scaled-1680-/Acfimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/Acfimage.png)</span>

<span style="color: rgb(0, 0, 0);">L’agencement global du robot a été pensé en représentant notre châssis et les différents éléments répartis. Le bras est défini sur tout le châssis. Il est alors articulé selon 2 liaisons pivots (1, 2 sur le schéma) afin permettre le mouvement vertical tout en conservant la forme de parallélogramme imposée.</span>

<span style="color: rgb(0, 0, 0);">Nous avons également décidé de la position des capteurs : un à l’avant au niveau de la pince pour détecter l’objet en face du robot, et un second capteur sur le côté droit pour permettre un suivi du mur lors des déplacements. </span>

<span style="color: rgb(0, 0, 0);">En parallèle, nous avons entamé les premiers tests techniques, en nous concentrant sur les capteur à ultrasons. L’objectif est de confirmer leurs comportements afin de préparer leur intégration dans le code principal. Pour obtenir une mesure fiable en centimètres de la part du capteur, une documentation en ligne particulièrement claire et complète, a permis de répondre à toutes nos questions.</span>

<span style="color: rgb(0, 0, 0);">Ressources : [https://www.gotronic.fr/pj2-guide-us-hc-sr04-compatible-arduino-2309.pdf](https://www.gotronic.fr/pj2-guide-us-hc-sr04-compatible-arduino-2309.pdf)</span>

#### <span style="color: rgb(0, 0, 0);">2.2 Pôle mécanique</span>

<span style="color: rgb(0, 0, 0);"> ***- 06/03/25 -*** </span>

<span style="color: rgb(0, 0, 0);">**2.2.1 Conception du bras du robot :** </span>

<span style="color: rgb(0, 0, 0);">**a) Choix de l'architecture** </span>

<span style="color: rgb(0, 0, 0);">Un des premiers problèmes rencontrés pour cette conception a été lié au placement des éléments sur le châssis. En effet, il a fallu respecter la contrainte de garder une grande partie du bras sur le châssis. Nous avons donc déterminé que placer sa base en arrière permettait d'assurer une meilleure stabilité, faciliter les calculs de bras de levier et d'optimiser les déplacements. Cependant, cette configuration implique qu'en position basse, le bras occuperait une grande partie du châssis, environ égale à sa projection sur celui-ci. On aurait alors une zone s'étendant sur quasi toute la longueur du châssis dite zone morte où aucun composant ne peut être placé.</span>

<span style="color: rgb(0, 0, 0);">[![IMG_5803.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/scaled-1680-/qjBimg-5803.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/qjBimg-5803.jpg)</span>

*<span style="color: rgb(0, 0, 0);">Schéma à main levée, en bleu : châssis, en rouge : zone morte</span>*

<span style="color: rgb(0, 0, 0);">Afin de contourner cette contrainte, nous avons pensé à 3 idées différentes pour l'implantation du bras :</span>

- <span style="color: rgb(0, 0, 0);"><span style="text-decoration: underline;">Idée </span><span style="text-decoration: underline;">1</span> : Placer le bras au centre du châssis </span>

<span style="color: rgb(0, 0, 0);">[![5rmimg-5805.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/scaled-1680-/4Tx5rmimg-5805.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/4Tx5rmimg-5805.jpg)</span>

<span style="color: rgb(0, 0, 0);">Le bras est composé de 2 bielles montées sur des liaisons pivots, connectées à deux pièces latérales (B1 et B1') fixées au châssis par encastrement. La pièce B2 assure la continuité vers l’avant jusqu’à la pince.</span>

- <span style="color: rgb(0, 0, 0);">Idée 2 : Bras articulé via 2 bielles de part et d'autre du châssis</span>

<span style="color: rgb(0, 0, 0);">[![IMG_5802.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/scaled-1680-/img-5802.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/img-5802.jpg)</span>

<span style="color: rgb(0, 0, 0);">Les bielles B1 et B2 montées sur pivots, sont chacune reliées à un support moteur : A1 à droite et A2 à gauche. Les moteurs auraient ainsi été installés sur deux supports indépendants, chacun positionné de part et d’autre du châssis et relié directement vers la bielle associée.</span>

- <span style="color: rgb(0, 0, 0);"> Idée 3 : Positionner 2 bielles sur une des extrémités du châssis</span>

<span style="color: rgb(0, 0, 0);"> [![IMG_5804.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/scaled-1680-/CtIimg-5804.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/CtIimg-5804.jpg)</span>

<span style="color: rgb(0, 0, 0);">La pièce B1 agit comme bielle motrice, montée sur le support A1. La bielle B2, située juste à côté, complète le montage parallélogramme en se reliant à l’extrémité de l'élément e qui prolonge le bras vers l’avant.</span>

<span style="color: rgb(0, 0, 0);"><span style="text-decoration: underline;">Avantages &amp; Inconvénients</span> :</span>

<span style="color: rgb(0, 0, 0);">Les idées 2 et 3 facilitaient l'organisation des composants sur le châssis laissant plus d'espace pour l'intégration d'autres composants. Cependant, elles se révèlent plus complexes pour la conception puisque la(es) liaison(s) encastrement(s) nécessaires pour fixer solidement la partie du bras perpendiculaire (de longueur d sur l'idée 3) aux autres éléments étaient difficilement réalisables compte tenu de la largeur limitée de bois disponible.</span>

<span style="color: rgb(0, 0, 0);">**b) Bras final :** </span>

<span style="color: rgb(0, 0, 0);">Nous nous sommes finalement orientés vers une dérivée de la première option : 2 bielles sont alignées et fixées au chassis différemment. La bielle avant agit comme une bielle motrice : elle est vissée à un moteur par deux vis assurant la transmission du mouvement. Ce moteur est lui-même fixé au chassis à l'aide d'un support, monté serré au châssis grâce à un système de cales ajustées. </span>

<span style="color: rgb(0, 0, 0);">La bielle arrière est quant à elle directement maintenue entre deux pièces supports de par et d'autre de la bielle, et fixées par une vis. L'écart étant très petit, le jeu reste négligeable. De la même manière, ces supports sont montés serrés au châssis à l'aide de cales, assurant une fixation sans jeu. Le mouvement de pivot est rendu possible grâce à l'espace libre précisément permis entre les supports, ce qui permet à la bielle de tourner autour de son axe. </span>

<span style="color: rgb(0, 0, 0);">Le dernier élément du bras, qui supporte la pince, est de forme arquée. En effet, dans une première version, on avait fait une pièce droite qui rentrait en collision avec la partie de la bielle connectée au moteur lors de la descente maximal du bras. La forme arquée permet donc de résoudre ce problème. </span>

<span style="color: rgb(0, 0, 0);">La pièce relie latéralement aux extrémités des deux bielles grâce à des roulements connectés par 2 vis transversales. Elle permet de maintenir une distance fixe entre les bielles même en l'absence de parallélogramme. Toutefois, les vis reliant les bielles à cette pièce flottaient légèrement, ce qui engendrait un jeu. Pour y remédier, nous avons entouré les vis de papier scotch afin de combler l'espace des trous fait et améliorer l’adhérence.</span>

<span style="color: rgb(0, 0, 0);">Ainsi voici une première version détaillée avec mesure de notre système. En effet, après mesure, en sachant que nous avions à disposition du bois de 3.00 ou 6.00 mm, est 13/14 n'étant pas des multiples de 3, nous avions au préalable convenu que nous partirions sur une pièce large de 12mm (3+6+3) et que nous rajouterions des chutes très fines de bois pour approcher les 13.5 cm. </span>

<span style="color: rgb(0, 0, 0);">[![image0.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/scaled-1680-/vV4image0.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-03/vV4image0.jpeg)</span>

*<span style="color: rgb(0, 0, 0);">Schéma bras avec mesures et solution de maintien du capteur IR</span>*

<span style="color: rgb(0, 0, 0);">Au final, toutes les pièces ont été modélisées sur mesure dans SolidWorks, nous permettant alors d'ajuster les dimensions :</span>

- <span style="color: rgb(0, 0, 0);">bielle</span>
- <span style="color: rgb(0, 0, 0);">pièce arquée : choisie par rapport à la pince</span>
- <span style="color: rgb(0, 0, 0);">support moteur</span>
- <span style="color: rgb(0, 0, 0);">support bielle</span>
- <span style="color: rgb(0, 0, 0);">cales</span>

<span style="color: rgb(0, 0, 0);">Elles ont ensuite été obtenues par découpe laser dans du bois de 6 mm d'épaisseur pour assurer une robustesse. Un axe d'amélioration aurait été d'augmenter la longueur des bielles pour que celle en avant soit moins en collision avec les câblages.</span>

<span style="color: rgb(0, 0, 0);">Pour garantir la compatibilité de cette structure avec l'ensemble du robot, il a été nécessaire de travailler en étroite collaboration avec la conception du châssis et la fixation des roues à celui-ci, pour éviter tout conflit d'espace.</span>

<span style="color: rgb(0, 0, 0);">**2.2.2 Conception et usinage du châssis**</span>

<span style="color: rgb(0, 0, 0);">Notre châssis a été usiné par découpe laser à partir d'une plaque rectangulaire de 6 mm d'épaisseur avec des extrémités arrondies. Il a été pensé pour être suffisamment long et large pour accueillir : </span>

- <span style="color: rgb(0, 0, 0);">Une mini plaque Labdec</span>
- <span style="color: rgb(0, 0, 0);">Une batterie 12V</span>
- <span style="color: rgb(0, 0, 0);">Une carte Arduino UNO et son CAN BUS Shield</span>
- <span style="color: rgb(0, 0, 0);">Le bras monté</span>
- <span style="color: rgb(0, 0, 0);">Les supports/moteurs</span>

<span style="color: rgb(0, 0, 0);">Sa modélisation sur SolidWorks a été faite en prenant en compte la mesure de ces différents composants. </span>  
<span style="color: rgb(0, 0, 0);">Comme vu, les supports du bras et des moteurs devaient être parfaitement intégrés au châssis. Nous avons donc réalisé 5 découpes rectangulaires en longueur réparties de part et d'autre de la surface. Ces ouvertures permettent d'emboîter les supports du bras et des moteurs, qui comportent eux-mêmes deux trous rectangulaires en largeur. Dans chacun de ces trous, nous avons inséré des cales rectangulaires par le dessus et le dessous du châssis, de manière à bloquer fermement chaque support par serrage. Nos moyens de fixation permettent toujours un assemblage rigide mais toujours démontable en cas d'ajustement de l'assemblage. Un trou circulaire a également été percé à l'avant pour la roue folle. Un trou également pour permettre le cable management. On note que la largeur du châssis est plus grande que prévu à l'arrière du châssis du fait d'une erreur sur les mesures de la batterie qui ont été données.</span>

<span style="color: rgb(0, 0, 0);">**2.2.3 Fixation des roues**</span>

<span style="color: rgb(0, 0, 0);">Pour que le robot puisse rouler et donc bouger dans l'espace, nous avons utilisé les deux moteurs donnés. Les moteurs sont positionnés symétriquement dans le milieu arrière du châssis. Nous avons ainsi commencé par fixer les roues directement sur les axes moteurs. Cela permis grâce à des pièces rouges fournies avec le kit. Ainsi dès que les moteurs sont alimentés, les roues arrières tournent. Les moteurs ont ensuite été vissés sur des plaques/supports que nous avons préalablement insérées dans les découpes du châssis. Le montage au châssis a été vu plus haut. Enfin, pour la roue folle à l'avant nous avons simplement fait passer la vis de la roue par le dessous du châssis et bloqué le tout avec un écrou. Ces dispositions permettent alors un mouvement fluide du robot.</span>

<span style="color: rgb(0, 0, 0);">[![WhatsApp Image 2025-06-05 à 18.09.06_e38f8355.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/whatsapp-image-2025-06-05-a-18-09-06-e38f8355.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/whatsapp-image-2025-06-05-a-18-09-06-e38f8355.jpg)</span>

*<span style="color: rgb(0, 0, 0);">[Su](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/whatsapp-image-2025-06-05-a-18-09-06-e38f8355.jpg)pport moteur avec trous moteurs + découpes rectangulaires</span>*

<span style="color: rgb(0, 0, 0);">**2.2.4 Support pince / capteurs**</span>

<span style="color: rgb(0, 0, 0);">**a) Pince**</span>

<span style="color: rgb(0, 0, 0);">[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/NO0image.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/NO0image.png)</span>

<span style="color: rgb(0, 0, 0);">La pince est placée à l'extrémité de l'élément arquée du bras du robot, de façon à ce qu'elle soit abaissée (axe z) par rapport au plan du châssis. Ce choix a été guidé par des contraintes techniques. Si la pince avait été alignée avec le bras ou à hauteur du châssis, alors nous ne pourrions pas attraper le "totem" car ne correspondrait pas par rapport au mouvement permis.</span>

<span style="color: rgb(0, 0, 0);">Pour assurer le maintien de la pince au bras, nous avons dû nous soumettre à sa conception imposée : deux supports à trous d'épaisseur 3 mm pour encadrer notre pièce en arc grâce à des vis. Afin de garantir un bon maintien sans jeu, nous avons encore enroulé du scotch au niveau des vis. Les deux pattes de la pince espacées d'un écartement inconnu. Nous avons d'ailleurs placé un bout d'élastique entre les deux pattes de la pince pour que l'objet à attraper adhère mieux.</span>

<span style="color: rgb(0, 0, 0);">**b) Capteur infra-rouge**</span>

<span style="color: rgb(0, 0, 0);">Deux supports spécifiques ont été conçus pour fixer les capteurs. Le premier a été placé au-dessus de la pince, sur la pièce arquée à l'avant du bras. Son support a été découpé de manière à l'encadrer de face, ce qui lui permet de tenir en équilibre et rester perpendiculaire au bras. Grâce à cette orientation, le capteur est directement tourné vers l'avant, ce qui lui permet de détecter tout objet se trouvant devant le robot, en particulier pour la saisie du totem. Pour le capteur du côté droit : on applique le même processus de fixation au châssis qu'avec la bielle en l'adaptant au support encadrant le capteur.</span>

<span style="color: rgb(0, 0, 0);">**2.2.5 Assemblage mécanique final**</span>

<span style="color: rgb(0, 0, 0);">L'assemblage final a été réalisé progressivement après avoir réalisé individuellement toutes les pièces modélisées. Chaque élément a été monté manuellement sur le châssis selon les découpes prévues. Pour assurer un bon ajustement nous avons parfois dû recommencer certaines pièces ou ajuster avec du scotch lorsque le jeu était trop important.</span>

<span style="color: rgb(0, 0, 0);">L'ensemble du bras a été monté sur les supports fixés au châssis. Cependant, lors des premiers tests, le bras ne parvenait pas à remonter correctement après avoir été abaissé. Il s'est avéré que le moteur seul ne fournissait pas suffisamment de couple pour soulever l'ensemble du bras et de la pince (à moins de modifier ça dans le programme mais pas optimal). Pour résoudre cela, nous avons installé un élastique, tendu entre l'arrière du châssis et l'arrière du bras. Ce dispositif agit comme une force de rappel en aidant le moteur lors de la remontée du bras. </span>

<span style="color: rgb(0, 0, 0);">L'organisation des composants sur le châssis a été pensée afin d'optimiser l'espace tout en répartissant bien les différentes masses. Ainsi : </span>

- <span style="color: rgb(0, 0, 0);">La batterie 12V a été placé à l'arrière du châssis, le poids le plus lourd donc au niveau des deux roues motrices </span>
- <span style="color: rgb(0, 0, 0);">La carte Arduino Uno sur le côté droit, proche du capteur de droite</span>
- <span style="color: rgb(0, 0, 0);">La plaque Labdec de l'autre côté afin de centraliser les connexions et faciliter l'arrangement des câbles</span>
- <span style="color: rgb(0, 0, 0);">Le moteur à l'avant (vu)</span>

<span style="color: rgb(0, 0, 0);">Enfin, l'ensemble du montage a principalement été conçu pour qu'il soit démontable. De manière générale, toutes les pièces ont été fixés à l'aide de vis, boulons, ou bien par montage ce qui a nous a été très utile au fil du projet pour faire circuler les différents composants entre les différents pôles.</span>

<span style="color: rgb(0, 0, 0);">![image0.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-06/scaled-1680-/iMaimage0.jpg)*Assemblage quasi-final (manque capteur latéral et serflex pour tenir les câbles) en cours de programmation*</span>

#### <span style="color: rgb(0, 0, 0);">2.2 Pôle électronique</span>  


<span style="color: rgb(0, 0, 0);">Après plusieurs séances consacrées aux tests des composants, à la recherche de schémas de câblage et à la consultation des documents techniques, nous avons pu valider le bon fonctionnement de chacun des éléments ainsi que leur mode d'emploi avant leur intégration.</span>

- <span style="color: rgb(0, 0, 0);">Moteurs KTECH : Nous les avons d'abord alimentés un à un avec 12V, pour nous assurer que tout marchait.</span>
- <span style="color: rgb(0, 0, 0);">Pince 3551 : nous avons globalement alimenté le servo avec le 5V de l'Arduino et défini un court programme test afin de le tester. Le but était de s'assurer que la pince via le servo ouvrait/fermait bien ses pattes.</span>
- <span style="color: rgb(0, 0, 0);">Capteurs ultrasons HC-SR04 : De la même manière nous l'avons branché sur l'Arduino et utilisé un code test pour afficher les distances mesurées. Cela nous a permis de vérifier que le signal revenait bien et que les valeurs étaient cohérentes. </span>

<span style="color: rgb(0, 0, 0);">Une fois cela fait, nous avons pu établir une documentation claire et structurée des branchements de l'ensemble des éléments électroniques. Le but est de résumer et d'anticiper les connexions à réaliser pour chaque composant. Cette doc garantie une compréhension commune des branchements à effectuer pour tous les membres du groupe. </span>

<span style="background-color: transparent; color: rgb(0, 0, 0); font-family: Arial, sans-serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; white-space-collapse: preserve; text-align: center;">Documentation branchements </span>

<span id="bkmrk--9" style="font-weight: normal; color: rgb(0, 0, 0);"></span>

<span style="font-size: 12pt; font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;"> </span>

<span style="font-size: 12pt; font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration-skip-ink: none; white-space-collapse: preserve;">Composants : </span>

<span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;">→ pin quelconque : à adapter selon le code</span>

<span style="font-size: 10.5pt; font-family: Roboto, sans-serif; font-weight: 400; font-style: normal; font-variant: normal; text-decoration-skip-ink: none; white-space-collapse: preserve; color: rgb(0, 0, 0);">Pince 3551 avec servomoteur intégré :</span>

<span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;">Branchements avec CAN BUS SHIELD : </span>

- <span style="color: rgb(0, 0, 0);"><span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap;">Fil noir = masse </span><span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap;">→ GND du CAN BUS</span></span>
- <span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap; color: rgb(0, 0, 0);">Fil rouge = puissance du servo (Vservo, borne positive) <span id="bkmrk-%E2%86%92" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap;">→</span></span> Vin du CAN BUS</span>
- <span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap; color: rgb(0, 0, 0);">Fil blanc = signal d’asservissement du servomoteur, commande <span id="bkmrk-%E2%86%92-1" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap;">→</span></span> pin quelconque </span>
- <span style="color: rgb(0, 0, 0);"><span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap;">(Fil vert = Potentiomètre = lire l'angle position du moteur, nécessaire pour réguler la commande </span><span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap;">→ pin quelconque analogique)</span></span>

<span style="font-size: 10.5pt; font-family: Roboto, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration-skip-ink: none; white-space-collapse: preserve; color: rgb(0, 0, 0);">Capteurs de distance à ultrasons HC-SR04 :</span>

<span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;">Branchements avec CAN BUS SHIELD</span>

<span style="font-size: 10.5pt; font-family: Roboto, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;">Pour les 2 capteurs : </span>

- <span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap; color: rgb(0, 0, 0);">Fil rouge → Vcc = + 5V</span>
- <span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap; color: rgb(0, 0, 0);">Fil bleu → trig = Émission des ultrasons, on lance la mesure → pin quelconque</span>
- <span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap; color: rgb(0, 0, 0);">Fil vert → echo = Renvoie la durée du retour de l'écho, calcul la distance → pin quelconque</span>
- <span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap; color: rgb(0, 0, 0);">Fil noir → GND = masse de l’alimentation</span>

<span style="color: rgb(0, 0, 0);"><span style="font-size: 10.5pt; font-family: Roboto, sans-serif; font-weight: 400; font-style: normal; font-variant: normal; text-decoration-skip-ink: none; white-space-collapse: preserve;">Moteurs KTECH MS4015-V3 :</span><span style="font-size: 10.5pt; font-family: Roboto, sans-serif; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;"> </span></span>

<span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;">Branchements avec batterie et CAN BUS SHIELD (I = 0.06A si alimentation)</span>

<span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;">Pour les 3 moteurs :</span>

- <span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap; color: rgb(0, 0, 0);">2 fils rouges liés <span id="bkmrk-%E2%86%92-2" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap;">→</span></span> + 12V pince croco / borne +</span>
- <span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap; color: rgb(0, 0, 0);">2 fils noirs <span id="bkmrk-%E2%86%92-3" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap;">→</span></span> masse (un nécessaire) pince croco / borne -</span>
- <span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap; color: rgb(0, 0, 0);">Fil bleu H → borne CAN H du CAN BUS </span>
- <span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-wrap-mode: wrap; color: rgb(0, 0, 0);">Fil jaune L → borne CAN L du CAN BUS </span>

<span style="text-decoration: underline; color: rgb(0, 0, 0);">Soudure à réaliser : </span>

- <span style="color: rgb(0, 0, 0);">2 fils rouges capteurs ultrasons + un fil rouge pince servo moteur → + 5V CAN</span>
- <span style="color: rgb(0, 0, 0);">2 fils GND capteurs ultrasons → GND CAN</span>

<span style="color: rgb(0, 0, 0);">Le montage a été réalisé progressivement, en suivant les plans de câblage définis et en travaillant en accord avec le pôle informatique par rapport à la connexion Arduino. </span>

<span style="color: rgb(0, 0, 0);">Pour obtenir un résultat propre nous avons fait une gestion des câbles pour éviter les croisements inutiles. </span>  
<span style="color: rgb(0, 0, 0);">Nous avons notamment percé un trou dans le châssis pour faire passer les fils du moteur à travers. Les fils rouge (alimentation) ont été regroupés d'un côté d'un bornier connecté à la mini Labdec, tandis que les fils noirs ont été mis de l'autre côté. Même chose avec les fils de signal CAN bleu H et jaune L. </span>

#### <span style="color: rgb(0, 0, 0);">2.3 Pôle Informatique</span>

<span style="color: rgb(0, 0, 0);">2.3.1 Description brève du code</span>

<span style="color: rgb(0, 0, 0);">Pour mettre en route le robot, on appuie sur un bouton poussoir. Le programme se résume ainsi : </span>

- <span style="color: rgb(0, 0, 0);"> On enregistre des mesures initiales pour déterminer la distance latérale de référence par rapport au mur grâce au capteur. Cela permet au robot de s'orienter.</span>
- <span style="color: rgb(0, 0, 0);"> Le robot avance le long du mur en ajustant en continu sa trajectoire pour qu'elle soit parallèle au mur en fonction des mesures du capteur, on le fait en fixant la distance mesurée par le capteur IR latéral. En effet, l'écart fixe et constant lors du déplacement est permis grâce un correcteur proportionnel. </span>
- <span style="color: rgb(0, 0, 0);">Le capteur détecte également la présence d'une balise en surveillant les variations brutales des mesures de distance.</span>
- <span style="color: rgb(0, 0, 0);">Si détection, alors cela provoque une transition d'état dans la machine à état et le robot s'aligne face à la balise, puis il effectue un virage à 90° pour se mettre dans la direction du totem.</span>
- <span style="color: rgb(0, 0, 0);">Le robot s'aligne de nouveau avec le mur et s'avance pour se positionner avant de balayer devant lui à la recherche du totem. Un prototype de code pour que le robot se mette parallèle au mur grâce à des déplacements infimes en boucle et à l'observation de leur dérivée a été entrepris. </span>
- <span style="color: rgb(0, 0, 0);">Pendant cette phase, le bras descend jusqu'à une position horizontale définie. Celle-ci est calculée de manière à percevoir le haut du "totem" peu importe la taille de celui-ci. Le balayage tout comme la détection d'une balise surveille les différences importantes de distance pour le capteur frontal. Lorsqu'il pense avoir trouvé le "totem", il s'avance vers lui en ligne droite et s'il le perd de vue, il retente un balayage.</span>
- Lorsqu’il s’approche du totem, le robot ajuste dynamiquement la hauteur de sa pince pour saisir l’objet au bon niveau. Cette action repose sur une fonction de détection du sommet du totem, dont la position est convertie en une consigne de hauteur adaptée à la taille du bras, afin de garantir une prise précise.
- <span style="color: rgb(0, 0, 0);">Le robot avance ensuite d'une distance définie et, la pince se ferme pour le prendre.</span>
- <span style="color: rgb(0, 0, 0);">Un signal analogique de retour du servo confirme que la pince a bien été fermée.</span>
- <span style="color: rgb(0, 0, 0);">Le robot bascule alors dans l’état suivant pour repartir vers la zone de dépose.</span>
- <span style="color: rgb(0, 0, 0);">Une fois de retour à l’emplacement initial, le robot suit les mêmes états en sens inverse pour s’aligner à nouveau.</span>
- <span style="color: rgb(0, 0, 0);"> Enfin dans l'état DROP, la pince relâche le totem.</span>

Voici le lien pour visiter notre dépot Github : [https://github.com/PLFR23456/Rob3Exp2025/tree/StateMachine](https://github.com/PLFR23456/Rob3Exp2025/tree/StateMachine)  
La dernière mise à jour de notre programme avec une logique de fonctionnement du robot par états est située dans la branche "**StateMachine**". Cependant le reste des branches retracent nos tests ainsi qu'apports de fonctionnalités individuelles ou non.

### 3. Contribution individuelle : 


<table border="1" id="bkmrk-esteban-matthieu-m%C3%A9c" style="border-collapse: collapse; width: 100%; height: 443.95px;"><colgroup><col style="width: 50.0494%;"></col><col style="width: 50.0494%;"></col></colgroup><tbody><tr style="height: 35.2px;"><td style="height: 35.2px;">Esteban

</td><td style="height: 35.2px; text-align: justify;">Mécanique :

- Analyse cinématique du robot et mise en place de l'odométrie pour abstraire la commande en vitesse du robot (torseur cinématique réduit au point milieu de l'axe des roues).

Informatique :

- Prise en main des fonctions de commande des moteurs.
- Prise en main des fonctions de retour capteurs.
- Segmentation et organisation du code en fichiers distincts pour aider à sa lisibilité.
- Implémentation de l'odométrie en une fonction de commande du torseur cinématique du robot (prend la vitesse linéaire et angulaire du point de réduction en entrée).
- Mise en place du correcteur P puis PI pour conserver une trajectoire parallèle au mur, en utilisant la mesure du capteur latéral pour commander la vitesse angulaire du point de réduction (vitesse linéaire laissée constante).
- Abstraction du parcours en une machine à états avec utilisation d'un switch pour segmenter chaque étapes.
- Refactoring du système de cadencement pour reposer sur les tours de boucles et non plus les délais, moins précis mais plus robustes, et permettant de maintenir un fonctionnement quasi-parallèle avec acquisition des mesures tout au long du mouvement.
- Mise en place de fonctions de réaction "stables" qui demandent plusieurs mesures d'affilé d'un même phénomène pour déclencher une opération.
- Mise en place d'une fonction de balayage robuste (n'a pas pu être utilisée pendant la soutenance car un bug sur le switch empêchait le robot de passer à l'étape suivante).
- Mise en place d'une fonction de correction de l'orientation après rotation pour s'aligner avec un mur. Fonctionne en recherchant l'angle qui minimise l'évolution de l'écart latéral entre deux instants en faisant un mouvement de balancier (n'a pas non plus pu être présentée pour les mêmes raisons, le switch ne voulait pas passer à l'étape 2 malgré la bonne affectation de la variable des états).

Chef de projet :

- Rédaction de l'essentiel du Gantt Chart (segmentation des objectifs en tâches réalisable et mesurables).
- Supervision de l'équipe et du projet.

</td></tr><tr style="height: 75.45px;"><td style="height: 75.45px;">Matthieu

</td><td style="height: 75.45px; text-align: justify;">Mécanique :

- Conception et modélisation du robot sur SolidWorks incluant les fixations des liaisons
- Résolution du problème du bras en adoptant une forme arrondi
- Réalisation de toutes les pièces du robot avec la découpeuse laser.

Électronique - Informatique :

- Participation à la mise en place du bouton poussoir
- Gestion du câblage (câble management) et modification de certaines broches pour une utilisation correcte du code initial
- Ajustement du système proportionnel sur le bras
- Participation à l'élaboration de la logique du code.
- Implémentation de cette logique comprenant la détection des balises, la fonction de rotation de 90 degrés, le balayage du robot pour détecter le totem afin de déterminer son centre ainsi que les fonctions d'attrapage et de lâcher du totem entre autre.

</td></tr><tr style="height: 227.7px;"><td style="height: 227.7px;">Pierre-Louis

</td><td style="height: 227.7px; text-align: justify;">Mécanique :

- Conception et modélisation d'une solution pour le bras, la pince et l'articulation du bras sur SolidWorks.
- Calcul des contraintes de dimension du bras vis à vis du totem à récupérer

Informatique :

- Structure du programme avec début via le Serial possible et contrôles de certains paramètres en temps - réel toujours via le Serial
- Gestion du servo-moteur de la pince avec prise en compte du signal de retour pour ajuster la position en temps réel
- Fonction balayage du robot avec logique associée à la détection du totem puis du recalibrage sur celui-ci lorsqu'il est perdu de vue
- Collaboration sur le correcteur proportionnel du bras
- Essai de plusieurs types d'algorithme pour détecter la variation liée à la détection d'un obstacle sur un capteur IR pour en déterminer le meilleur puis esquisse d'une fonction de détection du totem en largeur ainsi qu'en hauteur lorsqu'il atteint une certaine distance
- Création de la fonction associant la position angulaire du bras auquel le bras détecte le totem à celle où il doit se placer pour le réceptionner

Rédaction sur la conception du bras + châssis

</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Emile

</td><td style="height: 35.2px; text-align: justify;">Informatique :

- <div>Prototypage initial de plusieurs fonctions clés : développement de premières versions de fonctions de contrôle moteur, de lecture capteur, ou encore de gestion du balayage, ayant servi de base à l’implémentation finale.</div>
- <div>Mise en place d’une base d’odométrie : réflexion sur la cinématique du robot et début d’une implémentation permettant de convertir les vitesses linéaire et angulaire en évolution de position. </div><div>  
    </div>
- <div>Implication dans la définition des étapes logiques du parcours du robot et suggestion d’une structure par switch, avec transitions et conditions.</div><div>  
    </div>
- <div>Rédaction de fonctions de test : création de fonctions simples, utilisées temporairement pour valider le comportement des capteurs, moteurs, et sous-systèmes, dans les premières phases du développement</div>

</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Diyana

</td><td style="height: 35.2px; text-align: justify;">Électronique :

- Test et branchement individuel de chaque composant afin de comprendre et s'assurer de leur fonctionnement
- Simulation du schéma du circuit final Tinkercard pour anticiper les connexions
- Rédaction de la documentation des branchements pour permettre le suivi à chacun des membres
- Branchements

Informatique :

- Tentative de code pour le servo moteur de la pince

Gestion et rédaction complète du Wiki

</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Rayan

</td><td style="height: 35.2px; text-align: justify;">Électronique :

- Recherches sur le fonctionnement des composants et leurs branchements.
- Prévisualisation du câblage via Tinkercad.
- Test des composants (leur comportements et précisions).
- Participation câblage du robot.

Informatique :

- Implémentation du bouton poussoir.
- Stratégie pour le bras du robot et tentatives pour script du bras qui attrape le totem.
- Script pour le dépôt de totem.

</td></tr></tbody></table>