Projet : coupe robotique IUT S3D
Sommaire
Présentation
Il nous a été demandé durant ce semestre de créer un robot qui devra répondre aux critères de la coupe robotique des IUT, pour ensuite y participer si le projet se finit dans les temps.
Quatre robots de différents IUT devront s'affronter dans une course sur un terrain de 8*8m parsemé d'obstacles, chacun d'entre eux sera positionné sur un coin du terrain et devra aller au coin opposé, une fois arrivé, il devra éclater un ballon situé au dessus du robot avec un mécanisme créer par l'équipe du projet. Le terrain est bleu et les coins sont blancs, ce qui permettra de définir le point d'arrivée.
Pour ce faire, notre groupe s'est donc occupé de différentes fonctions que nous avons préalablement définies après un brain-storming.
Les différentes fonctions du robot
Nous avons définis 4 fonctions qui ont été réparties dans le groupe :
Gestion de la détection d'obstacles
Gestion de la détection de la zone d'arrivée
Gestion des moteurs
Gestion de la balise
Gestion de la détection d'obstacles
Dans un premier temps, nous avons dû rechercher les différents types de capteurs existants et avons finis par conclure que les capteurs ultrasons convenaient le mieux dans la détection d'obstacles. Nous avons donc pris les capteur HC-SR04 au vu de leur disponibilité au magasin car cela nous permettait d'effectuer plus rapidement les tests.
Après avoir défini le capteur utilisé, nous nous sommes renseignés sur la façon de câbler ces capteurs avec une carte arduino et avons trouvé le schéma suivant : Pour piloter trois capteurs, il suffit donc de relier les masses ensemble ainsi que les GND, puis les pins echo et trigger seront reliés sur des pins de la carte Arduino allant de 8 à 13.
Enfin nous devions écrire un programme qui permettrait d'éviter les obstacles tout en continuant d'avancer vers la zone d'arrivée où serait placée une balise. Ce programme pourrait donc piloter les trois capteurs qui seraient situés à l'avant du robot disposés de façon à capter approximativement 90 degrés, c'est à dire l'avant du robot. Afin de fixer ceux-ci, nous avons d'abord utiliser de la colle forte sur des connecteurs que nous avons reliés à l'aide de nappes sur une petite plaque pastillée qui sera elle-même reliée à une carte Arduino
Gestion de la détection de la zone d'arrivée
Pour cette partie, il a fallu déterminer un moyen pour détecter cette zone, comme celle-ci est blanche, contrairement au terrain qui est bleu, nous avons décidé d'utiliser un capteur optique : le CNY70 Ce capteur envoie un signal infrarouge sur une surface qui sera réémis sur l'émetteur, avec ces deux données, sera calculer un coefficient de réflexion qui permettra, dans notre cas, d'envoyer un signal de sortie de 0V ou 5V.
Au niveau schématique, nous nous sommes inspirés de schémas et avons modifiées quelques valeurs pour l'adapter à notre projet et avoir au final ce schéma :
Repérage : Gestion de la balise émettrice
Le cahier des charges et le règlement de la compétition autorisent l’utilisation d’une balise émettrice pour guider le robot dans la zone d’arrivée lors de son déplacement, et ce depuis le départ.
Le cahier des charges précise que cette balise peut être branchée sur une prise type EDF 230V – 50 Hz. Elle peut émettre un signal ultrason et/ou infrarouge.
Nous avons décidé de brancher la balise sur une prise EDF et de générer un signal ultrason qui sera ensuite capté reçu et traité par le microcontrôleur présent dans le robot. Ceci permettra donc au robot de prendre la bonne direction pour atteindre la zone d’arrivée.
Signal généré
Nous utilisons un couple émetteur/récepteur ultrason de modèle 400ST/R. L’émetteur émet un signal d’une amplitude proche de 30V maximum pour 40 KHz. Pour obtenir un signal sinusoïdal d’une telle fréquence, nous avons recours à un circuit de type « pont en H », équipé de transistors PNP et NPN se comportant comme des interrupteurs commandés électriquement.
L’émetteur est alimenté en 30V DC, la tension d’entrée à la base de chaque transistor est de 5V Pulse 40 kHz. Cependant, il est nécessaire d’avoir recours à une porte logique NAND pour déphaser la tension créneau pour commander une partie du pont en H de manière antagoniste à l’autre ; ainsi, on génère un signal sinusoïdal avec l’émetteur ultrason, prêt à être capté par le récepteur situé sur le robot.
Alimentation
A partir d’une prise EDF, il faut pouvoir générer l’énergie nécessaire a l’utilisation de la balise émettrice.Pour cela, il faut : -un signal de 30V DC -deux signaux en créneau de 40 kHz et d’amplitude 5V, de rapport cyclique ½ fixe, l’un en opposition de phase avec l’autre.
La génération du signal continu se fait à l’aide d’un transformateur monophasé suivi d’un circuit de redressement type « pont de Graetz », constitué de diodes de redressement (diodes « Schottky »), suivi d’un condensateur adapté pour lisser la tension en sortie.
Remarque : il est prudent sinon nécessaire de placer un fusible à la sortie de la phase du secondaire du transformateur pour éviter d’abîmer le reste du circuit en cas de problème.
La Production d’un signal en créneau se fait à l’aide d’un circuit NE555 astable. Ce circuit intégré permet, en fonction des caractéristiques des composants qui y sont branchés, de produire un signal en créneau avec la fréquence et le rapport cyclique souhaités grâce à ces propriétés :
Pour produire l’amplitude du signal en créneau, il faut alimenter le circuit intégré avec une tension continue de même valeur que celle de l’amplitude.
L’utilisation d’une prote logique NAND nous permet ensuite de produire le signal en opposition de phase. Avec cela, le pont en H peut être alimenté et le signal ultrasonore souhaité est produit.
Réception et Amplification
Le signal émit par l’émetteur sera donc perçu par son homologue récepteur. Cependant, la probabilité de recevoir un signal ayant la bonne fréquence mais ayant une amplitude très faible est assez élevée.
Nous branchons donc en sortie du récepteur ultrason un circuit amplificateur à deux étages, composé de deux montages amplificateurs inverseurs successifs. Ces deux montages ayant chacun un gain de 5, le gain en sortie sera donc d’environ 25.
Une fois le signal reçu et amplifié, il doit passer par un circuit détecteur de crête afin d’être transformé en signal « impulsion » qui est plus facile a traité par le microcontrôleur. Le microcontrôleur, et par extension le robot, est alors dans la capacité de savoir s’il est ou non dans a bonne direction, et, le cas échéant, tourner vers la direction souhaitée.
Gestion des moteurs
Le perçage du ballon
Pour que le robot perce le ballon, nous avons utilisés un servomoteur qui sera situé dans un socle sur le robot.
Nous avons créer à l'aide du logiciel SketchUp et une imprimante 3D ce socle :
Pour ensuite faire fonctionner le mécanisme permettant de percer le ballon, on a crée un programme pour piloter le servomécanisme grâce à la carte capteur de couleur, nous avons branché le servomécanisme sur la carte Arduino pour le 5V, la masse et une sortie, ainsi que la carte capteur sur la masse, le 5V et une autre sortie. Pour ce qui est du programme, nous avons créer un petit programme qui mettrait en marche le servomoteur lorsque la zone d'arrivée serait détectée.