Anthony PACITTO GEII Projet robot

De troyesGEII
Aller à : navigation, rechercher

Magnétometre

Dans ce projet nous avons choisi d'utiliser un magnétomètre afin de pouvoir orienter le robot dans la direction du camp adverse pour cela nous avons utiliser un module MPU 9250.

Dans un premier temps nous avons utilisé un Arduino pour pouvoir maîtriser ce composant qui est un capteur et dans un second temps nous devions l'intégrer dans le circuit général et le contrôler avec la carte générale.

Il ne faut surtout pas oublier d'utiliser un abaisseur puisque le composant fonctionne en 3,3 volts par conséquent les niveaux logiques des pins sont aussi à 3,3 volt or celles de l'Arduino fonctionne en 5 volts de même pour l'alimentation.

Pour obtenir des valeurs correctes il ne faut pas oublier d'étalonner le capteur en fonction de son environnement. pour cela il faudra réaliser après avoir fait tous les branchements nécessaire et inséré le code d’étalonnage des cercles ainsi que des 8 dans toutes les directions pendant une trentaine de secondes une fois cette opération exécutée on peut lire les valeurs a remplacé dans le code général il faudra faire attention à ne pas être dans un environnement trop magnétique car sinon cette étape sera à refaire. Lors de son utilisation il faudra faire attention à ce que le composant soit le plus possible à l'horizontale afin de pouvoir négliger les projections des mesures suivant chacun des axes.

Code générale du robot

diagramme algorithme contrôle général robot

Dans un second temps j'ai réalisé le code général du contrôle du robot tout cela fonctionne sur un Arduino Mega. Tout d'abord on initialise les valeurs et les variables. Dans un second temps on va lire les valeurs de tous les capteurs. Ensuite on regarde si le temps est inférieur à 85 secondes ou supérieur car cela signifie que c'est la fin de la partie. Dans le cas où le temps serait supérieur à 85 secondes alors il faut se diriger dans la direction du terrain adverse pour cela nous utilisons le magnétomètre puis nous avançons tout droit jusqu'à détecter la ligne à l’aide de la carte avec les capteurs CNY70. une fois arrivé au milieu du terrain nous crevons le ballon.Dans le cas où le temps ne serait pas encore écoulé on va alors effectuer la fonction PixySearch qui consiste à rechercher les balles sur le terrain. Dans le cas où le temps ne serait pas encore écoulé et que l'on n'a pas trouvé de balle on recommence. Inversement si le temps est écoulé alors on retourne au niveau du magnétomètre et on réalise la première partie du programme. Dans le cas où le temps serait toujours inférieur à 85 secondes et que l'on trouve une balle dans ce cas-là on effectuera le programme attraper balle. si une balle est attrapée alors le capteur infrarouge situé dans le réservoir sera vrai et dans ce cas-là on pourra faire la fonction magnétomètre et envoyer la balle si le temps le permet dans le cas inverse on respectera la première manœuvre. Une fois la balle envoyée on reboucle si le temps est inférieur à 85 secondes dans la fonction PixiSearch dans le cas inverse on fera la première partie du programme.

Le programme réalisé pour le moment ne réussissait à faire que l'initialisation la lecture des valeurs des capteurs, la partie magnétomètre chercher des balles à l'aide de la caméra pixy et détecter la présence de balles dans le réservoir cependant certaines fonctions était simulé par exemple la présence d'une balle dans le réservoir car les pièces mécaniques permettant l'installation de ces capteurs n’étaient pas encore réalisées. Afin de déboguer le programme nous utilisions un module xbee qui renvoyait les valeurs des variables en direct sur le moniteur série d'une application.











Pièces imprimées en 3D

Pour la partie CAO elle a été réalisée sous freeCAD. j'ai travaillé sur une pièce imprimée en 3D qui réunissait un support pour le Lidar (lidar qui permettait de détecter les balles lointaines), un support pour la carte capteur avec les CNY 70, ainsi qu'une partie permettant de recevoir la balle. J'ai réalisé une seconde pièce qui permettait d'ajuster l'inclinaison de la Pixy et la mettait en hauteur.

Support lidar CNY70 réservoir balle vue de coté
Support lidar CNY70 réservoir balle vue de face
Support caméra pixy

Réalisation de la carte générale de contrôle à base d'un ATmega 2560

J'ai dans un troisième temps réalisé physiquement la carte générale du robot constitué d'un ATmega 2560 microcontrôleur que l'on retrouve dans les Arduino Mega le routage ainsi que le schématique a été réalisé respectivement par notre professeur encadrant ainsi que les élèves précédents ayant travaillé sur ce projet. La principale difficulté rencontrée lors de cette réalisation fut la soudure du microcontrôleur point car même avec les machines du laboratoire cela a été très compliqué et j'ai été obligé de m’y reprendre trois fois. sans compter le prix du microcontrôleur qui s'élève à une dizaine d'euros tout de même. Cette carte dispose de nombreuses entrées sorties ainsi qu'un Schield moteur intégré constitué d'un L298N. il s'agit d'un double pont en H qui nous permet de contrôler les moteurs servants à la propulsion et à la direction du robot. Il y a un emplacement pour le module Xbee, ainsi que pour la carte capteur CNY70 des servomoteurs la caméra Pixy... Dès lors que la carte a fini d'être réalisé je suis rentré en phase de test afin de vérifier que l'ensemble des parties fonctionner correctement. j'ai commencé par m'assurer de l'absence de court-circuit au sein de la carte puis la transmission de données à l'aide d'un programmateur ISP, puis j'ai testé le L298N, j'ai dû adapter le code préalablement fait par Mathieu aux nouvelles pin relier lors du routage.Ensuite j'ai testé la partie module X avec Gaëtan qui fonctionnait de même correctement. Dans un troisième temps j'ai testé la partie caméra Pixy que je n'ai pas réussi à faire fonctionner.

Réalisation de carte sur plaque pastillées

J'ai ensuite réalisé une carte de puissance sur plaque plastique qui permettait à la fois de distribuer la tension suivant différents voltage à partir de la batterie du robot. 7 cartes permettez de faire à la fois abaisseur et boost. elle avait un module régulateur de courant. des sorties direct pour brancher le moteur faisant tourner le disque du crève ballon. La carte avait donc des sorties en 5 volts ainsi qu’une sortie en 12 volts pour contrôler les moteurs gérant la direction et l'avancée du robot. J'ai sur plaque pastille réalisé un circuit de contrôle L298N. L'objectif étant d'avoir un fort courant nous avons mis les deux sorties du composant en parallèle