IMA4 2018/2019 P42

De Wiki de Projets IMA
Révision datée du 31 mars 2019 à 18:09 par Tlepoivr (discussion | contributions) (Semaine 10)


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 Total
Analyse du projet 10
Modélisation du robot 4 4 2 4
Modélisation de la piste 6 6
Réalisation de la piste 6 8 6 4 4 8
Réalisation du robot 4
Programmation du robot 10 4 2 4
Scénario 2 2 2
Total 10 10 10 8 10 10 10 10 10 12

Prologue

Semaine 1

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))

CREP robot 3D.png

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é:


piste modélisé en 3D


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:


jointure esthétique de type vis
jointure classique juste utile


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 : Joint central.PNG


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

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:

Piece.PNG

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

CREP robot.PNG

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 :

CREP piste.png

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 :

Solution2.PNG

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.

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

Semaine 3

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.

CREP planches.jpg

Cette semaine nous avons commencer à imprimer en 3D les joints de notre pièce :

Piece joint central.jpg

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

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

CREP Triangles.png

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.

CREP piste murs.png

Semaine 5

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

CREP Robot Forme.PNG

Vacances de février

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 :

CREP PercTeacher.PNG

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

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 :

Pilier joint.jpg

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

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) :

CREP Robot peinture.jpg

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

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:

Schématique P42.PNG

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

PCB 42.PNG

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

Semaine 9

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 :

Solution1porte.PNG

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

Semaine 10

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é :

CREP VRGNY.gif

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:

Documents Rendus