Les capteurs¶
Capteur de distance¶
- Sans s'en rendre compte, dans la vie de tous les jours, on retrouve plusieurs appareils qui utilisent des capteurs de distance
- Voici quelques exemples d'appareils qui utilisent des capteurs de distance
- Téléphones intelligents : Lecture de proximité pour la caméra ou pour éteindre l'écran
- Drone : Distance par rapport au sol
- Voiture : Distance par rapport à un obstacle
- Construction : Mesurer une distance
Le sonar à ultrason¶
- Le sonar est un appareil permettant de mesurer la distance à un objet
- Il s'agit d'un capteur ultrasonique
- Comme ce qu'utilisent les chauves-souris et dauphins
- Le principe du sonar est qu'il envoie une courte impulsion ultrasonique et reçoit la réponse
- Le délai de réponse permet de déterminer la distance à l'objet
- La vitesse du son est d'environ 343 m/s au niveau de la mer

Le sonar HC-SR04¶
- Le modèle qui est inclus dans le kit est le HC-SR04 qui est relativement populaire
- C'est le même que l'on retrouve sur le robot
- Il fonctionne entre 2 et 400 cm

Limites et précautions du HC-SR04¶
Portée effective :
- Distance minimale : 2 cm (en dessous, les mesures sont imprécises)
- Distance maximale : 400 cm (au-delà, le signal devient trop faible)
- Zone optimale : entre 10 cm et 300 cm pour une précision maximale
Angle de détection :
- Angle de détection d'environ 15° (cône de ~30° total)
- Les objets en dehors de cet angle ne seront pas détectés
- Pour une mesure précise, l'objet doit être perpendiculaire au capteur
Limitations importantes :
- Surfaces molles ou inclinées (tissus, mousse) : absorption du signal
- Surfaces très petites : peuvent ne pas réfléchir suffisamment le signal
- Températures extrêmes : affectent la vitesse du son et donc la précision
- Bruit ambiant : les ultrasons peuvent interférer entre eux
Conseils d'utilisation :
- Évitez d'utiliser plusieurs capteurs HC-SR04 simultanément (interférences)
- Attendez au moins 60ms entre les mesures pour éviter les échos parasites
- Filtrez les valeurs aberrantes (0 cm ou >400 cm) dans votre code
Algorithme¶
- On active le déclencheur
- On attend quelques \(\mu\)-secondes (10)
- On désactive le déclencheur
- On lit l’écho (durée)
- On calcule la distance (cm) avec le délai
𝑑𝑖𝑠𝑡=𝑑𝑢𝑟é𝑒 * 0.034/2; // C’est en microsecondes
Exemple de code¶

- On remarque que j'utilise pour la démonstration la fonction
delayMicroseconds(). Celle-ci a le même effet quedelay(), i.e. qu'elle bloque le µC. Cependant, nous sommes dans l'ordre du microseconde, ainsi ce n'est pas très problématique. Néanmoins, pour des projets plus complexes, il est préférable d'utiliser des techniques non bloquantes. - Pour améliorer le code, nous allons utiliser une bibliothèque que nous allons voir dans la prochaine section.
Importation de bibliothèque¶
- Rappel :
- Une bibliothèque est un ensemble de fonctions qui permettent de faciliter la programmation
- Dans Arduino, une bibliothèque est une classe qui facilite le développement de projet en réutilisant le code
- Plusieurs bibliothèques viennent par défaut avec l'environnement d'Arduino.
- Toutefois, il existe une panoplie de bibliothèques téléchargeables pour des composants communs
- L'installation d'une bibliothèque ajoute généralement des exemples qui sont liés à la bibliothèque téléchargée
- Rappel : Les exemples sont dans "Fichier --> Exemples..."
- Pour télécharger une bibliothèque, il y a le "Gestionnaire de bibliothèques"
- Il est dans le menu "Outils"
- Il y a aussi un bouton dans la barre d'outils latérale

Note
Pour les versions antérieures à 2.0, il y a le "Gestionnaire de bibliothèques" dans le menu "Croquis". Une fenêtre surgissante s'ouvre et il faut chercher la bibliothèque à installer.
Capteur à température et humidité¶
- Dans le kit, il y a un capteur d'humidité et de température
- Il s'agit du DHT11
- On retrouve ce type de capteur dans plusieurs situations
- Station météo
- Cellulaire
- Interrupteur de ventilation automatique
- Système de suivi d'environnement

DHT11 - Spécifications¶
- Coût ultra bas
- Alimentation et E/S de 3 à 5V
- Utilisation d'un courant de 2,5mA maximum pendant la conversion (pendant la demande de données)
- Bon pour les lectures d'humidité de 20-90% avec une précision de 5%
- Bon pour les lectures de température de 0-50°C avec une précision de ±2°C
- Taux d'échantillonnage ne dépassant pas 1 Hz (une fois par seconde)
- Pour un modèle plus « haut de gamme » voir le DHT22
DHT11 - Librairie¶
- Le DHT11 utilise son propre protocole de communication
- Pour faciliter son utilisation, on utilise généralement une librairie
- Nous allons utiliser la librairie « DHT sensor library » d’Adafruit
- Adafruit est un fournisseur populaire de composants électronique
Note
La vitesse de requête ne doit pas dépasser 1 Hz. Ainsi, on doit attendre au moins 1 seconde à chaque demande
DHT11 - Branchement et code¶
Voici une façon simple d'effectuer le branchement et un exemple de code

Écran LCD¶
- L'écran LCD permet d'afficher du contenu textuel ou graphique sur l'appareil
- On le retrouve dans plusieurs appareils communs
- Imprimante, routeur, cafetière, etc.
- Il y a plusieurs types d'écran LCD
- Couleur, LCD 1602, 2004, OLED 128x64, etc.
Dans le kit¶
- Dans le kit entre nos mains, il y a un écran LCD 1602
- 1602 pour 16 caractères de large et 2 lignes
- Par défaut le modèle fourni a un connecteur en parallèle
- Cela occupe beaucoup de broches

- Il existe un module qui permet de réduire le nombre de broches utilisées
- Il s’agit du module LCD i2c
- On verra le i2c dans un prochain cours
- Au lieu d’utiliser 7 fils, ce module permet de réduire à 2 fils
- On ne compte jamais les fils de tension (5v) et de mise à la terre

- Pour brancher le module i2c avec l’écran, il faut les aligner les broches en parallèle
- Le port SDA doit aller sur le port SDA (#20)
- Le port SCL doit aller sur le port SCL (#21)

LCD - Code¶
Nous allons utiliser la librairie « LiquidCrystal i2c » de Frank de Brabander
Exercices¶
Sonar sans librairie¶
- Reproduisez le code qui est dans la section Exemple de code
- Effectuez le branchement adéquat selon le code
- Testez le code
Sonar avec librairie¶
- Installer la librairie « HCSR04 ultrasonic sensor » de gamegine
- Rechercher « hcsr04 »
- Récupérer l’exemple « HCSR04 »
- Modifier le code selon le branchement actuel
- Tester le code
Le code de l'exemple :
Sonar, DHT11 et LCD¶
Dans le même projet :
- Affichez la température, le taux d'humidité ainsi que la distance
- Faites basculer l'affichage à toutes les 3 secondes entre la température, le taux d'humidité et ensuite la distance