SoufPlouv

De troyesGEII
Aller à : navigation, rechercher

Le microcontroleur

On pense travailler au départ sur un Arduino Uno.

Texte alternatif
Capteur de proximité ultrason


Les différents capteurs de proximité

  • Les capteurs infrarouges fonctionnent en mesurant l'angle de réflexion d'une émission d'infrarouges modulée, grâce à une rangée de récepteurs.
  • Les capteurs à ultrasons fonctionnent en mesurant le temps de retour d'une onde sonore inaudible émise par le capteur et on en déduit la distance.
  • Les capteurs de proximité inductifs détectent tous les matériaux conducteurs à une distance définie
  • Les détecteurs de proximité capacitifs peuvent détecter à courte distance la présence de tous types d’objets

Comparaison de capteur

Capteur ultrason
Texte alternatif
Capteur de proximité ultrason
Capteur infrarouge
Texte alternatif
Capteur de proximité infrarouge GP2D12
Portée 1cm à 3m 5-80 cm
Directivité Dépend du cône de directivité Dépend du cône de directivité
Précision Dépend du temps de parcours de l'onde Dépend de la distance - bonne à 10cm
Taille Petit, mais carte de mesure imposante Très petit
Consommation 30 à 50 mA env. 25mA


Nous utiliserons des capteurs à ultrasons, car ils présentent des avantages en thermes d'efficacité. Nous prendrons des capteurs SRF05 capables de déterminer la distance qui les sépare d'un obstacle se présentant devant eux (entre 1 cm et 3 m). Ce qui nous permettra ainsi d'éviter au maximum le risque de collision avec les obstacles et par la même occasion de gagner du temps.

Déplacement

Texte alternatif
Algorithme de déplacement de base.


  • Le déplacement du robot se fera grâce à la partie réception situé sur le dessus du robot afin de pouvoir capter tout le long de la course, le signal infrarouge émit par la balise. Pour ce faire, un BPW50 reçoit le signal qui sera amplifié et filtré grâce à un filtre passe bande permettant d'avoir un signal optimal à 7.6KHZ. Puis il sera soumis à un comparateur afin d'avoir un signal logique qui indique si on reçois un signal ou pas.

Balise

Pincipe de fonctionnement de la Balise.

Texte alternatif
Principe de fonctionnement de la balise.















Une balise infrarouge est placée au niveau de la zone d'arrivée. Celle-ci émet un signal que le robot reçoit et détermine la direction à l'aide d'une ceinture de 5 capteurs placé à la même hauteur que l'émetteur de la balise, ce qui permet ainsi au robot de se diriger.

  • Concernant la partie émission, nous utiliserons 5 LED infrarouges fonctionnant sur une fréquence de 7.6kHZ (signal carré).
  • Nous utiliserons un ATTINY10 que l'on programmera afin d'envoyer un signal carré avec une fréquence de 7.6KHZ sur la patte PB2 sur laquelle sont les branchés les LED.
  • Puis nous utilisons des photodiodes BPW50 en réception (ceinture),et le signal reçu sera amplifié.


Émission infrarouge

Texte alternatif
Émission de signal infrarouge.

On veut un courant de 132mA sur la LED pour qu'elle éclaire au maximum. On a alors Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): R=\frac UI .
Donc Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): R=\frac {12-2-0.2} {0,132} = 72\Omega

On considère les chute de tension aux bornes de la LED (2V)et du transistor (0.2).

On prend donc Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): R=82\Omega en valeur normalisée.

Soit le transistor a un Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \beta = 100 donc le courant au borne de la 2éme résistance est Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): I=\frac{0.132} {100}=0.00132mA

Donc on a une résistance de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): R=\frac {5} {0,00132} = 3.79K\Omega

On prend donc Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): R=3.9K\Omega en valeur normalisée.








Voici le schéma complet avec les 5 LEDS infrarouges.

Texte alternatif
Schéma Eagle de la partie émission de signal infrarouge.



















Programmation ATTINY10

Grâce au programme suivant nous allons pouvoir le modifié afin de contrôler les LED qui sont sur relié a la patte PB2 (Au lieu de PB4 ici) de l'ATTINY10 et de leur imposé une fréquence de 7.6KHZ en modifiant le delay.
Voici les liens suivant pour le logiciel et pour le programme : http://hanez.org/2011/12/04/attiny13-blink-example/ et http://www.atmel.com/tools/ATMELSTUDIO.aspx

Texte alternatif
Programmation de l'ATTINY10.




























Board et finalisation de la partie émission

Concernant la partie du Board sur Eagle, nous avons décider de placer les 5 LEDS sur un arc de cercle. Ainsi nous emmétrons sur un angle assez important, permettant au robot de capter au maximum les émissions infrarouges.
La carte est faite principalement de CMS.

Texte alternatif
Émission de signal infrarouge.


A l'aide de ce circuit qui sera placé sur la balise, on pourra émettre un signal (carré) infrarouge de fréquence 7.6kHz. Ce circuit permettra d’émettre dans angle minimum de 45° étant donné qu'on la place à l'angle du terrain de jeu.

















Voici la parti émission finale.

Texte alternatif
Émission de signal infrarouge.











Réception infrarouge

Texte alternatif
Réception de signal infrarouge.

Ce circuit va nous permettre de recevoir le signal émis par la balise à l'aide de la photodiode BPW50. Seul il va recevoir à peu près n'importe quelle signal infrarouge émis dans les environs c'est pour cela qu'on va lui associer un filtre passe bande.

On a choisie Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): R=2.2M\Omega car c'est la plus grande résistance qui permet la meilleure amplification (1ere amplification) sans perturber le signal reçu.













Amplification du signal reçu

Texte alternatif
Filtre passe bande de la réception de signal infrarouge.

