IMA4 2018/2019 P42 : Différence entre versions

De Wiki de Projets IMA
(Cahier des charges)
(Documents Rendus)
 
(239 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 9 : Ligne 9 :
  
 
Encadrant : Emmanuelle PICHONAT
 
Encadrant : Emmanuelle PICHONAT
 +
 +
Projet git : [https://archives.plil.fr/pfrison/projet-crep projet-crep]
  
 
==Description==
 
==Description==
Ligne 30 : Ligne 32 :
 
* Intervenir dans les douze écoles qui participent à la CREP. Avec deux interventions dans chacune des écoles.
 
* Intervenir dans les douze écoles qui participent à la CREP. Avec deux interventions dans chacune des écoles.
  
Pour la partie technique de ce projet, notre robot et notre piste devra, en plus de répondre au [http://crep.etab.ac-lille.fr/files/2018/07/Cahier-des-charges-CREP-19-VF.pdf cahier des charges de la CREP] imposé aux écoles, offrir un véritable divertissement à présenter aux enfants le jour de la CREP.
+
Pour la partie technique de ce projet, notre robot et notre piste devront, en plus de répondre au [http://crep.etab.ac-lille.fr/files/2018/07/Cahier-des-charges-CREP-19-VF.pdf cahier des charges de la CREP] imposé aux écoles, offrir un véritable divertissement à présenter aux enfants le jour de la CREP.
 +
 
 +
 
  
 
'''Notre robot''' devra être capable de respecter le cahier des charges imposé par la CREP :
 
'''Notre robot''' devra être capable de respecter le cahier des charges imposé par la CREP :
Ligne 36 : Ligne 40 :
 
* Suivre un scénario prédéfini par nos choix (dans notre cahier des charges) dans un milieu proche du monde des maraîchers.
 
* Suivre un scénario prédéfini par nos choix (dans notre cahier des charges) dans un milieu proche du monde des maraîchers.
  
* S’arrêter devant un objet du décor et de l'admirer.
+
* S’arrêter devant un objet du décor et l'admirer.
  
 
* Déplacer un objet du décor.
 
* Déplacer un objet du décor.
Ligne 42 : Ligne 46 :
 
* Faire une marche arrière.
 
* Faire une marche arrière.
  
* D'esquiver un ou plusieurs objet ou personne en mouvement.
+
* Esquiver un ou plusieurs objets ou personne en mouvement.
  
 
'''Notre piste''' devra respecter une certaine architecture :
 
'''Notre piste''' devra respecter une certaine architecture :
  
* Posséder un triangle isocèle collé à triangle équilatéral avec un cotés de même longueur et un parallélogramme.  
+
* Posséder un triangle isocèle collé à triangle équilatéral avec un coté de même longueur et un parallélogramme.  
  
 
* Avoir trois volumes différents pouvant faire partis du décor.  
 
* Avoir trois volumes différents pouvant faire partis du décor.  
  
* Et sera limitée en surface : de 4 à 6 m^2, en largeur < 2 m, en longueur < 3 m et en hauteur < 1 m.
+
* Et sera limitée en surface : de 4 à 6 , en largeur < 2 m, en longueur < 3 m et en hauteur < 1 m.
  
  
Ligne 58 : Ligne 62 :
 
* Chaque école aura 20 minutes de présentation comprise dans un amphithéâtre de 1H30: 10 minutes de présentation de la piste, de l'histoire, du code et 10 minutes de défi (réalisation du cahier des charges).
 
* Chaque école aura 20 minutes de présentation comprise dans un amphithéâtre de 1H30: 10 minutes de présentation de la piste, de l'histoire, du code et 10 minutes de défi (réalisation du cahier des charges).
  
* Chaque école pourra découvrir la vie associatif de Polytech Lille au travers des activités organisés par différents clubs.
+
* Chaque école pourra découvrir la vie associative de Polytech Lille au travers des activités organisés par différents clubs.
  
* Les élèves pourront aussi découvrir les divers domaines abordés à Polytech Lille (Agro-alimentaire, Matériaux, etc).
+
* Les élèves pourront aussi découvrir les divers domaines abordés à Polytech Lille (agro-alimentaire, matériaux, etc).
  
 
=Analyse du projet=
 
=Analyse du projet=
Ligne 86 : Ligne 90 :
 
==Scénario d'usage du produit ou du concept envisagé==
 
==Scénario d'usage du produit ou du concept envisagé==
  
La CREP a déjà plusieurs années d’existences (de 2014 à nos jours). Elle permettait aux écoles volontaires d'initier ses élèves à la robotique et de visiter notre école d'ingénieur.
+
La CREP a déjà plusieurs années d’existences (de 2014 à nos jours). Elle permettait aux écoles volontaires d'initier ses élèves à la robotique et de visiter notre école d'ingénieurs.
  
 
Cette année, nous aimerions montrer aux enfants la réalisation du cahier des charges, qu'ils auront respecté, par des élèves ingénieurs avec des contraintes supplémentaires :
 
Cette année, nous aimerions montrer aux enfants la réalisation du cahier des charges, qu'ils auront respecté, par des élèves ingénieurs avec des contraintes supplémentaires :
Ligne 100 : Ligne 104 :
 
Question : Est-ce nécessaire d'avoir une piste intelligente ?
 
Question : Est-ce nécessaire d'avoir une piste intelligente ?
  
Non : avec la connexion au robot la piste n'aura pas besoin d'être complètement autonome. Du coup la piste ne comportera pas de capteur, de ce fait le robot devra connaître sa position en permanence afin de pouvoir déclencher les événement liés à la piste.
+
Non : avec la connexion au robot, la piste n'aura pas besoin d'être complètement autonome. Du coup, la piste ne comportera pas de capteur. De ce fait, le robot devra connaître sa position en permanence afin de pouvoir déclencher les événements liés à la piste.
  
 
=Préparation du projet=
 
=Préparation du projet=
  
 
==Cahier des charges==
 
==Cahier des charges==
{{multiple image
+
[[Fichier:Piste_crep.PNG|200px|thumb|left|Ébauche pour déterminer les dimensions de la piste]]
| width = 60
+
[[Fichier:Robot.PNG|200px|thumb|right|Ébauche pour déterminer les dimensions du robot (vu de devant)]]
| image1 = Piste.PNG
 
| alt1 = Yellow cartouche
 
| image2 = Robot.PNG
 
| alt2 = Red cartouche
 
| footer = Players are cautioned with a yellow card and sent off with a red card.
 
}}
 
  
Après avoir étudier plusieurs scénario (Minecraft, à bord d'une station spatiale ...), nous avons décider de réaliser le scénario "à bord d'une station spatiale".  
+
Après avoir étudié plusieurs scénarios (Minecraft, à bord d'une station spatiale ...), nous avons décidé de réaliser le scénario "à bord d'une station spatiale".  
Comme dis dans les objectifs notre cahier des charges se décompose en deux parties : la piste et le robot.
+
Comme précisé dans les objectifs, notre cahier des charges se décompose en deux parties : la piste et le robot.
  
 
Pour le robot :
 
Pour le robot :
Ligne 121 : Ligne 119 :
 
* Devra avoir une forme de 'U' inversé afin de pouvoir parcourir les parcelles et les arroser par le dessus.
 
* Devra avoir une forme de 'U' inversé afin de pouvoir parcourir les parcelles et les arroser par le dessus.
  
* Posséder un bumper robotisé pouvant s'abaisser et pousser la caisse de fruit que l'on souhaite déplacer.
+
* Posséder un bumper robotisé pouvant s'abaisser et pousser la caisse de fruits que l'on souhaite déplacer.
  
 
* Devra connaître sa position sur la piste en temps réel.
 
* Devra connaître sa position sur la piste en temps réel.
Ligne 135 : Ligne 133 :
 
* Comportera 3 portes motorisées reliant les différentes pièces de la station.
 
* Comportera 3 portes motorisées reliant les différentes pièces de la station.
  
* les trois solides seront fabriqués en plexiglas, indépendant et décorés de façon électronique.  
+
* Les trois solides seront fabriqués en plexiglas, indépendant et décorés de façon électronique.  
  
 
* Au vue de la charge de travail déjà présente, l'esquive de l'usager se déplaçant sur la piste sera optionnelle.  
 
* Au vue de la charge de travail déjà présente, l'esquive de l'usager se déplaçant sur la piste sera optionnelle.  
  
 
* Afin que notre piste et notre robot correspondent à un univers spatial, notre piste ne comportera malheureusement pas de parcelles triangulaires.
 
* Afin que notre piste et notre robot correspondent à un univers spatial, notre piste ne comportera malheureusement pas de parcelles triangulaires.
 +
<div style="clear: both;">
  
 
==Choix techniques : matériel et logiciel==
 
==Choix techniques : matériel et logiciel==
Ligne 145 : Ligne 144 :
 
Au niveau du matériel, notre projet requière :
 
Au niveau du matériel, notre projet requière :
  
* 80 LEDs bleus [https://www.gotronic.fr/art-led-5-mm-led5bt-21009.htm]
+
* 80 LEDs bleus [https://fr.farnell.com/multicomp/mcl034sblc/led-3mm-32-super-bleu/dp/1581174]
* 80 LEDs rouges [https://www.gotronic.fr/art-led-5-mm-l7113ec-2085.htm]
+
* 80 LEDs rouges [https://fr.farnell.com/multicomp/mcl034pd/led-3mm-70-rouge/dp/1581112]
* 80 LEDs blanches [https://www.gotronic.fr/art-led-5-mm-l5wcn4-353.htm]
+
* 80 LEDs blanches [https://fr.farnell.com/tt-electronics-optek-technology/ovlaw4cb7/led-3mm-blanc-45-deg/dp/1497991]
 
* 10 contrôleur à LED (TLC5947DAP) [https://fr.farnell.com/texas-instruments/tlc5947dap/ic-led-driver-linear-32-tssop/dp/1755259]
 
* 10 contrôleur à LED (TLC5947DAP) [https://fr.farnell.com/texas-instruments/tlc5947dap/ic-led-driver-linear-32-tssop/dp/1755259]
 
* 6 interrupteurs [https://fr.rs-online.com/web/p/interrupteurs-a-levier/7109652/]
 
* 6 interrupteurs [https://fr.rs-online.com/web/p/interrupteurs-a-levier/7109652/]
* 2 cartes Arduino Mega [https://fr.rs-online.com/web/p/products/7154084]
+
* 4 servomoteurs (SG92R) [https://www.digikey.fr/product-detail/fr/adafruit-industries-llc/169/1528-1076-ND/5154651]
 +
* 2 cartes Arduino Mega [https://www.mouser.fr/ProductDetail/Arduino/A000067?qs=sGAEpiMZZMt0re6d%252b2Rx9v%252bc%252bQEIaOW9]
 
* 2 modules Bluetooth (MH-10) [https://www.robotshop.com/eu/fr/module-bluetooth-pour-arduino-hm-10-maitre-esclave.html]
 
* 2 modules Bluetooth (MH-10) [https://www.robotshop.com/eu/fr/module-bluetooth-pour-arduino-hm-10-maitre-esclave.html]
* 2 moteurs pas-à-pas (SY35ST26-0284A) [https://www.pololu.com/product/1207]
+
* 2 moteurs pas-à-pas (SY35ST26-0284A) [https://www.robotshop.com/ca/fr/moteur-pas-a-pas-bipolaire-sy35st26-0284a.html]
* 2 contrôleurs moteur (DRV8825) [https://www.pololu.com/product/2133]
+
* 2 contrôleurs moteur (DRV8825) [https://www.robotshop.com/ca/fr/controleur-moteur-pas-a-pas-drv8825-connecteurs-soudes.html]
* 2 roues en caoutchouc [https://www.pololu.com/product/1420]
+
* 2 roulettes à bille [https://www.mouser.fr/ProductDetail/DFRobot/FIT0007?qs=sGAEpiMZZMtyU1cDF2RqUDZGC8letk%2fMsmge%252b6DUsCg%3d]
* 2 adaptateurs roue-arbre moteur [https://www.pololu.com/product/1203]
+
* 1 paire de roues en caoutchouc [https://www.robotshop.com/ca/fr/roues-noir-60-8mm-pololu-paire.html]
* 2 roulettes à bille [https://www.pololu.com/product/953]
+
* 1 bloc de 4 piles AA [https://www.mouser.fr/ProductDetail/Eagle-Plastic-Devices/12BH351-GR?qs=sGAEpiMZZMvxqoKe%252bDjhrq7CisiC19MEQQnE6bRo2ZU%3d]
* 1 bloc de 4 piles AA [https://www.amazon.fr/Support-coupleur-piles-LR06-AA/dp/B003VPSYNG]
 
 
* Environ 7 m² de contreplaqué (à acheter en magasin pour demander une coupe aux bonnes dimensions)
 
* Environ 7 m² de contreplaqué (à acheter en magasin pour demander une coupe aux bonnes dimensions)
 
* Du plexiglas
 
* Du plexiglas
Ligne 164 : Ligne 163 :
  
 
* PaintDotNet pour la création des textures de la piste
 
* PaintDotNet pour la création des textures de la piste
* Solidworks pour le modélisation des objets en 3D (châssis du robot, décorations...)
+
* Solidworks pour la modélisation des objets en 3D (châssis du robot, décorations...)
 
* Inkscape pour d'éventuels découpages à la découpeuse laser
 
* Inkscape pour d'éventuels découpages à la découpeuse laser
  
 
==Liste des tâches à effectuer==
 
==Liste des tâches à effectuer==
  
Nos tâches à effectuer vont se diviser en deux parties, tout d'abord le design de notre robot et notre piste, puis la programmation de ces derniers.
+
Nos tâches, à effectuer vont se diviser en deux parties, tout d'abord le design de notre robot et notre piste, puis la programmation de ces derniers.
  
 
Tout d'abord le robot :
 
Tout d'abord le robot :
  
* Modélisation 3D du châssis du robot en 'U' inversé et réalisation.
+
* Modélisation 3D du châssis du robot en "U" inversé et réalisation.
  
 
* Montage et câblage du robot (assemblage moteur, roue, ...).
 
* Montage et câblage du robot (assemblage moteur, roue, ...).
Ligne 205 : Ligne 204 :
  
 
{| class="wikitable"
 
{| class="wikitable"
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total
+
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Vac. février !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Vac. pâques !! Vac. pâques !! Heures S12 !! Total
 +
|-
 +
| '''Analyse du projet'''
 +
| 10
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| 10
 
|-
 
|-
| Analyse du projet
+
| '''Modélisation du robot'''
| 0
+
|
 +
| 4
 +
| 4
 +
|
 +
| 2
 +
| 4
 +
|
 +
|
 +
|  
 
|  
 
|  
|
+
|  
|
+
| 5
|
+
|  
|
+
|  
|
+
|  
|
+
|  
|
+
| 19
|
+
|-
|
+
| '''Modélisation de la piste'''
|
+
|  
 +
| 6
 +
| 6
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| 6
 +
| 2
 +
|
 +
|
 +
|
 +
|
 +
| 20
 +
|-
 +
| '''Réalisation de la piste'''
 +
|
 +
|
 +
|
 +
| 6
 +
| 8
 +
| 6
 +
|
 +
| 4
 +
| 4
 +
| 8
 +
| 1
 +
|
 +
| 4
 +
|
 +
| 8
 +
|
 +
| 49
 +
|-
 +
| '''Réalisation du robot'''
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| 4
 +
|
 +
| 4
 +
|
 +
| 2
 +
| 6
 +
|
 +
|
 +
| 16
 +
|-
 +
| '''Programmation'''
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| 10
 +
| 4
 +
| 2
 +
| 4
 +
| 4
 +
| 8
 +
| 2
 +
| 4
 +
| 2
 +
|
 +
| 40
 +
|-
 +
| '''Scénario'''
 +
|
 +
|
 +
|
 +
| 2
 +
|
 +
|
 +
|
 +
| 2
 +
| 2
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| 6
 +
|-
 +
| '''Rédaction du rapport et du wiki'''
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| 8
 +
| 8
 +
|-
 +
| '''Total'''
 +
| 10
 +
| 10
 +
| 10
 +
| 8
 +
| 10
 +
| 10
 +
| 10
 +
| 10
 +
| 10
 +
| 12
 +
| 15
 +
| 15
 +
| 8
 +
| 12
 +
| 10
 +
| 8
 +
| 168
 
|}
 
|}
 
  
 
==Prologue==
 
==Prologue==
 
==Semaine 1==
 
==Semaine 1==
 +
 +
[[Fichier:CREP_robot_3D.png|300px|thumb|left|Plan 3D du robot]]
 +
[[Fichier:Piste3D.PNG|200px|thumb|right|Piste en dimension réelle]]
 +
[[Fichier:Joint_central.PNG|200px|thumb|right|Joint central modélisé]]
 +
 +
Cette semaine, nous nous sommes attardé à la modélisation de la piste et du robot en 3D :
 +
 +
Le robot ayant des dimensions raisonnables, il est possible d'imprimer son châssis avec une imprimante 3D du Fabricarium. Pour la modélisation, nous avons choisi le logiciel Solidworks car il permet, en plus de sa simplicité d'utilisation, de réaliser les composants (moteurs, roues, cartes électroniques, etc.) pour pouvoir construire un assemblage final et ainsi éviter les erreurs de dimensionnement en plus de nous obliger à prévoir des moyens de fixation. Voici le résultat de cette séance : (Notes : les nouvelle dimensions du robot sont les suivantes : 132x150x100 mm (lxLxh))
 +
 +
Pour les prochaines séances, il restera à :
 +
* Fixer les roues folles à l'arrière
 +
* Dessiner le bumper à l'avant
 +
* Prévoir un compartiment pour l'électronique
 +
* Finaliser l'esthétisme du robot.
 +
 +
Puis nous avons aussi designer la piste en modélisation 3D aux bonnes dimensions à l'aide d'OpenSCAD afin de mieux visualiser le rendu final visé :
 +
 +
 +
Nous remarquons que dans nos jardins nous aurons la place pour respecter la contrainte de forme des parcelles du cahier des charges de la CREP (zone jaune) alors que les trais blanc représentent le découpage de la piste en 4 planches de contreplaqués de 1*1,5 m.
 +
 +
Ensuite nous avons modéliser les jointures pour lier les planches de contre-plaqué selon plusieurs contraintes de liaison et d'esthétisme :
 +
 +
En discutant des modélisation nous avons finalement décidé de mettre chacune des planches sur des pieds et les lier avec moins de jointure ce qui nous permettra d'avoir une piste plus stable :
 +
 +
Pour les prochaines séances, il restera à :
 +
* Modéliser les joints de cotés
 +
* Acheter les plaques de contre plaqués pour la piste
 +
* Imprimer en 3D les joints et les monter sur la piste
 +
* créer un scénario précis afin de commencer à coder le robot.
 +
 
==Semaine 2==
 
==Semaine 2==
 +
[[Fichier:Solution2.PNG|200px|thumb|right|Le seconde solution de découpe retenue]]
 +
[[Fichier:Piece.PNG|200px|thumb|left|Pièces nécessaires pour notre piste]]
 +
[[Fichier:CREP_robot.PNG|200px|thumb|left|Ajout des roulettes sur le robot]]
 +
 +
Après délibération nous avons décidé de faire des joints de dessous soutenu par des piliers pour pouvoir mettre sous la piste tout l'électronique nécessaire à l'activation des portes et de l'éclairage.
 +
 +
De plus nous allons utilisé des joints pour fixer nos mur, certains seront fixés à la piste(ceux de cotés) alors que d'autres seront collés sur cette dernière.
 +
 +
Vous trouverez donc ci joint nos designs 3D de ces différentes pièces sur Onshape:
 +
 +
La modélisation du robot a aussi avancé, les roues folles ont été ajoutées. Le prochaine étape sera de concevoir le bumper :
 +
 +
Nous avons aussi prévu le découpage des plaques de contreplaqué pour optimiser au maximum les chutes. Nous avons décidé de prendre 6 plaques de contreplaqué de 160x80 cm. Voici le découpage prévu (à gauche) :
 +
 +
Avec ce découpage nous avons donc notre piste de 3x2 mètres et 6*80 cm + 4*160 cm + 4*140 cm = 1680 cm de murs de 10 cm de haut chacun (nous avons en tout 1400 cm de murs sur notre piste).
 +
Ce découpage revient donc à un prix totale de 99.9€ soit 16.65€ la planche et 1€ de découpe.
 +
 +
Alors que la solution avec des planches de la dimension au dessus (250*122cm) nous donne 800cm de chute par planche soit beaucoup trop :
 +
 +
De plus elle nous revient à 166.53€ soit 18.2€ le m² pour 9.15m² elle n'est donc pas viable car elle produit trop de chute et coûte trop cher.
 +
 +
C'est pour cela qu'on utilisera six planches de dimensions 160*80*0.5cm (à droite).
 +
 +
La semaine prochaine nous devrons acheter nos plaques de contre-plaqué et imprimer les pièces 3D.
 +
 +
<div style="clear: both;">
 +
 +
==Semaine 3==
 +
 +
[[Fichier:CREP_planches.jpg|300px|thumb|left|Planche de contre-plaqué découpées]]
 +
[[Fichier:Piece_joint_central.jpg|300px|thumb|right|Joint centraux imprimés en 3D]]
 +
 +
Nous avons été cherché le bois nécessaire à la construction de la piste. La découpe des planches a été réalisé par un technicien du magasin, cependant chaque trais de découpe enlevait 3 cm de matière donc nous avons décidé de faire la découpe des murs (de 10 cm de largeur) à la découpeuse laser, de plus nous avons commencé à imprimer en 3D les joints de notre piste:
 +
 +
La prochaine étape sera de tracer le chemin des murs, des trous pour les jardins,imprimer toutes les pièces 3D nécessaires et les pions des piliers.
 +
 +
<div style="clear: both;">
 +
 +
==Semaine 4==
 +
[[Fichier:CREP_Triangles.png|400px|thumb|right|Jointure des cotés pour la piste]]
 +
[[Fichier:CREP_piste_murs.png|400px|thumb|left|Disposition des murs sur la piste]]
 +
Cette semaine nous avons travaillé sur la piste ainsi que sur les pièces qui serviront de liaison pour cette dernière.
 +
 +
Nous avons placés les murs sur la piste en découpant certains d'entre eux pour les ajuster.
 +
 +
Puis nous les avons numérotés afin de ne pas perdre de temps pour les replacer.
 +
 +
Nous avons ensuite tracé les trous de 1 cm de diamètre à percer.
 +
 +
<div style="clear: both;">
 +
 +
==Semaine 5==
 +
 +
[[Fichier:CREP_Robot_Forme.PNG|300px|thumb|right|Modélisation finale du robot]]
 +
 +
Cette semaine nous avons percé les repères tracés la semaine dernière. Les trous ont été faits pour que les pions des jointures s’emboîtent avec un peu de résistance pour créer un encastrement rigide grâce aux frottements. Nous sommes satisfait de cette solution pour le moment mais il faudra veiller à l'usure de ces liaisons qui pourraient abîmer le bois à terme.
 +
 +
Nous avons aussi tracé des repères sur les murs pour placer nos 216 leds. Pour optimiser les couleurs et la lumière, nous avons réuni les leds rouges et bleus au même endroit. Avec les leds blanches, il y a donc 144 trous à percer ce qui représente environ 1 led tous les 10 cm. Nous nous somme assuré que le placement des leds était cohérent (e.g. un trou n'est pas trop proche d'un mur). Pour répartir les trous sur les murs nous avons utilisé la formule suivante : <math> \textstyle \frac{L_{mur}\times 144}{L_{murtotale}} = nb_{troumur} </math>
 +
 +
La modélisation du robot a aussi beaucoup avancé :
 +
* La forme global a été décide
 +
* Le mécanisme du bumper a été dessiné (nous avons bien sûr vérifié qu'il n'y avait aucune collision lors du déploiement du bumper)
 +
* Un compartiment pour l'électronique a été ajouté
 +
 +
Néanmoins, nous pensons que l'espace réservé à l'électronique est trop petit, il est prévu de l'agrandir en modifiant la longueur du robot.
 +
 +
Le châssis du robot sera en deux partie :
 +
* Une partie "coiffe" ou "du haut" qui comporte un creux pour loger l'électronique
 +
* Une partie "corps" ou "du bas" qui va du bas du châssis jusqu'au plan formé par le bas de la boîte prévu pour l'électronique
 +
 +
Cette découpe nous permettra aussi de viser le servomoteur associé au bumper. Il restera à dessiner un moyen de fixation entre la partie haute et basse. Nous pensons modéliser des trous et des pions pour les emboîter.
 +
 +
Pour la suite il restera a prévoir un passage pour les câbles et les leds
 +
 +
<div style="clear: both;">
 +
 +
==Vacances de février==
 +
[[Fichier:CREP_PercTeacher.PNG|400px|thumb|right|Interface graphique de l'application]]
 +
 +
La conception du robot arrive bientôt à sa fin. Pour prendre de l'avance, nous avons profité de ces vacances pour nous essayer à la programmation du robot.
 +
 +
Pour nous faciliter l'écriture du parcours que devra faire le robot, nous avons eu l'idée de créer un logiciel pour piloter le robot depuis un PC via liaison série et d'enregistrer le parcours ainsi créé. Nous avons choisi de le réaliser en Java, car la création d'une interface graphique est plus simple. Chaque mouvement est décomposé en "action". Une action correspond à deux valeurs de pas à effectué par les deux moteur pas-à-pas ainsi que deux délais qui correspondent à la durée d'attente entre chaque pas (plus le délai est cours, plus la vitesse est importante). Ce tableau d'action s'exporte en quatre tableaux de long (pas moteur gauche + droit + délais moteur gauche + droit) qui pourrons être directement utilisé dans le programme final.
 +
 +
En plus de l'interface graphique, le logiciel possède des raccourcis claviers comme suit :
 +
* Les touches du pavé numérique de 1 à 9 (excepté 5) correspondes aux différents mouvements.
 +
* La touche espace ajoute une nouvelle action.
 +
* La touche 0 du pavé numérique ajoute une pause (ouvre un dialog demandant la durée).
 +
* La touche retour arrière permet de retourner en arrière.
 +
 +
Le logiciel a été nommé "PercTeacher" ("Perc" étant le nom donné au robot dans le scénario).
 +
 +
Voici l'interface réalisée :
 +
 +
Le logiciel n'est pas encore complet. En effet, il ne manque que l'envoi des données via liaison série. Cette partie pourra être réalisée à l'aide d'une librairie comme [http://rxtx.qbang.org/wiki/index.php/Main_Page RxTx].
 +
 +
Enfin, un projet git a été créé sur le gitlab de l'école et est disponible en cliquant sur le lien suivant : [https://archives.plil.fr/pfrison/projet-crep Projet git du groupe 42].
 +
 +
<div style="clear: both;">
 +
 +
==Semaine 6==
 +
[[Fichier:pilier_joint.jpg|200px|thumb|right|Pilier de jointure de de la piste]]
 +
PercTeacher (voir [[IMA4_2018/2019_P42#Vacances_de_f.C3.A9vrier|Vacances de février]]) est maintenant fonctionnel et est capable d'envoyer les informations à une carte Arduino par liaison série. Le projet git a été mise à jour.
 +
 +
Les trous dans les murs pour les LEDs ont été réalisé d'après les repères dessinés à la [[IMA4_2018/2019_P42#Semaine_5|Semaine 5]].
 +
 +
Le robot a été séparé en deux parties comme souhaité dans le rapport de la [[IMA4_2018/2019_P42#Semaine_5|Semaine 5]]. L’emboîtement est réalisé grâce à deux trous dans chaque partie : deux pions (externes aux deux parties pour sauver du PLA) qui ont été fabriqués en sciant une tige métallique s’emboîteront dans les trous, formant ainsi la liaison.
 +
 +
Tous les joints de la piste on été imprimés en 3D et collés à l'aide d'un pistolet à colle aux piliers de PVC :
 +
 +
Nous avons aussi avancé sur le scénario, que nous allons prochainement réécrire en pièce de théâtre avec plusieurs actes.
 +
 +
Nous allons maintenant commencer à imprimer les jointures mur/piste afin que cette dernière soit prête pour l'arrivé des LEDs et contrôleurs à LED.
 +
 +
<div style="clear: both;">
 +
 +
==Semaine 7==
 +
[[Fichier:CREP_Robot_peinture.jpg|400px|thumb|right|Résultat du robot imprimé et peint]]
 +
 +
Cette semaine, le châssis du robot a été imprimé à l'aide des imprimantes 3D du Fabricarium. Parce que nous avons utilisé deux imprimantes chargées avec deux couleurs de PLA différentes, nous avons unifié la couleur du robot avec de la peinture acrylique noire. Voici le résultat avec à gauche, le robot assemblé et à droite, le compartiment pour l'électronique d'ouvert (l'arduino uno est ici pour l'exemple, nous utiliserons bien une méga comme prévu) :
 +
 +
Aussi, les roulettes et le servomoteur du bumper ont été installé, il faudra attendre le reste du matériel pour avoir le robot complet.
 +
 +
De plus nous avons essayé de monter les murs sur la piste et cette tâche s'est retrouvée plus difficile que prévu nous avons commencé par tester notre première solution :
 +
 +
Nous avons donc imprimé une pièce que devait servir de joint entre la piste et un mur extérieur, l'impression fini nous l'avons tester et surprise : la pièce et le bois n'étaient pas compatible (ouverture_pièce < épaisseur_bois) puis nous avons testé avec un autre morceau de bois et là l'inverse s'est produit !
 +
 +
Nous pouvons donc en tirer des leçon sur les marges d'erreur des plaques de contreplaqués chez Leroy Merlin ainsi que celle des imprimantes 3D.
 +
 +
Nous avons ensuite tenter des les coller directement avec de la colle à bois présente au Fabricarium, et bien sur nous avons été naïf car cela n'a point fonctionné.
 +
 +
Nous avons alors décider d'améliorer cette solution en utilisant des équerres fabriquées avec deux morceaux, coupé d'une poutre en bois, provenant des chutes du Fabricarium :
 +
* En vissant les deux pièces entre-elle : pas concluant, car le bois se fissure à cause de la pression exercé par la vis.
 +
* En réutilisant la colle en bois : concluant, nous allons donc continuer avec cette solution pour le reste du projet.
 +
 +
Nous avons aussi continuer de travailler le scénario qui devrait être prêt en fin de semaine prochaine.
 +
<div style="clear: both;">
 +
 +
==Semaine 8==
 +
[[Fichier:Schématique_P42.PNG|150px|thumb|right|Schéma électronique de la piste]]
 +
[[Fichier:PCB_42.PNG|300px|thumb|left|PCB de la piste avec les 3 contrôleurs de LEDs]]
 +
Cette semaine nous avons continuer à monter nos murs sur la piste cependant cette étape est très longue car nous disposons d'un seul étaux, nous devons donc fixer les mur un par un.
 +
 +
De plus nous avons finis la carte électronique pour utiliser contrôleurs de LED pour notre piste :
 +
 +
Nous avons utilisé Fritzing pour créer notre carte en utilisant 3 contrôleurs par carte nous avons donc choisis une capacité de découplage de 10 nF ainsi qu'une résistance de 2.5 kOhms pour fixer notre courant d'entrée à 20 mA pour chacun de nos contrôleurs avec la schématique suivante:
 +
 +
En ajoutant des un connecteur ainsi que quelques jumpers nous arrivons au circuit suivant :
 +
 +
Nous l'enverrons à nos professeurs ce lundi pour vérification.
 +
 +
<div style="clear: both;">
 +
 +
==Semaine 9==
 +
[[Fichier:Solution1porte.PNG|400px|thumb|right|Solution retenue pour ouvrir les portes]]
 +
[[Fichier:CREP_Robot_test.jpg|400px|thumb|left|Branchements pour le test du robot]]
 +
Cette semaine nous avons réfléchit à la meilleur option pour ouvrir les portes avec le servomoteur, nous avons opté pour la porte raccordée par des fils passant sous la piste à une roue contrôlée par le servomoteur :
 +
 +
Nous avons aussi corrigé les erreurs du PCB des drivers de leds.
 +
 +
Après avoir été cherché le matériel, nous avons monté les moteurs et les roues sur le robot et nous avons tester le tout avec les contrôleurs moteur. Nous avons dû imprimer en 3D un adaptateur entre la roue (3 mm de diamètre) et le moteur (5 mm de diamètre).
 +
 +
Voici le robot monté dans le phase de test (Pour ce test, un seul controleur moteur a été cablé) :
 +
 +
Nous avons aussi avancé dans la programmation des arduino en C via AVR. Nous :
 +
* avons rédigé un makefile pour l'atmega2560
 +
* nous sommes assuré que l'ordonnancement était possible sur l'atmega2560
 +
* avons programmé et testé le code pour contrôler les servomoteurs
 +
* avons programmé et testé le code pour contrôler les moteurs pas à pas.
 +
<div style="clear: both;">
 +
 +
==Semaine 10==
 +
[[Fichier:CREP_VRGNY.gif|600px|thumb|middle|Démonstration animée de l'application (cliquez sur l'image pour voir l'animation)]]
 +
[[Fichier:shield.PNG|400px|thumb|left|PCB shield pour arduino]]
 +
[[Fichier:schéma.PNG|400px|thumb|left|Schéma électronique du shield pour l'Arduino Mega]]
 +
 +
Dans la continuité de la [[IMA4_2018/2019_P42#Semaine_9|semaine dernière]], nous avons continué la programmation en C des arduino. Cette semaine, nous avons programmé le code pour le contrôle des leds via le tlc5947. Pour cela, nous nous sommes inspiré du travail réalisé par Lirui Zhang et Lihe Zhang ([[IMA4_2017/2018_P18|projet P18 de l'année dernière]]) en reprenant leurs fichiers tlc5947.c et tlc5947.h.
 +
 +
Pour nous faciliter la programmation des animations des leds de la piste, nous avons développé un logiciel nous permettant de créer et modifier des animations et de pouvoir les simuler. L'interface de la timeline est similaire à ce que l'on peut trouver dans les logiciels de montage : il est possible de zoomer, dézoomer et de se déplacer de droite à gauche si les paternes sortent du champs. Les données seront ensuite exportées sous forme de tableau, directement intégrables dans notre programme arduino.
 +
 +
Le logiciel a été développé en Java car c'est un langage qui nous est familier et dont la mise en place d'une interface graphique est relativement simple. Le nom du logiciel est directement lié au nom de la station de notre scénario : VRGNY (en référence à Virginie Quarez, étudiante en GB-IAAL qui organise la CREP avec nous).
 +
 +
Voici un aperçu animé :
 +
 +
Bien que l'interface soit fonctionnelle, il reste quelques détails :
 +
* pouvoir télécharger les animations dans un arduino depuis l'application
 +
* utiliser des raccourcis claviers
 +
 +
Cette semaine nous avons modifié le PCB des 3 drivers leds ainsi crée un souveau en tant que shield pour l'arduino de notre robot:
 +
 +
Vous trouverez ci-dessous notre schématique.
 +
 +
et ci-dessus notre circuit imprimé.
 +
 +
<div style="clear: both;">
 +
 +
==Semaine 11==
 +
[[Fichier:PCB_shield_42.PNG|400px|thumb|left|Version finale du shield pour arduino]]
 +
[[Fichier:Erreur_pcb.PNG|400px|thumb|right|Illustration de l'erreur sur le PCB de la piste]]
 +
 +
Cette semaine nous avons imprimé nos cartes électroniques c'est à dire le shield et le contrôleur de leds.
 +
 +
Pour le shield aucun problème n'est survenu pendant la production il a été correctement produit nous avons donc commencé à le souder, voici sa version finale à gauche.
 +
 +
Pour le contrôleur de leds nous avons eu un problème pour tracer certaines voies qui disparaissaient lors du fraisage comme ici à droite.
 +
 +
après avoir cherché à l'aide du logiciel de visualisation de la machine de Thierry Flamen nous en avons déduit qu'à cet endroit la machine utilisait une fraise de 3 mm au lieu de 1 mm.
 +
 +
Nous avons tenté de modifier ces erreurs en utilisant des fils pour remplacer les voies ( vous pouvez y voir des traces de soudures sur la photo ci-dessus ) mais malheureusement ces voies étaient trop petites ( 12 mm ).
 +
 +
Nous avons donc essayé de corriger cette erreur directement sur Fritzing et nous avons réussi en retraçant nos voies en partant du TLC5947 vers le header et non l'inverse.
 +
<div style="clear: both;">
 +
 +
==Vacances d'avril, semaine 1==
 +
[[Fichier:CREP_Robot_Shield.jpg|400px|thumb|right|Résultat final du robot sans la partie haute]]
 +
 +
Cette semaine, nous avons terminé de souder le shield de l'arduino pour le robot. Cependant, nous nous sommes aperçu de plusieurs problème de conception :
 +
* Les deux contrôleurs moteur ont été placé du mauvais côté. Il nous a donc fallu les souder du côté du cuivre, ce qui a induit un second problème : il était maintenant impossible de mettre les headers pour y brancher l'arduino puisque la hauteur induite par les contrôleurs moteur gênait l’emboîtement entre le shield et l'arduino. De plus, il nous a fallu faire attention a ce que les pins des contrôleur moteurs ne touche pas la masse du port USB de l'arduino. Dans un premier temps, nous avions alors créer des headers plus long avec des fils rigides. Cependant, le compartiment électronique du robot, n'est pas assez haut pour y loger l'ensemble. Après une courte réflexion, nous avons plié les "headers" dans le sens de la largeur, ce qui a permit de loger les contrôleur moteurs (avant gêné par le port USB) entre le port USB et le port d'alimentation. L'ensemble shield + arduino loge maintenant dans le compartiment électronique du robot.
 +
* Nous avion oublié de mettre une résistance de pull-down au blank du contrôleur de leds.
 +
 +
Voici une photo du résultat :
 +
 +
Bien que l’esthétique du shield ne soit pas au rendez-vous, les tests du contrôle des moteurs, du contrôleur de led et du servo pour le bumper sont concluant. La carte a fonctionné et la partie fonctionnel du robot est maintenant terminée.
 +
<div style="clear: both;">
 +
 +
==Vacances d'avril, semaine 2==
 +
[[Fichier:Murs.PNG|400px|thumb|left|Fixations des LEDs au mur]]
 +
[[Fichier:Servoporte.PNG|400px|thumb|right|Système servomoteur et roue. Pièce moteur pour l'ouverture de la porte]]
 +
Cette semaine nous avons commencé par faire fonctionner l'application PercTeacher avec le robot, cet essaie a été concluant, nous pourrons donc nous en servir afin de faire parcourir la piste à notre robot.
 +
 +
Puis nous avons tenté de souder notre carte contrôleur de leds mais ce fut difficile sans la patte à braiser que l'on peut utiliser en C201. nous avons donc décidé d'attendre la rentrée pour souder cette dernière.
 +
 +
Nous avons ensuite placé toutes les leds sur la piste selon l'organisation blanc->bleu,rouge pour les murs simple et blanc,bleu,rouge pour les murs double en mettant les leds blanches dans le sens inverse des deux autres couleurs. Nous avons ensuite percé le robot pour y mettre 24 leds.
 +
 +
Nous avons fini le scénario nous n'avons plus qu'à y ajouter un timing pour nous aider lors de la programmation.
 +
 +
Pour finir nous avons relié notre roue pour l'ouverture des porte à un servomoteur ( que nous avons programmé pour tourner pendant un certain temps ) et installé le système sur notre piste et testé ce dernier manuellement :
 +
 +
Le système semble bien fonctionné mais nous remarquons beaucoup de frottements sur la ficelle nous allons alors utiliser pièce métalliques à la rentrée pour pallier à ce frottement ficelle/bois.
 +
<div style="clear: both;">
 +
 +
=Conclusion du projet=
 +
Ce projet nous as permis de mettre en œuvre une véritable démarche d’ingénieur à commencer par l’établissement d’un cahier des charges, puis à élaboration du suivi d’une liste de matériel pour respecter ce dernier et enfin, à la réalisation d’un calendrier prévisionnel du travail à faire.
 +
 +
Nous avons ensuite commencé notre projet par une modélisation grâce à plusieurs logiciels de conception. SolidWorks pour la modélisation des impressions en 3D, OpenSCAD pour le plan de la piste et Fritzing pour l’élaboration des circuits électronique.
 +
 +
Plusieurs problèmes imprévus nous ont barré la route mais une analyse de risque nous a permis de rapidement pallier aux plus simples et de prévoir leurs solutions avant même qu’ils n’apparaissent. Au fur et à mesure de l’avancée du projet, nous nous sommes vite rendu compte que nous avions eu les yeux plus gros que le ventre quant à la conception de la piste, nous l’expliquons par la peur d’un manque de contenu IMA dans le projet. Après de nombreux échecs nous avions décidé de nous concentrer pleinement sur le robot afin d’avoir du contenu IMA à présenter quitte à délaisser notre piste.
 +
 +
Pour nos derniers mots nous voulions souligner le fait que, malgré notre échec à  remplir l’entièreté du cahier des charges, ce projet nous as permis de développer des compétences de gestion de projet et de travail d’équipe qui des fois, malgré une parfaite entente entre nous, peut s'avérer plus difficile que prévu. Et par-dessus tout, ce projet nous a permis de mettre en application nos compétences en modélisation 3D, en électronique et en programmation ce qui est le point le plus important des projets IMA selon nous.
 +
 +
Voici en cette fin de projet les points du cahier des charges qui ont été respectés:
 +
* Le robot devra avoir une forme de 'U' inversé afin de pouvoir parcourir les parcelles et les arroser par le dessus.
 +
* Le robot devra posséder un bumper robotisé pouvant s'abaisser et pousser la caisse de fruits que l'on souhaite déplacer.
 +
* Le robot devra se déplacer avec une importante précision.
 +
* Le robot devra être esthétique.
 +
* La piste comportera plusieurs jeux lumineux afin de nous plonger dans un univers spatial.
 +
 +
Vous trouverez ci-dessous un calendrier finale de notre travail :
 +
 +
[[Fichier:Ganttfinal.PNG]]
  
 
=Documents Rendus=
 
=Documents Rendus=
 +
 +
Le rapport du projet : [[Fichier:CREP_Rapport_projet.pdf]].
 +
 +
Les codes sources sont disponible sur le gitlab de l'école : [https://archives.plil.fr/pfrison/projet-crep projet-crep].
 +
 +
Carte électronique de la piste : [[Fichier:Tlepoivr_driver.zip]].
 +
 +
Carte électronique du shield : [[Fichier:Tlepoivr_shield.zip]].

Version actuelle datée du 9 mai 2019 à 01:58


Présentation générale

Nom du projet : Coupe de robotique des écoles primaires

Élèves : Thibault LEPOIVRE, Pierre FRISON

Encadrant : Emmanuelle PICHONAT

Projet git : projet-crep

Description

Cette année, pour notre projet de filière IMA (Informatique Microélectronique et Automatique) de l'école Polytech Lille nous avons décidé de travailler à la mise en place de la Coupe de Robotique des Écoles Primaires (CREP). Dans ce but, notre travail sera découpé en plusieurs parties :

  • Organisation et participation aux interventions.
  • Réalisation d'un robot et d'une piste répondant au cahier des charges de la CREP avec des solutions utilisées dans le milieu professionnel et dans le cadre de notre formation.
  • Organisation de la journée CREP.

Dans ce wiki vous trouverez l'avancée détaillée de nos travaux.

Objectifs

Dans le cadre de l'organisation des interventions nous devrons :

  • Communiquer avec l'inspectrice de la circonscription de Lambersart (Mme François) et son Enseignant Référent pour les Usages Numériques (E-RUN) (M. Bourkache).
  • Intervenir dans les douze écoles qui participent à la CREP. Avec deux interventions dans chacune des écoles.

Pour la partie technique de ce projet, notre robot et notre piste devront, en plus de répondre au cahier des charges de la CREP imposé aux écoles, offrir un véritable divertissement à présenter aux enfants le jour de la CREP.


Notre robot devra être capable de respecter le cahier des charges imposé par la CREP :

  • Suivre un scénario prédéfini par nos choix (dans notre cahier des charges) dans un milieu proche du monde des maraîchers.
  • S’arrêter devant un objet du décor et l'admirer.
  • Déplacer un objet du décor.
  • Faire une marche arrière.
  • Esquiver un ou plusieurs objets ou personne en mouvement.

Notre piste devra respecter une certaine architecture :

  • Posséder un triangle isocèle collé à triangle équilatéral avec un coté de même longueur et un parallélogramme.
  • Avoir trois volumes différents pouvant faire partis du décor.
  • Et sera limitée en surface : de 4 à 6 m², en largeur < 2 m, en longueur < 3 m et en hauteur < 1 m.


Pour finir, la journée CREP s'organisera afin de répondre aux objectifs suivant :

  • Chaque école aura 20 minutes de présentation comprise dans un amphithéâtre de 1H30: 10 minutes de présentation de la piste, de l'histoire, du code et 10 minutes de défi (réalisation du cahier des charges).
  • Chaque école pourra découvrir la vie associative de Polytech Lille au travers des activités organisés par différents clubs.
  • Les élèves pourront aussi découvrir les divers domaines abordés à Polytech Lille (agro-alimentaire, matériaux, etc).

Analyse du projet

Positionnement par rapport à l'existant

Du côté des interventions, de multiples entreprises proposent déjà des activités dans les écoles pour faire découvrir aux enfants divers domaines.

Du côté de la visite, les grandes écoles (comme Polytech) ouvrent déjà leur portes au public. Cependant, ces visites ne sont généralement pas adaptées à un publique aussi jeune et les clubs ne sont pas présentés.

Aussi, un intérêt majeur de la CREP est la réalisation, par les écoles, d'un défi qui les suivra tout au long de l'année, offrant ainsi l'occasion aux enseignants de grouper plusieurs matières autour d'une seule thématique, rendant le tout plus ludique.

Analyse du premier concurrent

Notre premier concurrent est la société "Bricks 4 Kidz". L'entreprise propose des activités centrées sur la robotique aux enfants entre 5 et 13 ans. L'entreprise propose ces activités pendant les vacances scolaire ou sur demande (e.g. pour un anniversaire) aux particuliers, et intervient aussi dans les écoles primaires.

Le concept est assez similaire à celui de la CREP : faire découvrir aux enfants le monde de la robotique d'une manière ludique. Parmi les différences, on peut compter la visite de Polytech et ses Clubs, ainsi qu'un défi à réalisé par les écoles tout au long de leur année scolaire.

Analyse du second concurrent

Notre second concurrent est "Les savants fous". Tout comme "Bricks 4 Kidz", l'entreprise propose des activités aux enfants de 5 à 12 ans, mais est plus axé sur les sciences générales que sur la robotique.

De par ses différences avec la CREP (pas de visite de l'école, axée sur les sciences plutôt que sur la robotique), "Les savants fous" sont des concourants relativement éloignés.

Scénario d'usage du produit ou du concept envisagé

La CREP a déjà plusieurs années d’existences (de 2014 à nos jours). Elle permettait aux écoles volontaires d'initier ses élèves à la robotique et de visiter notre école d'ingénieurs.

Cette année, nous aimerions montrer aux enfants la réalisation du cahier des charges, qu'ils auront respecté, par des élèves ingénieurs avec des contraintes supplémentaires :

  • La piste sera robotisée.
  • Le robot et la piste communiqueront pour déclencher des événements.
  • La position du robot sur la piste sera affichée sur un écran.

Réponse à la question difficile

Question : Est-ce nécessaire d'avoir une piste intelligente ?

Non : avec la connexion au robot, la piste n'aura pas besoin d'être complètement autonome. Du coup, la piste ne comportera pas de capteur. De ce fait, le robot devra connaître sa position en permanence afin de pouvoir déclencher les événements liés à la piste.

Préparation du projet

Cahier des charges

Ébauche pour déterminer les dimensions de la piste
Ébauche pour déterminer les dimensions du robot (vu de devant)

Après avoir étudié plusieurs scénarios (Minecraft, à bord d'une station spatiale ...), nous avons décidé de réaliser le scénario "à bord d'une station spatiale". Comme précisé dans les objectifs, notre cahier des charges se décompose en deux parties : la piste et le robot.

Pour le robot :

  • Devra avoir une forme de 'U' inversé afin de pouvoir parcourir les parcelles et les arroser par le dessus.
  • Posséder un bumper robotisé pouvant s'abaisser et pousser la caisse de fruits que l'on souhaite déplacer.
  • Devra connaître sa position sur la piste en temps réel.
  • Devra se déplacer avec une importante précision.
  • Être esthétique.

Pour la piste :

  • Comportera plusieurs jeux lumineux afin de nous plonger dans un univers spatial.
  • Comportera 3 portes motorisées reliant les différentes pièces de la station.
  • Les trois solides seront fabriqués en plexiglas, indépendant et décorés de façon électronique.
  • Au vue de la charge de travail déjà présente, l'esquive de l'usager se déplaçant sur la piste sera optionnelle.
  • Afin que notre piste et notre robot correspondent à un univers spatial, notre piste ne comportera malheureusement pas de parcelles triangulaires.

Choix techniques : matériel et logiciel

Au niveau du matériel, notre projet requière :

  • 80 LEDs bleus [1]
  • 80 LEDs rouges [2]
  • 80 LEDs blanches [3]
  • 10 contrôleur à LED (TLC5947DAP) [4]
  • 6 interrupteurs [5]
  • 4 servomoteurs (SG92R) [6]
  • 2 cartes Arduino Mega [7]
  • 2 modules Bluetooth (MH-10) [8]
  • 2 moteurs pas-à-pas (SY35ST26-0284A) [9]
  • 2 contrôleurs moteur (DRV8825) [10]
  • 2 roulettes à bille [11]
  • 1 paire de roues en caoutchouc [12]
  • 1 bloc de 4 piles AA [13]
  • Environ 7 m² de contreplaqué (à acheter en magasin pour demander une coupe aux bonnes dimensions)
  • Du plexiglas

Au niveau des logiciels, nous pensons utiliser :

  • PaintDotNet pour la création des textures de la piste
  • Solidworks pour la modélisation des objets en 3D (châssis du robot, décorations...)
  • Inkscape pour d'éventuels découpages à la découpeuse laser

Liste des tâches à effectuer

Nos tâches, à effectuer vont se diviser en deux parties, tout d'abord le design de notre robot et notre piste, puis la programmation de ces derniers.

Tout d'abord le robot :

  • Modélisation 3D du châssis du robot en "U" inversé et réalisation.
  • Montage et câblage du robot (assemblage moteur, roue, ...).
  • Modélisation, impression et assemblage du bumper.

Ensuite la piste :

  • Modélisation 3D des jointures des plaques de contreplaqué et impression.
  • Teste et assemblage des plaques entre-elles.
  • Réalisation du circuit leds et implémentation sur la piste.
  • Design des portes et fabrication.

Pour finir pour la programmation :

  • Programmation du robot afin de parcourir la piste.
  • Programmation de la piste : jeux de lumière et ouverture des portes.
  • Communication de la position du robot à un serveur web afin de l'afficher par vidéo, si le temps nous le permet.

Calendrier prévisionnel

Gantt.PNG

Réalisation du Projet

Feuille d'heures

Tâche Prélude Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Vac. février Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Heures S11 Vac. pâques Vac. pâques Heures S12 Total
Analyse du projet 10 10
Modélisation du robot 4 4 2 4 5 19
Modélisation de la piste 6 6 6 2 20
Réalisation de la piste 6 8 6 4 4 8 1 4 8 49
Réalisation du robot 4 4 2 6 16
Programmation 10 4 2 4 4 8 2 4 2 40
Scénario 2 2 2 6
Rédaction du rapport et du wiki 8 8
Total 10 10 10 8 10 10 10 10 10 12 15 15 8 12 10 8 168

Prologue

Semaine 1

Plan 3D du robot
Piste en dimension réelle
Joint central modélisé

Cette semaine, nous nous sommes attardé à la modélisation de la piste et du robot en 3D :

Le robot ayant des dimensions raisonnables, il est possible d'imprimer son châssis avec une imprimante 3D du Fabricarium. Pour la modélisation, nous avons choisi le logiciel Solidworks car il permet, en plus de sa simplicité d'utilisation, de réaliser les composants (moteurs, roues, cartes électroniques, etc.) pour pouvoir construire un assemblage final et ainsi éviter les erreurs de dimensionnement en plus de nous obliger à prévoir des moyens de fixation. Voici le résultat de cette séance : (Notes : les nouvelle dimensions du robot sont les suivantes : 132x150x100 mm (lxLxh))

Pour les prochaines séances, il restera à :

  • Fixer les roues folles à l'arrière
  • Dessiner le bumper à l'avant
  • Prévoir un compartiment pour l'électronique
  • Finaliser l'esthétisme du robot.

Puis nous avons aussi designer la piste en modélisation 3D aux bonnes dimensions à l'aide d'OpenSCAD afin de mieux visualiser le rendu final visé :


Nous remarquons que dans nos jardins nous aurons la place pour respecter la contrainte de forme des parcelles du cahier des charges de la CREP (zone jaune) alors que les trais blanc représentent le découpage de la piste en 4 planches de contreplaqués de 1*1,5 m.

Ensuite nous avons modéliser les jointures pour lier les planches de contre-plaqué selon plusieurs contraintes de liaison et d'esthétisme :

En discutant des modélisation nous avons finalement décidé de mettre chacune des planches sur des pieds et les lier avec moins de jointure ce qui nous permettra d'avoir une piste plus stable :

Pour les prochaines séances, il restera à :

  • Modéliser les joints de cotés
  • Acheter les plaques de contre plaqués pour la piste
  • Imprimer en 3D les joints et les monter sur la piste
  • créer un scénario précis afin de commencer à coder le robot.

Semaine 2

Le seconde solution de découpe retenue
Pièces nécessaires pour notre piste
Ajout des roulettes sur le robot

Après délibération nous avons décidé de faire des joints de dessous soutenu par des piliers pour pouvoir mettre sous la piste tout l'électronique nécessaire à l'activation des portes et de l'éclairage.

De plus nous allons utilisé des joints pour fixer nos mur, certains seront fixés à la piste(ceux de cotés) alors que d'autres seront collés sur cette dernière.

Vous trouverez donc ci joint nos designs 3D de ces différentes pièces sur Onshape:

La modélisation du robot a aussi avancé, les roues folles ont été ajoutées. Le prochaine étape sera de concevoir le bumper :

Nous avons aussi prévu le découpage des plaques de contreplaqué pour optimiser au maximum les chutes. Nous avons décidé de prendre 6 plaques de contreplaqué de 160x80 cm. Voici le découpage prévu (à gauche) :

Avec ce découpage nous avons donc notre piste de 3x2 mètres et 6*80 cm + 4*160 cm + 4*140 cm = 1680 cm de murs de 10 cm de haut chacun (nous avons en tout 1400 cm de murs sur notre piste). Ce découpage revient donc à un prix totale de 99.9€ soit 16.65€ la planche et 1€ de découpe.

Alors que la solution avec des planches de la dimension au dessus (250*122cm) nous donne 800cm de chute par planche soit beaucoup trop :

De plus elle nous revient à 166.53€ soit 18.2€ le m² pour 9.15m² elle n'est donc pas viable car elle produit trop de chute et coûte trop cher.

C'est pour cela qu'on utilisera six planches de dimensions 160*80*0.5cm (à droite).

La semaine prochaine nous devrons acheter nos plaques de contre-plaqué et imprimer les pièces 3D.

Semaine 3

Planche de contre-plaqué découpées
Joint centraux imprimés en 3D

Nous avons été cherché le bois nécessaire à la construction de la piste. La découpe des planches a été réalisé par un technicien du magasin, cependant chaque trais de découpe enlevait 3 cm de matière donc nous avons décidé de faire la découpe des murs (de 10 cm de largeur) à la découpeuse laser, de plus nous avons commencé à imprimer en 3D les joints de notre piste:

La prochaine étape sera de tracer le chemin des murs, des trous pour les jardins,imprimer toutes les pièces 3D nécessaires et les pions des piliers.

Semaine 4

Jointure des cotés pour la piste
Disposition des murs sur la piste

Cette semaine nous avons travaillé sur la piste ainsi que sur les pièces qui serviront de liaison pour cette dernière.

Nous avons placés les murs sur la piste en découpant certains d'entre eux pour les ajuster.

Puis nous les avons numérotés afin de ne pas perdre de temps pour les replacer.

Nous avons ensuite tracé les trous de 1 cm de diamètre à percer.

Semaine 5

Modélisation finale du robot

Cette semaine nous avons percé les repères tracés la semaine dernière. Les trous ont été faits pour que les pions des jointures s’emboîtent avec un peu de résistance pour créer un encastrement rigide grâce aux frottements. Nous sommes satisfait de cette solution pour le moment mais il faudra veiller à l'usure de ces liaisons qui pourraient abîmer le bois à terme.

Nous avons aussi tracé des repères sur les murs pour placer nos 216 leds. Pour optimiser les couleurs et la lumière, nous avons réuni les leds rouges et bleus au même endroit. Avec les leds blanches, il y a donc 144 trous à percer ce qui représente environ 1 led tous les 10 cm. Nous nous somme assuré que le placement des leds était cohérent (e.g. un trou n'est pas trop proche d'un mur). Pour répartir les trous sur les murs nous avons utilisé la formule suivante :  \textstyle \frac{L_{mur}\times 144}{L_{murtotale}} = nb_{troumur}

La modélisation du robot a aussi beaucoup avancé :

  • La forme global a été décide
  • Le mécanisme du bumper a été dessiné (nous avons bien sûr vérifié qu'il n'y avait aucune collision lors du déploiement du bumper)
  • Un compartiment pour l'électronique a été ajouté

Néanmoins, nous pensons que l'espace réservé à l'électronique est trop petit, il est prévu de l'agrandir en modifiant la longueur du robot.

Le châssis du robot sera en deux partie :

  • Une partie "coiffe" ou "du haut" qui comporte un creux pour loger l'électronique
  • Une partie "corps" ou "du bas" qui va du bas du châssis jusqu'au plan formé par le bas de la boîte prévu pour l'électronique

Cette découpe nous permettra aussi de viser le servomoteur associé au bumper. Il restera à dessiner un moyen de fixation entre la partie haute et basse. Nous pensons modéliser des trous et des pions pour les emboîter.

Pour la suite il restera a prévoir un passage pour les câbles et les leds

Vacances de février

Interface graphique de l'application

La conception du robot arrive bientôt à sa fin. Pour prendre de l'avance, nous avons profité de ces vacances pour nous essayer à la programmation du robot.

Pour nous faciliter l'écriture du parcours que devra faire le robot, nous avons eu l'idée de créer un logiciel pour piloter le robot depuis un PC via liaison série et d'enregistrer le parcours ainsi créé. Nous avons choisi de le réaliser en Java, car la création d'une interface graphique est plus simple. Chaque mouvement est décomposé en "action". Une action correspond à deux valeurs de pas à effectué par les deux moteur pas-à-pas ainsi que deux délais qui correspondent à la durée d'attente entre chaque pas (plus le délai est cours, plus la vitesse est importante). Ce tableau d'action s'exporte en quatre tableaux de long (pas moteur gauche + droit + délais moteur gauche + droit) qui pourrons être directement utilisé dans le programme final.

En plus de l'interface graphique, le logiciel possède des raccourcis claviers comme suit :

  • Les touches du pavé numérique de 1 à 9 (excepté 5) correspondes aux différents mouvements.
  • La touche espace ajoute une nouvelle action.
  • La touche 0 du pavé numérique ajoute une pause (ouvre un dialog demandant la durée).
  • La touche retour arrière permet de retourner en arrière.

Le logiciel a été nommé "PercTeacher" ("Perc" étant le nom donné au robot dans le scénario).

Voici l'interface réalisée :

Le logiciel n'est pas encore complet. En effet, il ne manque que l'envoi des données via liaison série. Cette partie pourra être réalisée à l'aide d'une librairie comme RxTx.

Enfin, un projet git a été créé sur le gitlab de l'école et est disponible en cliquant sur le lien suivant : Projet git du groupe 42.

Semaine 6

Pilier de jointure de de la piste

PercTeacher (voir Vacances de février) est maintenant fonctionnel et est capable d'envoyer les informations à une carte Arduino par liaison série. Le projet git a été mise à jour.

Les trous dans les murs pour les LEDs ont été réalisé d'après les repères dessinés à la Semaine 5.

Le robot a été séparé en deux parties comme souhaité dans le rapport de la Semaine 5. L’emboîtement est réalisé grâce à deux trous dans chaque partie : deux pions (externes aux deux parties pour sauver du PLA) qui ont été fabriqués en sciant une tige métallique s’emboîteront dans les trous, formant ainsi la liaison.

Tous les joints de la piste on été imprimés en 3D et collés à l'aide d'un pistolet à colle aux piliers de PVC :

Nous avons aussi avancé sur le scénario, que nous allons prochainement réécrire en pièce de théâtre avec plusieurs actes.

Nous allons maintenant commencer à imprimer les jointures mur/piste afin que cette dernière soit prête pour l'arrivé des LEDs et contrôleurs à LED.

Semaine 7

Résultat du robot imprimé et peint

Cette semaine, le châssis du robot a été imprimé à l'aide des imprimantes 3D du Fabricarium. Parce que nous avons utilisé deux imprimantes chargées avec deux couleurs de PLA différentes, nous avons unifié la couleur du robot avec de la peinture acrylique noire. Voici le résultat avec à gauche, le robot assemblé et à droite, le compartiment pour l'électronique d'ouvert (l'arduino uno est ici pour l'exemple, nous utiliserons bien une méga comme prévu) :

Aussi, les roulettes et le servomoteur du bumper ont été installé, il faudra attendre le reste du matériel pour avoir le robot complet.

De plus nous avons essayé de monter les murs sur la piste et cette tâche s'est retrouvée plus difficile que prévu nous avons commencé par tester notre première solution :

Nous avons donc imprimé une pièce que devait servir de joint entre la piste et un mur extérieur, l'impression fini nous l'avons tester et surprise : la pièce et le bois n'étaient pas compatible (ouverture_pièce < épaisseur_bois) puis nous avons testé avec un autre morceau de bois et là l'inverse s'est produit !

Nous pouvons donc en tirer des leçon sur les marges d'erreur des plaques de contreplaqués chez Leroy Merlin ainsi que celle des imprimantes 3D.

Nous avons ensuite tenter des les coller directement avec de la colle à bois présente au Fabricarium, et bien sur nous avons été naïf car cela n'a point fonctionné.

Nous avons alors décider d'améliorer cette solution en utilisant des équerres fabriquées avec deux morceaux, coupé d'une poutre en bois, provenant des chutes du Fabricarium :

  • En vissant les deux pièces entre-elle : pas concluant, car le bois se fissure à cause de la pression exercé par la vis.
  • En réutilisant la colle en bois : concluant, nous allons donc continuer avec cette solution pour le reste du projet.

Nous avons aussi continuer de travailler le scénario qui devrait être prêt en fin de semaine prochaine.

Semaine 8

Schéma électronique de la piste
PCB de la piste avec les 3 contrôleurs de LEDs

Cette semaine nous avons continuer à monter nos murs sur la piste cependant cette étape est très longue car nous disposons d'un seul étaux, nous devons donc fixer les mur un par un.

De plus nous avons finis la carte électronique pour utiliser contrôleurs de LED pour notre piste :

Nous avons utilisé Fritzing pour créer notre carte en utilisant 3 contrôleurs par carte nous avons donc choisis une capacité de découplage de 10 nF ainsi qu'une résistance de 2.5 kOhms pour fixer notre courant d'entrée à 20 mA pour chacun de nos contrôleurs avec la schématique suivante:

En ajoutant des un connecteur ainsi que quelques jumpers nous arrivons au circuit suivant :

Nous l'enverrons à nos professeurs ce lundi pour vérification.

Semaine 9

Solution retenue pour ouvrir les portes
Branchements pour le test du robot

Cette semaine nous avons réfléchit à la meilleur option pour ouvrir les portes avec le servomoteur, nous avons opté pour la porte raccordée par des fils passant sous la piste à une roue contrôlée par le servomoteur :

Nous avons aussi corrigé les erreurs du PCB des drivers de leds.

Après avoir été cherché le matériel, nous avons monté les moteurs et les roues sur le robot et nous avons tester le tout avec les contrôleurs moteur. Nous avons dû imprimer en 3D un adaptateur entre la roue (3 mm de diamètre) et le moteur (5 mm de diamètre).

Voici le robot monté dans le phase de test (Pour ce test, un seul controleur moteur a été cablé) :

Nous avons aussi avancé dans la programmation des arduino en C via AVR. Nous :

  • avons rédigé un makefile pour l'atmega2560
  • nous sommes assuré que l'ordonnancement était possible sur l'atmega2560
  • avons programmé et testé le code pour contrôler les servomoteurs
  • avons programmé et testé le code pour contrôler les moteurs pas à pas.

Semaine 10

Démonstration animée de l'application (cliquez sur l'image pour voir l'animation)
PCB shield pour arduino
Schéma électronique du shield pour l'Arduino Mega

Dans la continuité de la semaine dernière, nous avons continué la programmation en C des arduino. Cette semaine, nous avons programmé le code pour le contrôle des leds via le tlc5947. Pour cela, nous nous sommes inspiré du travail réalisé par Lirui Zhang et Lihe Zhang (projet P18 de l'année dernière) en reprenant leurs fichiers tlc5947.c et tlc5947.h.

Pour nous faciliter la programmation des animations des leds de la piste, nous avons développé un logiciel nous permettant de créer et modifier des animations et de pouvoir les simuler. L'interface de la timeline est similaire à ce que l'on peut trouver dans les logiciels de montage : il est possible de zoomer, dézoomer et de se déplacer de droite à gauche si les paternes sortent du champs. Les données seront ensuite exportées sous forme de tableau, directement intégrables dans notre programme arduino.

Le logiciel a été développé en Java car c'est un langage qui nous est familier et dont la mise en place d'une interface graphique est relativement simple. Le nom du logiciel est directement lié au nom de la station de notre scénario : VRGNY (en référence à Virginie Quarez, étudiante en GB-IAAL qui organise la CREP avec nous).

Voici un aperçu animé :

Bien que l'interface soit fonctionnelle, il reste quelques détails :

  • pouvoir télécharger les animations dans un arduino depuis l'application
  • utiliser des raccourcis claviers

Cette semaine nous avons modifié le PCB des 3 drivers leds ainsi crée un souveau en tant que shield pour l'arduino de notre robot:

Vous trouverez ci-dessous notre schématique.

et ci-dessus notre circuit imprimé.

Semaine 11

Version finale du shield pour arduino
Illustration de l'erreur sur le PCB de la piste

Cette semaine nous avons imprimé nos cartes électroniques c'est à dire le shield et le contrôleur de leds.

Pour le shield aucun problème n'est survenu pendant la production il a été correctement produit nous avons donc commencé à le souder, voici sa version finale à gauche.

Pour le contrôleur de leds nous avons eu un problème pour tracer certaines voies qui disparaissaient lors du fraisage comme ici à droite.

après avoir cherché à l'aide du logiciel de visualisation de la machine de Thierry Flamen nous en avons déduit qu'à cet endroit la machine utilisait une fraise de 3 mm au lieu de 1 mm.

Nous avons tenté de modifier ces erreurs en utilisant des fils pour remplacer les voies ( vous pouvez y voir des traces de soudures sur la photo ci-dessus ) mais malheureusement ces voies étaient trop petites ( 12 mm ).

Nous avons donc essayé de corriger cette erreur directement sur Fritzing et nous avons réussi en retraçant nos voies en partant du TLC5947 vers le header et non l'inverse.

Vacances d'avril, semaine 1

Résultat final du robot sans la partie haute

Cette semaine, nous avons terminé de souder le shield de l'arduino pour le robot. Cependant, nous nous sommes aperçu de plusieurs problème de conception :

  • Les deux contrôleurs moteur ont été placé du mauvais côté. Il nous a donc fallu les souder du côté du cuivre, ce qui a induit un second problème : il était maintenant impossible de mettre les headers pour y brancher l'arduino puisque la hauteur induite par les contrôleurs moteur gênait l’emboîtement entre le shield et l'arduino. De plus, il nous a fallu faire attention a ce que les pins des contrôleur moteurs ne touche pas la masse du port USB de l'arduino. Dans un premier temps, nous avions alors créer des headers plus long avec des fils rigides. Cependant, le compartiment électronique du robot, n'est pas assez haut pour y loger l'ensemble. Après une courte réflexion, nous avons plié les "headers" dans le sens de la largeur, ce qui a permit de loger les contrôleur moteurs (avant gêné par le port USB) entre le port USB et le port d'alimentation. L'ensemble shield + arduino loge maintenant dans le compartiment électronique du robot.
  • Nous avion oublié de mettre une résistance de pull-down au blank du contrôleur de leds.

Voici une photo du résultat :

Bien que l’esthétique du shield ne soit pas au rendez-vous, les tests du contrôle des moteurs, du contrôleur de led et du servo pour le bumper sont concluant. La carte a fonctionné et la partie fonctionnel du robot est maintenant terminée.

Vacances d'avril, semaine 2

Fixations des LEDs au mur
Système servomoteur et roue. Pièce moteur pour l'ouverture de la porte

Cette semaine nous avons commencé par faire fonctionner l'application PercTeacher avec le robot, cet essaie a été concluant, nous pourrons donc nous en servir afin de faire parcourir la piste à notre robot.

Puis nous avons tenté de souder notre carte contrôleur de leds mais ce fut difficile sans la patte à braiser que l'on peut utiliser en C201. nous avons donc décidé d'attendre la rentrée pour souder cette dernière.

Nous avons ensuite placé toutes les leds sur la piste selon l'organisation blanc->bleu,rouge pour les murs simple et blanc,bleu,rouge pour les murs double en mettant les leds blanches dans le sens inverse des deux autres couleurs. Nous avons ensuite percé le robot pour y mettre 24 leds.

Nous avons fini le scénario nous n'avons plus qu'à y ajouter un timing pour nous aider lors de la programmation.

Pour finir nous avons relié notre roue pour l'ouverture des porte à un servomoteur ( que nous avons programmé pour tourner pendant un certain temps ) et installé le système sur notre piste et testé ce dernier manuellement :

Le système semble bien fonctionné mais nous remarquons beaucoup de frottements sur la ficelle nous allons alors utiliser pièce métalliques à la rentrée pour pallier à ce frottement ficelle/bois.

Conclusion du projet

Ce projet nous as permis de mettre en œuvre une véritable démarche d’ingénieur à commencer par l’établissement d’un cahier des charges, puis à élaboration du suivi d’une liste de matériel pour respecter ce dernier et enfin, à la réalisation d’un calendrier prévisionnel du travail à faire.

Nous avons ensuite commencé notre projet par une modélisation grâce à plusieurs logiciels de conception. SolidWorks pour la modélisation des impressions en 3D, OpenSCAD pour le plan de la piste et Fritzing pour l’élaboration des circuits électronique.

Plusieurs problèmes imprévus nous ont barré la route mais une analyse de risque nous a permis de rapidement pallier aux plus simples et de prévoir leurs solutions avant même qu’ils n’apparaissent. Au fur et à mesure de l’avancée du projet, nous nous sommes vite rendu compte que nous avions eu les yeux plus gros que le ventre quant à la conception de la piste, nous l’expliquons par la peur d’un manque de contenu IMA dans le projet. Après de nombreux échecs nous avions décidé de nous concentrer pleinement sur le robot afin d’avoir du contenu IMA à présenter quitte à délaisser notre piste.

Pour nos derniers mots nous voulions souligner le fait que, malgré notre échec à remplir l’entièreté du cahier des charges, ce projet nous as permis de développer des compétences de gestion de projet et de travail d’équipe qui des fois, malgré une parfaite entente entre nous, peut s'avérer plus difficile que prévu. Et par-dessus tout, ce projet nous a permis de mettre en application nos compétences en modélisation 3D, en électronique et en programmation ce qui est le point le plus important des projets IMA selon nous.

Voici en cette fin de projet les points du cahier des charges qui ont été respectés:

  • Le robot devra avoir une forme de 'U' inversé afin de pouvoir parcourir les parcelles et les arroser par le dessus.
  • Le robot devra posséder un bumper robotisé pouvant s'abaisser et pousser la caisse de fruits que l'on souhaite déplacer.
  • Le robot devra se déplacer avec une importante précision.
  • Le robot devra être esthétique.
  • La piste comportera plusieurs jeux lumineux afin de nous plonger dans un univers spatial.

Vous trouverez ci-dessous un calendrier finale de notre travail :

Ganttfinal.PNG

Documents Rendus

Le rapport du projet : Fichier:CREP Rapport projet.pdf.

Les codes sources sont disponible sur le gitlab de l'école : projet-crep.

Carte électronique de la piste : Fichier:Tlepoivr driver.zip.

Carte électronique du shield : Fichier:Tlepoivr shield.zip.