Projets:Canne a son V2

De wikilab
Canne a son V2

Canne a son v2 photo presentation.jpeg

Informations
Description Prototype de canne blanche électronique pour détecter des obstacles. Ce projet est une évolution du projet Canne à son.
Catégorie Malvoyance
Etat d'avancement Réalisés
Techniques arduino, esp, impression 3d, modélisation 3d, électronique
Durée de fabrication de 4 à 8 h
Coût matériel De 100 à 200 euros
Niveau Difficile
Licence by-sa
Date de création 2022-06-02
Équipe
Porteur de projet Francois LB
Contributeurs EliottDaniello
Animateur Delphine
Fabmanager Delphine
Référent documentation Delphine
Partenaires: INRIA
Nom humanlab Humanlab_MHK
Documentation
Statut de la documentation Complète
Relecture de la documentation Non vérifiée

Description du projet

Ce prototype de canne blanche électronique a pour but de détecter des obstacles. C'est une évolution du projet Canne à son.


Le but de ce prototype n'est pas de remplacer la canne, mais de rajouter un boîtier dessus permettant de détecter des obstacles et de faire un retour à l'utilisateur. Le retour se fait pour le moment de manière sonore, avec des sons émis par un buzzer, mais il peut être envisagé dans le futur que le retour à l'utilisateur soit fait de manière haptique, ou encore par un casque bluetooth à conduction osseuse.


Le système se base sur un microcontrôleur M5 Atom, lui-même basé sur un ESP32. Il possède donc du wifi et du bluetooth qui permettrait de nombreuses évolutions. La partie captation se fait grâce à 3 capteurs, dont deux technologies différentes. Un lidar, le TF Mini Plus, comme utilisé sur la Canne à son V1, ainsi que deux capteurs ultrasons CH201. Ils sont très petits, consomment peu et permettent de mesurer une distance jusqu'à 4m, ce qui les rend idéal pour ce projet.


La combinaison de ces deux technologies permet d'obtenir une détection d'obstacles la plus fiable possible peu importe les situations; le lidar sera plus précis en intérieur, cependant les capteurs ultrasons fonctionneront mieux pour les surfaces vitrées et en extérieur. Dans sa configuration actuelle, la canne est capable de détecter des obstacles se trouvant sur son chemin, tel qu'un mur, une porte, une chaise, des escaliers ou des trous dans le sol, mais aussi des obstacles uniquement à hauteur de tête, comme par exemple un volet roulant d'un magasin. Ce prototype est notamment efficace pour se déplacer entre deux voitures sur un parking, sans les toucher.


Les capteurs sont placés de la manière suivante :


Canne a son V2 explication capteurs.jpg


Le lidar pointe légèrement vers le sol, et permet d'obtenir une mesure précise afin de savoir si l'utilisateur va rencontrer des obstacles (un trou ou un escalier, mais aussi un trottoir ou un mur).


Le premier capteur ultrason est orienté de manière horizontale, et permet de détecter les obstacles les plus classiques tels qu'un mur ou un bureau, en étant couplé avec le lidar.


Le second capteur ultrason est légèrement orienté vers le ciel, et permet de détecter des obstacles se trouvant uniquement en hauteur, tel qu'un volet roulant de magasin. REMARQUE : La détection d'obstacles en hauteur fonctionne, mais ne détecte pas 100% des obstacles. Cette partie pourrait être améliorée pour une meilleure expérience d'utilisation.


Le boîtier comporte un bouton ON/OFF, permettant d'allumer et d'éteindre le système sans devoir débrancher le câble USB de la batterie. Il y a également un bouton situé sur le dessus du boîtier, qui permet de désactiver temporairement le retour à l'utilisateur, sans pour autant éteindre le système.


Canne a son onoff.jpg


Le microcontrôleur peut être reprogrammé très facilement sans ouvrir le boîtier, en utilisant le câble usb de l'alimentation. Il suffit de le brancher sur un ordinateur à la place de la batterie externe.


