Projets:GantSonar
Description du projet
Ce projet est la version 2.1 du projet Gant Sonar précédemment documenté sur notre site ici La version 2.1 diffère de la V1 uniquement par la façon dont le programme fonctionne, le circuit électronique et ses composants étant absolument identiques.
Ce système est librement inspiré des travaux de l'américain Steve Hoefer. Il consiste en un dispositif à fixer sur le dos de la main et qui sonde en permanence l'environnement grâce à deux sonars à ultrasons orientés à 90 degrés l'un de l'autre et fonctionnant de façon indépendante. Si un obstacle est détecté par l'un des sonars, sa présence se traduit par une vibration du même côté que celui du sonar. La force de cette vibration est inversement proportionnelle à la distance mesurée. Les deux sonars peuvent détecter des obstacles à des distances différentes et provoquer ainsi des vibrations différentes de chaque côté de la main.
La perception de l'environnement se fait donc en interprêtant les variations de vibrations que l'on ressent en balayant l'espace de la main et, bien entendu, un certain apprentissage est nécessaire pour utiliser ce système de façon naturelle. Du fait de la position en angle droit des deux sonars, il y a un espace non couvert entre les deux champs de détection. Cet angle mort est important puisqu'il permet de sentir de facon précise la position d'un objet lors de l'arrêt momentané des vibrations au cours d'un balayage continu de la main. Cet objet se trouve alors à ce moment là, exactement dans l'axe de la main. A noter que, s'il est possible de détecter aussi bien des objets ou des obstacles dans un plan horizontal (il suffit pour cela de balayer l'espace de droite à gauche avec la main à plat), il est possible de le faire aussi dans un plan vertical en balayant l'espace devant soi de bas en haut en tournant la main de 90 degrés sur le côté. La distance maximale de détection avec le matériel décrit ici est de 2,50 m dans la pratique.
Comme la force des vibrations est inversement proportionnelle à la distance (plus l'obstacle est près et plus les vibrations sont fortes), il est parfois nécéssaire d'avoir une perceptions plus précise dans l'exploration d'un espace plus restreint. On peut donc ajuster la distance maximale (correspondant donc au minimum de vibrations) à l'aide d'un bouton permettant de choisir entre une détection dans une plage courte jusqu'à 70 cm ou dans une plage longue jusqu'à 250 cm.
La distance à laquelle se trouve un obstacle est traduite par une vibration du côté de l'obstacle inversement proportionnelle à sa proximité. Plus l'objet est proche plus la vibration sera forte. Contrairement à la version 1, la variation de distance d'un obstacle ne se traduit pas par une variation continue des vibrations mais par des variations par paliers. Il y a 4 paliers de vibrations qui permettent une meilleure appréhension de la variation de proximité des obstacles. Ces paliers sont proportionnels à la plage de détection utilisée.
Pour une plage courte de 0 à 70 cm, les paliers de vibrations correspondent à des distances de 10, 25, 40, 70 cm. Pour une plage longue de 0 à 250 cm les paliers de vibrations correspondent à des distances de 20, 80, 150, 250 cm. A noter que la gamme des forces de vibrations est définie par des paramètres qui eux-aussi pourraient être modifiés dans le programme selon la sensibilié de l'usager.
Cahier des charges
Schema de montage sur breadboard v1 et 2.1
Equipe
- Yves Lechevalier
Matériel nécessaire
Avec carte Arduino UNO
- 1 carte Arduino UNO
- 2 détecteurs ultrason HC-SR04
- 1 pont en H contrôle moteur DC L293D
- 1 bouton poussoir (OFF – ON momentané)
- 1 résistance (10 kΩ)
- 2 potentiomètres ajustable (50Ω 0,5 w)
- 1 condensateur céramique 100 ɳF
- 1 condensateur chimique polarisé 100 ɥF
- 2 vibreurs de console de jeu
- 1 connecteur pile de 9v
- 1 interrupteur (on off)
- 1 pile 9v
- 1 diode 1N400x (protection polarité de la carte)
- 1 shield protypage UNO
Avec carte Arduino NANO
- 1 carte Arduino NANO
- 2 détecteurs ultrason HC-SR04
- 1 pont en H contrôle moteur DC L293D
- 1 bouton poussoir (OFF – ON momentané)
- 1 résistance (10 kΩ)
- 2 potentiomètres ajustable (50Ω 0,5 w)
- 1 condensateur céramique 100 ɳF
- 1 condensateur chimique polarisé 47 ɥF
- 2 vibreurs miniatures (VM1201 Gotronic)
- 1 connecteur pile de 9v
- 1 interrupteur (on off)
- 1 pile 9v
- 1 diode 1N400x (protection polarité de la carte)
- 1 plaque veroboard pastilles
Notes de développement v2.1
Le programme a été entièrement réécrit par rapport à la V.1 afin de le rendre plus efficace et plus simple aussi. Il a été développé sous IDE Arduino 1.8.1 (dernière version réputée stable). Il utilise la bibliothèque newping qui permet un pilotage optimisé des capteurs à ultrasons et un meilleur temps de réponse.
Pour les vibreurs, on privilégiera des vibreurs de faible consommation et encapsulés dans un boitier pour un montage plus facile à réaliser. (CF : vibreur VM1201 chez Gotronic) Les vibrations des deux vibreurs ne sont pas synchronisés et ils se déclenchent ou s'arrêtent indépendamment l'un de l'autre. Une capacité de découplage de 100 ɥF permet d'absorber les montées en tension au démarrage des vibreurs et d'économiser ainsi la batterie. La distance maximale théorique est de 4 mètres pour les transducteurs à ultrasons SR04. Dans la pratique, on atteint tout juste 2,5 m. C'est pour cela qu'on a fixé la distance de détection maxi à 250 cm dans ce programme.
Il serait possible d'utiliser des transducteurs à ultrasons de portée supérieure (jusqu'à 6m) mais de coût nettement plus élevé aussi ou alors d'utiliser des mini-capteurs lidar d'une portée jusqu'à 12 m. mais nettement plus onéreux.
Le calcul de la distance réelle des objets n'a que peu d'importance puisque c'est leur distance relative par rapport aux mouvements de la main de l'utilisateur qui sont traduites en vibrations plus ou moins fortes. Le calcul des distances est donc fait sur la base d'une vitesse théorique du son de 340 m/sec. Le sens de rotation de vibreurs n'a aucune importance et la perception reste la même quel que soit ce sens. Pendant la phase de mise au point , afin de régler au mieux les paramètres de force des vibrations, ceux-ci étant étroitement liés à la conception des vibreurs, on peut utiliser provisoirement un buzzer couplé au sonar 1 pendant la phase de montage sur breadboard. Ce buzzer réagit par un son proportionnel à la distance et permet ainsi d'ajuster avec précision la valeur mini de vibration pour que le vibreur réagisse à la détection des objets les plus éloignés détectables. Il est connecté sur la pin D14 (≡ pin A0).
Le buzzer et sa résistance sont ensuite démontés après réglage et la constante correspondante est alors désactivée dans le programme.