Le filtre passe bande, cascadé au circuit de réception du signal infrarouge, va permettre :

  • de filtrer le signal (éviter les parasites tel que les infrarouge provenant des néons de la salle),pour cela on choisit une fréquence de coupure (fréquence centrale) (Ici le calcul des résistances permet de choisir une fréquence de coupure de 7.6kHz)
  • aussi de d'amplifier le signal reçu avec le rapport -R3/2*R1 (ce passe bande est inverseur).

Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \Rightarrow Calcul des composants: Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): F_C=\frac {1} {2C\Pi}\sqrt\frac {R_1+R_2}{R_1R_2R_3}

On choisit Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): C_1=C_2=C

On veut Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): F_C=7.6KHz et le gain Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): G\approx10

Or le gain est donné par Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): G=\frac{-R_3} {2R_1}

Donc on choisit Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): C et Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): R_3=470\Omega

On prend aussi Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): R_2=R_3=10k\Omega

Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): C=\frac {1} {2F_C\Pi}\sqrt\frac {R_1+R_2}{R_1R_2R_3}

et on a Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): C_1=C_2=C=9.9nF
On prend alors en valeur normalisée Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): C=10nF



Comparateur

Texte alternatif
Comparateur.

Ce montage cascadé au filtre passe bande permet de savoir si on reçois un signal ou pas à l'aide de la tension de comparaison V1.

Le signal d'entrée étant faible on choisie de prendre une tension de comparaison très faible, donc V1=50mV.
Le potentiomètre permet de régler la tension de comparaison facilement.












Exemple de fonctionnement :

Texte alternatif
Exemple de fonctionnement.

Nous avons un signal logique à la sortie (indique une réception de signal) lorsque la tension d'entrée est supérieur à celle de la comparaison.











Board et finalisation de la partie réception

Concernant la partie réception nous avons décidé de placer les 5 récepteurs sur un arc de cercle de façon a couvrir un angle de réception plus important. Voici le schéma et le Board fait sur Eagle. Ainsi on peut voir que les 5 photodiodes sont placé sur un arc de cercle et à l'avant de la carte.

Texte alternatif
Schéma Eagle de la partie réception de signal infrarouge.
Texte alternatif
Board Eagle de la partie réception de signal infrarouge.



























La carte sera aussi en CMS mais en double face cette fois.
Pour les comparateur sur le schéma final, on a décider de mettre un connecteur qui va permettre de choisir la tension de comparaison fixe ou alors variable qu'on réglera avec une MLI à l'aide de l'Arduino.


Texte alternatif
Réception : final.
Texte alternatif
Réception : final.




Pour des choix de gain de place, on a préféré prendre des amplificateur TL082 et des comparateur LM339 (4 comparateurs).














































Évitement des obstacles

L'évitement des obstacles se fera à l'aide de 5 capteurs à ultrasons placés à l'avant du robot et d'un capteur mécanique de position (Boussole)

Choix de la trajectoire

Texte alternatif
Type de trajectoire que devra suivre le robot

Boussole

Texte alternatif
Boussole I2C
  • Nous utiliserons une boussole HM55B afin d'optimiser le déplacement du robot. Ainsi on met la boussole il faudra mettre le robot dans une direction qu'il considérera comme étant le nord. Un programme d'initialisation est nécessaire, ainsi quand le programme sera lancée, la boussole enverra à un micro contrôleur l'angle entre le robot et le nord qu'on lui a imposé.
  • Ce micro contrôleur viendra alors commander les moteurs des roues afin d'avoir une direction vers le nord. Le principe de l’utilisation de cette boussole consiste à mémoriser l’angle dans laquelle se trouve la balise. Ainsi lorsque le robot de déplacera, il pourra savoir où se trouve la balise par rapport à sa position.

Moteur

  • Le robot se déplace grâce à deux moteur dont on pourra faire varier la vitesse de chaque moteur afin de pouvoir éviter les obstacles. Il doit être capable de faire varier sa vitesse afin de pouvoir éviter les obstacles et de se rediriger vers la zone d'arrivée. De plus, il doit aussi être capable de reculer afin de se sortir de situation qui ne lui offre pas d'autre alternative.
  • Pour contrôler les moteurs nous utiliserons un Driver Moteur L298 qui intègre deux ponts en H pour les deux moteurs. Il se peut qu’un seul transistor soit saturé dans le pont en H. Or, le moteur possède une inductance interne qui va devoir décharger l’énergie accumulée. Afin de protéger les transistors contre la décharge d'énergie des inductances, il sera donc préférable de placer une diode de roue libre pour permettre l’évacuation du courant.

Détection de la zone d'arrivée

Texte alternatif
Principe de fonctionnement d'un phototransistor

La détection de l'arrivée se fera à l'aide de 2 D.E.L. et de 2 phototransistor placés au niveau des roues du robot afin que le robot s'arrête seulement quand il sera entièrement dans la zone d'arrivée. Les D.E.L. envoient une lumière rouge ainsi lorsque que le robot pénétrera la zone blanche de l'arrivée, les lumières rouges des D.E.L. seront réfléchies et captées par les phototransistor, qui seront ensuite traités par un micro contrôleur afin de transformer le courant des transistors en tension.

Départ du robot

Le départ du robot se fera à l'aide d'une prise jack. Ainsi une fois le robot placé dans sa zone de départ et dans la direction choisi, il suffira d'enlever cette pris jack pour que le robot démarre la course.

Perçage de ballon

Une fois la zone d’arrivée atteint le robot doit s'immobiliser puis éclater son ballon. Nous avons donc choisi d'utiliser un transistor BDX33 qui délivre une tension de 5V à un moteur qui sera fixer sur le dessus du robot et qui entrainera une pointe afin de crever le ballon.