PAE 2021 Canne d'aveugle : Différence entre versions
(→Programmation arduino) |
(→Affichage de la distance) |
||
| Ligne 149 : | Ligne 149 : | ||
[[Fichier:arduino_distance_capteur.PNG|700px|thumb|center|Code pour l'affichage de la distance]] | [[Fichier:arduino_distance_capteur.PNG|700px|thumb|center|Code pour l'affichage de la distance]] | ||
| − | Ainsi, nous calculons la distance de l'objet selon la durée entre l'émission et la réception de l'onde. Nous lisons la valeur de la variable distance | + | Ainsi, nous calculons la distance de l'objet selon la durée entre l'émission et la réception de l'onde. Nous lisons la valeur de la variable duration nous permettant d'avoir la durée de l'écho. |
| + | |||
| + | A l'aide de cette variable, nous pouvons calculer la distance entre la canne et l'objet. Il est important de diviser par 2 la variable duration car cette variable représente l'aller-retour de l'écho. | ||
== Implémentation des différents modes == | == Implémentation des différents modes == | ||
Version du 29 avril 2021 à 10:42
Sommaire
Introduction
La canne blanche, largement utilisée par certains déficients visuels (aveugles et malvoyants), est un moyen de se repérer dans l'espace pour faciliter leur déplacement. A l'aide de cette canne, les personnes peuvent éviter les obstacles au sol permettant alors une certaine autonomie.
Cependant, cette canne présente des limites d'utilisation avec une possibilité de repérer seulement des objets au sol. Ainsi, notre objectif est de réaliser le prototype d'une canne blanche intelligente en ajoutant une fonctionnalité permettant de détecter des objets à une hauteur d'homme.
Cahier des charges
D'après l'énoncé du projet, nous pouvons en déduire les éléments nécessaires à la réalisation de la canne augmentée :
- Télémètre : un capteur à ultrason permettant de mesurer une distance entre la canne et un objet.
- Retour haptique : un vibreur permettant de coder l'information de distance lors de la détection d'un objet.
- Microcontrôleur : un Arduino nano programmable.
- Alimentation : une batterie ou pile
Pour réaliser un prototype fonctionnel et l'ajout de fonctionnalités :
- Une canne et le boitier contenant l'électronique embarquée.
- Une alimentation par pile ou batterie rechargeable.
- Un bouton poussoir permettant de sélectionner le mode de détection.
Étude du marché
| Tom Pouce | Rango | UltraCane | |
|---|---|---|---|
| Image | |||
| Prix | 5 000€ - Distribué gratuitement en France | 900€ | 1 055€ |
| Ergonomie | Boitier amovible | Boitier amovible | Canne complète |
| Autonomie | 5h | 3h30 | 4h |
| Distance | 1 à 12 m | 1.50 m | 2 à 4 m |
| Mode de détection | Faisceaux infrarouges et laser | Ultrasons | Ultrasons |
| Feedback | Vibrations variables en fréquence | Bips sonores variables en fréquence | Vibrations d'intensité variable |
| Poids | 168 g | 107 g | 346 g |
Présentation Arduino
L'arduino est une carte programmable permettant de mettre en place des systèmes électronique embarqués à l'aide de capteur, d'écran led, de led... Petite de taille et très légère, cette carte s'adaptera facilement à la canne d'aveugle.
La carte Arduino nano peut-être alimentée via la connexion USB ou à l'aide d'une alimentation externe.
Elle est dotée de 14 pins digitaux (40mA maximum) et 8 pins analogique. Concernant la capacité, elle est dotée d'une mémoire Flash de 32Kb et 2Kb de mémoire dynamique. Chacune des 14 broches numériques peuvent être utilisée comme entrée ou sortie numérique en utilisant les instructions pinMode(), digitalWrite() et digitalRead(). Concernant les pins analogique, elles fournissent une mesure d'une résolution de 10 bits (1024 niveaux de 0 à 1023). Sans configuration, les broches mesurent des valeurs entre 0V et 5v;
Montage électronique
| Arduino nano | Port VMA 306 |
|---|---|
| 5V | VCC |
| 13 | ECHO |
| 12 | TRIG |
| GND | GND |
| Arduino nano | Moteur vibreur |
|---|---|
| 3.3V | VCC |
| 10 | Controle |
| GND | GND |
Datasheet Capteur de distance VMA 306
Fonctionnement d'un capteur ultrason
Un capteurs à ultrason émet à intervalles réguliers de courtes impulsions sonores à haute fréquence. La vitesse du son dans l'air étant stable, on en déduit la distance de l'obstacle. En effet, le capteur calcule la distance le séparant de la cible sur la base de temps écoulé entre l'émission du signal et la réception de l'écho.
Tous les matériaux qui reflètent le son peuvent être détectés. Ainsi, même des matériaux transparents pourront être détectés par un capteur à ultrasons.
Spécification
- tension : de 4.5V à 5.5V
- fréquence sonore : 40 kHz
- résolution de mesure : supérieur à 0.5m2
- angle de mesure : 15°
- courant : de 10mA à 40mA
- distance de détection : de 2cm à 450cm
- déclenchement : impulsion TTL positive de 10µs
Ajout de fonctionnalités supplémentaires
Profil utilisateur permettant de gérer la distance et la sensibilité du capteur pour s'adapter à l'environnement (intérieur avec peu d'espace / espace extérieur).
Création de deux modes à l'aide d'un interrupteur :
- - Intérieur avec peu d'espace (distance de 25cm à 200cm)
- - Espace extérieur (distance de 50cm à 350cm)
Programmation arduino
Programmation de la gestion de la distance
Affichage de la distance
Ainsi, nous calculons la distance de l'objet selon la durée entre l'émission et la réception de l'onde. Nous lisons la valeur de la variable duration nous permettant d'avoir la durée de l'écho.
A l'aide de cette variable, nous pouvons calculer la distance entre la canne et l'objet. Il est important de diviser par 2 la variable duration car cette variable représente l'aller-retour de l'écho.
Implémentation des différents modes
Tableau des distances
Deux modes sont implémentés : le mode extérieur et le mode intérieur.
Pour ce faire, nous avons créer un tableau avec les différentes valeurs selon le mode :
Ainsi, lorsque l'utilisateur choisi un mode, différentes intervalles de mesure seront prises en compte :
- Pour le mode 1 (extérieur) : 350m / 250m / 200m / 100m / 50m
- Pour le mode 2 (intérieur) : 200m / 150m / 100m / 50m / 25m
Choix du mode
Il a fallut ensuite trouver un moyen de choisir les deux modes directement sur la canne pour une personne mal voyante. Nous avons alors décidé de positionner à côté du capteur un bouton poussoir. Lorsque l'utilisateur appuie sur le bouton, le mode change.
De plus, il faut avertir l'utilisateur du changement de mode à l'aide du vibreur.
- Mode 1 : une seule longue vibration
- Mode 2 : deux longues vibrations
Si le mode est LOW c'est-à-dire que le premier mode (extérieur) est choisi, nous faisons une longue vibration de 1s.
Si le mode est HIGH c'est-à-dire que le deuxième mode (intérieur) est choisi, nous faisons deux longues vibration de 1s avec entre les deux une pause de 500ms.
Gestion des interruptions
Programmation du mode vibreur
La vibration du moteur change selon la distance à laquelle se trouve la cane. Pour cela, nous allons modifier la fréquence de vibration du moteur. En effet, plus la canne est proche d'un objet, plus la fréquence de vibration est importante. Ainsi, la vibration du moteur sera de plus en plus importante que l'objet sera proche pour prévenir l'utilisateur d'un obstacle.
La première étape est de vérifiée si l'objet est dans la plage de valeur du capteur. Hors de cette plage, l'objet ne sera pas détecté. Cette ligne de code nous permet de vérifier le bon fonctionnement du capteur.
Ensuite, comme expliqué précédemment, nous avons décidé de modifier la vibration selon la distance de l'objet pour que la vibration soit de plus en plus rapproché plus la distance se rapproche.
Pour se faire, nous allons ajouter une attente plus ou moins importante entre deux vibrations. Cette attente peut varier de 1.5s pour un objet loin du capteur à 200ms pour un objet proche.


