Skip to main content

Projet ROB3 : Fares, Ilyes, Albéric

Projet ROB3 : Ilyes, Fares, Albéric Fasquelle

Introduction

Dans le cadre de ce projet de robotique nous avons à réaliser un robot écrivain. Celui-ci dispose de plusieurs fonctions et mode qui participe à la complexité de ce projet. 

En premier lieu nous avons le mode manuel qui pilotera le robot à l'aide d'un joystick afin de dessiner ce que l'on souhaite. De plus notre robot dispose de quatre fonctions supplémentaires qui dessinerons de manière automatique une cercle et une ligne.

Le présent document détaille les exigences du projet, les différentes étapes de sa réalisation, ainsi que les ressources et les échéances qui nous guideront tout au long de ce processus.

Cahier des charges 

Dans ce cahier des charges, nous sommes chargés de concevoir un robot capable de réaliser des dessins sur une surface plane. Nous devons lui permettre d'accomplir différentes tâches, telles que tracer des lignes et des cercles de longueurs et de rayons spécifiques dans un temps défini. De plus, il doit être en mesure de reproduire un dessin particulier dans un carré donné, tout en étant contrôlé par un joystick pour son mouvement. Nous pouvons envisager d'ajouter une fonctionnalité supplémentaire pour ajuster la vitesse du robot selon les besoins. Les contraintes incluent l'utilisation exclusive des équipements du FABLAB de Sorbonne Université, le choix des composants prédéfinis, la fabrication des pièces avec des machines spécifiques, et la programmation en C via l'IDE Arduino. Notre objectif sera également de minimiser la quantité de matériau utilisé pour ce projet.

1. Conception préliminaire 

Voici trois choix possible de conception du robot : LES DESSINS NE SONT PAS AUTO-SUFFISANTS. QUELQUES MOTS DE DESCRIPTION S'IMPOSENT POUR CHAQUE SOLUTION. METTEZ PLUS DE CONTRASTE ON NE VOIT PAS BIEN. APPLIQUEZ VOUS UN PEU PLUS.

PAR EXEMPLE POUR LE PREMIER: 

image.png

Solution 1 :


La première solution utilise pour les mouvements dans le plan horizontal de la feuille un mécanisme en boucle fermée à 5 barres , 5 liaisons pivot, dont deux sont motorisées. Voir une explication de son fonctionnement sur ce site . Pour les mouvements verticaux, on produit une translation verticale de la base qui soulève l'ensemble du robot.

Solution 2 : 

Solution 3 : 


L’idée 3 à été écarté des possibilités en raison des composants disponibles.

Solution  Avantages Inconvénients

Idée 1

-Facilité de conception 

-Esthétique

-Précision : pas de contraintes mécanique trop importante sur l'axe des servomoteurs

 

-Possibilité d'une écriture du code plus complexe en raison de la forme.
Idée 2

-Mise en place simple

-Architecture simple

-Pas de contrainte potentielle sur les composants

-Possiblement difficile à réaliser car la contrainte mécanique sur l'axe d'un des servomoteur.

-Pas spécialement beau

 

Idée 3

- modèle cinématique facile à réaliser

-Guidage difficile à réaliser au niveau des courroies

-Composant non disponibles: courroie

-possibilité de perte de précision lors des déplacements à causes des roulements

Nous avons décidé après l'étude des différentes solution de sélectionner la première proposition. D'une part puisque nous trouvions le design  agréable et original. Et d'autre part pour certaines raisons pratiques cités ci-dessus. 

Ensemble des tâches à réaliser pour la conception du robot :

Voici dessous l'ensemble des tâches réaliser lors des différentes étapes de la réalisation de ce projet. 

image.png

Diagramme de Gantt :

image.png

2. Conception détaillé du robot

2.1 Schéma électronique :

Pour la réalisation du schéma électronique, nous avons tout d'abord fait la liste de tout le matériel nécessaire à la bonne conception de celle-ci. La carte électronique est segmenté en plusieurs parties: 

  • Nous avons  tout d'abord l'élément central, l'Arduino. Il s'agit du microcontrôleur, c'est à dire le "cerveau" de la carte. Celui-ci est relié à chaque composant afin de les faire fonctionner entre eux.
  • Ensuite nous avons la partie des servomoteurs visualisés ici par des autocoms. 
  • Nous avons également ajouté une partie debug pour la partie des 4 modes à réaliser. Nous avons ajouter un bouton pour activer ou non les modes. Et nous avons ajouter une led rgb pour deux intérêts, d'une par pour pouvoir afficher l'état ou l'avancement du mode en court, il s'agit donc d'une aide pour debug. Et il y a également un côté esthétique. 
  • Enfin nous avons l'alimentation et le joystick modélisé également par des autocoms. 

image.png

Pour modélisé la carte nous avons fait le choix d'utiliser le logiciel KiCad pour deux raisons. LA première est que ce logiciel a déjà été utilisé par certains membres du groupe. Et la seconde pour son côté pratique qui nous permettra si le temps nous le permet d'imprimer une carte électronique(PCB). Pour rendre le projet encore plus attrayant. 

2.2 Conception de la structure du code

Pour la réalisation du code nous utiliserons le logiciel Visual Studio Code. Ce logiciel permet la création de projet de manière simple sans avoir a aller chercher sur internet les bibliothèques nécessaires au codage de celui-ci. De plus son interface graphique est agréable à utiliser et permet de rendre le code plus agréable aux yeux. 

Code provisoire : 

#include <Arduino.h>
#include "Servo.h"

int axey = A1;  
int axex = A0;  
int valeurX;
int valeurY;
Servo servo1;
Servo servo2;

void setup() {
  // put your setup code here, to run once:
  servo1.attach(6);
  servo2.attach(5);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  valeurX = analogRead(axex);
  valeurY = analogRead(axey);
  valeurX = map(valeurX,0,1023,0,180);
  valeurY = map(valeurY,0,1023,0,180);
  servo1.write(valeurX);
  servo2.write(valeurY);
  delay(100);

  Serial.print("x = ");
  Serial.print(valeurX);
  Serial.print("   Y = ");
  Serial.println(valeurY);

}