Cours Arduino

Tutoriel Arduino contrôle infrarouge PDF


Télécharger Tutoriel Arduino contrôle infrarouge PDF

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Tutoriel Arduino contrôle infrarouge PDF

...

Les capteurs sont très largement utilisés de façon courante et sont essentiels pour la robotique. Ils sont les yeux, les oreilles, les doigts et dans certains cas peu courants l’odorat et le goût d’un système robotique. L’Arduino sait gérer un grand nombre de capteurs et de nombreuses librairies sont venues simplifier leur utilisation au cours des dernières années. En effet, là où il fallait faire des calculs de conversion et de mise à l’échelle des signaux reçus, il suffit d’appeler une fonction qui les réalisera à la place et de récupérer un résultat. Comme dans d’autres domaines de l’informatique, la réutilisation de code éprouvé et optimisé joue un rôle de levier très important dans le développement d’applications dont les fonctionnalités peuvent s’étoffer et devenir de plus en plus riche dans un environnement d’exécution de plus en plus compact (pensez à la taille d’un Arduino Nano ou micro). Il reste trois préoccupations essentielles dans l’utilisation des capteurs : leur robustesse, leur fiabilité et leur précision.

La robustesse est proche de la fiabilité mais un capteur fiable peut donner des signaux réguliers et à un niveau reflétant bien la grandeur physique qui le fait agir et tomber en panne à la moindre chute de température ou après quelques heures de fonctionnement. A l’inverse, un capteur robuste et résistant à toute épreuve peut donner de temps en temps des valeurs fantaisistes et se laisser divertir par des perturbations de son environnement. La précision est le résultat d’un compromis. Du capteur grand public à l’instrument de mesure de laboratoire, il y a un monde et détecter une présence n’est pas forcément équivalent à mesurer une distance au millimètre près. La précision, comme les deux autres facteurs influe fortement sur le coût de ces équipements et sur l’effort pour les mettre en œuvre de façon satisfaisante. Il est en effet question d’ajustements, de calibrage, de calcul et de correction d’erreurs qu’un circuit programmable comme l’Arduino peut correctement gérer mais qui ne pourra pas donner une précision meilleure que celle du plus faible de ses capteurs. Mais dans le cadre de ce workshop, les préoccupations seront plus basiques puisque nous nous limiterons à une mesure approchée de quelques grandeurs physiques.



  1. Une démonstration

Une démonstration va permettre de se familiariser avec 3 capteurs : un capteur de température, un capteur de lumière visible et un capteur de rayonnement infrarouge. Pour illustrer, chaque capteur est couplé avec un actionneur. Il ne reste qu’à déterminer le comportement attendu de l’Arduino pour écrire l’algorithme puis le code correspondant. Pour rester pragmatique et laisser entrevoir des possibilités d’application, un besoin est exprimé pour chaque cas.

Chacun de ces capteurs partage les mêmes caractéristiques :

- Il fait partie d’un montage intégrant d’autres composants électroniques qui sont nécessaires à son fonctionnement et/ou qui l’améliorent (filtrages anti-parasites) ;

- Ils sont reliés aux entrées analogiques de l’Arduino qui convertissent la tension en niveaux de sortie selon une résolution qui dépend de la fréquence du processeur (conversion A-D ou analogique en digital) ;

- Le niveau de tension mesuré est utilisé soit directement soir fait l’objet d’un calcul. Pour atténuer les erreurs de mesure, un traitement particulier peut être fait : suppression de valeurs aberrantes, calcul d’une moyenne ;

- Lorsque le code de l’Arduino positionne un actionneur en fonction de la valeur d’un capteur au cours d’une boucle, l’actionneur reste dans le même état pendant les boucles suivantes. Il est donc nécessaire de tester et d’attribuer également la valeur de repos de l’actionneur lors de chaque boucle.

Il existe de nombreux capteurs utilisables pour compléter cet exemple : capteurs de couleurs (en fait, plusieurs capteurs de lumières ayant des filtres différents), de pression, de déplacement (accéléromètre), de son voire d’ultra-sons, de fumée, d’humidité…

3.Un cas pratique d’utilisation d’un capteur : la mesure de distance

Il existe plusieurs capteurs pour mesurer une distance : lasers, infrarouge, ultrasons. Les deux derniers types sont les plus répandus en robotique de loisirs. Le cas pratique mettra en œuvre un couple émetteur-récepteur à ultrasons, sur le principe du sonar.

