Binome2015-2 : Différence entre versions
(→SÉANCE 5 (le 29/01/16)) |
|||
(139 révisions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | == ''' | + | <include nopre noesc src="/home/pedago/ppeip/include/video-Robot2-2015-iframe.html" /> |
+ | __TOC__ | ||
+ | <br style="clear: both;"> | ||
+ | == '''OBJECTIF DU PROJET''' == | ||
− | Dans un premier temps, les encadrants ont '''présenté le projet'''. Puis nous avons organisé une '''répartition du travail''' afin d'harmoniser les envies de chacun et les nécessités. Ainsi, nous | + | L'objectif de ce bureau d'étude est la conception de '''robots compétiteurs dans un jeu de balles.''' |
+ | |||
+ | Nous devons alors réaliser et/ou programmer des robots ramasseurs, des robots joueurs, des buts et le terrain. | ||
+ | Le jeu suit le principe d'un match de football. C'est-à-dire qu'il y a plusieurs manches où les robots devront: | ||
+ | |||
+ | * '''robots ramasseurs:''' sortir du garage, aller positionner la balle au centre du terrain, retourner au garage, communiquer avec les autres robots et les buts, retrouver la balle et la replacer au centre. | ||
+ | * '''robots joueurs:''' sortir du garage, retrouver la balle, mettre un but , communiquer avec le robot ramasseur et les buts. | ||
+ | |||
+ | == '''SÉANCE 18/01/16__Répartition et réflexion''' == | ||
+ | |||
+ | |||
+ | Dans un premier temps, les encadrants ont '''présenté le projet'''. Puis, nous avons organisé une '''répartition du travail''' afin d'harmoniser les envies de chacun et les nécessités. Ainsi, nous avons pour idée, que chaque binôme puisse travailler sur un robot (ramasseur ou joueur) et une autre réalisation "annexe" (but ou terrain). Bien sûr, cette organisation pourra être changée par la suite. | ||
Notre binôme s'est inscrit pour la conception du '''robot ramasseur et la préparation du terrain'''. | Notre binôme s'est inscrit pour la conception du '''robot ramasseur et la préparation du terrain'''. | ||
− | Après avoir lu en détail le sujet | + | Après avoir lu en détail le sujet du projet, nous avons discuté entre nous des éléments importants de la réalisation du robot et du terrain. |
− | Puis nous nous sommes regroupés avec le binôme 7 afin discuter du '''choix de châssis''' pour le robot ramasseur. Un 2 roues permet une mobilité plus simple mais un 4 roues permet une meilleure stabilité. | + | Puis, nous nous sommes regroupés avec le binôme 7 afin de discuter du '''choix de châssis''' pour le robot ramasseur. Un 2 roues permet une mobilité plus simple mais un 4 roues permet une meilleure stabilité. |
− | >>> Nous avons alors décidé d'essayer un châssis 4 roues | + | |
+ | >>> Nous avons alors décidé d'essayer un châssis 4 roues car nous avons beaucoup d’éléments à placer sur le robot. | ||
Nous avons aussi abordé '''le problème des articulations des servomoteurs et la dispositions des roues'''. Aucune conclusion à ce sujet à la fin de la séance. | Nous avons aussi abordé '''le problème des articulations des servomoteurs et la dispositions des roues'''. Aucune conclusion à ce sujet à la fin de la séance. | ||
− | + | ||
+ | ===Travail personnel=== | ||
− | Ajout de servomoteurs ? | + | Ajout de servomoteurs ? |
Recherche comment gérer les servomoteurs en programmation Arduino/c. | Recherche comment gérer les servomoteurs en programmation Arduino/c. | ||
Ligne 19 : | Ligne 35 : | ||
Commencer les recherches pour la pince imprimable en 3D (plexiglas). | Commencer les recherches pour la pince imprimable en 3D (plexiglas). | ||
− | + | == '''SÉANCE 21/01/16__Réflexion Pince, Châssis et Soudure Moteurs''' == | |
− | == '''SÉANCE | ||
Ligne 26 : | Ligne 41 : | ||
Dans notre cas, pour la réalisation de la pince nous pensons utiliser : | Dans notre cas, pour la réalisation de la pince nous pensons utiliser : | ||
− | - des engrenages on aurait alors besoin d'un seul moteur (une seule rotation) pour ouvrir et fermer celle-ci. | + | - des engrenages; on aurait alors besoin d'un seul moteur (une seule rotation) pour ouvrir et fermer celle-ci. |
- la tête sera plus ou moins large pour avoir une meilleure tenue de la balle. | - la tête sera plus ou moins large pour avoir une meilleure tenue de la balle. | ||
− | - un matériau afin d'éviter que les crochets de la pince glissent contre la balle qui est en plastique lisse (bande | + | - un matériau afin d'éviter que les crochets de la pince glissent contre la balle qui est en plastique lisse (bande antidérapante ?). |
[[Fichier:inspiration-pince.jpg|200px|thumb|left|modèle d'inspiration de la pince]] | [[Fichier:inspiration-pince.jpg|200px|thumb|left|modèle d'inspiration de la pince]] | ||
− | Nous pouvons aussi peut- | + | Nous pouvons aussi peut-être faire rouler la balle au sol mais cela risque de gêner les déplacements du robot. Dans cette deuxième solution, la balle se doit d'être entourée par la pince afin que celle-ci ne s'échappe pas une fois poussée. |
(Cela est à réfléchir) | (Cela est à réfléchir) | ||
− | Puis nous nous sommes réparti le travail. Ainsi nous avons pu '''souder les fils aux moteurs''' et commencer le '''montage du châssis''' (après avoir retiré tout le carton) mais aussi réaliser '''l'installation d'Arduino et Ardublock'''. | + | Puis, nous nous sommes réparti le travail. Ainsi, nous avons pu '''souder les fils aux moteurs''' et commencer le '''montage du châssis''' (après avoir retiré tout le carton) mais aussi réaliser '''l'installation d'Arduino et Ardublock'''. |
Des '''recherches sur la programmation du capteur de couleurs et de la lumière''' ont été faites ainsi que '''sur les connexions de l'Arduino avec les différents composants.''' | Des '''recherches sur la programmation du capteur de couleurs et de la lumière''' ont été faites ainsi que '''sur les connexions de l'Arduino avec les différents composants.''' | ||
Ligne 41 : | Ligne 56 : | ||
[[Fichier:materiel-chassis.jpg|200px|thumb|right|materiel montage châssis]] | [[Fichier:materiel-chassis.jpg|200px|thumb|right|materiel montage châssis]] | ||
− | + | ===Travail personnel=== | |
Installation de certains logiciels chez nous. | Installation de certains logiciels chez nous. | ||
Ligne 47 : | Ligne 62 : | ||
Schématisation de la pince pour la faire plus facilement à la découpeuse laser. | Schématisation de la pince pour la faire plus facilement à la découpeuse laser. | ||
− | + | == '''SÉANCE 25/01/2016__Réparation châssis et Soudures'''== | |
− | == '''SÉANCE | ||
− | Pour cette troisième séance, nous avons '''réparé le châssis''' de notre robot avec l'aide d'un encadrant. En effet, suite à | + | Pour cette troisième séance, nous avons '''réparé le châssis''' de notre robot avec l'aide d'un encadrant. En effet, suite à un défaut de pièce, notre plaque s'est cassée (au niveau d'une roue). Nous avons pu ensuite finir le montage du châssis. |
[[Fichier:reparation-chassis.jpg|200px|thumb|left|réparation châssis]] | [[Fichier:reparation-chassis.jpg|200px|thumb|left|réparation châssis]] | ||
− | Par ailleurs, nous avons profité de la séance pour faire quelques '''soudures supplémentaires'''. La soudure nous a | + | Par ailleurs, nous avons profité de la séance pour faire quelques '''soudures supplémentaires'''. La soudure nous a permis de relier '''les fils aux pattes''' ainsi que '''les composants contrôleurs moteurs''' à d'autres pattes. |
[[Fichier:soudure-cables.jpg|200px|thumb|left|soudure des câbles aux pattes]] | [[Fichier:soudure-cables.jpg|200px|thumb|left|soudure des câbles aux pattes]] | ||
[[Fichier:soudure-controleurs.jpg|200px|thumb|left|soudure des contrôleurs moteurs]] | [[Fichier:soudure-controleurs.jpg|200px|thumb|left|soudure des contrôleurs moteurs]] | ||
− | Durant cette séance, des '''tests arduino''' ont été réalisés sur les photodiodes, sur les capteurs couleurs et le capteur ultrasons. Nous avons réalisé la difficulté entre "l'idée" et la réalisation du programme arduino | + | Durant cette séance, des '''tests arduino''' ont été réalisés sur les photodiodes, sur les capteurs couleurs et le capteur ultrasons. Nous avons réalisé la difficulté qu'il y a entre "l'idée" et la réalisation du programme arduino et des branchements. |
+ | |||
− | + | ===Travail personnel=== | |
continuer les recherches sur Arduino. | continuer les recherches sur Arduino. | ||
− | commencer la conception de la pince sur logiciel. | + | commencer la conception de la pince sur le logiciel freeCAD. |
+ | == '''SÉANCE 28/01/16__Conception FreeCAD et Câblage/Tests moteurs''' == | ||
− | |||
+ | Pendant la séance 4, nous nous sommes répartis le travail. L'un réalisait la conception 3D des pièces de la pince sur FreeCAD tandis que l'autre continuait les tests Arduino ainsi que le câblage. | ||
− | + | Aujourd'hui '''les tests Arduino et le câblage ont ciblé le fonctionnement des moteurs. Face à un non fonctionnement du système après de nombreux essais, il a été conclu que, peut-être, une de nos pièces était défaillante. Nous allons donc tester chaque partie au multimètre à la séance prochaine'''. | |
− | + | Pour '''la pince, la conception 3D de chaque pièce sur le logiciel FreeCAD''' a bien avancé (quasiment finie). Nous avons décidé de réaliser chaque pièce, indépendamment, pour faciliter l'impression mais aussi pour avoir la possibilité de les assembler nous-mêmes. En effet, cela nous permettrait une plus grande liberté d'angle et de positionnement. (Nous visserons les pièces entre elles par la suite). | |
− | |||
− | Pour '''la pince, la conception 3D de chaque pièce sur le logiciel FreeCAD''' a bien avancé (quasiment | ||
La pince est composée : | La pince est composée : | ||
− | + | * 2 engrenages (un fixe et un lié au moteur) | |
− | + | * 4 branches (différentes 2 à 2) | |
− | + | * 2 plaques permettant de contenir la pince et de la faire rouler. | |
Peut-être lors de la prochaine séance nous aurons la possibilité d'imprimer les éléments de la pince. | Peut-être lors de la prochaine séance nous aurons la possibilité d'imprimer les éléments de la pince. | ||
Ligne 84 : | Ligne 98 : | ||
− | + | ===Travail personnel=== | |
Continuer les recherches sur Arduino pour les prochains tests. | Continuer les recherches sur Arduino pour les prochains tests. | ||
Finir la conception 3D des pièces sur FreeCAD. | Finir la conception 3D des pièces sur FreeCAD. | ||
+ | == '''SÉANCE 29/01/16__Tests des soudures, Programmation et Impression pince 3D''' == | ||
− | + | Dans un premier temps, nous avons '''refait des tests sur différentes parties soudées''' afin de vérifier qu'aucun problème n'était lié à celles-ci. Malheureusement, un de nos contrôleurs moteurs a brûlé suite à un mauvais branchement. Nous avons dû refaire les soudures sur un nouveau contrôleur. Ainsi, plus aucun problème n'a été observé, notre programmation et notre branchement de la dernière séance étaient donc corrects. | |
+ | Nous avons '''finalisé les pièces du prototype de la pince''' afin de l''''imprimer en 3D'''. Chose faite. Une des pièces n'étant pas assez longue, il faudra l'agrandir pour la prochaine fois. Durant la prochaine séance, il faudra assembler ces pièces. | ||
+ | [[Fichier: pieces-proto.jpg|200px|thumb|left|pièces pour la pince après impression]] | ||
− | + | Puis, nous avons continué la séance avec de la '''programmation Arduino''' (à l'aide d'openclasroom) et le câblage des roues. | |
+ | [[Fichier:cablage-roues.jpg|200px|thumb|left|câblages et montage actuel]] | ||
− | |||
− | |||
− | + | ===Travail personnel=== | |
− | + | ||
+ | Nous sommes restés sur place pour continuer sur la programmation (faire tourner les moteurs C et D). | ||
− | + | Un problème est apparu. En effet, la roue D tourne moins vite que les autres et il ne s'agit pas d'un problème de pin ou de programmation. Peut-être le moteur est-il endommagé ou peut-être les soudures ne sont pas correctes? Nous devons régler ce problème durant la prochaine séance. | |
− | |||
− | + | == '''SÉANCE 01/02/16__Moteurs/Câblages''' == | |
− | + | Durant cette sixième séance peu d'avancées ont été réalisées, la '''résolution d'un problème''' ayant pris énormément de temps. En effet, il a fallu résoudre le problème vu précédemment: '''une roue tournant moins vite que les autres.''' | |
+ | Après avoir, inversé les fils ou les contrôleurs, inversé les moteurs et fait des soudures. Le problème s'est avéré être un faux contact entre deux fils d'alimentation du moteur. | ||
− | |||
− | |||
− | + | ===Travail personnel=== | |
− | Réfléchir | + | Réfléchir à des programmes Arduino pour faire tourner le robot, pour le capteur ultrason. |
− | Faire des modifications | + | Faire des modifications à la pièce plaque de la pince. |
− | == '''SÉANCE | + | == '''SÉANCE 04/02/16__Prototype pince et Programmation''' == |
− | Aujourd'hui nous avons monté le prototype de la pince. Et nous avons pu alors nous rendre compte que certaines pièces sont trop petites ou mal orientées. Elles seront donc | + | Aujourd'hui, nous avons monté le '''prototype de la pince'''. Et nous avons pu alors nous rendre compte que certaines pièces sont trop petites ou mal orientées. Elles seront donc à refaire pour la prochaine fois, afin de pouvoir imprimer lundi la pince complète. |
[[Fichier:proto-pince.jpg|200px|thumb|right| prototype d'une moitié de la pince]] | [[Fichier:proto-pince.jpg|200px|thumb|right| prototype d'une moitié de la pince]] | ||
− | Puis nous nous sommes concentrés sur la programmation de notre robot. | + | Puis, nous nous sommes concentrés sur la '''programmation''' de notre robot. A ce jour, le robot '''avance et recule (sur une durée déterminée) et tourne'''. |
− | Petit problème : le robot tourne a l'infini il faut donc | + | Petit problème : le robot tourne en rond à l'infini. Il faut donc trouver une solution. |
+ | Nous avons également commencé à préparer des bouts de programmes afin de faciliter la rédaction du programme final ( un programme : avance, tourne à droite, tourne à gauche, recule etc.). | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | |||
+ | * Refaire les pièces de la pince | ||
+ | * Réfléchir au support de la deuxième partie de la pince | ||
+ | * Réfléchir à la programmation du robot. | ||
+ | |||
+ | == '''SÉANCE 08/02/16__Câblages, Fritzing, Piles et Programmation''' == | ||
+ | |||
+ | |||
+ | Durant cette séance, nous avons '''refait les câblages (diminuer leurs longueurs)''' afin d'y voir plus clair. Cela nous a aussi été utile pour '''commencer la schématisation de l'ensemble sur fritzing''', logiciel qui nous permettra de réaliser le circuit imprimé. | ||
+ | Nous avons eu un''' problème avec les piles''', qui a été résolu. | ||
+ | Nous avons un peu continué sur la programmation Arduino. Essentiellement, sur la '''programmation du servomoteur''' pour la pince. Il s'agit donc de contrôler les angles de rotation. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | |||
+ | Il faudrait pour la prochaine séance avoir imprimé la pince en entier. Mais aussi, penseràa réaliser une conception 3D d'un support pour le deuxième engrenage; /!\ IMPORTANT /!\ | ||
+ | |||
+ | Continuer fritzing et penser à superposer la carte arduino avec la tablette. | ||
+ | |||
+ | Programmation | ||
+ | |||
+ | |||
+ | == '''SÉANCE 11/02/2016__Câblage, soudures Capteurs lignes, Servomoteurs et FreeCAD''' == | ||
+ | |||
+ | |||
+ | Lors de cette séance, nous avons résolu certains problèmes techniques mineurs: '''amélioration du câblage, recherche de vis et écrous adaptés à notre pince et aux différents diamètres sur nos pièces, optimisation de notre programme principal au niveau des moteurs.''' | ||
+ | |||
+ | Puis dans une seconde partie, nous avons réalisé''' les soudures pour les capteurs de lignes''' et nous avons mis en commun nos recherches personnelles (au sein du binôme) sur '''le programme servomoteur''' de la pince. Nous avons réalisé certains tests (ces derniers seront à continuer durant la séance 10). | ||
+ | |||
+ | Enfin, nous avons '''fini la pince en conception 3D sur FreeCAD, et avons pu commencer à l'imprimer.''' | ||
+ | [[Fichier:impression1.jpg|200px|thumb|left| début impression des piéces]] | ||
+ | |||
+ | ===Après les vacances=== | ||
+ | Nous allons nous concentrer sur la partie "capteurs" (ultrason, de ligne et infrarouge) ainsi que sur la réalisation du circuit imprimé sur le logiciel fritzing. Il faut également que nous réalisions plus de fonctions (par exemple de type : avancer, tourner à 90° en sens horaire/antihoraire) afin de faciliter par la suite la rédaction du programme global qui comprendra toutes les instructions du robot ramasseur. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | |||
+ | Finir d'imprimer la pince. Et continuer fritzing. | ||
+ | |||
+ | == '''SÉANCE 22/02/2016__Servomoteur, Montage Capteurs lignes, Assemblage pince, Fritzing''' == | ||
+ | |||
+ | |||
+ | Nous avons, dans un premier temps, '''réalisé le câblage du servomoteur et de 3 capteurs de lignes''' disposés à l'avant du robot. Ainsi, des premiers tests et des programmes sur Arduino ont pu être réalisés pour ces 3 capteurs et pour le moteur. Nous avons commencé la préparation un programme spécifique pour la fermeture de la pince selon la réception d'information venant des capteurs. La finalité pour les capteurs a été de calibrer les valeurs de sortie pour construire un programme qui permette de faire avancer ou reculer le robot suivant qu'il se trouve devant une ligne. | ||
+ | |||
+ | Dans un deuxième temps, nous avons '''assemblé définitivement les différentes pièces de la pince''' et nous l'avons reliée au servomoteur par l'un des engrenage, le mouvement (d'ouverture ou fermeture) transmis par ce dernier au second engrenage. | ||
+ | |||
+ | Enfin nous avons pu réaliser '''la suite de la schématisation des câblages''' (ou réalisation du circuit) sur fritzing. Sur le logiciel, nous avons donc pour le moment: | ||
+ | |||
+ | * la carte arduino,les piles | ||
+ | * 4 moteurs (roues) liés aux contrôleurs moteurs. | ||
+ | * 1 servomoteur | ||
+ | * 3 capteurs de lignes | ||
+ | Nous avons discuté de la possibilité de réaliser plusieurs circuits spécifiques à différentes fonctions. Il a été décidé, après discussions avec les autres étudiants ainsi que les professeurs encadrant, de tout faire sur une même carte. | ||
+ | |||
+ | Cependant, nous avons réalisé qu'il nous manquait un support pour le deuxième engrenage de la pince (donc la seconde moitié). Ce support serait à réaliser pour/durant la prochaine séance et il permettrait aussi de maintenir le servomoteur en avant de la pince. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | Finir la schématisation sur fritzing des capteurs et télécharger les autres détecteurs ou contrôleurs disponibles sur le wiki. | ||
+ | |||
+ | Si possible, réaliser la conception 3D du support et l'imprimer (si imprimante disponible). | ||
+ | |||
+ | |||
+ | |||
+ | == '''SEANCE 25/02/2016__Impression 3D, Fritzing, Montage Pince, Programmation, Problèmes''' == | ||
+ | |||
+ | |||
+ | Pour cette séance, nous avons pu réaliser l'impression du support de pince et télécharger les composants manquants de fritzing. | ||
+ | |||
+ | Ainsi, aujourd'hui nous avons alors eu l'occasion de '''percer et relier le support à notre robot''', de même que pour les engrenages de la pince. Ayant un problème de dimension, il nous a fallu ajouter des éléments (boulons ou autres) pour résoudre ce '''problème de différence de hauteur entre engrenages'''. | ||
+ | Bref, la pince est enfin montée sur le robot ! | ||
+ | |||
+ | [[Fichier:robot&pince.jpg|200px|thumb|right| robot&pince au 25/02]] | ||
+ | |||
+ | |||
+ | Dans ce cas, nous avons pu continuer '''la programmation Arduino''', c'est à dire le début de la réalisation d'un ''' programme principal''' regroupant plusieurs fonctions qui serviront dans le futur, mais aussi, la '''programmation de la pince''' dans une situation complète (plus basée uniquement sur le servomoteur mais sur la pince dans son ensemble). | ||
+ | |||
+ | Un '''1er problème''' est alors apparu: | ||
+ | Le servomoteur et sa partie de pince ont du mal à tourner face à l'autre engrenage. On a un blocage lié à une difficulté. Il semblerait que les engrenages soient trop proches l'un de l'autre.Donc le mouvement nécessite plus de puissance. CE PROBLÈME EST A RÉSOUDRE POUR/DURANT LA PROCHAINE FOIS. | ||
+ | |||
+ | Puis un '''deuxième problème''': | ||
+ | La pince est bien placée et bien dimensionnée par rapport à la balle, mais il semblerait que les angles formés par les plaques ne permettent pas de garder parfaitement et pousser la balle. Les plaques n’étant pas vissées il est possible de résoudre ce défaut facilement. Peut-être devrions-nous couper un des bords des plaques pour gagner en "orientation de fermeture"? | ||
+ | |||
+ | |||
+ | Finalement pour conclure cette séance, nous avons discuté avec les binômes 8 et 10 au sujet du terrain. Ces derniers ayant bien avancé sur les capteurs de lignes ou couleurs, nous ont dit que le terrain ne pouvait se faire qu'avec un fond blanc, des lignes noires et vertes. Peut-être même des lignes bleues mais il faut vérifier que le robot ne confonde pas vert et bleu. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | |||
+ | Réfléchir aux dimensions du terrain et aux lignes. | ||
+ | Continuer Fritzing. | ||
+ | |||
+ | |||
+ | == '''SÉANCE 29/02/2016__Problèmes, Programmation, Terrain''' == | ||
+ | |||
+ | Nous avons, durant cette séance, pu '''résoudre les problèmes de la séance 11''' en changeant de vis pour unir les différentes pièces de la pince. Nous avons aussi percé et visé les plaques grises de celle-ci. | ||
+ | |||
+ | La '''programmation de la pince''' est toujours en cours car aujourd'hui, nous avons continué la programmation des capteurs de lignes. Peut-être en rajouterons nous un sur le coté par la suite afin de capter le centre du terrain. Cette solution est à réfléchir car peut-être va-t-elle entraîner plus de problèmes que de simplifications. | ||
+ | |||
+ | Nous avons aussi eu '''une réflexion sur le terrain'''. Nous allons reprendre les dimensions du terrain de l'année dernière afin de facilité le travail. Pour les rebords, peut-être faudra-t-il utiliser des morceaux du terrain de l'année dernière servant actuellement de terrain tests. | ||
+ | |||
+ | Puis, nous avons continué le '''circuit imprimé''' sur Fritzing qui a dû être entièrement recommencé durant le week-end suite à un problème de routage. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | Continuer Fritzing et programmation arduino. | ||
+ | |||
+ | |||
+ | == '''SÉANCE 3/03/2016__Fritzing et Programmation''' == | ||
+ | |||
+ | '''Continuité de la séance 12''' avec Fritzing et la programmation du '''programme principal''' et début de la '''programmation des 4 phototransistors IR que nous avons installé''' sur le robot aujourd'hui. | ||
+ | [[Fichier:phototransistorIR_1.jpg|200px|thumb|right| installation photo-transistors_capteurs IR vue dessous]] | ||
+ | [[Fichier:phototransistorIR_2.jpg|200px|thumb|left| photo-transistor IR]] | ||
+ | |||
+ | Cette programmation est d'ailleurs liée à l'ouverture/fermeture de la pince car cela dépend des longueurs captées par les phototransistors IR. | ||
+ | |||
+ | == '''SÉANCE 7/03/2016__Programmation et Carte de puissance''' == | ||
+ | |||
+ | Cette séance n'a malheureusement pas permis de beaucoup avancer sur le projet. En effet, nous avons un peu '''continué sur la programmation''' du robot mais nous nous sommes surtout concentrés sur la fin de la '''carte de puissance.''' | ||
+ | Et après vérification, nous avons réalisé qu'il y a un gros problème sur celle-ci. Le routage étant trop compliqué, pas assez propre, et peut ainsi gêner le bon fonctionnement de la carte. Celle-ci est à recommencer en changeant certains câblages et certaines positions de composants, afin de faciliter le routage. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | Rattraper le circuit imprimé sur fritzing pour lundi prochain au plus tard ! | ||
+ | |||
+ | |||
+ | |||
+ | == '''SÉANCE 10/03/2016__Programmation et Carte de puissance''' == | ||
+ | |||
+ | Continuité de la séance 14. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | |||
+ | Rattraper le circuit imprimé sur fritzing pour lundi prochain au plus tard ! | ||
+ | |||
+ | Réécriture du programme final avec les bonnes pins suivant le câblage fait sur Fritzing | ||
+ | |||
+ | |||
+ | |||
+ | == '''SÉANCE 14/03/2016__Fritzing, Câblages et Alimentation''' == | ||
+ | |||
+ | [[Fichier:circuit2_puissance.jpg|200px|thumb|left|vue platine d'essai de la carte de puissance]] | ||
+ | [[Fichier:circuit_puissance.jpg|200px|thumb|right|vue circuit imprimé de la carte de puissance]] | ||
+ | |||
+ | Durant cette séance, nous avons continué encore une fois '''Fritzing''' pour finir le PCB. Après avoir fait vérifier, il a été conclu que celui-ci devait être réalisé en deux cartes. Au lieu de tout mettre sur une même carte, il est finalement impératif de faire une carte de puissance (circuit réservé aux moteurs et à l'alimentation) et une carte de capteurs IR/lignes pour faciliter le routage. | ||
+ | |||
+ | Puis, nous avons '''mis à jour les différentes pins'''. En effet, celles-ci avaient été changées, déplacées, modifiées afin de faciliter le circuit imprimé sur l'ordinateur. Cette mise à jour fut réalisée en deux fois, suite à des petites erreurs de modifications dans un premier temps. | ||
+ | |||
+ | Nous avons alors fait face à un '''nouveau problème'''. Nos programmes Arduino fonctionnent bien, cependant le robot a beaucoup de mal à se déplacer. Il semblerait que celui-ci soit '''trop lourd ou que les moteurs ne soient pas suffisamment alimentés'''. Le problème semble résolu. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | |||
+ | Finition de la carte de puissance et de la carte de capteurs (le même jour durant l'après midi) >> VOIR PHOTOS | ||
+ | |||
+ | |||
+ | [[Fichier:carte2_bb.jpg|200px|thumb|right|vue platine d'essai de la carte des capteurs]] | ||
+ | [[Fichier:circuit2_circuit imprimé.jpg|200px|thumb|left|vue circuit imprimé de la carte des capteurs]] | ||
+ | |||
+ | |||
+ | |||
+ | == '''
SÉANCE 19/03/2016__Soudures PCB, Alimentation et Programmation''' == | ||
+ | |||
+ | |||
+ |
Nos '''PCB imprimés''' , nous avons pu commencer les '''soudures de barrettes''' (mâle/femelle) sur les cartes. Nous avons cependant remarqué un petit défaut sur le PCB "carte de puissance" lié au programme fritzing. Les contrôleurs moteurs font une taille de 500 mil alors qu'avec le logiciel, nous avions prévu 600 mil. Ce problème est commun pour tous les groupes. Les composants sont donc trop petits. | ||
+ | Pour résoudre ce problème, nous utiliserons des barrettes soudées un petit peu de travers (nous pouvons aussi tordre les pins). | ||
+ | |||
+ | Nous avons du aussi essayer de '''résoudre le problème d'alimentation''' de la séance dernière sans succès. | ||
+ | L'idée actuelle semble risquée (surchauffe carte Arduino): nous ne sommes donc pas allés plus loin. A VOIR LA PROCHAINE FOIS. | ||
+ | |||
+ |
Nous avons aussi fait un peu de '''programmation.''' | ||
+ | Dans un premier temps: nous avons continué la '''programmation de la pince.''' Celle-ci ne se ferme pas complètement. Nous sommes toujours entrain d'essayer de comprendre et de voir comment lui donner les angles d'ouverture et de fermeture voulus. | ||
+ | Dans un deuxième temps: le '''programme de capteurs de lignes''' que nous utilisions ne fonctionnait pas, les valeurs retournées n'étaient pas correctes. Heureusement, nous avons retrouvé dans nos anciens programmes, un bloc d'instructions pour les capteurs de lignes. Ce dernier retourne des valeurs correctes, pouvant variées en moyenne entre 400 à 600 et 800 (ordre de grandeur) selon les nuances de couleur/gris. Nous avons une grande différence de valeur pour du blanc et une ligne noire. On a donc enfin le moyen de réaliser un programme correct pour les capteurs de lignes. | ||
+ | |||
+ | '''
Liste des sous-programmes actuels:''' | ||
+ | |||
+ | ''(les programmes sont toujours en cours de réflexion et seront encore modifiés par la suite, afin de construire un programme final nommé ROBOT ) | ||
+ | (l'entier a permet de déterminer la durée de l’exécution)'' | ||
+ | |||
+ | * '''Capteurs de ligne :''' valeurdeligne(); captligne(int a) | ||
+ | * '''Moteurs :''' rotate45g(int a); rotate45d(int a); recule(int a); avance(int a) | ||
+ | * '''Pince :''' ouvre(); ferme() | ||
+ | * '''Autres:''' stop(); setup(); loop(); | ||
+ | * '''initialisations :''' pins, pwm, stby...(bloc d'instructions, pas fonction) | ||
+ | |||
+ | |||
+ | |||
+ | == '''
SÉANCE 18 21/03/2016__Soudures et Réimpression PCB, Terrain + SÉANCE BONUS (16h-18h30)__PCB''' == | ||
+ | |||
+ | |||
+ | Nous avons continué les '''soudures de PCB''' et proposé un '''plan du terrain''' innovant. | ||
+ | |||
+ | [[Fichier:8.jpg|200px|thumb|left|circuit imprimé avec soudure de la carte de puissance]] | ||
+ | '''SOUDURES:''' | ||
+ | |||
+ | Lors des soudures des 2 PCB, nous avons remarqué que la carte des capteurs présente un '''défaut de conception.''' En effet, certains cercles de pins n'ont pas été bien réalisés/imprimés. On a observé que le plan de masse avait tendance à toucher les soudures car les pins étaient trop proches. | ||
+ | La solution pour ce problème fut, comme on peut le voir sur la photo ci-jointe, de retirer complètement une partie du plan de masse autour des pins à zone très précise, pouvant poser problème. Cela rend la soudure plus sensible et diminue le risque de court circuit. Nous avons donc '''réimprimé une carte''' pour les capteurs. | ||
+ | [[Fichier:5.jpg|200px|thumb|right|PCB défaillant (gauche) et corrigé ((droite)]] | ||
+ | |||
+ | |||
+ | '''TERRAIN :''' | ||
+ | |||
+ | Sur la base d'observations faites dans les différents groupes, nous avons pu remarquer que la difficulté principale était de gérer les croisements de lignes. Effectivement, cela est compliqué tant au niveau de l’algorithme de décision que du codage brut. Nous avons donc imaginé un '''terrain en escargot''' dans une couleur spécifique, '''lui même entouré d'une bordure d'une autre couleur''' suffisamment différente pour que les capteurs de ligne puissent faire la différence. Ainsi les robots ramasseurs pourraient plus facilement rejoindre le centre du terrain et les robots joueurs seraient toujours empêchés de sortir du terrain. (voir la photo) | ||
+ | [[Fichier:capture.jpg|200px|thumb|left|schéma du terrain]] | ||
+ | |||
+ | '''BONUS:''' | ||
+ | Nous avons '''vérifié''' si '''le PCB''' du matin n'avait pas de court circuit. Malheureusement, plusieurs fois nous avons du refaire les soudures, retirer de l’étain ou corriger des défauts. Nos soudures n'étaient pas si mal, mais le fer à souder formant des boules d'étain, nous en avons mis trop, d'où les problèmes. Cela nous a pris tout l'après-midi. La difficulté spécifique à notre PCB est l'utilisation de fils très fins et rapprochés les uns des autres. | ||
+ | |||
+ | |||
+ | |||
+ | == '''SÉANCES BONUS 23/03/16 (13h30-18h30) et le 24/03 (16h -18h)__Soudures PCB et Programmation''' == | ||
+ | |||
+ | [[Fichier:soud-composants.jpg|200px|thumb|right|fin de la soudure des composants]] | ||
+ | Durant ces deux jours, nous avons pu '''finir les vérifications de soudures''': il s'agissait d'éviter les court-circuits entre les pistes et la masse, ainsi que de vérifier que les soudures soient correctes. | ||
+ | Nous avons aussi fini la '''soudure des composants de la carte de capteurs'''. Aucun gros souci n'est arrivé durant cette première partie. | ||
+ | [[Fichier:robotbis.jpg|200px|thumb|left|nouveau câblage avec les PCB]] | ||
+ | |||
+ | Nous avons aussi eu l'occasion de "officiellement" commencer à '''tester nos programmes'''. Les cartes fonctionnent bien et le robot réagit correctement. | ||
+ | Il y a eu quelques modifications à faire dans les programmes. En effet, nous avons '''corrigé ou finalisé avance() , recule(), rotate45g() et rotate45d().''' | ||
+ | |||
+ | '''Un problème avec l'alimentation''' a été observé. Nous devons constamment brancher les piles afin d'avoir assez de puissance. Cependant, les piles branchées seules et sans lancer de programme entrainent une légère surchauffe de la carte Arduino. Cela ne s'observe pas lorsqu'on lance un programme. C'est étrange. A VOIR LA SEMAINE PROCHAINE. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | |||
+ | Création d'un groupe sur Facebook afin de discuter avec tout le monde du terrain et des buts. | ||
+ | Réalisation d'une nouvelle représentation du terrain. | ||
+ | Le terrain est composé de 4 plaques de 1,40x1,90 m qu'on positionnera pour faire un grand rectangle. On y disposera les lignes de terrain, les garages et les buts. | ||
+ | |||
+ | [[Fichier:terrain2016.jpg|200px|thumb|right|schéma terrain au 28/03]] | ||
+ | |||
+ | * ligne noire : délimitation terrain _ les joueurs ne doivent pas la dépasser | ||
+ | * ligne bleue : ligne permettant aux robots ramasseurs d'atteindre le milieu du terrain | ||
+ | * lignes verte: repères garages robots joueurs. | ||
+ | mais peut-être que l'utilisation de bleu et de vert peut poser problème. Peut-être devrons nous utiliser uniquement du noir et du bleu? | ||
+ | |||
+ | |||
+ | |||
+ | == '''SÉANCE BONUS 30/03/2016 (16h-18h)__Terrain''' == | ||
+ | |||
+ | Un membre de notre binôme et un membre du binôme 10 ont '''préparé le terrain'''. Cela s'est réalisé suite à une mise en commun avec tous les autres groupes, afin de connaître leurs avis et leurs envies liés à la conception du terrain. | ||
+ | La conception s'est réalisée suivant le terrain proposé par notre groupe, c'est à dire celui présenté dans la séance bonus précédente. | ||
+ | |||
+ | Concernant l'avancement de notre robot, nous n'avons malheureusement pas eu l'occasion de résoudre le problème d'alimentation. Nous verrons donc cela après les vacances. Jusque là, nous nous concentrerons sur la programmation. | ||
+ | |||
+ | [[Fichier:terrainréel.jpg|200px|thumb|left|réalisation du terrain]] | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | |||
+ | Pendant les vacances, modification du fichier avec les programmes principaux. ajout des programmes capteurs de ligne et capteurs IR. | ||
+ | |||
+ | |||
+ | |||
+ | == '''SÉANCE 18/04/2016__Alimentation, Pince et Programmation''' == | ||
+ | |||
+ | |||
+ | Aujourd'hui, nous avons eu l'occasion d'observer et d'essayer de résoudre le problème d'alimentation apparu avant les vacances. Il s'agit d'une surchauffe de la carte arduino selon certaines situations ou un manque de puissance si nous n'utilisons pas les piles ou uniquement les piles. Après recherche, nous avons découvert qu'il s'agissait du composant ajustant le voltage entre le Vin de l'arduino et la sortie 5.5V que nous utilisions. Et nous envoyons du courant à la frontière du composant, c'est à dire 6V ( en effet 1.5V*4=6 >> 1,5V par piles). Pour résoudre ce problème nous allons donc utiliser 8 piles afin d'avoir plus de puissance,plus d'autonomie et normalement régler le problème de surchauffe du composant. | ||
+ | La réalisation de ce système à 8 piles s'est fait à l'aide des professeurs. Ce deuxième bloc est consisté d'une sortie usb femme et relié en série à notre bloc initiale que nous avons donc raccordé à un usb mâle comme le montre simplement le schéma ci joint. | ||
+ | |||
+ | [[Fichier: schema23.04.jpg|200px|thumb|right|schéma branchement série des 8 piles]] | ||
+ | |||
+ | |||
+ | Deuxièmement, nous avons pu résoudre un problème mineur de pince. En effet, les pièces n'étaient pas bien vissées et les engrenages mal liés/emboîtés. Ce qui posait problème lors de l'ouverture ou fermeture de la pince. Suite à un changement de vis et un agrandissement des trous à la perceuse, tout est correct. | ||
+ | |||
+ | Niveau programmation: | ||
+ | Nous avons finalisé nos programmes "ouvre(), ferme()" pour la pince et "LectureLigne()" pour les capteurs de lignes. | ||
+ | Nous sommes restés un peu plus longtemps pour continuer la programmation des capteurs de lignes. | ||
+ | Un petit problème à résoudre (cela se fera rapidement) est une modification dans les initialisations des pins des capteurs. En effet, suite à la réalisation du PCB, nous avons des ajustements à faire sur les programmes. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | Revenir dans la semaine pour voir le problème d'alimentation. >> Cela a été fait jeudi. Les piles en série sortent bien du 12V, on devrait alors avoir assez de puissance. Cependant la carte chauffe trop. Nous devons faire la prochaine fois des tests pour vérifier si nous n'avons pas un court-circuit. Pour cela, il faudra voir si la carte chauffe toujours lorsque les câbles ne sont pas branchés sur la carte de puissance. Peut-être devrions-nous alimenter au niveau d'un VIN et d'un GND et non plus à l'emplacement prévu pour les piles. | ||
+ | |||
+ | |||
+ | |||
+ | == '''SÉANCE 25/04/2016__Alimentation, Pins et Programmation''' == | ||
+ | |||
+ | |||
+ | Pour cette 2ème séance, nous avons '''continué à résoudre le problème de l'alimentation''' vu précédemment. C'est-à-dire que nous avons vérifié si nous avions des court-circuits avec branchements ou sans branchement, et vérifié si l'arduino ne surchauffait pas en l'alimentant dans un premier temps avec 6 Volts puis 12 Volts. Avec 6 V tout semble correcte et nous avons assez de puissance sur le sol ou sur une table. Cependant, sur le support terrain ce n'est pas le cas. Nous devrons donc bien alimenter en 12V. Il nous faut encore voir si la carte peut supporter 12V. | ||
+ | |||
+ | |||
+ | Lors de la dernière séance, nous avons remarqué qu'une bonne partie des pins capteurs de ligne et photo transistors n'étaient pas les bons dans les programmes. Nous avons donc pris quelques minutes pour faire '''la correction de ces pins'''. De même, nous avons refait deux soudures sur des câbles qui se sont cassés. | ||
+ | |||
+ | Partie informatique : | ||
+ | Nous avions durant la semaine '''perdu notre programme principal''' (avec tous les sous programmes, c'est à dire le plus important). Nous avons donc procédé à la '''réécriture''' après avoir '''récupéré une vieille version''' de celui-ci et fait une sauvegarde de secours. | ||
+ | Nous avons testé '''les programmes LectureLigne() et LecturePhoto()''' qui lisent les valeurs des capteurs de ligne ou phototransistors. | ||
+ | Nous avons ensuite écrit '''une fonction calculant la moyenne pour 100 valeurs captées. Nous pouvons utiliser cette fonction aussi bien avec les lignes que la balle.''' | ||
+ | Nous avons pu, à l'aide des moyennes, prendre en '''note les valeurs utiles de seuils détectés selon les capteurs gauches, milieux ou droits'''. | ||
+ | Soit : | ||
+ | * seuil Blanc: GAUCHE = <500 MILIEU = 690-700 DROIT = <650 ou 705 | ||
+ | * seuil BleuClair: GAUCHE = (550 à 620)ou 573 MILIEU = 759 DROIT = 650 à 750 | ||
+ | * seuil Noir: GAUCHE = >920 MILIEU = >900 DROIT = >950 | ||
+ | * seuil BleuFoncé: GAUCHE = 880 à 898 MILIEU = 830 à 840 DROIT = 885 environ | ||
+ | |||
+ | Suite aux tests, nous avons aussi pu remarquer que plus la balle est proche plus la valeur détectée est importante et inversement. | ||
+ | |||
+ | Finalement un nouveau programme a été réalisé : un '''programme de réajustement de décalage léger si deux capteurs ont un signal''', cela permet d'éviter des virages trop importants. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | |||
+ | Continuer la programmation et les tester. | ||
+ | + | ||
+ | '''Prendre rendez-vous pour réaliser la vidéo du rendu'''. >>> Nous avons pu prendre rendez-vous pour le '''[[MERCREDI 4 MAI à 9h en E304]]''' (espérant tourner en E303) | ||
+ | |||
+ | |||
+ | |||
+ | == '''SÉANCE BONUS 27/04/2016 (16h-18h)__Programmation/Tests et Puissance''' == | ||
+ | |||
+ | |||
+ | Durant ce mercredi après-midi, nous avons essayé d''''utiliser le plus de fois possibles l'alimentation 12V''' avec les piles. Nous n'avons eu aucun problème et la carte ne chauffe plus de manière excessive. '''L'arduino supporte donc les 12V.''' Le problème de l'alimentation est donc définitivement réglé. | ||
+ | De plus, nous avons découvert un avantage intéressant: sur l'un des boîtiers '''nous avons un interrupteur.''' Nous n'avons donc plus besoin d'en rajouter un. | ||
+ | |||
+ | Par la suite, nous avons pu alors continuer les tests tout en utilisant uniquement les piles, une fois le programme téléverse. | ||
+ | Niveau programmation, il a fallu '''revoir à nouveau les programmes de base. C'est-à-dire avance(), recule(),rotateD()..'''. En effet, le programme avance() (dans notre fichier principal) ne fonctionnait plus malgré une bonne rédaction de programme et de bons branchements sans court-circuit. Nous avons alors copié le programme avance() d'un sous-programme de test et collé celui-ci à la place du programme avance() défectueux. Le problème est résolu. | ||
+ | |||
+ | Enfin, lors des tests, nous avons '''régulé la puissance des moteurs.''' La puissance étant à 255, le robot roulait trop vite. Sur le support terrain, une puissance de 150 semble correcte. | ||
+ | |||
+ | Pour terminer, nous avons refait des '''tests pour déterminer les seuils (seuil balle proche et seuil balle loin) liés au repérage de la balle et à la capture de celle-ci.''' Cependant, nos valeurs ne nous semblaient pas correctes. Ces tests sont à refaire. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | Continuer la programmation. Revenir dans la semaine. | ||
+ | |||
+ | |||
+ | |||
+ | == '''SÉANCE BONUS 28/04/2016 (15h-18h)__Xbee et Programmation''' == | ||
+ | |||
+ | |||
+ | Aujourd'hui, nous avons fait des '''recherches sur la communication Xbee.''' Et nous avons alors réalisé des soudures de câbles sur l'une d'entre elles, afin de la relier par la suite à l'arduino. Les recherches sont à approfondir. | ||
+ | [[Fichier: XBEE.jpg|200px|thumb|left|carte Xbee S1, câbles soudés]] | ||
+ | |||
+ | Au sujet de la programmation, nous avons réalisé une '''amélioration des programmes avec une évaluation distance_temps_arrêt.''' Effectivement, une bonne partie de nos programmes tournaient à l'infini. (ex: avance à l'infini, recule à l'infini, tourne à l'infini). Maintenant, avec un entier A, correspondant au temps voulu en ms, donné en argument aux fonctions, nous pouvons '''déclencher l’arrêt des fonctions après A ms.''' | ||
+ | |||
+ | niveau alimentation: toujours rien à signaler. | ||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | Continuer la programmation : | ||
+ | * Xbee (le moins urgent) | ||
+ | * suivi ligne tests à faire | ||
+ | * IR a finir | ||
+ | |||
+ | == '''SÉANCE BONUS 29/04/2016 (17h-18h)__Tests Programmation''' == | ||
+ | |||
+ | [[Fichier: capteur de ligne.jpg|200px|thumb|right|capteurs protégés de la lumière par une jupette]] | ||
+ | |||
+ | Aujourd'hui nous avons continué '''les tests sur les seuils des capteurs'''. Si les valeurs ne sont pas correctes, il sera difficile de tester les programmes suivi de ligne ou suivi de balle. Pour le moment, nos valeurs ne semblent pas correctes. Cela est surement du à la luminosité ambiante, il nous faut donc faire les tests en '''protégeant les capteurs de cette lumière (essai avec du scotch sombre)'''. De plus, autre problème, les valeurs pour le bleu clair et le blanc sont très proches (nous avons observés les mêmes résultats durant la séance 20) | ||
+ | |||
+ | |||
+ | |||
+ | ===Travail personnel=== | ||
+ | Le robot a été emmené chez nous durant le weekend afin de continuer les tests.La programmation est a continuée. Nous devons aussi réfléchir à la vidéo. | ||
+ | |||
+ | |||
+ | == '''SÉANCE 21+SÉANCE BONUS 2/05/2016 (10h-18H30)__Programmation et Terrain''' == | ||
+ | |||
+ | |||
+ | De 8h à 10h nous avons retravaillé sur '''les fonctions de base''' suite à un problème de piles. | ||
+ | En effet, celles-ci s'étant déplacées ont crée une mauvaise connexion. Le problème fut rapidement résolu. | ||
+ | |||
+ | Nous avons aussi travaillé sur la '''communication Xbee'''. La communication ne s’établit pas entre les deux Xbee, cependant notre programme semble correct. Le problème sera à résoudre une fois les fonctions suivi de ligne et suivi de balle réalisé. | ||
+ | |||
+ | Puis, avec un membre du Binôme 7, nous avons '''changé les lignes du terrain'''. En effet, les capteurs ne font pas la différence entre le scotch bleu clair et le blanc. Cependant, les capteurs distinguent bien le noir (>900) et le bleu foncé (>800 et <900). Le bleu foncé a donc pris la place du bleu clair. Nous avons pour cela utilisé le gros scotch (celui-ci étant composé de rouge, c'est idéal) que nous avons découpé en deux. | ||
+ | |||
+ | [[Fichier: ligne_bleu foncé.jpg|200px|thumb|right|changement de la ligne]] | ||
+ | |||
+ | |||
+ | Durant l'après-midi, nous avons continué de travailler sur la '''détection IR et le suivi de la balle.''' | ||
+ | Cependant, nos valeurs ne sont plus correctes, avant elles l'étaient. Un problème est donc apparu quelque part. Nous pouvons dire qu'une valeur n'est pas la bonne si elle est fixe ou égale à zéro. Toutes nos phototransistors retournent du zéro. | ||
+ | Avec l'aide d'un accompagnateur, nous avons alors recommencé les tests avec les branchements de base (juste alimentation résistance et phototransistor) jusqu'à obtenir de nouveau le branchement avec le PCB. | ||
+ | |||
+ | Les premiers tests fonctionnent, les tests avec d'autres ordinateurs ou avec une carte arduino uno fonctionnent aussi, ainsi que les tests avec uniquement la carte de capteurs. Le problème doit donc venir du passage PCB de puissance au PCB de capteurs. | ||
+ | Avant la fin, nous avons vu que des soudures n’étaient pas bien faites. Peut-être que l'origine du problème s'y trouve. | ||
+ | |||
+ | == '''SÉANCE BONUS 03/05/20166 (8h30-12H)__Phototransistors et Capteurs de Lignes''' == | ||
+ | |||
+ | |||
+ | Aujourd'hui, nous avons essayé de régler le '''problème des capteurs IR'''. Apres avoir refait des soudures et refait des tests nous n'avons observé aucune amélioration. | ||
+ | Nous nous sommes donc concentrés sur le suivi de lignes afin de présenter cela en vidéo. | ||
+ | |||
+ | Cependant, nous avons réalisé que '''les valeurs de lignes''' n'étaient plus correctes pour tous les capteurs. En effet, une liaison entre le capteur du milieu et le capteur de gauche s'est établie. Ce n'est pas un problème de soudure et les capteurs sont bien alimentés en 5V. Nous avons comme pour les capteurs IR refait les tests avec les branchements basiques entre l'Arduino et les capteurs. | ||
+ | En faisant cela, nous avons bien les résultats attendu. Un problème similaire à celui d'hier s'observe sur les PCB. | ||
+ | Nous avons donc '''arrêté d'utiliser les pins prévus pour la liaison des deux PCB et plutôt relié la partie "capteurs de lignes" de la seconde carte aux pins A15, A14 et A13.''' Nous laisserons donc ces nouveaux branchements. | ||
+ | |||
+ | [[Fichier: suivi_ligne.jpg|200px|thumb|left|Suivi d'une ligne]] | ||
+ | Durant la suite de la matinée nous avons continué sur le suivi de ligne noire (suiviNOIR). Cependant, le résultat n'est pas parfait. Seulement deux résultats/conditions du programme sont pris en compte: "si tout va bien aller tout droit" et "si pas de ligne reculer". | ||
+ | |||
+ | == '''TOURNAGE VIDÉO 04/05/2016''' == | ||
+ | |||
+ | Lors de la '''vidéo''' nous avons énoncé les objectifs du projet ainsi que les solutions que nous y avons apporté pour le robot ramasseur. | ||
+ | Les applications de notre robot que nous avons présenté sont: | ||
+ | |||
+ | * Un parcours du robot (déplacement avant-arrière-tourne droite/gauche-ouverture/fermeture pince) on peut considérer ce programme comme une stratégie de balayage du terrain par le robot lorsque celui-ci ne détecte aucun infrarouge. | ||
+ | * Un petit programme de détection de ligne avec déclenchement d'un ordre sur les moteurs (si détecte ligne au capteur centrale avance tout droit sinon recule par exemple). | ||
+ | |||
+ | == '''SÉANCE BONUS 11/05/2016__Câblage Photo-transistor et programmation''' == | ||
+ | |||
+ | |||
+ | Le 3/05 nous avons réussi à résoudre le problème de détection des capteurs de lignes en changeant le câblage et le choix des pins (sur A13, A14 et A15). | ||
+ | |||
+ | Nous avons donc aujourd'hui '''réutilisé cette méthode pour les photo-transistors''' (pins maintenant sur A6, A7 et A8). De plus nous avons vu le 02/05 qu'en réalisant '''les branchements de base''' avec les photo-transistors, on obtient des valeurs correctes. | ||
+ | Lecture de valeurs pour les photo-transistors fonctionne. | ||
+ | |||
+ | |||
+ | == '''CONCLUSION''' == | ||
− | [[ | + | [[Fichier: Robot fini.jpg|200px|thumb|left| état du robot final]] |
− | |||
− | |||
− | |||
+ | Pour conclure, sur l'avancement du projet, le terrain et les buts ont bien été réalisés par plusieurs binômes. | ||
+ | Pour nous, notre robot est totalement équipé pour réalier toutes les tâches demandées dans les objectifs du projet d'étude PEIP. Il a tout ce qu'il faut en conception et en électronique. | ||
+ | Avec la programmation nous avons pu réaliser les actions suivantes: | ||
+ | * utilisation de la pince | ||
+ | * déplacement dans toutes les directions selon le temps (on peut faire des rapports distance-temps) | ||
+ | * détection de lignes bleues ou noire et du support blanc du terrain | ||
+ | * détection des rayons Infra-rouges de la balle | ||
+ | * suivi tout droit d'une ligne noire ou suivi d'une ligne bleue foncé (selon le programme). Si pas la ligne placée correctement sur le capteur central, le robot doit reculer. | ||
− | + | == '''LES AMÉLIORATIONS POSSIBLES''' == | |
− | + | Les améliorations que nous pourrions encore apporter à notre projet sont: | |
− | + | * Développement complet d'un programme regroupant toutes les fonctions utiles (que nous avons commencé) | |
+ | * Amélioration de la fonction suivi de ligne pour permettre au robot de repérer les tournants. (à corriger) | ||
+ | * Finalisation du programme de suivi de balle | ||
+ | * Amélioration du système de la pince : celle-ci s'ouvre avec la force exercée par la balle lorsque le robot souhaite avancer. Il faut plus de force dans la pince ou un système de blocage. | ||
+ | * Finalisation de la communication Xbee (programme fait et programmation de la carte aussi mais pas de communication entre les 2 Xbee) |
Version actuelle datée du 20 mai 2016 à 10:24
Sommaire
- 1 OBJECTIF DU PROJET
- 2 SÉANCE 18/01/16__Répartition et réflexion
- 3 SÉANCE 21/01/16__Réflexion Pince, Châssis et Soudure Moteurs
- 4 SÉANCE 25/01/2016__Réparation châssis et Soudures
- 5 SÉANCE 28/01/16__Conception FreeCAD et Câblage/Tests moteurs
- 6 SÉANCE 29/01/16__Tests des soudures, Programmation et Impression pince 3D
- 7 SÉANCE 01/02/16__Moteurs/Câblages
- 8 SÉANCE 04/02/16__Prototype pince et Programmation
- 9 SÉANCE 08/02/16__Câblages, Fritzing, Piles et Programmation
- 10 SÉANCE 11/02/2016__Câblage, soudures Capteurs lignes, Servomoteurs et FreeCAD
- 11 SÉANCE 22/02/2016__Servomoteur, Montage Capteurs lignes, Assemblage pince, Fritzing
- 12 SEANCE 25/02/2016__Impression 3D, Fritzing, Montage Pince, Programmation, Problèmes
- 13 SÉANCE 29/02/2016__Problèmes, Programmation, Terrain
- 14 SÉANCE 3/03/2016__Fritzing et Programmation
- 15 SÉANCE 7/03/2016__Programmation et Carte de puissance
- 16 SÉANCE 10/03/2016__Programmation et Carte de puissance
- 17 SÉANCE 14/03/2016__Fritzing, Câblages et Alimentation
- 18 SÉANCE 19/03/2016__Soudures PCB, Alimentation et Programmation
- 19 SÉANCE 18 21/03/2016__Soudures et Réimpression PCB, Terrain + SÉANCE BONUS (16h-18h30)__PCB
- 20 SÉANCES BONUS 23/03/16 (13h30-18h30) et le 24/03 (16h -18h)__Soudures PCB et Programmation
- 21 SÉANCE BONUS 30/03/2016 (16h-18h)__Terrain
- 22 SÉANCE 18/04/2016__Alimentation, Pince et Programmation
- 23 SÉANCE 25/04/2016__Alimentation, Pins et Programmation
- 24 SÉANCE BONUS 27/04/2016 (16h-18h)__Programmation/Tests et Puissance
- 25 SÉANCE BONUS 28/04/2016 (15h-18h)__Xbee et Programmation
- 26 SÉANCE BONUS 29/04/2016 (17h-18h)__Tests Programmation
- 27 SÉANCE 21+SÉANCE BONUS 2/05/2016 (10h-18H30)__Programmation et Terrain
- 28 SÉANCE BONUS 03/05/20166 (8h30-12H)__Phototransistors et Capteurs de Lignes
- 29 TOURNAGE VIDÉO 04/05/2016
- 30 SÉANCE BONUS 11/05/2016__Câblage Photo-transistor et programmation
- 31 CONCLUSION
- 32 LES AMÉLIORATIONS POSSIBLES
OBJECTIF DU PROJET
L'objectif de ce bureau d'étude est la conception de robots compétiteurs dans un jeu de balles.
Nous devons alors réaliser et/ou programmer des robots ramasseurs, des robots joueurs, des buts et le terrain. Le jeu suit le principe d'un match de football. C'est-à-dire qu'il y a plusieurs manches où les robots devront:
- robots ramasseurs: sortir du garage, aller positionner la balle au centre du terrain, retourner au garage, communiquer avec les autres robots et les buts, retrouver la balle et la replacer au centre.
- robots joueurs: sortir du garage, retrouver la balle, mettre un but , communiquer avec le robot ramasseur et les buts.
SÉANCE 18/01/16__Répartition et réflexion
Dans un premier temps, les encadrants ont présenté le projet. Puis, nous avons organisé une répartition du travail afin d'harmoniser les envies de chacun et les nécessités. Ainsi, nous avons pour idée, que chaque binôme puisse travailler sur un robot (ramasseur ou joueur) et une autre réalisation "annexe" (but ou terrain). Bien sûr, cette organisation pourra être changée par la suite. Notre binôme s'est inscrit pour la conception du robot ramasseur et la préparation du terrain.
Après avoir lu en détail le sujet du projet, nous avons discuté entre nous des éléments importants de la réalisation du robot et du terrain. Puis, nous nous sommes regroupés avec le binôme 7 afin de discuter du choix de châssis pour le robot ramasseur. Un 2 roues permet une mobilité plus simple mais un 4 roues permet une meilleure stabilité.
>>> Nous avons alors décidé d'essayer un châssis 4 roues car nous avons beaucoup d’éléments à placer sur le robot.
Nous avons aussi abordé le problème des articulations des servomoteurs et la dispositions des roues. Aucune conclusion à ce sujet à la fin de la séance.
Travail personnel
Ajout de servomoteurs ?
Recherche comment gérer les servomoteurs en programmation Arduino/c.
Commencer les recherches pour la pince imprimable en 3D (plexiglas).
SÉANCE 21/01/16__Réflexion Pince, Châssis et Soudure Moteurs
Durant cette deuxième séance, nous avons réfléchi à la conception de pince avec le binôme 7. Celui-ci utilisera un modèle grappin. Dans notre cas, pour la réalisation de la pince nous pensons utiliser :
- des engrenages; on aurait alors besoin d'un seul moteur (une seule rotation) pour ouvrir et fermer celle-ci. - la tête sera plus ou moins large pour avoir une meilleure tenue de la balle. - un matériau afin d'éviter que les crochets de la pince glissent contre la balle qui est en plastique lisse (bande antidérapante ?).
Nous pouvons aussi peut-être faire rouler la balle au sol mais cela risque de gêner les déplacements du robot. Dans cette deuxième solution, la balle se doit d'être entourée par la pince afin que celle-ci ne s'échappe pas une fois poussée. (Cela est à réfléchir)
Puis, nous nous sommes réparti le travail. Ainsi, nous avons pu souder les fils aux moteurs et commencer le montage du châssis (après avoir retiré tout le carton) mais aussi réaliser l'installation d'Arduino et Ardublock. Des recherches sur la programmation du capteur de couleurs et de la lumière ont été faites ainsi que sur les connexions de l'Arduino avec les différents composants.
Travail personnel
Installation de certains logiciels chez nous. Faire des recherches sur l'Arduino et la programmation (connaissances). Schématisation de la pince pour la faire plus facilement à la découpeuse laser.
SÉANCE 25/01/2016__Réparation châssis et Soudures
Pour cette troisième séance, nous avons réparé le châssis de notre robot avec l'aide d'un encadrant. En effet, suite à un défaut de pièce, notre plaque s'est cassée (au niveau d'une roue). Nous avons pu ensuite finir le montage du châssis.
Par ailleurs, nous avons profité de la séance pour faire quelques soudures supplémentaires. La soudure nous a permis de relier les fils aux pattes ainsi que les composants contrôleurs moteurs à d'autres pattes.
Durant cette séance, des tests arduino ont été réalisés sur les photodiodes, sur les capteurs couleurs et le capteur ultrasons. Nous avons réalisé la difficulté qu'il y a entre "l'idée" et la réalisation du programme arduino et des branchements.
Travail personnel
continuer les recherches sur Arduino. commencer la conception de la pince sur le logiciel freeCAD.
SÉANCE 28/01/16__Conception FreeCAD et Câblage/Tests moteurs
Pendant la séance 4, nous nous sommes répartis le travail. L'un réalisait la conception 3D des pièces de la pince sur FreeCAD tandis que l'autre continuait les tests Arduino ainsi que le câblage.
Aujourd'hui les tests Arduino et le câblage ont ciblé le fonctionnement des moteurs. Face à un non fonctionnement du système après de nombreux essais, il a été conclu que, peut-être, une de nos pièces était défaillante. Nous allons donc tester chaque partie au multimètre à la séance prochaine.
Pour la pince, la conception 3D de chaque pièce sur le logiciel FreeCAD a bien avancé (quasiment finie). Nous avons décidé de réaliser chaque pièce, indépendamment, pour faciliter l'impression mais aussi pour avoir la possibilité de les assembler nous-mêmes. En effet, cela nous permettrait une plus grande liberté d'angle et de positionnement. (Nous visserons les pièces entre elles par la suite).
La pince est composée :
- 2 engrenages (un fixe et un lié au moteur)
- 4 branches (différentes 2 à 2)
- 2 plaques permettant de contenir la pince et de la faire rouler.
Peut-être lors de la prochaine séance nous aurons la possibilité d'imprimer les éléments de la pince.
Travail personnel
Continuer les recherches sur Arduino pour les prochains tests. Finir la conception 3D des pièces sur FreeCAD.
SÉANCE 29/01/16__Tests des soudures, Programmation et Impression pince 3D
Dans un premier temps, nous avons refait des tests sur différentes parties soudées afin de vérifier qu'aucun problème n'était lié à celles-ci. Malheureusement, un de nos contrôleurs moteurs a brûlé suite à un mauvais branchement. Nous avons dû refaire les soudures sur un nouveau contrôleur. Ainsi, plus aucun problème n'a été observé, notre programmation et notre branchement de la dernière séance étaient donc corrects.
Nous avons finalisé les pièces du prototype de la pince afin de l'imprimer en 3D. Chose faite. Une des pièces n'étant pas assez longue, il faudra l'agrandir pour la prochaine fois. Durant la prochaine séance, il faudra assembler ces pièces.
Puis, nous avons continué la séance avec de la programmation Arduino (à l'aide d'openclasroom) et le câblage des roues.
Travail personnel
Nous sommes restés sur place pour continuer sur la programmation (faire tourner les moteurs C et D).
Un problème est apparu. En effet, la roue D tourne moins vite que les autres et il ne s'agit pas d'un problème de pin ou de programmation. Peut-être le moteur est-il endommagé ou peut-être les soudures ne sont pas correctes? Nous devons régler ce problème durant la prochaine séance.
SÉANCE 01/02/16__Moteurs/Câblages
Durant cette sixième séance peu d'avancées ont été réalisées, la résolution d'un problème ayant pris énormément de temps. En effet, il a fallu résoudre le problème vu précédemment: une roue tournant moins vite que les autres. Après avoir, inversé les fils ou les contrôleurs, inversé les moteurs et fait des soudures. Le problème s'est avéré être un faux contact entre deux fils d'alimentation du moteur.
Travail personnel
Réfléchir à des programmes Arduino pour faire tourner le robot, pour le capteur ultrason. Faire des modifications à la pièce plaque de la pince.
SÉANCE 04/02/16__Prototype pince et Programmation
Aujourd'hui, nous avons monté le prototype de la pince. Et nous avons pu alors nous rendre compte que certaines pièces sont trop petites ou mal orientées. Elles seront donc à refaire pour la prochaine fois, afin de pouvoir imprimer lundi la pince complète.
Puis, nous nous sommes concentrés sur la programmation de notre robot. A ce jour, le robot avance et recule (sur une durée déterminée) et tourne. Petit problème : le robot tourne en rond à l'infini. Il faut donc trouver une solution. Nous avons également commencé à préparer des bouts de programmes afin de faciliter la rédaction du programme final ( un programme : avance, tourne à droite, tourne à gauche, recule etc.).
Travail personnel
- Refaire les pièces de la pince
- Réfléchir au support de la deuxième partie de la pince
- Réfléchir à la programmation du robot.
SÉANCE 08/02/16__Câblages, Fritzing, Piles et Programmation
Durant cette séance, nous avons refait les câblages (diminuer leurs longueurs) afin d'y voir plus clair. Cela nous a aussi été utile pour commencer la schématisation de l'ensemble sur fritzing, logiciel qui nous permettra de réaliser le circuit imprimé. Nous avons eu un problème avec les piles, qui a été résolu. Nous avons un peu continué sur la programmation Arduino. Essentiellement, sur la programmation du servomoteur pour la pince. Il s'agit donc de contrôler les angles de rotation.
Travail personnel
Il faudrait pour la prochaine séance avoir imprimé la pince en entier. Mais aussi, penseràa réaliser une conception 3D d'un support pour le deuxième engrenage; /!\ IMPORTANT /!\
Continuer fritzing et penser à superposer la carte arduino avec la tablette.
Programmation
SÉANCE 11/02/2016__Câblage, soudures Capteurs lignes, Servomoteurs et FreeCAD
Lors de cette séance, nous avons résolu certains problèmes techniques mineurs: amélioration du câblage, recherche de vis et écrous adaptés à notre pince et aux différents diamètres sur nos pièces, optimisation de notre programme principal au niveau des moteurs.
Puis dans une seconde partie, nous avons réalisé les soudures pour les capteurs de lignes et nous avons mis en commun nos recherches personnelles (au sein du binôme) sur le programme servomoteur de la pince. Nous avons réalisé certains tests (ces derniers seront à continuer durant la séance 10).
Enfin, nous avons fini la pince en conception 3D sur FreeCAD, et avons pu commencer à l'imprimer.
Après les vacances
Nous allons nous concentrer sur la partie "capteurs" (ultrason, de ligne et infrarouge) ainsi que sur la réalisation du circuit imprimé sur le logiciel fritzing. Il faut également que nous réalisions plus de fonctions (par exemple de type : avancer, tourner à 90° en sens horaire/antihoraire) afin de faciliter par la suite la rédaction du programme global qui comprendra toutes les instructions du robot ramasseur.
Travail personnel
Finir d'imprimer la pince. Et continuer fritzing.
SÉANCE 22/02/2016__Servomoteur, Montage Capteurs lignes, Assemblage pince, Fritzing
Nous avons, dans un premier temps, réalisé le câblage du servomoteur et de 3 capteurs de lignes disposés à l'avant du robot. Ainsi, des premiers tests et des programmes sur Arduino ont pu être réalisés pour ces 3 capteurs et pour le moteur. Nous avons commencé la préparation un programme spécifique pour la fermeture de la pince selon la réception d'information venant des capteurs. La finalité pour les capteurs a été de calibrer les valeurs de sortie pour construire un programme qui permette de faire avancer ou reculer le robot suivant qu'il se trouve devant une ligne.
Dans un deuxième temps, nous avons assemblé définitivement les différentes pièces de la pince et nous l'avons reliée au servomoteur par l'un des engrenage, le mouvement (d'ouverture ou fermeture) transmis par ce dernier au second engrenage.
Enfin nous avons pu réaliser la suite de la schématisation des câblages (ou réalisation du circuit) sur fritzing. Sur le logiciel, nous avons donc pour le moment:
- la carte arduino,les piles
- 4 moteurs (roues) liés aux contrôleurs moteurs.
- 1 servomoteur
- 3 capteurs de lignes
Nous avons discuté de la possibilité de réaliser plusieurs circuits spécifiques à différentes fonctions. Il a été décidé, après discussions avec les autres étudiants ainsi que les professeurs encadrant, de tout faire sur une même carte.
Cependant, nous avons réalisé qu'il nous manquait un support pour le deuxième engrenage de la pince (donc la seconde moitié). Ce support serait à réaliser pour/durant la prochaine séance et il permettrait aussi de maintenir le servomoteur en avant de la pince.
Travail personnel
Finir la schématisation sur fritzing des capteurs et télécharger les autres détecteurs ou contrôleurs disponibles sur le wiki.
Si possible, réaliser la conception 3D du support et l'imprimer (si imprimante disponible).
SEANCE 25/02/2016__Impression 3D, Fritzing, Montage Pince, Programmation, Problèmes
Pour cette séance, nous avons pu réaliser l'impression du support de pince et télécharger les composants manquants de fritzing.
Ainsi, aujourd'hui nous avons alors eu l'occasion de percer et relier le support à notre robot, de même que pour les engrenages de la pince. Ayant un problème de dimension, il nous a fallu ajouter des éléments (boulons ou autres) pour résoudre ce problème de différence de hauteur entre engrenages. Bref, la pince est enfin montée sur le robot !
Dans ce cas, nous avons pu continuer la programmation Arduino, c'est à dire le début de la réalisation d'un programme principal regroupant plusieurs fonctions qui serviront dans le futur, mais aussi, la programmation de la pince dans une situation complète (plus basée uniquement sur le servomoteur mais sur la pince dans son ensemble).
Un 1er problème est alors apparu: Le servomoteur et sa partie de pince ont du mal à tourner face à l'autre engrenage. On a un blocage lié à une difficulté. Il semblerait que les engrenages soient trop proches l'un de l'autre.Donc le mouvement nécessite plus de puissance. CE PROBLÈME EST A RÉSOUDRE POUR/DURANT LA PROCHAINE FOIS.
Puis un deuxième problème: La pince est bien placée et bien dimensionnée par rapport à la balle, mais il semblerait que les angles formés par les plaques ne permettent pas de garder parfaitement et pousser la balle. Les plaques n’étant pas vissées il est possible de résoudre ce défaut facilement. Peut-être devrions-nous couper un des bords des plaques pour gagner en "orientation de fermeture"?
Finalement pour conclure cette séance, nous avons discuté avec les binômes 8 et 10 au sujet du terrain. Ces derniers ayant bien avancé sur les capteurs de lignes ou couleurs, nous ont dit que le terrain ne pouvait se faire qu'avec un fond blanc, des lignes noires et vertes. Peut-être même des lignes bleues mais il faut vérifier que le robot ne confonde pas vert et bleu.
Travail personnel
Réfléchir aux dimensions du terrain et aux lignes. Continuer Fritzing.
SÉANCE 29/02/2016__Problèmes, Programmation, Terrain
Nous avons, durant cette séance, pu résoudre les problèmes de la séance 11 en changeant de vis pour unir les différentes pièces de la pince. Nous avons aussi percé et visé les plaques grises de celle-ci.
La programmation de la pince est toujours en cours car aujourd'hui, nous avons continué la programmation des capteurs de lignes. Peut-être en rajouterons nous un sur le coté par la suite afin de capter le centre du terrain. Cette solution est à réfléchir car peut-être va-t-elle entraîner plus de problèmes que de simplifications.
Nous avons aussi eu une réflexion sur le terrain. Nous allons reprendre les dimensions du terrain de l'année dernière afin de facilité le travail. Pour les rebords, peut-être faudra-t-il utiliser des morceaux du terrain de l'année dernière servant actuellement de terrain tests.
Puis, nous avons continué le circuit imprimé sur Fritzing qui a dû être entièrement recommencé durant le week-end suite à un problème de routage.
Travail personnel
Continuer Fritzing et programmation arduino.
SÉANCE 3/03/2016__Fritzing et Programmation
Continuité de la séance 12 avec Fritzing et la programmation du programme principal et début de la programmation des 4 phototransistors IR que nous avons installé sur le robot aujourd'hui.
Cette programmation est d'ailleurs liée à l'ouverture/fermeture de la pince car cela dépend des longueurs captées par les phototransistors IR.
SÉANCE 7/03/2016__Programmation et Carte de puissance
Cette séance n'a malheureusement pas permis de beaucoup avancer sur le projet. En effet, nous avons un peu continué sur la programmation du robot mais nous nous sommes surtout concentrés sur la fin de la carte de puissance. Et après vérification, nous avons réalisé qu'il y a un gros problème sur celle-ci. Le routage étant trop compliqué, pas assez propre, et peut ainsi gêner le bon fonctionnement de la carte. Celle-ci est à recommencer en changeant certains câblages et certaines positions de composants, afin de faciliter le routage.
Travail personnel
Rattraper le circuit imprimé sur fritzing pour lundi prochain au plus tard !
SÉANCE 10/03/2016__Programmation et Carte de puissance
Continuité de la séance 14.
Travail personnel
Rattraper le circuit imprimé sur fritzing pour lundi prochain au plus tard !
Réécriture du programme final avec les bonnes pins suivant le câblage fait sur Fritzing
SÉANCE 14/03/2016__Fritzing, Câblages et Alimentation
Durant cette séance, nous avons continué encore une fois Fritzing pour finir le PCB. Après avoir fait vérifier, il a été conclu que celui-ci devait être réalisé en deux cartes. Au lieu de tout mettre sur une même carte, il est finalement impératif de faire une carte de puissance (circuit réservé aux moteurs et à l'alimentation) et une carte de capteurs IR/lignes pour faciliter le routage.
Puis, nous avons mis à jour les différentes pins. En effet, celles-ci avaient été changées, déplacées, modifiées afin de faciliter le circuit imprimé sur l'ordinateur. Cette mise à jour fut réalisée en deux fois, suite à des petites erreurs de modifications dans un premier temps.
Nous avons alors fait face à un nouveau problème. Nos programmes Arduino fonctionnent bien, cependant le robot a beaucoup de mal à se déplacer. Il semblerait que celui-ci soit trop lourd ou que les moteurs ne soient pas suffisamment alimentés. Le problème semble résolu.
Travail personnel
Finition de la carte de puissance et de la carte de capteurs (le même jour durant l'après midi) >> VOIR PHOTOS
SÉANCE 19/03/2016__Soudures PCB, Alimentation et Programmation
Nos PCB imprimés , nous avons pu commencer les soudures de barrettes (mâle/femelle) sur les cartes. Nous avons cependant remarqué un petit défaut sur le PCB "carte de puissance" lié au programme fritzing. Les contrôleurs moteurs font une taille de 500 mil alors qu'avec le logiciel, nous avions prévu 600 mil. Ce problème est commun pour tous les groupes. Les composants sont donc trop petits. Pour résoudre ce problème, nous utiliserons des barrettes soudées un petit peu de travers (nous pouvons aussi tordre les pins). Nous avons du aussi essayer de résoudre le problème d'alimentation de la séance dernière sans succès. L'idée actuelle semble risquée (surchauffe carte Arduino): nous ne sommes donc pas allés plus loin. A VOIR LA PROCHAINE FOIS.
Nous avons aussi fait un peu de programmation. Dans un premier temps: nous avons continué la programmation de la pince. Celle-ci ne se ferme pas complètement. Nous sommes toujours entrain d'essayer de comprendre et de voir comment lui donner les angles d'ouverture et de fermeture voulus. Dans un deuxième temps: le programme de capteurs de lignes que nous utilisions ne fonctionnait pas, les valeurs retournées n'étaient pas correctes. Heureusement, nous avons retrouvé dans nos anciens programmes, un bloc d'instructions pour les capteurs de lignes. Ce dernier retourne des valeurs correctes, pouvant variées en moyenne entre 400 à 600 et 800 (ordre de grandeur) selon les nuances de couleur/gris. Nous avons une grande différence de valeur pour du blanc et une ligne noire. On a donc enfin le moyen de réaliser un programme correct pour les capteurs de lignes.
Liste des sous-programmes actuels:
(les programmes sont toujours en cours de réflexion et seront encore modifiés par la suite, afin de construire un programme final nommé ROBOT ) (l'entier a permet de déterminer la durée de l’exécution)
- Capteurs de ligne : valeurdeligne(); captligne(int a)
- Moteurs : rotate45g(int a); rotate45d(int a); recule(int a); avance(int a)
- Pince : ouvre(); ferme()
- Autres: stop(); setup(); loop();
- initialisations : pins, pwm, stby...(bloc d'instructions, pas fonction)
SÉANCE 18 21/03/2016__Soudures et Réimpression PCB, Terrain + SÉANCE BONUS (16h-18h30)__PCB
Nous avons continué les soudures de PCB et proposé un plan du terrain innovant.
SOUDURES:
Lors des soudures des 2 PCB, nous avons remarqué que la carte des capteurs présente un défaut de conception. En effet, certains cercles de pins n'ont pas été bien réalisés/imprimés. On a observé que le plan de masse avait tendance à toucher les soudures car les pins étaient trop proches. La solution pour ce problème fut, comme on peut le voir sur la photo ci-jointe, de retirer complètement une partie du plan de masse autour des pins à zone très précise, pouvant poser problème. Cela rend la soudure plus sensible et diminue le risque de court circuit. Nous avons donc réimprimé une carte pour les capteurs.
TERRAIN :
Sur la base d'observations faites dans les différents groupes, nous avons pu remarquer que la difficulté principale était de gérer les croisements de lignes. Effectivement, cela est compliqué tant au niveau de l’algorithme de décision que du codage brut. Nous avons donc imaginé un terrain en escargot dans une couleur spécifique, lui même entouré d'une bordure d'une autre couleur suffisamment différente pour que les capteurs de ligne puissent faire la différence. Ainsi les robots ramasseurs pourraient plus facilement rejoindre le centre du terrain et les robots joueurs seraient toujours empêchés de sortir du terrain. (voir la photo)
BONUS: Nous avons vérifié si le PCB du matin n'avait pas de court circuit. Malheureusement, plusieurs fois nous avons du refaire les soudures, retirer de l’étain ou corriger des défauts. Nos soudures n'étaient pas si mal, mais le fer à souder formant des boules d'étain, nous en avons mis trop, d'où les problèmes. Cela nous a pris tout l'après-midi. La difficulté spécifique à notre PCB est l'utilisation de fils très fins et rapprochés les uns des autres.
SÉANCES BONUS 23/03/16 (13h30-18h30) et le 24/03 (16h -18h)__Soudures PCB et Programmation
Durant ces deux jours, nous avons pu finir les vérifications de soudures: il s'agissait d'éviter les court-circuits entre les pistes et la masse, ainsi que de vérifier que les soudures soient correctes. Nous avons aussi fini la soudure des composants de la carte de capteurs. Aucun gros souci n'est arrivé durant cette première partie.
Nous avons aussi eu l'occasion de "officiellement" commencer à tester nos programmes. Les cartes fonctionnent bien et le robot réagit correctement. Il y a eu quelques modifications à faire dans les programmes. En effet, nous avons corrigé ou finalisé avance() , recule(), rotate45g() et rotate45d().
Un problème avec l'alimentation a été observé. Nous devons constamment brancher les piles afin d'avoir assez de puissance. Cependant, les piles branchées seules et sans lancer de programme entrainent une légère surchauffe de la carte Arduino. Cela ne s'observe pas lorsqu'on lance un programme. C'est étrange. A VOIR LA SEMAINE PROCHAINE.
Travail personnel
Création d'un groupe sur Facebook afin de discuter avec tout le monde du terrain et des buts. Réalisation d'une nouvelle représentation du terrain. Le terrain est composé de 4 plaques de 1,40x1,90 m qu'on positionnera pour faire un grand rectangle. On y disposera les lignes de terrain, les garages et les buts.
- ligne noire : délimitation terrain _ les joueurs ne doivent pas la dépasser
- ligne bleue : ligne permettant aux robots ramasseurs d'atteindre le milieu du terrain
- lignes verte: repères garages robots joueurs.
mais peut-être que l'utilisation de bleu et de vert peut poser problème. Peut-être devrons nous utiliser uniquement du noir et du bleu?
SÉANCE BONUS 30/03/2016 (16h-18h)__Terrain
Un membre de notre binôme et un membre du binôme 10 ont préparé le terrain. Cela s'est réalisé suite à une mise en commun avec tous les autres groupes, afin de connaître leurs avis et leurs envies liés à la conception du terrain. La conception s'est réalisée suivant le terrain proposé par notre groupe, c'est à dire celui présenté dans la séance bonus précédente.
Concernant l'avancement de notre robot, nous n'avons malheureusement pas eu l'occasion de résoudre le problème d'alimentation. Nous verrons donc cela après les vacances. Jusque là, nous nous concentrerons sur la programmation.
Travail personnel
Pendant les vacances, modification du fichier avec les programmes principaux. ajout des programmes capteurs de ligne et capteurs IR.
SÉANCE 18/04/2016__Alimentation, Pince et Programmation
Aujourd'hui, nous avons eu l'occasion d'observer et d'essayer de résoudre le problème d'alimentation apparu avant les vacances. Il s'agit d'une surchauffe de la carte arduino selon certaines situations ou un manque de puissance si nous n'utilisons pas les piles ou uniquement les piles. Après recherche, nous avons découvert qu'il s'agissait du composant ajustant le voltage entre le Vin de l'arduino et la sortie 5.5V que nous utilisions. Et nous envoyons du courant à la frontière du composant, c'est à dire 6V ( en effet 1.5V*4=6 >> 1,5V par piles). Pour résoudre ce problème nous allons donc utiliser 8 piles afin d'avoir plus de puissance,plus d'autonomie et normalement régler le problème de surchauffe du composant. La réalisation de ce système à 8 piles s'est fait à l'aide des professeurs. Ce deuxième bloc est consisté d'une sortie usb femme et relié en série à notre bloc initiale que nous avons donc raccordé à un usb mâle comme le montre simplement le schéma ci joint.
Deuxièmement, nous avons pu résoudre un problème mineur de pince. En effet, les pièces n'étaient pas bien vissées et les engrenages mal liés/emboîtés. Ce qui posait problème lors de l'ouverture ou fermeture de la pince. Suite à un changement de vis et un agrandissement des trous à la perceuse, tout est correct.
Niveau programmation: Nous avons finalisé nos programmes "ouvre(), ferme()" pour la pince et "LectureLigne()" pour les capteurs de lignes. Nous sommes restés un peu plus longtemps pour continuer la programmation des capteurs de lignes. Un petit problème à résoudre (cela se fera rapidement) est une modification dans les initialisations des pins des capteurs. En effet, suite à la réalisation du PCB, nous avons des ajustements à faire sur les programmes.
Travail personnel
Revenir dans la semaine pour voir le problème d'alimentation. >> Cela a été fait jeudi. Les piles en série sortent bien du 12V, on devrait alors avoir assez de puissance. Cependant la carte chauffe trop. Nous devons faire la prochaine fois des tests pour vérifier si nous n'avons pas un court-circuit. Pour cela, il faudra voir si la carte chauffe toujours lorsque les câbles ne sont pas branchés sur la carte de puissance. Peut-être devrions-nous alimenter au niveau d'un VIN et d'un GND et non plus à l'emplacement prévu pour les piles.
SÉANCE 25/04/2016__Alimentation, Pins et Programmation
Pour cette 2ème séance, nous avons continué à résoudre le problème de l'alimentation vu précédemment. C'est-à-dire que nous avons vérifié si nous avions des court-circuits avec branchements ou sans branchement, et vérifié si l'arduino ne surchauffait pas en l'alimentant dans un premier temps avec 6 Volts puis 12 Volts. Avec 6 V tout semble correcte et nous avons assez de puissance sur le sol ou sur une table. Cependant, sur le support terrain ce n'est pas le cas. Nous devrons donc bien alimenter en 12V. Il nous faut encore voir si la carte peut supporter 12V.
Lors de la dernière séance, nous avons remarqué qu'une bonne partie des pins capteurs de ligne et photo transistors n'étaient pas les bons dans les programmes. Nous avons donc pris quelques minutes pour faire la correction de ces pins. De même, nous avons refait deux soudures sur des câbles qui se sont cassés.
Partie informatique : Nous avions durant la semaine perdu notre programme principal (avec tous les sous programmes, c'est à dire le plus important). Nous avons donc procédé à la réécriture après avoir récupéré une vieille version de celui-ci et fait une sauvegarde de secours. Nous avons testé les programmes LectureLigne() et LecturePhoto() qui lisent les valeurs des capteurs de ligne ou phototransistors. Nous avons ensuite écrit une fonction calculant la moyenne pour 100 valeurs captées. Nous pouvons utiliser cette fonction aussi bien avec les lignes que la balle. Nous avons pu, à l'aide des moyennes, prendre en note les valeurs utiles de seuils détectés selon les capteurs gauches, milieux ou droits.
Soit :
- seuil Blanc: GAUCHE = <500 MILIEU = 690-700 DROIT = <650 ou 705
- seuil BleuClair: GAUCHE = (550 à 620)ou 573 MILIEU = 759 DROIT = 650 à 750
- seuil Noir: GAUCHE = >920 MILIEU = >900 DROIT = >950
- seuil BleuFoncé: GAUCHE = 880 à 898 MILIEU = 830 à 840 DROIT = 885 environ
Suite aux tests, nous avons aussi pu remarquer que plus la balle est proche plus la valeur détectée est importante et inversement.
Finalement un nouveau programme a été réalisé : un programme de réajustement de décalage léger si deux capteurs ont un signal, cela permet d'éviter des virages trop importants.
Travail personnel
Continuer la programmation et les tester. + Prendre rendez-vous pour réaliser la vidéo du rendu. >>> Nous avons pu prendre rendez-vous pour le MERCREDI 4 MAI à 9h en E304 (espérant tourner en E303)
SÉANCE BONUS 27/04/2016 (16h-18h)__Programmation/Tests et Puissance
Durant ce mercredi après-midi, nous avons essayé d'utiliser le plus de fois possibles l'alimentation 12V avec les piles. Nous n'avons eu aucun problème et la carte ne chauffe plus de manière excessive. L'arduino supporte donc les 12V. Le problème de l'alimentation est donc définitivement réglé. De plus, nous avons découvert un avantage intéressant: sur l'un des boîtiers nous avons un interrupteur. Nous n'avons donc plus besoin d'en rajouter un.
Par la suite, nous avons pu alors continuer les tests tout en utilisant uniquement les piles, une fois le programme téléverse. Niveau programmation, il a fallu revoir à nouveau les programmes de base. C'est-à-dire avance(), recule(),rotateD()... En effet, le programme avance() (dans notre fichier principal) ne fonctionnait plus malgré une bonne rédaction de programme et de bons branchements sans court-circuit. Nous avons alors copié le programme avance() d'un sous-programme de test et collé celui-ci à la place du programme avance() défectueux. Le problème est résolu.
Enfin, lors des tests, nous avons régulé la puissance des moteurs. La puissance étant à 255, le robot roulait trop vite. Sur le support terrain, une puissance de 150 semble correcte.
Pour terminer, nous avons refait des tests pour déterminer les seuils (seuil balle proche et seuil balle loin) liés au repérage de la balle et à la capture de celle-ci. Cependant, nos valeurs ne nous semblaient pas correctes. Ces tests sont à refaire.
Travail personnel
Continuer la programmation. Revenir dans la semaine.
SÉANCE BONUS 28/04/2016 (15h-18h)__Xbee et Programmation
Aujourd'hui, nous avons fait des recherches sur la communication Xbee. Et nous avons alors réalisé des soudures de câbles sur l'une d'entre elles, afin de la relier par la suite à l'arduino. Les recherches sont à approfondir.
Au sujet de la programmation, nous avons réalisé une amélioration des programmes avec une évaluation distance_temps_arrêt. Effectivement, une bonne partie de nos programmes tournaient à l'infini. (ex: avance à l'infini, recule à l'infini, tourne à l'infini). Maintenant, avec un entier A, correspondant au temps voulu en ms, donné en argument aux fonctions, nous pouvons déclencher l’arrêt des fonctions après A ms.
niveau alimentation: toujours rien à signaler.
Travail personnel
Continuer la programmation :
- Xbee (le moins urgent)
- suivi ligne tests à faire
- IR a finir
SÉANCE BONUS 29/04/2016 (17h-18h)__Tests Programmation
Aujourd'hui nous avons continué les tests sur les seuils des capteurs. Si les valeurs ne sont pas correctes, il sera difficile de tester les programmes suivi de ligne ou suivi de balle. Pour le moment, nos valeurs ne semblent pas correctes. Cela est surement du à la luminosité ambiante, il nous faut donc faire les tests en protégeant les capteurs de cette lumière (essai avec du scotch sombre). De plus, autre problème, les valeurs pour le bleu clair et le blanc sont très proches (nous avons observés les mêmes résultats durant la séance 20)
Travail personnel
Le robot a été emmené chez nous durant le weekend afin de continuer les tests.La programmation est a continuée. Nous devons aussi réfléchir à la vidéo.
SÉANCE 21+SÉANCE BONUS 2/05/2016 (10h-18H30)__Programmation et Terrain
De 8h à 10h nous avons retravaillé sur les fonctions de base suite à un problème de piles. En effet, celles-ci s'étant déplacées ont crée une mauvaise connexion. Le problème fut rapidement résolu.
Nous avons aussi travaillé sur la communication Xbee. La communication ne s’établit pas entre les deux Xbee, cependant notre programme semble correct. Le problème sera à résoudre une fois les fonctions suivi de ligne et suivi de balle réalisé.
Puis, avec un membre du Binôme 7, nous avons changé les lignes du terrain. En effet, les capteurs ne font pas la différence entre le scotch bleu clair et le blanc. Cependant, les capteurs distinguent bien le noir (>900) et le bleu foncé (>800 et <900). Le bleu foncé a donc pris la place du bleu clair. Nous avons pour cela utilisé le gros scotch (celui-ci étant composé de rouge, c'est idéal) que nous avons découpé en deux.
Durant l'après-midi, nous avons continué de travailler sur la détection IR et le suivi de la balle.
Cependant, nos valeurs ne sont plus correctes, avant elles l'étaient. Un problème est donc apparu quelque part. Nous pouvons dire qu'une valeur n'est pas la bonne si elle est fixe ou égale à zéro. Toutes nos phototransistors retournent du zéro.
Avec l'aide d'un accompagnateur, nous avons alors recommencé les tests avec les branchements de base (juste alimentation résistance et phototransistor) jusqu'à obtenir de nouveau le branchement avec le PCB.
Les premiers tests fonctionnent, les tests avec d'autres ordinateurs ou avec une carte arduino uno fonctionnent aussi, ainsi que les tests avec uniquement la carte de capteurs. Le problème doit donc venir du passage PCB de puissance au PCB de capteurs. Avant la fin, nous avons vu que des soudures n’étaient pas bien faites. Peut-être que l'origine du problème s'y trouve.
SÉANCE BONUS 03/05/20166 (8h30-12H)__Phototransistors et Capteurs de Lignes
Aujourd'hui, nous avons essayé de régler le problème des capteurs IR. Apres avoir refait des soudures et refait des tests nous n'avons observé aucune amélioration. Nous nous sommes donc concentrés sur le suivi de lignes afin de présenter cela en vidéo.
Cependant, nous avons réalisé que les valeurs de lignes n'étaient plus correctes pour tous les capteurs. En effet, une liaison entre le capteur du milieu et le capteur de gauche s'est établie. Ce n'est pas un problème de soudure et les capteurs sont bien alimentés en 5V. Nous avons comme pour les capteurs IR refait les tests avec les branchements basiques entre l'Arduino et les capteurs. En faisant cela, nous avons bien les résultats attendu. Un problème similaire à celui d'hier s'observe sur les PCB. Nous avons donc arrêté d'utiliser les pins prévus pour la liaison des deux PCB et plutôt relié la partie "capteurs de lignes" de la seconde carte aux pins A15, A14 et A13. Nous laisserons donc ces nouveaux branchements.
Durant la suite de la matinée nous avons continué sur le suivi de ligne noire (suiviNOIR). Cependant, le résultat n'est pas parfait. Seulement deux résultats/conditions du programme sont pris en compte: "si tout va bien aller tout droit" et "si pas de ligne reculer".
TOURNAGE VIDÉO 04/05/2016
Lors de la vidéo nous avons énoncé les objectifs du projet ainsi que les solutions que nous y avons apporté pour le robot ramasseur. Les applications de notre robot que nous avons présenté sont:
- Un parcours du robot (déplacement avant-arrière-tourne droite/gauche-ouverture/fermeture pince) on peut considérer ce programme comme une stratégie de balayage du terrain par le robot lorsque celui-ci ne détecte aucun infrarouge.
- Un petit programme de détection de ligne avec déclenchement d'un ordre sur les moteurs (si détecte ligne au capteur centrale avance tout droit sinon recule par exemple).
SÉANCE BONUS 11/05/2016__Câblage Photo-transistor et programmation
Le 3/05 nous avons réussi à résoudre le problème de détection des capteurs de lignes en changeant le câblage et le choix des pins (sur A13, A14 et A15).
Nous avons donc aujourd'hui réutilisé cette méthode pour les photo-transistors (pins maintenant sur A6, A7 et A8). De plus nous avons vu le 02/05 qu'en réalisant les branchements de base avec les photo-transistors, on obtient des valeurs correctes. Lecture de valeurs pour les photo-transistors fonctionne.
CONCLUSION
Pour conclure, sur l'avancement du projet, le terrain et les buts ont bien été réalisés par plusieurs binômes.
Pour nous, notre robot est totalement équipé pour réalier toutes les tâches demandées dans les objectifs du projet d'étude PEIP. Il a tout ce qu'il faut en conception et en électronique.
Avec la programmation nous avons pu réaliser les actions suivantes:
- utilisation de la pince
- déplacement dans toutes les directions selon le temps (on peut faire des rapports distance-temps)
- détection de lignes bleues ou noire et du support blanc du terrain
- détection des rayons Infra-rouges de la balle
- suivi tout droit d'une ligne noire ou suivi d'une ligne bleue foncé (selon le programme). Si pas la ligne placée correctement sur le capteur central, le robot doit reculer.
LES AMÉLIORATIONS POSSIBLES
Les améliorations que nous pourrions encore apporter à notre projet sont:
- Développement complet d'un programme regroupant toutes les fonctions utiles (que nous avons commencé)
- Amélioration de la fonction suivi de ligne pour permettre au robot de repérer les tournants. (à corriger)
- Finalisation du programme de suivi de balle
- Amélioration du système de la pince : celle-ci s'ouvre avec la force exercée par la balle lorsque le robot souhaite avancer. Il faut plus de force dans la pince ou un système de blocage.
- Finalisation de la communication Xbee (programme fait et programmation de la carte aussi mais pas de communication entre les 2 Xbee)