Différences entre versions de « Projets:Canne a son V2 »
Ligne 288 : | Ligne 288 : | ||
− | 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 : Rouge, Blanc, Vert | + | 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). |
Version du 2 novembre 2023 à 17:04
Canne a son V2 | |
---|---|
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 :
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.
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 :
- 3x Résistances | Valeur : 10k | Package : 0805
- 4x Résistances | Valeur : 2.2k | Package :0805
- 1x Résistance | Valeur : 200k | Package : 0805
- 3x Résistances | Valeur : 8.33k | Package : 0805
- 2x Condensateurs | Valeur : 0.1u | Package : 0805
- 1x Condensateur | Valeur : 10n | Package : 0805
- 1x Condensateur | Valeur : 1u | Package : 0805
- 1x Condensateur | Valeur : 2.2u | Package : 0805
- 1x Diode de roue libre buzzer | Ref : S07M-GS18 | Lien : https://fr.rs-online.com/web/p/diodes-de-commutation/7104550
- 2x Connecteurs Molex nappe | Ref : 503480-0800 (difficile à souder, peut-être envisager de commander le PCB avec ce composant déjà soudé) | Lien : https://fr.rs-online.com/web/p/connecteurs-fpc/8967614
- 1x Mosfet N | Ref : BSS138 | Lien : https://fr.rs-online.com/web/p/transistors-mosfet/2352648
- 2x Buzzers | Ref : KSSG13J12-N | Lien : https://fr.rs-online.com/web/p/buzzers-piezo/7542047
- 1x Régulateur de tension 1.8V | Ref : LP2985A-18DBVR | Lien : https://fr.rs-online.com/web/p/regulateurs-de-tension/6613671
- 1x I2C level shifter | Ref : PCA9306D,118 | Lien : https://fr.rs-online.com/web/p/expandeurs-e-s/2194615
- 1x Level shifter spécifique | Ref : TXB0104D | Lien : https://fr.rs-online.com/web/p/translator-de-ci/7092778
Autres composants du boîtier
- 1x Microcontrôleur | Ref : M5 Atom | Lien : https://shop.m5stack.com/products/atom-matrix-esp32-development-kit
- 1x Cable Grove | Lien : https://shop.m5stack.com/products/4pin-buckled-grove-cable
- 1x Lidar | Ref : TF Mini Plus | Lien : https://www.gotronic.fr/art-capteur-de-distance-lidar-tf-mini-plus-28966.htm
- 2x Capteurs Ultrasons | Ref : CH201 | Lien : https://fr.rs-online.com/web/p/kits-de-developpement-pour-capteur/2182202
- 2x Nappes pour capteur US 8 voies, pas de 0.5mm | Ref : 179-2607 | Lien : https://fr.rs-online.com/web/p/cables-en-nappe/1792607
- 1x Interrupteur 10x15mm | Ref : PRK22J5BBBNN | Lien : https://fr.rs-online.com/web/p/interrupteurs-a-bascule/8681559
- 1x Batterie externe USB | Ref : Xtorm - Power Bank Fuel - 5000 mAh - FS201 | Lien : https://www.amazon.fr/Xtorm-AT-FS201-Power-Pebble-Power-5000-mAh/dp/B076GK1RL8/
- 1x Cable USB A vers USA C standard, de préférence 1m
- 4x Vis M3x10mm
- 2x Vis M3x16mm
- 6x Ecrous M3
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)
À 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 :
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.
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.
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.
Placer ensuite le lidar et le viser à l'aide de 2 vis M2.
La face avant de la partie imprimée en 3D doit alors ressembler à ceci :
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).
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.
Souder les deux fils vert et blanc correspondant à la data entre les deux parties du câble USB.
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).
Insérer l'interrupteur ON/OFF dans son emplacement et le souder (aux fils du rectangle 2 de la précédente image).
Brancher la prise USB C sur le M5 Atom.
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.
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.
Fermer le boîtier avec les 4 vis M3x10mm. Le PCB se place dans la pièce en plastique fixée à la canne.
Il ne reste plus qu'à programmer le microcontrôleur comme expliqué dans la partie Programme microcontrôleur.