3.1. Un peu de technologie

La mesure de distance est le domaine de la télémétrie. Ce nom provient du grec ancien tele qui veut dire loin et de mesure. La télémétrie est l’art de mesurer les distances et le télémètre est l’appareil qui permet de le faire. Un télémètre permet, par exemple, de mesurer la distance entre le robot et une cible pour évaluer la distance de tir. Il est basé sur le principe du sonar. Qu’est ce qu’un sonar? Ce n’est pas un radar même s’il partage le même principe : celui de la mesure du temps entre l’émission d’une onde et sa réception lorsqu’elle rencontre un obstacle. Un radar utilise des ondes électromagnétiques et permet une meilleure détection mais est plus compliqué à mettre en œuvre. Un sonar utilise les ultrasons, non audibles, qui se propagent différemment selon le milieu. Il fonctionne mieux dans un milieu homogène et c’est pourquoi il est utilisé pour détecter et situer les objets sous l’eau. La vitesse du son permet de calculer la distance parcourue par un son. Elle varie selon les différents milieux. Dans l’air et au niveau de la mer, elle est approximativement de 343 mètres par seconde, c’est-à-dire qu’en une seconde, le son parcourt 343 mètres.



C’est plus lent que la vitesse de la lumière et c’est pourquoi quand on aperçoit un éclair, on attend plus ou moins longtemps pour entendre le grondement du tonnerre. Par exemple, si on compte 3 secondes entre l’éclair et le tonnerre alors la foudre est tombée à 3 x 343 soit 1029 mètres, soit un peu plus de 1 kilomètre.

L’Arduino donne le top pour l’émission de l’onde, il attend la réponse et il va lire la durée enregistrée dans le circuit du sonar. Ensuite, il calcule la distance à partir de la durée d’aller et retour qui vient d’être mesurée et de la vitesse du son

Un exemple de sonar : le SRF-05 .

Pour un peu moins d’une vingtaine d’euros, ce petit module qui comprend un émetteur et un récepteur est très utilisé. C’est un bon rapport qualité/prix et il existe d’autres modules plus chers qui ont un seul composant émetteur-récepteur et qui font également le calcul de distance.

Celui-ci donne des impulsions dont la largeur est comprise entre 100 microsecondes et 18 millisecondes et peut faire des mesures correctes sur une distance comprise entre 3 cm et 4 mètres. Il faut attendre 50ms entre 2 impulsions pour éviter un faux écho. Sur ce modèle, on peut utiliser une ou deux bornes du circuit pour piloter le sonar et recueillir ses données. Il y a aussi 2 bornes qui permettent de l’alimenter en 5V mais il fonctionne aussi en 3,3V (tension utilisée par l’Arduino Due)

L’étalonnage

Au démarrage de l’Arduino, le circuit règle sa mesure de distance en évaluant ce qui se trouve droit devant lui. Si un obstacle est présent à cet instant, la mesure peut être faussée. Il faut veiller à ce que le champ soit dégagé .

La zone de détection

Si le robot est face au 0, alors il pourra détecter les obstacles qui se situent dans la zone rouge hachurée

La connexion avec l’Arduino

2 bornes sont utilisées pour émettre et recueillir le signal même si une seule peut être utilisée avec ce modèle. Les autres bornes ne doivent pas être utilisées

A une échelle de temps aussi petite, un oscilloscope est très utile – et même indispensable – pour « voir » le fonctionnement du sonar. La planche ci-dessous illustre ce qui se passe lorsque l’Arduino exécute les instructions de pilotage du sonar. Comme ce composant a une précision limitée et que l’environnement peut émettre des perturbations, bien que moins importantes que pour un capteur infrarouge, le calcul de la distance est effectué à partir d’une moyenne des lectures sur un intervalle de temps. Une moyenne simple sur une vingtaine de lecture suffit mais les possibilités de calcul de l’Arduino permettent de faire des corrections plus élaborées et de donner une valeur plus précise. La préoccupation est la même avec un capteur infrarouge, beaucoup plus sensible à une pollution lumineuse. Une solution, basée encore sur la capacité de traitement, consiste à encoder le signal émis et à le décoder par le récepteur. De cette façon, seuls les signaux effectivement émis seront traités par l’Arduino.





131