Binome2016-7 : Différence entre versions

De Wiki de bureau d'études PeiP
(Conception : résumé)
 
(94 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
[[Fichier:Robotfinal1.jpg|400px|thumb|right|Robot Final ]]
 +
__TOC__
 +
<br style="clear: both;" />
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #DF0101; vertical-align: top; width: 98%;"> Introduction </div>=
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #DF0101; vertical-align: top; width: 98%;"> Introduction </div>=
  
Ligne 11 : Ligne 14 :
 
=== Etapes d'une partie ===
 
=== Etapes d'une partie ===
  
1* Reçoit signal du robot ramasseur.
+
# Reçoit signal du robot ramasseur.
2* Se positionne sur le terrain.
+
# Se positionne sur le terrain.
3* Se déplace jusqu'à la balle.
+
# Se déplace jusqu'à la balle.
4* Attrape la balle.
+
# Attrape la balle.
5* Demande d'activer le but.
+
# Demande d'activer le but.
6* Trouve le but et s'en rapproche.
+
# Trouve le but et s'en rapproche.
7* Tir dans le but.
+
# Tir dans le but.
8* Reçoit message du but pour savoir s'il y a eu but.
+
# Reçoit message du but pour savoir s'il y a eu but.
9* Rentre au garage.
+
# Rentre au garage.
  
 
=== Cahier des charges par étape ===
 
=== Cahier des charges par étape ===
  
1* Savoir recevoir message du robot ramasseur pour savoir quand sortir du garage.  
+
# Savoir recevoir message du robot ramasseur pour savoir quand sortir du garage.  
2* Savoir détecter les lignes du terrain pour savoir vers où se diriger lors de la sortie du garage.  
+
# Savoir détecter les lignes du terrain pour savoir vers où se diriger lors de la sortie du garage.  
3* Etre capable de recevoir et trouver le signal infrarouge provenant de la balle et de se diriger vers elle.  
+
# Etre capable de recevoir et trouver le signal infrarouge provenant de la balle et de se diriger vers elle.  
4* Avoir un système de pinces permettant d'attraper la balle tout en cachant son signal.  
+
# Avoir un système de pinces permettant d'attraper la balle tout en cachant son signal.  
5* Pouvoir envoyer un message demandant l'activation du signal infrarouge du but lorsque la balle est attrapée.  
+
# Pouvoir envoyer un message demandant l'activation du signal infrarouge du but lorsque la balle est attrapée.  
6* Etre capable de détecter le signal du but et de s'y diriger.  
+
# Etre capable de détecter le signal du but et de s'y diriger.  
7* Avoir un système de tir afin de pouvoir marquer un but.  
+
# Avoir un système de tir afin de pouvoir marquer un but.  
8* Pouvoir recevoir message du but pour savoir si fin du match.  
+
# Pouvoir recevoir message du but pour savoir si fin du match.  
9* Pouvoir se diriger grâce au lignes du terrain pour pouvoir rentrer dans son garage.
+
# Pouvoir se diriger grâce au lignes du terrain pour pouvoir rentrer dans son garage.
  
 
=== Autres fontions ===
 
=== Autres fontions ===
 
   
 
   
10* Doit pouvoir détecter les obstacles afin de ne pas percuter l'autre joueur, but.  
+
# Doit pouvoir détecter les obstacles afin de ne pas percuter l'autre joueur, but.  
11* Doit savoir se déplacer pendant le début et la fin du match en détectant les lignes du terrain et en  
+
# Doit savoir se déplacer pendant le début et la fin du match en détectant les lignes du terrain et en les suivant,et savoir distinguer les lignes extérieures du terrain à ne pas dépasser.
    les suivant,et savoir distinguer les lignes extérieures du terrain à ne pas dépasser.
 
  
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #DF0101; vertical-align: top; width: 98%;"> Compte Rendu des séances </div>=
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #DF0101; vertical-align: top; width: 98%;"> Compte Rendu des séances </div>=
Ligne 80 : Ligne 82 :
 
Nous avons donc pu appréhender le fonctionnement du contrôleur de moteurs (la connectique ainsi que la programmation) et avons réussi à faire rouler et tourner notre robot.
 
Nous avons donc pu appréhender le fonctionnement du contrôleur de moteurs (la connectique ainsi que la programmation) et avons réussi à faire rouler et tourner notre robot.
 
Ensuite nous nous sommes fortement renseignés sur le capteur ultrason ainsi que sur la fourche optique afin de pouvoir, lors d'une prochaine séance, les connecter à notre Arduino et réaliser les programmes nécessaires.
 
Ensuite nous nous sommes fortement renseignés sur le capteur ultrason ainsi que sur la fourche optique afin de pouvoir, lors d'une prochaine séance, les connecter à notre Arduino et réaliser les programmes nécessaires.
 +
 +
<br style="clear: both;" />
  
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 4</div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 4</div>==
Ligne 85 : Ligne 89 :
 
Lors de cette séance nous avons relié le capteur ultrason à l'arduino. Après avoir compris le fonctionnement du capteur, nous avons réussi à programmer la détection d'obstacles puis l'arrêt des moteurs lorsque le robot se situe suffisamment proche d'un obstacle (nous pouvons choisir la distance que l'on souhaite). Ensuite nous avons programmé la rotation du robot face à un obstacle afin de l'esquiver.
 
Lors de cette séance nous avons relié le capteur ultrason à l'arduino. Après avoir compris le fonctionnement du capteur, nous avons réussi à programmer la détection d'obstacles puis l'arrêt des moteurs lorsque le robot se situe suffisamment proche d'un obstacle (nous pouvons choisir la distance que l'on souhaite). Ensuite nous avons programmé la rotation du robot face à un obstacle afin de l'esquiver.
 
Nous avons donc un robot se déplaçant et évitant les obstacle face à lui.
 
Nous avons donc un robot se déplaçant et évitant les obstacle face à lui.
 
*photo robot avec ultrason
 
  
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance Bonus</div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance Bonus</div>==
Ligne 101 : Ligne 103 :
  
 
* Modélisation des plaques pour fixer les composants sur le châssis à l'aide d'Inkscape.
 
* Modélisation des plaques pour fixer les composants sur le châssis à l'aide d'Inkscape.
 
*screen Inkscape
 
  
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 7</div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 7</div>==
Ligne 109 : Ligne 109 :
 
* Direction Fabricarium pour découper nos plaques à la découpeuse laser. Nous avons pu découvrir le fonctionnement de cette machine que nous n'avions encore jamais utilisé.
 
* Direction Fabricarium pour découper nos plaques à la découpeuse laser. Nous avons pu découvrir le fonctionnement de cette machine que nous n'avions encore jamais utilisé.
 
* Plaques découpées (3mm épaisseur) :nous avons découvert que certaines pièces étaient trop fragiles où contenaient un défaut de conception de notre part et nous devrons donc en modifier quelques unes et les découper à nouveau.
 
* Plaques découpées (3mm épaisseur) :nous avons découvert que certaines pièces étaient trop fragiles où contenaient un défaut de conception de notre part et nous devrons donc en modifier quelques unes et les découper à nouveau.
 
+
<br style="clear: both;" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 8</div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 8</div>==
Ligne 134 : Ligne 126 :
  
 
* Travail à la BU : Conception du schéma des pinces, du support des pinces, engrenages, système de tir etc..    [[Fichier:Schémapinces.jpg|250px|thumb|right|Schéma des pinces ]]
 
* Travail à la BU : Conception du schéma des pinces, du support des pinces, engrenages, système de tir etc..    [[Fichier:Schémapinces.jpg|250px|thumb|right|Schéma des pinces ]]
 
+
<br style="clear: both;" />
 
 
 
 
 
 
 
 
 
 
 
 
  
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 12 (02/03)</div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 12 (02/03)</div>==
Ligne 158 : Ligne 144 :
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 15 (13/03)</div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 15 (13/03)</div>==
  
[[Fichier:Pinces3d.jpg|150px|thumb|left|Pinces sur Freecad ]]* Finition de la pince sur Freecad et sur Inkscape. Redesign des pièces qui n'allaient pas au premier découpage.  
+
[[Fichier:Pinces3d.jpg|150px|thumb|left|Pinces sur Freecad ]]
 +
* Finition de la pince sur Freecad et sur Inkscape. Redesign des pièces qui n'allaient pas au premier découpage.  
 
* Commencement du PCB shield pour notre arduino.
 
* Commencement du PCB shield pour notre arduino.
 +
<br style="clear: both;" />
  
 +
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 16 (16/03)</div>==
  
 +
* Suite shield PCB : Le shield s'avère être très compliqué à concevoir, il faut penser à tous les composants, et à adapter les liaisons des composants les unes aux autres (sans parler des composants qu'il a fallu télécharger).
  
  
Ligne 168 : Ligne 158 :
  
  
 
 
 
 
 
 
 
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 16 (16/03)</div>==
 
 
* Suite shield PCB : Le shield s'avère être très compliqué à concevoir, il faut penser à tous les composants, et à adapter les liaisons des composants les unes aux autres (sans parler des composants qu'il a fallu télécharger).
 
  
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 17 (20/03)</div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 17 (20/03)</div>==
  
 
* Finition du shield.
 
* Finition du shield.
* Nous avons décidé de faire 2 PCB en plus : pour les phototransistors et pour les détecteurs de ligne
+
* Nous avons décidé de faire 2 PCB en plus : pour les phototransistors et pour les détecteurs de ligne.
  
  
Ligne 190 : Ligne 169 :
 
Fichier:PCB phototransistors.jpg|PCB phototransistors
 
Fichier:PCB phototransistors.jpg|PCB phototransistors
 
</gallery>
 
</gallery>
[[Fichier:.jpg]]
+
<br style="clear: both;" />
 
 
  
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 18 (27/03)</div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 18 (27/03)</div>==
Ligne 197 : Ligne 175 :
 
* Nos 3 PCB finis, nous avons demandé à nos professeurs de corriger nos erreurs. Nos liaisons n'étaient pas parfaites du tout et nous avions oublié quelques étapes importantes comme la création du schéma propre du circuit pour une meilleur compréhension de celui-ci par les concepteurs des PCB.
 
* Nos 3 PCB finis, nous avons demandé à nos professeurs de corriger nos erreurs. Nos liaisons n'étaient pas parfaites du tout et nous avions oublié quelques étapes importantes comme la création du schéma propre du circuit pour une meilleur compréhension de celui-ci par les concepteurs des PCB.
 
*Les 3 PCB étant corrigés et finis nous avons pu les envoyer à la conception. (Le shield a du être refait entièrement à cause de grosses erreurs que nous avions faites, nous avons donc du le finir à la maison).
 
*Les 3 PCB étant corrigés et finis nous avons pu les envoyer à la conception. (Le shield a du être refait entièrement à cause de grosses erreurs que nous avions faites, nous avons donc du le finir à la maison).
* Impression des pinces remise à plus tard pour cause de panne de l'imprimante 3D.
+
* Impression des pinces remise à plus tard pour cause de pa
 +
nne de l'imprimante 3D.
  
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 19 (03/04)</div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 19 (03/04)</div>==
  
* PCB non-reçus, soudage impossible (on aurait dû les recevoir, on a donc demandé aux professeurs de vérifier..)
+
* PCB non-reçus, le soudage est donc impossible pour l'instant
 
* Découpage des pièces faites sur Inskape : Nous avons encore eu des problèmes de découpage sur certaines pièces nous serons donc obligés d'y retourner.
 
* Découpage des pièces faites sur Inskape : Nous avons encore eu des problèmes de découpage sur certaines pièces nous serons donc obligés d'y retourner.
  
Ligne 213 : Ligne 192 :
 
* Soudure des trois PCB. Nous n'avions jamais eu la chance de souder auparavant, nous avons donc observé les recommandations du professeur : - faire une soudure en cône pour pouvoir bien tenir les pattes des composants -vérifier avec un multimètre que la soudure est bien faite et non reliée à la masse quand il ne faut pas. Nous avons pu régler les problèmes observés sur le shield grâce aux conseils du professeur : au lieu de brancher directement les pattes du contrôleur moteur sur le pcb (on aurait du plier les pattes) nous avons choisi de mettre deux headers dont un un que l'on a dû souder un peu de travers afin de palier à la distance trop grande entre les pattes. Pour les trous sortis trop petits pour le capteur ultrason, nous avons pu trouver un header avec des petites pattes qui rentrait parfaitement dans la plaque et ainsi permettant de brancher le capteur.
 
* Soudure des trois PCB. Nous n'avions jamais eu la chance de souder auparavant, nous avons donc observé les recommandations du professeur : - faire une soudure en cône pour pouvoir bien tenir les pattes des composants -vérifier avec un multimètre que la soudure est bien faite et non reliée à la masse quand il ne faut pas. Nous avons pu régler les problèmes observés sur le shield grâce aux conseils du professeur : au lieu de brancher directement les pattes du contrôleur moteur sur le pcb (on aurait du plier les pattes) nous avons choisi de mettre deux headers dont un un que l'on a dû souder un peu de travers afin de palier à la distance trop grande entre les pattes. Pour les trous sortis trop petits pour le capteur ultrason, nous avons pu trouver un header avec des petites pattes qui rentrait parfaitement dans la plaque et ainsi permettant de brancher le capteur.
  
 +
 +
<gallery style="margin: 30px 0;">
 +
Fichier:Soudurephoto.jpg|Soudure PCB phototransistors
 +
Fichier:Souduredetect.jpg|Soudure PCB détecteurs
 +
</gallery>
 +
<br style="clear: both;" />
  
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 22 (12/05)</div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 22 (12/05)</div>==
  
 
* Commencement de l'impression des pinces : nous voulions brancher toutes nos plaques et nos composants pour enfin finir notre robot, mais les salles n'étant pas disponibles, nous avons choisi de nous atteler à l'impression des pinces. Mais malheureusement la machine à rencontré des petits soucis et nous n'auront peu être pas le temps de les imprimer pour de bon.
 
* Commencement de l'impression des pinces : nous voulions brancher toutes nos plaques et nos composants pour enfin finir notre robot, mais les salles n'étant pas disponibles, nous avons choisi de nous atteler à l'impression des pinces. Mais malheureusement la machine à rencontré des petits soucis et nous n'auront peu être pas le temps de les imprimer pour de bon.
 +
 +
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Séance 23 (16/05)</div>==
 +
 +
* Branchement des composants: Le shield ne va pas du tout.
  
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #DF0101; vertical-align: top; width: 98%;"> Conception : résumé </div>=
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #DF0101; vertical-align: top; width: 98%;"> Conception : résumé </div>=
Ligne 231 : Ligne 220 :
 
Nous avons donc pesé le pour et le contre afin d'optimiser notre choix. Notre objectif premier était d'optimiser les programmes et de finir notre robot, nous nous sommes donc dit que le châssis à faire nous prendrait trop de temps. De plus, on souhaitait avoir plus de temps à la fin pour pouvoir soit préparer un terrain soit un but et avoir un robot fonctionnel. N'étant pas très forts avec l'électronique et la conception mécanique nous avons donc opté pour le châssis en kit simple et le robot manuel avec ArduinoMega (le plus simple possible).
 
Nous avons donc pesé le pour et le contre afin d'optimiser notre choix. Notre objectif premier était d'optimiser les programmes et de finir notre robot, nous nous sommes donc dit que le châssis à faire nous prendrait trop de temps. De plus, on souhaitait avoir plus de temps à la fin pour pouvoir soit préparer un terrain soit un but et avoir un robot fonctionnel. N'étant pas très forts avec l'électronique et la conception mécanique nous avons donc opté pour le châssis en kit simple et le robot manuel avec ArduinoMega (le plus simple possible).
  
[[Fichier:Plaquesfourches.jpg|250px|thumb|left|Plaques des fourches ]]Finalement pour compliquer un peu notre travail nous avons décidé d'ajouter un système de fourches optiques aux moteurs pour asservir la vitesse d'une roue à l'autre, l'avantage est que nos deux roues fonctionneront à la même vitesse exactement contrairement à des robots simples ou les deux moteurs de roues ne peuvent jamais être exactement à la même vitesse.  
+
[[Fichier:Plaquesfourches.jpg|250px|thumb|left|Plaques des fourches ]]
 +
 
 +
 
 +
Finalement pour compliquer un peu notre travail nous avons décidé d'ajouter un système de fourches optiques aux moteurs pour asservir la vitesse d'une roue à l'autre, l'avantage est que nos deux roues fonctionneront à la même vitesse exactement contrairement à des robots simples ou les deux moteurs de roues ne peuvent jamais être exactement à la même vitesse.  
 
Ce système à été assez compliqué à effectuer : en effet nous devions trouver comment attacher ces fourches en dessous du robot de façon optimisée pour avoir moins de fils. Nous avons donc conçu quelques plaques pour les faire tenir.
 
Ce système à été assez compliqué à effectuer : en effet nous devions trouver comment attacher ces fourches en dessous du robot de façon optimisée pour avoir moins de fils. Nous avons donc conçu quelques plaques pour les faire tenir.
 +
<br style="clear: both;" />
 +
 +
===Conception plaques de support===
 +
 +
 +
Pour finir la conception mécanique de notre robot (hors pinces), nous avons, pendant plusieurs séances, dû réfléchir à la création de plusieurs plaques pour faire tenir les différents composants. Pour cela nous avons utilisé Inkscape, le logiciel n'est pas très dur à utiliser mais la version disponible n'était pas la plus récente et nous avons eu du mal à mesurer des distances.
 +
 +
'''Contraintes à respecter :'''
 +
* pièces pas trop grandes/ petites
 +
* respecter les diamètres des différents trous du châssis
 +
* et surtout respecter les dimensions des composants
 +
 +
 +
'''Etapes de création de pièces sur Inkscape :'''
 +
* 1ere étape : Nous avons tout d'abord créé la première vague de plaques au début de l'année (nous avons passé du temps chez nous pour cette étape pour comprendre inkscape). Une plaque pour tenir les piles, une plaque tenue par deux petites plaques pour le capteur [[Fichier:Plaquesetape1.jpg|250px|thumb|right|Plaques gardées de l'étape 1 ]]  ultrason, une plaque pour faire tenir le servomoteur à l'avant du robot, système de 3 plaques pour les fourches (montré auparavant), plaque des phototransistors à l'avant aussi du robot. 
 +
Par la suite ayant décidé de faire des PCB pour les phototransistors nous avons mis de côté la plaque créée.
 +
 +
[[Fichier:Autresplaques.jpg|300px|thumb|left|2ème étape ]]
 +
 +
* 2ème étape : Nous avons décidé de refaire la plaque du capteur ultrason (que nous collerons sur le pcb phototransistors), puis après avoir fait le schéma du système de pinces, nous nous sommes attelés au design des nouvelles pièces dont nous avions besoin : 2 plaques engrenages plus barre pour relier le servo aux pinces , une nouvelle plaque plus solide pour tenir le servomoteur avec un axe cylindrique collé dessus pour faire tenir le deuxième engrenage ( le premier étant relié au servo directement).
 +
La plaque de support des détecteurs de ligne consiste en un PCB relié par un entrefer en dessous du châssis inférieur.
 +
 +
 +
 +
<br style="clear: both;" />
  
  
Ligne 239 : Ligne 256 :
  
  
 +
'''Problèmes rencontrés :'''
 +
* Le plus dur était qu'il fallait faire les mesures exactes au millimètre prêt, nous avons donc rencontré plusieurs problèmes de mesures (cela a pris du temps).
 +
* Après la 1ere étape nous avons seulement gardé la plaque des piles et des fourches qui correspondaient bien, celle du servomoteur était trop fragile et de la mauvaise taille nous ne l'avons pas gardée ainsi que les plaques ultrasons qui n'étaient pas non plus de la bonne taille.
 +
* Pour certaines pièces de la 2ème étape, il fallait incruster mais nous avons eu des problèmes pour trouver comment incruster les pièces (engrenage plus barre) sur Inkscape. Avant le découpage nous pensions avoir réussi mais au découpage les pièces sont ressorties toutes découpées, nous avons donc dû coller les pièces. Ce n'est pas très solide mais nous comptions sur le fait que la sphère de la pince touche de sol afin de ne pas casser la barre la tenant. Aussi ces même plaques nous semblent petites mais la découpeuse laser étant en panne quand nous nous en sommes rendus compte nous avons laissé comme cela.
  
 +
=== Conception pinces===
  
 +
Nous avons choisi de faire la création de la pince sur freecad. Nous avons tout d'abord dû faire plusieurs schémas et avons du réfléchir aux contraintes : cacher la lumière, pinces assez  [[Fichier:Engrenagesbarres2.jpg|150px|thumb|right|Système barres engrenages pour pinces ]] hautes et pas trop lourdes afin qu'elles ne tombent pas. Nous avons donc choisi un modèle de pinces qui cachent la lumière infrarouge (de la balle) des phototransistors avec deux quarts de sphère de ce côté et deux petites barres de l'autre pour retenir la balle. Nous avons passé une séance à réfléchir aux contraintes techniques sur schémas et avons passé plus de temps afin de prendre les mesures nécessaires au système.
  
  
  
===Conception plaques de support===
 
  
  
Pour finir la conception mécanique de notre robot (hors pinces), nous avons, pendant plusieurs séances, dû réfléchir à la création de plusieurs plaques pour faire tenir les différents composants. Pour cela nous avons utilisé Inkscape, le logiciel n'est pas très dur à utiliser mais la version disponible n'était pas la plus récente et nous avons eu du mal à mesurer des distances.
+
Freecad fût très difficile a comprendre, plus que certains logiciels comme solidworks que nous avions déjà pu utiliser. Mais après avoir parcouru le logiciel nous avons réussi a produire ce que nous voulions. Nous avons passé beaucoup de temps à la maison pour la pince 3D.
Les contraintes à respecter pour toutes les pièces étaient nombreuses :
+
Il a ensuite fallu faire les barres et les engrenages qui reliaient le tout (schéma plus haut), la conception nous avait paru simple au premier abord mais il fallait réfléchir a un système qui retienne les pinces de tomber et un système de tir de balle quand le robot se trouve devant un but. Nous avons donc trouvé un schéma concret de tout le système de pinces mais ne savions pas vraiment si ça fonctionnerait, nous avons quand même fait les pièces sur Inkscape pour tester le tout.
* pièces pas trop grandes/ petites
 
* respecter les diamètres des différents trous du châssis
 
* et surtout respecter les dimensions des composants
 
  
 +
Le système se compose donc du servomoteur fixé en dessous d'une plaque attachée au châssis inférieur. Sur ce servomoteur on attache la première barre engrenage, la deuxième étant mise sur l'axe cylindrique. Entre les deux engrenages nous avons pensé, pour le système de poussoir, à enfiler une barre crantée avec, au bout, une plaque qui servira de poussoir. Lorsque les pinces sont fermées la barre crantée est "rentrée", et lorsque celles-ci s'ouvrent la barre s'avance pour pousser la balle.
  
  
 +
[[Fichier:Pinces3d.jpg|150px|thumb|middle|Pinces sur Freecad ]]
  
  
=== Conception pinces===
 
  
Nous avons choisi de faire la création de la pince sur freecad. Nous avons tout d'abord du faire plusieurs schémas et avons du réfléchir aux contraintes : cacher la lumière, pinces assez hautes et pas trop lourdes afin qu'elles ne tombent pas. Nous avons donc choisi un modèle de pinces qui cachent la lumière infrarouge (de la balle) des phototransistors avec deux quarts de sphère de ce côté et deux petites barres de l'autre pour retenir la balle.
+
[[Fichier:Servomoteur.jpg|150px|thumb|left|Servomoteur fixé ]]Ce système n'est malheureusement pas très optimisé. En effet le poussoir est avancé lorsque les pinces s'ouvrent pour attraper la balle , ce qui rend l'attrape compliquée. De plus ce système de poussoir est simplement enfilé entre les engrenages et ne tient sur rien. Lorsque que les pinces sont ouvertes pour pousser la balle, la barre s'avance mais très lentement ce qui risque de pousser seulement très légèrement la balle. Et enfin les barres attachant les pinces étant très courtes, les pinces s'ouvrent très rapidement, c'est-à-dire que les engrenages ne bougent que de quelques dents, soit la barre crantée n'avance que très peu.
PHOTO SCHEMA PINCES
+
Malheureusement ne voulant pas passer trop de temps sur le schéma et la conception mécanique nous paraissant très compliquée nous avons laissé ce système.
  
Freecad fût très difficile a comprendre, plus que certains logiciels comme solidworks que nous avions déjà pu utiliser. Mais après avoir parcouru le logiciel nous avons réussi a produire ce que nous voulions.
+
Nous n'avons par contre par eu le temps de tout fixer ayant eu par deux fois des problèmes avec l'impression des pinces. En effet faire 2 quarts de sphère prend beaucoup de temps à l'impression 3D, de ce fait l'imprimante rencontre des problèmes très souvent et nous avons dû abandonner plusieurs fois. Nous avons pu imprimer une seule des deux pinces.
Il a ensuite fallu faire les barres et les engrenages qui reliaient le tout, la conception nous avait paru simple au premier abord mais il fallait réfléchir a un système qui retienne les pinces de tomber et un système de tir de balle quand le robot se trouve devant un but. Nous avons donc trouvé un schéma concret de tout le système de pinces mais ne savions pas vraiment si ça fonctionnerait, nous avons quand même fait les pièces sur Inkscape pour tester le tout.
+
<br style="clear: both;" />
  
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Programmation </div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Programmation </div>==
  
  
Le plus gros problème à été la programmation qui nous a pris énormément de temps, nous arrivions a calculer la vitesse d'une roue mais n'arrivions pas à asservir cette vitesse.
+
 
 +
Pour la partie programmation nous avons commencé par faire avancer le robot en faisant tourner les roues à l'aide du contrôleur moteur. [[Fichier:Arduino1.png|200px|thumb|right|Fonctions pour contrôler les roues]]
 +
Nous avons ensuite programmé le capteur ultrason afin d'obtenir la distance séparant le robot d'un potentiel obstacle puis nous avons relié ces deux programmes dans le but de faire avancer le robot et de le faire tourner lorsqu'il se situe à une distance choisie d'un obstacle. Pour le faire tourner il suffit de ne faire tourner qu'une seule des deux roues en fonction du sens dans lequel on souhaite le faire tourner et pour le faire tourner sur lui même on fait tourner les deux roues dans des sens opposés.
 +
 
 +
[[Fichier:Arduino2.png|200px|thumb|left|Contrôle des roues par le capteur ultrason]]
 +
Le plus gros problème à été la programmation des fourches optiques qui nous a pris énormément de temps, nous arrivions a calculer la vitesse de rotation des roues mais nous n'arrivons pas à asservir cette vitesse. Pour récupérer la vitesse des roues nous avons utilisé les interruptions afin de compter le nombre de fois que la fourche optique changeait d'état pour un certain temps ce qui correspond à un certains nombre de trous de la roue dentée.Nous pouvons donc calculer la vitesse à partir du nombre de trous parcourus et du temps mis pour cela.
 +
[[Fichier:Arduino3.png|200px|thumb|right|Initialisation des interruptions dans la fonction void setup()]]
 +
[[Fichier:Arduino4.png|200px|thumb|left|Calcul de la vitesse de rotation des roues]]
 +
Ensuite nous avons programmé la détection de la lumière par les 5 phototransistors. Le robot va tourner à gauche si les capteurs de gauche captent plus de lumière, à droite si ce sont ceux de droite.
 +
[[Fichier:Arduino5.png|200px|thumb|right|Rotation en fonction de la lumière captée par les phototransistors]]
 +
<br style="clear: both;" />
  
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Conception PCB</div>==
 
==<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; text-align: center; font-size: 80%; background: #BDBDBD; vertical-align: top; width: 99%;"> Conception PCB</div>==
  
Pour avoir le moins de fils possibles, nous avons choisi de faire trois PCB. Un pour les détecteurs de lignes, pour les phototransistors et le shield (controleur moteur, capteur ultrason,  servo-moteur, fourches optiques). La prise en main fût compliquée et longue
+
Pour avoir le moins de fils possibles, nous avons choisi de faire trois PCB. Un pour les détecteurs de lignes, pour les phototransistors et le shield (controleur moteur, capteur ultrason,  servo-moteur, fourches optiques). La prise en main fût compliquée et longue. Ces PCB nous servirons notamment de plaques de support.
 +
 
 +
 
 +
La conception des PCB fut compliquée : La prise en main de Fritzing fut difficile notamment pour le Shield qui regroupe de nombreux composants. Ce fut difficile de placer tous les composants sur le PCB de façon à ce que les liaisons puissent être optimisées. De plus il y a de nombreux détails dans la conception du PCB qui ont été compliqués : Modification de certains composants, création des plans de masses, ... En effet on ne connaissait pas le protocole pour faire correctement des PCB et les envoyer par la suite, il était compliqué de trouver sur internet.
 +
Nous avons donc dû nous aider avec nos camarades mais aurions préféré avoir un vrai cours sur ce logiciel très dur à utiliser, car nous avons perdu du temps à recommencer certaines choses comme les schémas (ne sachant pas qu'il fallait les faire).
 +
Il fallait aussi optimiser les liaisons entre composants de manière à n'avoir aucun angle droit, à ce qu'elles ne se touchent pas entre elles et à avoir un minimum de symétrie.
 +
 
 +
'''Les PCB:'''
 +
*Détecteurs de ligne : Ce PCB, sans parler des problèmes de protocole d'utilisation de fritzing, fût le plus facile à réaliser, en effet nous avons choisi de n'utiliser que 2 détecteurs de  [[Fichier:PCBdetect.jpg|200px|thumb|right|PCB imprimé des détecteurs de ligne ]] lignes. Sur la plaque nous n'avions donc que 3 composants : les détecteurs et un header. Nous avons simplement relié masse, alimentation etc, des 2 détecteurs aux mêmes pattes du header.
 +
Le soudage des composants s'est quant à lui bien passé. le seul petit bémol est que l'on avait soudé le header du côté "sol" de la plaque et donc la plaque aurait touché le sol en plus d'empêcher que les détecteurs ne fonctionnent. Nous avons donc simplement dessoudé et ressoudé de l'autre côté.
 +
 
 +
 
 +
 
 +
[[Fichier:PCBphoto.jpg|200px|thumb|left|PCB imprimé des phototransistors ]]
 +
*Phototransistors : ce PCb fût aussi simple bien qu'il y avait beaucoup plus de composants. Nous avons choisi d'utiliser 5 phototransistors, et avions donc sur notre plaques 5 résistances et un header de 5 trous et de 2 pour l'alimentation et la masse. Encore une fois nous avons dû relier les composants avec la masse et l'alimentation etc. Sur ce PCB nous avons eu un problème car nous ne trouvions pas le bon header, et comme nous avions oublié de faire le schéma avant nous avons du tout recommencer pour avoir le bon header et le bon schéma, mais ce fût rapide.
 +
Pour le soudage nous avons rencontré plusieurs soucis en vérifiant les soudures au multimètre , il s'est avéré qu'il y avait un problème au niveau de certaines résistances (et non de la soudure elle-même). Nous avons en effet constaté que les résitances étaient défaillantes. Il a donc sufit de les dessouder pour en prendre des nouvelles.
 +
 
 +
 
 +
 
 +
 
 +
[[Fichier:PCBshield.jpg|200px|thumb|left|PCB imprimé du shield ]]
 +
*Shield : Ce fût la conception la plus compliquée sur Fritzing notamment à cause du nombre important de composants et de liaisons, comme dit précédemment.[[Fichier:Shieldarduino.jpg|250px|thumb|right|Shield finit et branché sur arduino ]] Il fallait trouver les bons composants, optimiser les liaisons etc.. Cela nous a pris plusieurs séances et beaucoup de travail à la maison. Malheureusement nous nous sommes aperçus à la fin après la soudure que beaucoup de choses n'allaient pas, en voulant brancher, comme les phototransistors, les détecteurs de lignes, nous n'avons pas pu tout brancher et au final un seul phototransistor a pu être branché.
 +
En ce qui concerne la soudure, nous avions plusieurs problèmes. Tout d'abord la distance entre les pattes du contrôleur moteur s'est retrouvée être trop importante, puis les trous pour le capteur ultrason sont ressortis trop petits bien que nous ayons choisi les bons composants. Nous avons demandé conseil à un professeur qui nous a aidé : nous avons pu souder des headers de travers afin de brancher le contrôleur et avons pu trouver un header avec des petites pattes pour le capteur ultrason. Le reste de la soudure s'est bien passée.
 +
 
 +
[[Fichier:Exemplesoudure.jpg|250px|thumb|right|Exemple du placement des composants sur PCB ]]
 +
<br style="clear: both;" />
 +
 
 +
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #DF0101; vertical-align: top; width: 98%;"> Conclusion </div>=
 +
 
 +
 
 +
 
 +
[[Fichier:Robotfinal1.jpg|250px|thumb|left|Robot Final ]]Nous n'avons pas eu le temps de faire tout ce que nous voulions faire. Cependant notre robot roule, peut s'arrêter quand il y a un obstacle et détecter une source infrarouge. Les détecteurs de lignes n'ont pas été programmés ni reliés au shield suite aux problèmes rencontrés mais ils ont leur propre PCB. Les fourches ont été programmées presqu'entièrement , il manque l'asservissement mais elles sont bien reliées au shield. Le servomoteur a été partiellement programmé, il manque la partie ouverture fermeture des pinces.
 +
Il est juste dommage que nous n'ayons pas assez assimilé Fritzing au point d'avoir raté le shield, cela aurait pu être un gros plus qu'il marche entièrement.
  
 +
Ensuite notre système de pinces a été bien pensé mais suite aux problèmes de découpeuse, il est très bancal. Mais il pourrait fonctionner avec des pièces mieux découpées. La pince 3D qui a pu être imprimée nous plaît et paraît fonctionnelle pour ce qu'on lui demande.
  
La conception des PCB fut compliquée : La prise en main de Fritzing fut difficile notamment pour le Shield qui regroupe de nombreux composants. Ce fut difficile de placer tous les composants sur le PCB de façon à ce que les liaisons puissent être optimisées. De plus il y a de nombreux détails dans la conception du PCB qui ont été compliqués : Modification de certains composants, création des plans de masses, ...
+
En conclusion même si notre robot comporte énormément de défauts, pour en arriver là nous avons dû beaucoup travailler afin de comprendre les logiciels, réflechir aux différentes conceptions. Ce BE nous a donc permis de comprendre de nouveaux logiciels qui pourront nous servir plus tard, nous savons à présent faire des circuits électroniques plus ou moins bons et des pièces en 3d, imprimer et découper d'autres pièces, programmer un moteur et des capteurs. Cela nous a donné encore plus envie de travailler dans l'électronique et l'informatique par la suite.

Version actuelle datée du 22 mai 2017 à 11:16

Robot Final


Introduction

Présentation

Pour ce projet, notre binôme formé par Rémi Foucault et Julie Claude, travaillera sur le robot compétiteur.

Le BE consiste à concevoir différents robots participant à un "match de foot". Il y a des robots compétiteurs, robots ramasseurs de balles ainsi que des buts à concevoir. Le robot compétiteur que nous souhaitons réaliser est tout d'abord actionné par un message reçu par le robot ramasseur. Il doit suivre les lignes colorées du terrain (après être sorti de son garage), à l'aide de capteurs, dans le but de se repérer dans l'espace dédié puis de trouver la balle qui émet un signal infrarouge. Une fois repérée, le robot doit se diriger vers la balle et à l'aide de pinces l'attraper ( ces pinces doivent cacher son signal). Une fois la balle attrapée, le robot envoie un message aux buts afin qu'ils enclenchent un signal infrarouge à leur tour, ce qui lui permettra de se placer devant le but adverse et de marquer. Une fois le but marqué, le robot compétiteur rentre dans son garage afin de ne pas gêner le robot ramasseur (qui est chargé de replacer la balle au centre après un but).

Objectif du robot compétiteur

Etapes d'une partie

  1. Reçoit signal du robot ramasseur.
  2. Se positionne sur le terrain.
  3. Se déplace jusqu'à la balle.
  4. Attrape la balle.
  5. Demande d'activer le but.
  6. Trouve le but et s'en rapproche.
  7. Tir dans le but.
  8. Reçoit message du but pour savoir s'il y a eu but.
  9. Rentre au garage.

Cahier des charges par étape

  1. Savoir recevoir message du robot ramasseur pour savoir quand sortir du garage.
  2. Savoir détecter les lignes du terrain pour savoir vers où se diriger lors de la sortie du garage.
  3. Etre capable de recevoir et trouver le signal infrarouge provenant de la balle et de se diriger vers elle.
  4. Avoir un système de pinces permettant d'attraper la balle tout en cachant son signal.
  5. Pouvoir envoyer un message demandant l'activation du signal infrarouge du but lorsque la balle est attrapée.
  6. Etre capable de détecter le signal du but et de s'y diriger.
  7. Avoir un système de tir afin de pouvoir marquer un but.
  8. Pouvoir recevoir message du but pour savoir si fin du match.
  9. Pouvoir se diriger grâce au lignes du terrain pour pouvoir rentrer dans son garage.

Autres fontions

  1. Doit pouvoir détecter les obstacles afin de ne pas percuter l'autre joueur, but.
  2. Doit savoir se déplacer pendant le début et la fin du match en détectant les lignes du terrain et en les suivant,et savoir distinguer les lignes extérieures du terrain à ne pas dépasser.

Compte Rendu des séances

Séance 1

Nous avons été introduit au projet via une présentation orale décrivant les objectifs du BE. Nous avons par la suite choisi d'orienter notre travail vers le robot compétiteur dont nous allons essayer de réaliser les fonctions suivantes :

  • Détecter, attraper puis mettre la balle dans le but (nécessite la conception de pinces)
  • Ne pas sortir des limites du terrain lors d'une partie
  • Eviter les éventuels obstacles
  • En fin de partie, quitter le terrain

Séance 2

Lors de cette séance nous avons précisé les composants dont nous avions besoin pour concevoir notre robot. Nous avons de plus choisi, afin d'augmenter la difficulté, d'ajouter un système de fourche optique à chacune des deux roues.

Fourche optique

Ce système permettra aux roues de fonctionner à la même vitesse et d'éviter les incertitudes dues aux moteurs. En effet cette fourche est composée d'une led infrarouge et d'un phototransistor. Grâce à une roue trouée relié a chaque moteur et possédant donc la même vitesse de rotation que celui ci, nous allons pouvoir calculer la vitesse de rotation des deux moteurs (la roue trouée coupant la lumière reçue par le phototransistor). Ensuite nous pourrons récupérer avec l'arduino, les vitesses calculées, les comparer puis les ajuster au niveau des moteurs afin qu'elle soit les plus égales égales possibles, de façon à effectuer un asservissement de la vitesse.

Nous avons eu le châssis de notre robot que nous avons pu monter, puis nous avons aussi réfléchi a la disposition des éléments sur notre robot, et avons fait quelques schémas, à l'aide d'anciens robots créés par des élèves.


Pour la conception du robot nous avons besoin des composants suivants :

  • un bouclier XBee

  • un interrupteur pour démarrer et arrêter le robot

  • un châssis en kit comprenant la roue jockey

  • deux roues et leurs moteurs associées

  • un microcontrôleur Arduino Mega 2560

  • un contrôleur pour les moteurs

  • un capteur ultrason

  • trois détecteurs de lignes

  • cinq capteurs infrarouges

  • un servo moteur pour mouvoir les pinces

  • deux fourches optiques et deux engrenages à appliquer aux roues

Séance 3

Montage circuit pour la programmation

Aujourd'hui nous avons obtenu les derniers composants qui nous manquaient. Nous avons donc pu appréhender le fonctionnement du contrôleur de moteurs (la connectique ainsi que la programmation) et avons réussi à faire rouler et tourner notre robot. Ensuite nous nous sommes fortement renseignés sur le capteur ultrason ainsi que sur la fourche optique afin de pouvoir, lors d'une prochaine séance, les connecter à notre Arduino et réaliser les programmes nécessaires.


Séance 4

Lors de cette séance nous avons relié le capteur ultrason à l'arduino. Après avoir compris le fonctionnement du capteur, nous avons réussi à programmer la détection d'obstacles puis l'arrêt des moteurs lorsque le robot se situe suffisamment proche d'un obstacle (nous pouvons choisir la distance que l'on souhaite). Ensuite nous avons programmé la rotation du robot face à un obstacle afin de l'esquiver. Nous avons donc un robot se déplaçant et évitant les obstacle face à lui.

Séance Bonus

Pour cette séance, nous nous sommes attaqués à Fritzing afin de schématiser le circuit électronique de notre robot. Malheureusement nous avons passé du temps à chercher des composants, le logiciel étant difficilement approchable. Nous avons donc commencé à créer le circuit que nous n'avons pas fini. Nous reviendrons plus tard sur cette partie. Ensuite nous avons pu commencé la conception des plaques qui nous aiderons à faire tenir les différents composants sur notre robot. Nous avons alors imaginé les différentes plaques dont nous avons fait des schémas précis sur papier à l'aide de nombreuses mesures effectuées sur le châssis de notre robot.

Séance 5

  • Finition des mesures des plaques nécessaires pour fixer les composants sur le robot.
  • Apprentissage du logiciel Inkscape : nous avons modélisé les premières plaques.

Séance 6

  • Modélisation des plaques pour fixer les composants sur le châssis à l'aide d'Inkscape.

Séance 7

  • Finalisation de nos schémas sur Inkscape
    Schéma des plaques sur inkscape
  • Direction Fabricarium pour découper nos plaques à la découpeuse laser. Nous avons pu découvrir le fonctionnement de cette machine que nous n'avions encore jamais utilisé.
  • Plaques découpées (3mm épaisseur) :nous avons découvert que certaines pièces étaient trop fragiles où contenaient un défaut de conception de notre part et nous devrons donc en modifier quelques unes et les découper à nouveau.


Séance 8

  • Commencement de l'étude du fonctionnement de la fourche optique et réalisation de rapides programmes dans ce but.

Séance 9 (13/02)

  • Continuation de la programmation de la fourche optique :nous avons eu quelques difficultés et avons donc décider d'étudier la programmation de la fourche optique chez nous, en dehors des cours afin de pouvoir se concentrer sur d'autres choses.

Séance 10 (16/02)

  • Programmation mise de côté. Redesign de pièces sur Inkscape.

Séance 11 (27/02)

  • Travail à la BU : Conception du schéma des pinces, du support des pinces, engrenages, système de tir etc..
    Schéma des pinces


Séance 12 (02/03)

  • Apprivoisement du logiciel Freecad pour la conception 3D des pinces (ce qui prit beaucoup de temps).
  • Mesures en plus pour la création des systèmes de tenue et de tir de la pince.

Séance 13 (06/03)

  • Programmation du servomoteur.

Séance 14 (09/03)

  • Suite de la conception des pinces sur Freecad, nous comprenons à présent mieux le logiciel. La partie la plus dure fût la création des quart de sphères creux pour cacher le signal infrarouge de la balle.
  • Commencement du design des engrenages, barres, système de tir sur Inkscape.

Séance 15 (13/03)

Pinces sur Freecad
  • Finition de la pince sur Freecad et sur Inkscape. Redesign des pièces qui n'allaient pas au premier découpage.
  • Commencement du PCB shield pour notre arduino.


Séance 16 (16/03)

  • Suite shield PCB : Le shield s'avère être très compliqué à concevoir, il faut penser à tous les composants, et à adapter les liaisons des composants les unes aux autres (sans parler des composants qu'il a fallu télécharger).




Séance 17 (20/03)

  • Finition du shield.
  • Nous avons décidé de faire 2 PCB en plus : pour les phototransistors et pour les détecteurs de ligne.



Séance 18 (27/03)

  • Nos 3 PCB finis, nous avons demandé à nos professeurs de corriger nos erreurs. Nos liaisons n'étaient pas parfaites du tout et nous avions oublié quelques étapes importantes comme la création du schéma propre du circuit pour une meilleur compréhension de celui-ci par les concepteurs des PCB.
  • Les 3 PCB étant corrigés et finis nous avons pu les envoyer à la conception. (Le shield a du être refait entièrement à cause de grosses erreurs que nous avions faites, nous avons donc du le finir à la maison).
  • Impression des pinces remise à plus tard pour cause de pa

nne de l'imprimante 3D.

Séance 19 (03/04)

  • PCB non-reçus, le soudage est donc impossible pour l'instant
  • Découpage des pièces faites sur Inskape : Nous avons encore eu des problèmes de découpage sur certaines pièces nous serons donc obligés d'y retourner.

Séance 20 (27/04)

  • On a reçu nos PCB mais n'avons pas pu souder pour plusieurs raisons. La première est que notre shield comportait plusieurs défauts, le contrôleur moteur n'était pas adapté (trous trop rapprochés), alors que les mesures sur fritzing étaient bonnes, nous ne savons toujours pas le problème. De plus les trous pour le capteur ultrason sont ressortis trop petits alors qu'encore une fois le composants sur fritzing correspondait.

Pour les autres plaques nous avons voulu souder mais aucun poste n'était disponible.

Séance 21 (04/05)

  • Soudure des trois PCB. Nous n'avions jamais eu la chance de souder auparavant, nous avons donc observé les recommandations du professeur : - faire une soudure en cône pour pouvoir bien tenir les pattes des composants -vérifier avec un multimètre que la soudure est bien faite et non reliée à la masse quand il ne faut pas. Nous avons pu régler les problèmes observés sur le shield grâce aux conseils du professeur : au lieu de brancher directement les pattes du contrôleur moteur sur le pcb (on aurait du plier les pattes) nous avons choisi de mettre deux headers dont un un que l'on a dû souder un peu de travers afin de palier à la distance trop grande entre les pattes. Pour les trous sortis trop petits pour le capteur ultrason, nous avons pu trouver un header avec des petites pattes qui rentrait parfaitement dans la plaque et ainsi permettant de brancher le capteur.



Séance 22 (12/05)

  • Commencement de l'impression des pinces : nous voulions brancher toutes nos plaques et nos composants pour enfin finir notre robot, mais les salles n'étant pas disponibles, nous avons choisi de nous atteler à l'impression des pinces. Mais malheureusement la machine à rencontré des petits soucis et nous n'auront peu être pas le temps de les imprimer pour de bon.

Séance 23 (16/05)

  • Branchement des composants: Le shield ne va pas du tout.

Conception : résumé

Conception mécanique robot

Choix

Pour la conception de notre robot compétiteur, nous avions plusieurs choix à faire en premier lieu :
Kit du châssis
  • prendre un kit châssis ou fabriquer notre propre châssis sur Inkscape en rajoutant les moteurs soi-même.
  • utiliser un Arduino Mega2560 ou un circuit électronique maison à base de micro-contrôleur ATMega328p pour le fonctionnement de tous les composants.
  • faire un robot télécommandé ou non.

Nous avons donc pesé le pour et le contre afin d'optimiser notre choix. Notre objectif premier était d'optimiser les programmes et de finir notre robot, nous nous sommes donc dit que le châssis à faire nous prendrait trop de temps. De plus, on souhaitait avoir plus de temps à la fin pour pouvoir soit préparer un terrain soit un but et avoir un robot fonctionnel. N'étant pas très forts avec l'électronique et la conception mécanique nous avons donc opté pour le châssis en kit simple et le robot manuel avec ArduinoMega (le plus simple possible).

Plaques des fourches


Finalement pour compliquer un peu notre travail nous avons décidé d'ajouter un système de fourches optiques aux moteurs pour asservir la vitesse d'une roue à l'autre, l'avantage est que nos deux roues fonctionneront à la même vitesse exactement contrairement à des robots simples ou les deux moteurs de roues ne peuvent jamais être exactement à la même vitesse. Ce système à été assez compliqué à effectuer : en effet nous devions trouver comment attacher ces fourches en dessous du robot de façon optimisée pour avoir moins de fils. Nous avons donc conçu quelques plaques pour les faire tenir.

Conception plaques de support

Pour finir la conception mécanique de notre robot (hors pinces), nous avons, pendant plusieurs séances, dû réfléchir à la création de plusieurs plaques pour faire tenir les différents composants. Pour cela nous avons utilisé Inkscape, le logiciel n'est pas très dur à utiliser mais la version disponible n'était pas la plus récente et nous avons eu du mal à mesurer des distances.

Contraintes à respecter :

  • pièces pas trop grandes/ petites
  • respecter les diamètres des différents trous du châssis
  • et surtout respecter les dimensions des composants


Etapes de création de pièces sur Inkscape :

  • 1ere étape : Nous avons tout d'abord créé la première vague de plaques au début de l'année (nous avons passé du temps chez nous pour cette étape pour comprendre inkscape). Une plaque pour tenir les piles, une plaque tenue par deux petites plaques pour le capteur
    Plaques gardées de l'étape 1
    ultrason, une plaque pour faire tenir le servomoteur à l'avant du robot, système de 3 plaques pour les fourches (montré auparavant), plaque des phototransistors à l'avant aussi du robot.

Par la suite ayant décidé de faire des PCB pour les phototransistors nous avons mis de côté la plaque créée.

2ème étape
  • 2ème étape : Nous avons décidé de refaire la plaque du capteur ultrason (que nous collerons sur le pcb phototransistors), puis après avoir fait le schéma du système de pinces, nous nous sommes attelés au design des nouvelles pièces dont nous avions besoin : 2 plaques engrenages plus barre pour relier le servo aux pinces , une nouvelle plaque plus solide pour tenir le servomoteur avec un axe cylindrique collé dessus pour faire tenir le deuxième engrenage ( le premier étant relié au servo directement).

La plaque de support des détecteurs de ligne consiste en un PCB relié par un entrefer en dessous du châssis inférieur.






Problèmes rencontrés :

  • Le plus dur était qu'il fallait faire les mesures exactes au millimètre prêt, nous avons donc rencontré plusieurs problèmes de mesures (cela a pris du temps).
  • Après la 1ere étape nous avons seulement gardé la plaque des piles et des fourches qui correspondaient bien, celle du servomoteur était trop fragile et de la mauvaise taille nous ne l'avons pas gardée ainsi que les plaques ultrasons qui n'étaient pas non plus de la bonne taille.
  • Pour certaines pièces de la 2ème étape, il fallait incruster mais nous avons eu des problèmes pour trouver comment incruster les pièces (engrenage plus barre) sur Inkscape. Avant le découpage nous pensions avoir réussi mais au découpage les pièces sont ressorties toutes découpées, nous avons donc dû coller les pièces. Ce n'est pas très solide mais nous comptions sur le fait que la sphère de la pince touche de sol afin de ne pas casser la barre la tenant. Aussi ces même plaques nous semblent petites mais la découpeuse laser étant en panne quand nous nous en sommes rendus compte nous avons laissé comme cela.

Conception pinces

Nous avons choisi de faire la création de la pince sur freecad. Nous avons tout d'abord dû faire plusieurs schémas et avons du réfléchir aux contraintes : cacher la lumière, pinces assez
Système barres engrenages pour pinces
hautes et pas trop lourdes afin qu'elles ne tombent pas. Nous avons donc choisi un modèle de pinces qui cachent la lumière infrarouge (de la balle) des phototransistors avec deux quarts de sphère de ce côté et deux petites barres de l'autre pour retenir la balle. Nous avons passé une séance à réfléchir aux contraintes techniques sur schémas et avons passé plus de temps afin de prendre les mesures nécessaires au système.



Freecad fût très difficile a comprendre, plus que certains logiciels comme solidworks que nous avions déjà pu utiliser. Mais après avoir parcouru le logiciel nous avons réussi a produire ce que nous voulions. Nous avons passé beaucoup de temps à la maison pour la pince 3D. Il a ensuite fallu faire les barres et les engrenages qui reliaient le tout (schéma plus haut), la conception nous avait paru simple au premier abord mais il fallait réfléchir a un système qui retienne les pinces de tomber et un système de tir de balle quand le robot se trouve devant un but. Nous avons donc trouvé un schéma concret de tout le système de pinces mais ne savions pas vraiment si ça fonctionnerait, nous avons quand même fait les pièces sur Inkscape pour tester le tout.

Le système se compose donc du servomoteur fixé en dessous d'une plaque attachée au châssis inférieur. Sur ce servomoteur on attache la première barre engrenage, la deuxième étant mise sur l'axe cylindrique. Entre les deux engrenages nous avons pensé, pour le système de poussoir, à enfiler une barre crantée avec, au bout, une plaque qui servira de poussoir. Lorsque les pinces sont fermées la barre crantée est "rentrée", et lorsque celles-ci s'ouvrent la barre s'avance pour pousser la balle.


Pinces sur Freecad


Servomoteur fixé
Ce système n'est malheureusement pas très optimisé. En effet le poussoir est avancé lorsque les pinces s'ouvrent pour attraper la balle , ce qui rend l'attrape compliquée. De plus ce système de poussoir est simplement enfilé entre les engrenages et ne tient sur rien. Lorsque que les pinces sont ouvertes pour pousser la balle, la barre s'avance mais très lentement ce qui risque de pousser seulement très légèrement la balle. Et enfin les barres attachant les pinces étant très courtes, les pinces s'ouvrent très rapidement, c'est-à-dire que les engrenages ne bougent que de quelques dents, soit la barre crantée n'avance que très peu.

Malheureusement ne voulant pas passer trop de temps sur le schéma et la conception mécanique nous paraissant très compliquée nous avons laissé ce système.

Nous n'avons par contre par eu le temps de tout fixer ayant eu par deux fois des problèmes avec l'impression des pinces. En effet faire 2 quarts de sphère prend beaucoup de temps à l'impression 3D, de ce fait l'imprimante rencontre des problèmes très souvent et nous avons dû abandonner plusieurs fois. Nous avons pu imprimer une seule des deux pinces.

Programmation

Pour la partie programmation nous avons commencé par faire avancer le robot en faisant tourner les roues à l'aide du contrôleur moteur.
Fonctions pour contrôler les roues

Nous avons ensuite programmé le capteur ultrason afin d'obtenir la distance séparant le robot d'un potentiel obstacle puis nous avons relié ces deux programmes dans le but de faire avancer le robot et de le faire tourner lorsqu'il se situe à une distance choisie d'un obstacle. Pour le faire tourner il suffit de ne faire tourner qu'une seule des deux roues en fonction du sens dans lequel on souhaite le faire tourner et pour le faire tourner sur lui même on fait tourner les deux roues dans des sens opposés.

Contrôle des roues par le capteur ultrason

Le plus gros problème à été la programmation des fourches optiques qui nous a pris énormément de temps, nous arrivions a calculer la vitesse de rotation des roues mais nous n'arrivons pas à asservir cette vitesse. Pour récupérer la vitesse des roues nous avons utilisé les interruptions afin de compter le nombre de fois que la fourche optique changeait d'état pour un certain temps ce qui correspond à un certains nombre de trous de la roue dentée.Nous pouvons donc calculer la vitesse à partir du nombre de trous parcourus et du temps mis pour cela.

Initialisation des interruptions dans la fonction void setup()
Calcul de la vitesse de rotation des roues

Ensuite nous avons programmé la détection de la lumière par les 5 phototransistors. Le robot va tourner à gauche si les capteurs de gauche captent plus de lumière, à droite si ce sont ceux de droite.

Rotation en fonction de la lumière captée par les phototransistors


Conception PCB

Pour avoir le moins de fils possibles, nous avons choisi de faire trois PCB. Un pour les détecteurs de lignes, pour les phototransistors et le shield (controleur moteur, capteur ultrason, servo-moteur, fourches optiques). La prise en main fût compliquée et longue. Ces PCB nous servirons notamment de plaques de support.


La conception des PCB fut compliquée : La prise en main de Fritzing fut difficile notamment pour le Shield qui regroupe de nombreux composants. Ce fut difficile de placer tous les composants sur le PCB de façon à ce que les liaisons puissent être optimisées. De plus il y a de nombreux détails dans la conception du PCB qui ont été compliqués : Modification de certains composants, création des plans de masses, ... En effet on ne connaissait pas le protocole pour faire correctement des PCB et les envoyer par la suite, il était compliqué de trouver sur internet. Nous avons donc dû nous aider avec nos camarades mais aurions préféré avoir un vrai cours sur ce logiciel très dur à utiliser, car nous avons perdu du temps à recommencer certaines choses comme les schémas (ne sachant pas qu'il fallait les faire). Il fallait aussi optimiser les liaisons entre composants de manière à n'avoir aucun angle droit, à ce qu'elles ne se touchent pas entre elles et à avoir un minimum de symétrie.

Les PCB:

  • Détecteurs de ligne : Ce PCB, sans parler des problèmes de protocole d'utilisation de fritzing, fût le plus facile à réaliser, en effet nous avons choisi de n'utiliser que 2 détecteurs de
    PCB imprimé des détecteurs de ligne
    lignes. Sur la plaque nous n'avions donc que 3 composants : les détecteurs et un header. Nous avons simplement relié masse, alimentation etc, des 2 détecteurs aux mêmes pattes du header.

Le soudage des composants s'est quant à lui bien passé. le seul petit bémol est que l'on avait soudé le header du côté "sol" de la plaque et donc la plaque aurait touché le sol en plus d'empêcher que les détecteurs ne fonctionnent. Nous avons donc simplement dessoudé et ressoudé de l'autre côté.


PCB imprimé des phototransistors
  • Phototransistors : ce PCb fût aussi simple bien qu'il y avait beaucoup plus de composants. Nous avons choisi d'utiliser 5 phototransistors, et avions donc sur notre plaques 5 résistances et un header de 5 trous et de 2 pour l'alimentation et la masse. Encore une fois nous avons dû relier les composants avec la masse et l'alimentation etc. Sur ce PCB nous avons eu un problème car nous ne trouvions pas le bon header, et comme nous avions oublié de faire le schéma avant nous avons du tout recommencer pour avoir le bon header et le bon schéma, mais ce fût rapide.

Pour le soudage nous avons rencontré plusieurs soucis en vérifiant les soudures au multimètre , il s'est avéré qu'il y avait un problème au niveau de certaines résistances (et non de la soudure elle-même). Nous avons en effet constaté que les résitances étaient défaillantes. Il a donc sufit de les dessouder pour en prendre des nouvelles.



PCB imprimé du shield
  • Shield : Ce fût la conception la plus compliquée sur Fritzing notamment à cause du nombre important de composants et de liaisons, comme dit précédemment.
    Shield finit et branché sur arduino
    Il fallait trouver les bons composants, optimiser les liaisons etc.. Cela nous a pris plusieurs séances et beaucoup de travail à la maison. Malheureusement nous nous sommes aperçus à la fin après la soudure que beaucoup de choses n'allaient pas, en voulant brancher, comme les phototransistors, les détecteurs de lignes, nous n'avons pas pu tout brancher et au final un seul phototransistor a pu être branché.

En ce qui concerne la soudure, nous avions plusieurs problèmes. Tout d'abord la distance entre les pattes du contrôleur moteur s'est retrouvée être trop importante, puis les trous pour le capteur ultrason sont ressortis trop petits bien que nous ayons choisi les bons composants. Nous avons demandé conseil à un professeur qui nous a aidé : nous avons pu souder des headers de travers afin de brancher le contrôleur et avons pu trouver un header avec des petites pattes pour le capteur ultrason. Le reste de la soudure s'est bien passée.

Exemple du placement des composants sur PCB


Conclusion

Robot Final
Nous n'avons pas eu le temps de faire tout ce que nous voulions faire. Cependant notre robot roule, peut s'arrêter quand il y a un obstacle et détecter une source infrarouge. Les détecteurs de lignes n'ont pas été programmés ni reliés au shield suite aux problèmes rencontrés mais ils ont leur propre PCB. Les fourches ont été programmées presqu'entièrement , il manque l'asservissement mais elles sont bien reliées au shield. Le servomoteur a été partiellement programmé, il manque la partie ouverture fermeture des pinces.

Il est juste dommage que nous n'ayons pas assez assimilé Fritzing au point d'avoir raté le shield, cela aurait pu être un gros plus qu'il marche entièrement.

Ensuite notre système de pinces a été bien pensé mais suite aux problèmes de découpeuse, il est très bancal. Mais il pourrait fonctionner avec des pièces mieux découpées. La pince 3D qui a pu être imprimée nous plaît et paraît fonctionnelle pour ce qu'on lui demande.

En conclusion même si notre robot comporte énormément de défauts, pour en arriver là nous avons dû beaucoup travailler afin de comprendre les logiciels, réflechir aux différentes conceptions. Ce BE nous a donc permis de comprendre de nouveaux logiciels qui pourront nous servir plus tard, nous savons à présent faire des circuits électroniques plus ou moins bons et des pièces en 3d, imprimer et découper d'autres pièces, programmer un moteur et des capteurs. Cela nous a donné encore plus envie de travailler dans l'électronique et l'informatique par la suite.