Tout le système est alimenté par une batterie externe de 5000 mAh, donnant au système une autonomie de 30 heures.

Cahier des charges

Le cahier des charges reprend ce qui avait été dit dans la réunion du 17/03/22 à propos du projet Canne à son.


Voici le cahier des charges :

  • Sera un complément de la canne blanche et n'est pas destiné à la remplacer
  • détecter les obstacles en hauteur de la ceinture à un peu plus haut que la tête
  • doit permettre de détecter un corridor vide sur une largeur de 70 cm environ et distance de deux à trois mètres pour se frayer un chemin
  • rester simple (mise en oeuvre et retour d'information)
  • robuste (comme la canne)
  • open source
  • être paramétrable facilement (retour d'info, seuils etc .. : doit permettre le choix du retour en vibration, ou retour sonore)
  • fixable et déclipsable de la canne
  • boîtier étanche
  • plus petit que la première version
  • autonomie: 8 heures
  • mode de recharge : brancher un câble USB facilement
  • avoir un bouton-poussoir pour activer et désactiver le prototype à la demande


Cette version répond à toutes les problématiques du cahier des charges d'origine, à l'exception du retour haptique, qui pourra être développé dans une v2 de ce projet.

Analyse de l'existant et liens utiles

Des projets identiques existent déjà. Dans une version commerciale, il existe :


  • Tom Pouce : Identique à ce que l'on souhaite faire, un boîtier rajouté sur une canne.
  • Minitact : Uniquement un petit boîtier s'utilisant sans canne blanche, et ayant pour ambition de la remplacer.


Du côté de MHK, des prototypes ont déjà été réalisés :

Matériel

Circuit imprimé

Le circuit imprimé peut être réalisé à la main ou commandé sur internet. Attention cependant, certaines pistes sont très fines à cause des connecteurs de nappes, il est donc recommandé de le commander déjà réalisé. Les fichiers Gerber et Drill ainsi que la liste des composants pour le réaliser sont disponibles dans le dossier PCB sur le GitHub (voir le dossier CAMdata_PCB_CanneASon.zip) : https://github.com/myhumankit/Canne_a_son/tree/main/PCB


Pour le réaliser, il vous faudra les composants suivants :

Autres composants du boîtier

Datasheet

Capteur ultrason CH201 : https://invensense.tdk.com/products/ch201/#documentation


Lidar TF mini plus : https://wikilab.myhumankit.org/images/1/19/TFmini-Plus_Product-Datasheet.pdf


I2C level shifter : https://wikilab.myhumankit.org/images/2/29/PCA9306_-_Dual_bidirectional_I2C-bus_and_SMBus_voltage-level_translator.pdf


Level shifter spécifique : https://wikilab.myhumankit.org/images/c/cd/TXB0104_4-Bit_Bidirectional_Voltage-Level_Translator.pdf

Outils

  • Imprimante 3D
  • Fer à souder
  • Pistolet à colle
  • Four à refusion/plaque chauffante pour la soudure de CMS (Facultatif, il sera plus aisé de souder les petits connecteurs de nappes avec, mais plusieurs alternatives sont possibles. Il est déjà possible de le souder soi-même avec un fer à souder, mais cela demande d'être très précis. Il est sinon possible de prendre l'option de faire souder ces composants sur le PCB lors de la commande du circuit imprimé.)

Fichiers sources

Tous les fichiers sources sont disponibles sur le GitHub du projet : https://github.com/myhumankit/Canne_a_son

Fichiers 3D

Les fichiers 3d sont disponibles dans le dossier 3DFiles : https://github.com/myhumankit/Canne_a_son/tree/main/3DFiles

Il contient une archive Fusion 360, permettant de modifier les fichiers 3D pour les adapter à vos besoins. Cela permet par exemple de modifier le diamètre de la canne.

Il y a également deux fichiers stl déjà exportés de Fusion 360, dans le cas où le boîtier ne nécessite pas de modifications. Ces fichiers sont prévus pour une canne de 13mm de diamètre.

PCB

Les fichiers relatifs au PCB sont disponibles dans le dossier PCB : https://github.com/myhumankit/Canne_a_son/tree/main/PCB

Il contient le projet Eagle, permettant de modifier le schéma électrique et le pcb. Si nécessaire, les symboles et empreintes des composants sont disponibles dans le dossier LibComponent.

Il y a également les fichiers Gerber et Drill, ainsi que la liste des composants, permettant de réaliser la carte sans passer par le logiciel Eagle.


Voici le schéma du pcb : (Dispo sur le GitHub)


Canne a son pcb schematic.jpg


À noter que cette carte peut s'utiliser de deux manières :

  • Soit intégré dans le boîtier tel que présenté dans ce projet
  • Soit en tant que carte de développement pour des capteurs CH201/CH101 pour d'autres projets. Alors, le M5 Atom se fixe directement sur la carte, et se trouve comme cela :


Canne a son v2 pcb 3D.jpg

Programme microcontrôleur

Tous les fichiers de programmation sont disponibles sur le GitHub du projet : https://github.com/myhumankit/Canne_a_son

Le projet utilise PlatformIO, qui permet de programmer des arduinos à partir d'un IDE tel que Visual Studio Code.

Voici un mode opératoire pour l'installation de PlatformIO sur VSCode : https://platformio.org/install/ide?install=vscode


Une fois VSCode et PlatformIO installé, et le projet ouvert, il y a plusieurs fichiers qui composent l'architecture d'un projet PlatformIO. Les fichers .cpp (main.cpp, etc) sont dans le dossier "src", tandis que les fichiers .h sont dans le dossier "include".


Tous les paramètres du programme peuvent être modifiés via le fichier boardConfig.h, situé dans le dossier "include". Il est par exemple possible de configurer la fréquence des bips, le nombre de capteurs, ...

L'algorithme de détection peut quant à lui être modifié dans le fichier main.cpp, situé dans le dossier "src".


Pour téléverser le programme sur le M5 Atom, il suffit de choisir le mode "PlatformIO Upload" et de lancer la compilation. En cas de besoin, voici la doc de PlatformIO pour VSCode : https://docs.platformio.org/en/stable/integration/ide/vscode.html

Étapes de fabrication pas à pas

1ère étape : Impression 3D

Deux parties nécessitent d'être imprimé : la partie supérieure du boîtier et la partie se fixant sur la canne. Attention, ces deux pièces ne s'assemblent que dans un sens, elles ne sont pas réversibles.

2ème étape : PCB

Après avoir réalisé le PCB, il faut souder tous les composants dessus en suivant les indications du schéma électronique présent sur le GitHub.

3ème étape : Paramétrage du Lidar du mode UART à I2C

Le lidar fonctionne par défaut en mode UART. IL faut le paramétrer car le système est conçu pour l'utiliser avec le mode I2C.


Pour cela, il faut télécharger le logiciel du lidar, trouvable dans le lien suivant sous le nom "TFmini Plus_GUI" : https://github.com/TFmini/TFmini-Plus


Connecter ensuite le lidar à un Arduino ou un adaptateur USB-FTDI. Dans le cas d'un Arduino, connecter le pin RX au câble RX du lidar, et le pin TX au câble TX. Connecter le RESET de l'arduino au GND pour reprogrammer le lidar et non pas l'arduino. Dans le cas d'un adaptateur USB-FTDI, connecter le pin RX sur câble TX, et le pin TX au câble RX.


Démarrer le logiciel, se connecter à l'Arduino/adaptateur FTDI. Immédiatement des mesures s'affichent sur le graphe. Il faut alors envoyer les paramètres suivants grâce au champ de texte à gauche de la fenêtre du logiciel : 5A 05 0A 01.


Le lidar arrête alors de mettre à jour les données dans le graphe, ce qui montre qu'il est bien passé en mode I2C.

4ème étape : Assemblage du système

Pour information, la carte électronique visible sur les photos est une version de test, elle comporte des rajouts que vous n'aurez pas sur votre PCB.


Etape 4.1 : La 1ère étape de l'assemblage consiste à insérer à l'aide d'un fer à souder 4 écrous M3 dans la pièce imprimée en 3D comme sur la photo.


Canne a son V2 Fabric1.jpg


Etape 4.2 : Ensuite, il faut coller à l'aide d'un pistolet à colle les deux capteurs ultrasons CH201 à leurs emplacements. Pour cela, appliquer directement la colle sur le PCB côté capteur. Ne pas s'étonner si le cône se décolle et le recoller au PCB.


Canne a son V2 Fabric2.jpg


Etape 4.3 : Placer ensuite le lidar et le viser à l'aide de 2 vis M2.


Canne a son V2 Fabric3.jpg


La face avant de la partie imprimée en 3D doit alors ressembler à ceci :


Canne a son V2 Fabric4.jpg


Etape 4.4 : Prendre le câble Grove, et le couper en deux. Dénuder les fils jaune et blanc, et les souder comme sur la photo (Rectange 3). Souder également des câbles jumper qui se brancheront sur le M5 Atom (Rectangle 1 et 2).


Canne a son V2 Fabric5.jpg Canne a son V2 Fabric6.jpg


Etape 4.5 : Couper le câble USB A vers USB C en deux, et passer la partie USB A dans le trou de la seconde pièce imprimée en 3D. Il y a 4 fils.


Canne a son V2 Fabric7.jpg


Etape 4.6 : Souder les deux fils vert et blanc correspondant à la data entre les deux parties du câble USB.


Canne a son V2 Fabric8.jpg


Etape 4.7 : Il faut maintenant souder le fil rouge et le noir du câble USB sur le PCB au +5V et au GND (Rectangle 1), les fils qui iront à l'interrupteur (Rectangle 2), et le lidar (Ordre : Noir, Rouge, Blanc, Vert avec le Noir sur GND) (Reclangle 3).


Canne a son V2 Fabric9 bis.jpg


Etape 4.8 : Insérer l'interrupteur ON/OFF dans son emplacement et le souder (aux fils du rectangle 2 de la précédente image).


Canne a son V2 Fabric9.jpg


Etape 4.9 : Brancher la prise USB C sur le M5 Atom.


Canne a son V2 Fabric10.jpg


Etape 4.10 : Connecter le câble Grove et les câbles jumper au M5 Atom. Les coller au pistolet à colle pour s'assurer que rien ne bouge.


Canne a son V2 Fabric11.jpg


Etape 4.11 : Connecter les deux capteurs CH201 au PCB. Connecter au connecteur 1 (Rectangle 1) le capteur horizontal, et au connecteur 2 (Rectangle 2) le capteur orienté vers le ciel. L'ordre est important sinon les capteurs seront inversés dans le code.


Canne a son V2 Fabric12.jpg


Etape 4.12 : Fermer le boîtier avec les 4 vis M3x10mm. Le PCB se place dans la pièce en plastique fixée à la canne.


Etape 4.13 : Il ne reste plus qu'à programmer le microcontrôleur comme expliqué dans la partie Programme microcontrôleur.

Etape 4.14 : Fixer les écrous M3 au fer à souder aux emplacements prévus entre le support batterie et le boitier de l'électronique


Fixation du dispositif sur la canne

  • Désassembler la canne en enlevant l'extrémité qui est tenue par un élastique
  • Glisser le dispositif de la canne à son sur la canne et réassembler la canne

Retours utilisateurs

Plusieurs personnes ont testées le prototype en extérieur dans un environnement relativement calme avec une instructrice de locomotion du centre Angèle Vannier. Voici leurs retours.


R. voit très légèrement des ombres. Le dispositif de la canne à son lui apporte un sentiment de sécurité car les obstacles sont détectés avant de buter dedans. Cependant elle pense que le son peut être gênant quand on se déplace accompagné car le son parasite la discussion. Elle pense qu'un retour par vibration lui bien conviendrait bien mieux d'autant que le son de la canne focalise l'attention sur celui-ci au détriment de l'attention porté à l'environnement. Elle suggère de mettre la vibration soit directement sur la poignée de la canne, soit sur la sangle de la canne en l'élargissant sur le modèle des bâtons de marche nordique.


MN. a une vision périphérique uniquement. Etant donnée que la personne a une vision périphérique elle n'a pas vraiment d'intérêt à utiliser ce dispositif. le son lui demande de la concentration et gêne sa concentration pour analyser ce qu'elle a sous les pieds et ce qu'elle arrive encore à détecter visuellement. Cela lui demande trop d'effort cognitif.


S. a une vision tubulaire et porte une boucle magnétique car cette personne est aussi malentendante. Le test s'est d'abord fait sans la boucle magnétique et elle n'entendait absolument pas le son de la canne à son. Ensuite elle a porté sa boucle magnétique et nous avons mis le micro proche de la canne. Le son était pour elle très désagréable car trop aigu. De plus, la canne à son est programmé afin que la position verticale la désactive afin de stopper le son quand on souhaite faire une pause. S estime qu'il faudrait agrandir la plage de cette position vertical de la canne afin que même si on ne se trouve pas totalement à la verticale elle soit désactivée tout en n'impactant pas le fonctionnement normal de la canne quand elle est réactivée. Sa suggestion est également de régler le son autrement afin que les fréquences lui soient plus supportables.


A. ne voit pas de l'oeil droit mais voit avec l'oeil gauche. cependant il est très gênée car il a aussi un problème de nygstamus (les yeux bougent constamment de gauche à droite) et il est très sensible à la lumière qui est très éblouissante et le fatigue beaucoup. Cette personne trouve le dispositif super. Cependant il suggère de monter le son trop faible en extérieur et éventuellement de d'avoir ce retour sonore via un casque à conduction osseuse afin de pouvoir tout de même entendre l'environnement. Pour cette personne, ce qui change par rapport à une canne sans ce dispositif, c'est que les obstacles sont détectés avant de buter dedans et c'est sécurisant, ça évite de cogner dedans.Cette personne avait testé une canne à vibrations et il préfère de loin le retour sonore.De plus ce dispositif permet d'être mis en pause avec la position verticale ce qui est très appréciable. La canne à vibrations qu'il avait testé ne lui convenait pas car elle vibrait en permanence puisqu'elle n'avait pas cette option. Cette personne trouve la canne à son impressionnante et est séduit par ce système. Une amélioration serait de pouvoir choisir entre vibration et son, et même de pouvoir coupler les deux.


Les points d'attention et à améliorer:

- Le boîtier de la canne à son tourne autour de la canne car chaque élément de la canne tourne sur lui-même. Or, la canne à son a besoin d'une position fixe pour être efficace. Elle doit être sur le dessus de la canne.

- Les utilisateurs doivent prendre la canne en positionnant l'index sur le méplat et faire des mouvements de balayage de largeur du corps en avec comme axe central le milieu du corps.

- En montée d'escalier, il ne faut pas que la canne soit trop verticale (sinon elle se désactive) ou trop horizontale (la détection ne se fait pas correctement)

- En locomotion, avec une canne classique, la bonne pratique est de compter les marches en positionnant la canne bras tendu avec la canne droite (verticale par rapport au sol)

- Ajouter un indicateur de la charge de batterie.

- Préciser le temps d'autonomie de la batterie


MAJ : Canne à son V2.1

Suite aux retours utilisateurs, il semblait nécessaire de rajouter un mode de vibrations pour effectuer un retour haptique à l'utilisateur.


La version 2.0 de la canne a été adaptée afin de rajouter cette fonctionnalité de manière rapide, sans effectuer un nouveau gros développement. Par conséquent, elle est relativement fastidieuse à construire et est plus destinée à réaliser des tests pour obtenir des retours utilisateurs afin d'améliorer le prototype.


Un interrupteur 3 positions est maintenant présent sur le côté droit du boitier. Il permet de choisir le mode de retour d'information à l'utilisateur entre un retour haptique, sonore, ou les deux en même temps.

Le moteur vibrant, présent au plus proche de la main de l'utilisateur, permet d'indiquer des obstacles de manière à travers des vibrations.

Un mécanisme permettant d'empêcher la rotation entre les deux tubes supérieurs de la canne a également été réalisé pour permettre de continuer à la plier malgré les capteurs.


Tous les fichiers sources de la version 2.1 de la canne ont été mis à jour sur le GitHub du projet.


CanneASonV2.1.jpg


Changelog

  • Remplacement M5-Atom par un ESP32-C3 SuperMini
  • Ajout d'un IMU pour remplacer celui initialement présent dans l'Atom
  • Ajout d'un vibreur
  • Ajout d'un interrupteur 3 position de sélection Vibreur /Son / Vibreur + Son

Matériel supplémentaire

Seul le M5 Atom n'est pas à commander parmi toute la liste de matériel de la canne à son V2.0. Il a été retiré du projet car il ne contenait plus assez de pins pour les nouveaux besoins.


Cependant, il y a besoin de matériel supplémentaire :


  • ESP32 C3 SuperMini
  • IMU MPU6050
  • Moteur vibrant
  • Mosfet + résistance 10k + Diode (cf Mosfet moteur vibrant)
  • Interrupteur 3 positions

Assemblage de la canne

Le mode opératoire présenté pour la V2.0 reste similaire, à la différence de quelques changements :


Réaliser l'assemblage jusqu'à l'étape 4.3 puis suivre les étapes suivantes :

Ajout de l'IMU

L'IMU peut facilement être soudé et plaqué contre le PCB par le dessous, en reliant les connexions suivantes sur le PCB d'origine.


CanneASonV2.1 IMU sch.png CanneASonV2.1 IMU soudure.jpg


Le fixer ensuite à l'aide de scotch d'électricien.

Soudure de l'ESP32

De la même façon que l'IMU, la carte de développement de l'ESP32-C3 va venir être greffée au PCB d'origine. Voici le schéma de câblage à réaliser :


CanneASonV2.1 ESP32 sch.png CanneASonV2.1 ESP32 soudure.jpg

Upgrade de la canne à son V2.0 en V2.1

Important : cette étape n'est nécessaire que pour transformer un modèle de canne V2.0 en V2.1. Si vous créez une canne V2.1 de zéro, merci de passer cette étape.


Il faut percer un trou pour permettre de placer l'interrupteur 3 positions sur la droite du boitier de la canne.


Il est également nécessaire d'obstruer l'emplacement du M5 Atom, maintenant inutilisé. Pour faire cela, il suffit de coller la pièce imprimable en 3D ("AdaptateurBoitier_V2.0_to_V2.1.stl" sur le GitHub) à l'aide d'un pistolet à colle à l'emplacement de l'Atom.

Ajout de l'interrupteur

L'interrupteur se place dans le trou prévu à cet effet sur la droite du boitier. Il faut ensuite y souder des fils à connecter à l'ESP32 en respectant le schéma de câblage suivant :


CanneASonV2.1 Switch sch.png CanneASonV2.1 Switch soudure.jpg


Ajout du buzzer

Un buzzer a été placé au fond du boitier de la manière suivante :


CanneASonV2.1 Buzzer soudure.jpg


Il a été soudé en parallèle des deux buzzers déjà présents sur le PCB.

Ajout du moteur vibrant

Le vibreur nécessite d'être contrôlé via un mosfet. Pour cela, il est nécessaire de réaliser le schéma suivant sur une plaque de prototypage, et de l'intégrer dans le boitier :


CanneASonV2.1 Mosfet vibreur.png


Reprendre les étapes 4.5 à 4.14

Assemblage sur la canne

Il ne reste maintenant plus qu'à assembler toutes les pièces sur la canne afin de finaliser le prototype, à l'image des photos suivantes :


CanneASonV2.1 Canne assemblée.jpg CanneASonV2.1 Canne assemblée2.jpg