Table des matières:

Radar périphérique pour les malvoyants : 14 étapes
Radar périphérique pour les malvoyants : 14 étapes

Vidéo: Radar périphérique pour les malvoyants : 14 étapes

Vidéo: Radar périphérique pour les malvoyants : 14 étapes
Vidéo: Télécommande Universelle à grandes touches pour malvoyant ! 👀 2024, Novembre
Anonim
Radar périphérique pour les malvoyants
Radar périphérique pour les malvoyants

À la suite d'un horrible accident, un de mes amis a récemment perdu la vue de son œil droit. Il était au chômage depuis longtemps et quand il est revenu, il m'a dit que l'une des choses les plus énervantes à laquelle il doit faire face est le manque de savoir ce qui est de son côté. Moins de vision périphérique signifie se cogner aux choses et aux gens. Cela m'a dérangé. J'ai décidé qu'il devait y avoir quelque chose que nous puissions faire.

Je voulais construire un appareil capable de mesurer la distance par rapport aux objets du côté droit de mon ami. Mon plan est d'utiliser un moteur haptique pour faire vibrer l'appareil de manière inversement proportionnelle à la distance à un objet. Ensuite, si les objets étaient loin, le moteur ne vibrerait pas et comme un objet était plus proche, il commencerait à vibrer à un faible niveau. Si l'objet était proche, il vibrerait à un niveau beaucoup plus élevé (ou à n'importe quel niveau que vous vouliez). L'appareil devrait être suffisamment petit pour s'accrocher au côté des lunettes avec le capteur pointant vers la droite. Mon ami mettrait l'appareil sur le côté droit de ses lunettes mais bien sûr pour quelqu'un d'autre, cela pourrait être le côté gauche.

Je me suis souvenu que j'avais des capteurs de distance acoustiques à la maison. Mais, ils sont un peu gros et volumineux, moins précis et seraient probablement trop lourds pour une utilisation sur des lunettes. J'ai commencé à chercher autre chose.

Ce que j'ai trouvé, c'est le capteur de temps de vol ST Electronics VL53L0X. Il s'agit d'un laser infrarouge et d'un détecteur infrarouge dans un seul emballage. Il émet une impulsion de lumière laser en dehors de la plage visible par l'homme (940 nm) et enregistre le temps qu'il faut pour détecter l'impulsion réfléchie. Il divise ce temps par 2 et le multiplie par la vitesse de la lumière produisant une distance très précise en millimètres. Le capteur peut détecter une distance jusqu'à 2 mètres mais comme je l'ai vu, 1 mètre est plus optimal.

En l'occurrence, Adafruit a une carte de dérivation VL53L0X. J'avais donc besoin d'un moteur vibrant, dont ils disposaient également, et d'un microcontrôleur pour tout faire fonctionner. J'avais un PJRC Teensy 3.2 sous la main. Bien que plus grand que ce que je voulais, il avait la capacité d'être cadencé à une vitesse lente. Je voulais réduire la vitesse d'horloge afin d'économiser de l'énergie. Et en ce qui concerne la source d'alimentation, j'avais un régulateur de suralimentation Sparkfun dans ma boîte à ordures avec un support de pile AAA. J'avais à peu près tout ce dont j'avais besoin.

Étape 1: Premier prototype

Premier prototype
Premier prototype
Premier prototype
Premier prototype

J'ai pris les pièces que j'avais sous la main et j'ai fait un prototype portable de l'appareil que j'envisageais. J'ai imprimé en 3D la poignée et la plaque de montage et soudé toute l'électronique sur un protoboard Adafruit. J'ai connecté le moteur vibrant au Teensy via un transistor 2N3904 NPN. J'ai ajouté un potentiomètre à utiliser pour définir la distance maximale à laquelle l'appareil répondrait.

Je l'ai fait fonctionner le week-end suivant (voir la photo ci-dessus). Ce n'était pas joli mais cela démontrait le principe. Mon ami pourrait tenir l'appareil sur son côté droit et tester si oui ou non l'appareil serait utile et aider à affiner ce qu'il voulait pour les fonctionnalités.

Étape 2: Prototype #2

Prototype 2
Prototype 2
Prototype 2
Prototype 2
Prototype 2
Prototype 2

Après le premier prototype portatif, j'ai commencé à faire une version plus petite. Je voulais me rapprocher de mon objectif de fabriquer quelque chose qui puisse tenir sur des lunettes. Le Teensy que j'ai utilisé sur la version portable m'a permis de ralentir l'horloge pour économiser de l'énergie. Mais la taille allait être un facteur et je suis donc passé à un Adafruit Trinket M0. Alors que sa fréquence d'horloge est de 48 MHz, le processeur ARM sur lequel il est basé peut être cadencé plus lentement. En utilisant l'oscillateur RC interne, il peut fonctionner à 8, 4 2 et même 1 MHz.

Le prototype n°2 s'est mis en place assez rapidement car j'avais tout assemblé le week-end suivant. Le circuit était le même que le prototype n°1 à l'exception de l'ARM M0. J'ai imprimé en 3D un petit boîtier et mis des guides à l'arrière pour qu'il puisse être glissé sur des lunettes. Voir l'image ci-dessus. Initialement, il est cadencé à la fréquence de 48 MHz.

Étape 3: Prototype #3

Prototype #3
Prototype #3

Donc, ce Instructable commence vraiment ici. J'ai décidé de faire un dernier prototype. Je décide de le serrer aussi petit que possible sans utiliser un PWB personnalisé (c'est là où je suis sûr que nous nous dirigeons). Le reste de ce Instructable sera de vous montrer comment en faire un. Tout comme les gens qui fabriquent des mains imprimées en 3D pour les enfants handicapés, j'espère que les gens les fabriqueront pour toute personne ayant une perte de vision similaire dans un œil.

J'ai conservé la même liste de pièces que le prototype n°2 mais j'ai décidé de retirer le potentiomètre. Après avoir parlé avec mon ami, nous avons décidé de définir la distance maximale à l'aide d'un logiciel. Parce que j'ai la possibilité d'utiliser un capteur tactile à l'aide du Teensy, nous pouvons toujours définir la distance maximale en le touchant. Une touche définit une distance courte, ou plusieurs touches une distance plus longue, une autre touche la distance la plus longue, puis pour une autre touche, retournez au début. Mais dans un premier temps, nous utiliserons une distance fixe pour démarrer.

Étape 4: Pièces

les pièces
les pièces

Pour ce prototype, j'avais besoin d'une planche plus petite. Je suis allé avec un protoboard Sparkfun (PRT-12702) car ses petites dimensions (environ 1,8" X 1,3") seraient une bonne taille pour tirer.

J'avais également besoin d'utiliser autre chose qu'une pile AAA comme source d'alimentation. Un LiPo semblait être le bon choix car il aurait une capacité de stockage et un poids léger. J'ai essayé une pile bouton mais elle n'avait pas assez de puissance pour gérer le moteur très longtemps. J'ai choisi un petit LiPo d'une capacité de 150 mAH.

J'allais rester avec le Trinket M0 et bien sûr, le breakout board VL53L0X.

Maintenant que nous en sommes aux détails, voici une liste de pièces pour ce prototype:

Adafruit VL53L0X Time of Flight Distance Sensor - PRODUCT ID: 3317 Adafruit - Vibrating Mini Motor Disc - PRODUCT ID: 1201 Adafruit - Lithium Ion Polymer Battery - 3.7v 150mAh - PRODUCT ID: 1317 SparkFun - Breadboard soudable - Mini - PRT-12702 Sparkfun - Connecteur JST à angle droit - Traversant 2 broches - PRT-09749 Résistance de 10K ohms - Junkbox (regardez sur votre sol) Transistor 2N3904 NPN - Junkbox (ou téléphonez à un ami) Du fil de raccordement (j'ai utilisé des torons de calibre 22)

Pour charger la batterie LiPo, j'ai également récupéré:

Adafruit - Micro Lipo - Chargeur USB LiIon/LiPoly - v1 - ID PRODUIT: 1304

Étape 5: Schéma

Schématique
Schématique

Le schéma de cet appareil est présenté ci-dessus. La saisie tactile sera pour une future version mais elle est quand même montrée dans le schéma. De plus, la résistance de 10K entre le Trinket M0 et la base du 2N3904 fournit juste assez de base pour allumer le moteur sans le claquer trop fort.

Ce qui suit est une description de l'assemblage étape par étape.

Étape 6: Le Protoboard

Le Protoboard
Le Protoboard

Beaucoup d'entre vous qui ont de l'expérience le savent, mais c'est pour ceux qui débutent dans la soudure de protoboards:

Le protoboard Sparkfun (PRT-12702) illustré ci-dessus a 17 colonnes (groupes) de 5 broches de chaque côté d'un écart de trois dixièmes de pouce. Chaque colonne verticale de 5 broches de part et d'autre de l'interstice sont communes les unes aux autres. J'entends par là que toute connexion à une broche du groupe est une connexion à toutes les autres broches du groupe. Pour cette carte, cela ne semble pas évident mais vous pouvez le vérifier si vous utilisez un DVM (Digital Volt Meter). Si vous regardez au dos, vous pouvez à peine distinguer les traces reliant les groupes.

Étape 7: Placement des composants

Placement des composants
Placement des composants
Placement des composants
Placement des composants

Vous devez probablement souder des bandes de broches à la fois au Trinket M0 et au VL53L0X. Les deux sont livrés avec les bandes mais ils doivent être soudés. Adafruit a des instructions dans son centre d'apprentissage pour ces deux parties. Si vous êtes nouveau dans ce domaine, veuillez vous y rendre (ici et ici) avant de souder les bandes sur les cartes. Les bandes à broches offrent un profil plus bas qu'une prise.

La première chose à considérer lors de la soudure de quelque chose sur un protoboard avec un espace limité est le placement des composants. J'ai placé le Trinket et le VL53L0X dans les positions indiquées dans la figure ci-dessus. Le Trinket a des broches sur les deux bords de la carte mais le VL53L0X a 7 broches toutes sur un bord de sa carte. Le côté du VL53L0X qui n'a pas de broches que nous utiliserons pour connecter certains composants… comme nous le verrons.

J'ai également soudé l'interrupteur à glissière en position et j'ai soudé le 2N3904. J'ai assombri les trous où ces pièces sont placées et, pour le 2N3904, j'ai noté quelles broches sont le collecteur, la base et l'émetteur. Lorsque vous le soudez pour la première fois, vous devez le laisser perpendiculaire à la carte afin de pouvoir souder d'autres connexions. Plus tard, vous pourrez le plier (avec précaution) pour qu'il soit plus proche de la planche.

REMARQUE: le disjoncteur de batterie JST n'est PAS soudé à la carte pour le moment. Il sera soudé à l'arrière de la carte mais seulement APRÈS avoir soudé nos autres connexions. Ce sera la dernière chose que nous souderons.

Étape 8: Fils

Fils
Fils

Le schéma ci-dessus montre à nouveau le protoboard avec des trous sombres où les composants seront situés. J'ai ajouté les étiquettes pour eux le long des bords pour faciliter le câblage. Notez que le moteur de vibration est affiché, mais il sera situé à l'arrière de la carte et sera connecté presque en dernier, donc pour l'instant, ignorez-le. Je montre également le JST Battery Breakout avec une ligne pointillée. Comme identifié à l'étape précédente, ne le connectez pas mais laissez les 4 trous en haut de la carte ouverts (c'est-à-dire ne les soudez pas).

Je suppose à ce stade que vous savez comment dénuder un fil, étamer les extrémités avec de la soudure et souder sur une carte. Sinon, allez voir l'un des Instructables sur la soudure.

Pour cette étape, soudez les fils comme indiqué en jaune. Les extrémités sont les trous auxquels vous devez les souder. Vous devez également souder la résistance de 10K ohms à la carte comme indiqué. Les connexions effectuées sont:

1. Une connexion de la borne positive de la batterie à la borne COMmon (centre) de l'interrupteur à glissière. Un côté de l'interrupteur à glissière entrera en contact avec l'entrée BAT du bijou. Le régulateur embarqué du Trinket génère 3,3 V à partir de la tension d'entrée BAT.

2. Une connexion entre la borne négative (terre) de la batterie et la terre du bibelot.

3. Une connexion de la borne négative (terre) de la batterie à l'émetteur du 2N3904

4. Une connexion entre la broche 3,3 volts (3V) du bibelot et le VIN du VL53L0X. Le VL53L0X régulera en outre cela à 2,8 volts pour son propre usage. Il amène également cette tension à une broche, mais nous n'en avons pas besoin, elle sera donc laissée non connectée.

Étape 9: Plus de fils

Plus de fils
Plus de fils

Alors maintenant, nous ajoutons le prochain groupe de fils comme indiqué ci-dessus. Voici une liste de chaque connexion:

1. Une connexion entre la broche du Trinket étiquetée 2 et la broche SCL du VL53L0X. C'est le signal d'horloge I2C. Le protocole série I2C est utilisé par le Trinket pour communiquer avec le VL53L0X.

2. Une connexion de la broche du Trinket étiquetée comme 0 (zéro) à la broche SDA du VL53L0X. C'est le signal de données I2C.

3. Une connexion de la broche VL53L0X GND à travers l'espace sur le protoboard à l'émetteur du 2N3904. Cela fournit la masse au VL53L0X.

4. Une connexion de la broche du Trinket étiquetée comme 4 à la résistance 10K. C'est l'entraînement du moteur de vibration. Ce fil doit absolument être soudé à l'arrière de la carte si vous choisissez mon point de connexion.

N'oubliez pas que tout groupe vertical de 5 broches est commun, vous pouvez donc vous connecter n'importe où dans ce groupe qui vous convient. Vous remarquerez sur les photos de ma planche que j'ai changé quelques-uns de mes points de connexion. Tant qu'il s'agit de la bonne connexion, le tampon que vous choisissez convient.

Étape 10: Moteur de vibration

Moteur à vibrations
Moteur à vibrations

Le moteur de vibration est livré avec un autocollant pelable à l'arrière. Vous retirez ceci pour révéler un matériau collant qui permet au moteur d'être collé à l'arrière de la planche (mais, voir le commentaire ci-dessous avant de le coller). Je l'ai placé à gauche (en regardant à l'arrière de la carte) de la carte JST Battery Breakout que nous n'avons pas encore fixée. Alors, laissez un peu d'espace pour la carte de dérivation de batterie JST. Je voulais également m'assurer que le boîtier métallique du moteur ne court-circuitait aucune broche à travers l'espace du protoboard. J'ai donc coupé un petit morceau de ruban adhésif double face et l'ai collé à l'arrière du côté collant du moteur de vibration. Ensuite, je l'ai poussé sur le dos de la planche. Cela aide à garder le boîtier métallique haut et loin de toutes les broches. Cependant, veillez à le placer de manière à ne court-circuiter aucune broche.

Soudez le fil rouge du moteur de vibration à la broche 3V du Trinket. Le fil noir du moteur de vibration est soudé au collecteur du 2N3904. Lorsque le logiciel pulse le 2N3904 (fournit un 1 logique comme 3,3 V), le transistor s'allume en connectant le fil noir du moteur de vibration à la terre (ou à proximité). Cela fait vibrer le moteur.

J'aurais pu ajouter de la capacité au point de connexion du fil rouge du moteur de vibration. Mais il y a une capacité sur la ligne 3,3 V du bijou, donc je suis sûr que ça va, mais si vous voulez ajouter une autre capacité, vous pouvez… tant que vous pouvez la presser. D'ailleurs, le fil rouge pourrait être connecté directement sur le côté positif de la batterie LiPo. J'ai choisi le côté 3,3V pour garder la tension constante. Jusqu'à présent, cela semble bien fonctionner.

Étape 11: Dernier point mais non le moindre…

Enfin et surtout…
Enfin et surtout…
Enfin et surtout…
Enfin et surtout…

Enfin, nous connectons la carte de dérivation de la batterie JST à l'arrière du protoboard. J'ai soudé des broches sur la carte et placé la carte de dérivation de la batterie JST avec son côté supérieur face à la carte proto, comme indiqué ci-dessus. Assurez-vous d'avoir soudé les fils de la batterie positive et de la masse aux bonnes broches lorsque vous placez cette pièce. Si vous vous trompez, vous inverserez la polarité des pièces et les détruira probablement toutes. Alors s'il vous plaît, vérifiez et revérifiez avant de souder et de brancher la batterie.

Étape 12: Logiciel

Logiciel
Logiciel

Pour installer et/ou modifier le logiciel, vous aurez besoin de l'IDE Arduino et des fichiers de la carte pour le Trinket M0 ainsi que des bibliothèques pour le VL53L0X. Tout cela est ici, ici et ici.

Suivez les instructions d'utilisation de l'Adafruit M0 sur leur site d'apprentissage ici.

Une fois le logiciel chargé, la carte devrait démarrer et fonctionner sur la connexion série USB. Déplacez le côté de la planche avec le VL53L0X près d'un mur ou de votre main et vous devriez sentir le moteur vibrer. La vibration devrait diminuer en amplitude à mesure que l'objet est éloigné de l'appareil.

Un comportement observé dans l'appareil est quelque peu expliqué dans les commentaires du code source. Mais le graphique ci-joint devrait bien expliquer ce point. L'appareil ne doit commencer à vibrer qu'à environ 863 mm d'un objet. Il atteindra son niveau de vibration maximum à 50 mm d'un objet. Si vous vous rapprochez d'un objet à moins de 50 mm, l'appareil ne produira pas plus de vibrations qu'à 50 mm.

Étape 13: Enceinte

Enceinte
Enceinte
Enceinte
Enceinte
Enceinte
Enceinte
Enceinte
Enceinte

J'ai conçu un boîtier et je l'ai imprimé en 3D en plastique ABS. Vous pouvez l'imprimer en PLA ou en ABS ou dans n'importe quel matériau de votre choix. J'utilise de l'ABS car je peux souder des pièces à l'acétone sur la planche si nécessaire. La carte que j'ai conçue est simple et a un trou pour le port USB sur le Trinket et un trou pour l'interrupteur d'alimentation. J'ai fait emboîter les deux planches avec de petits bras sur les côtés de la boîte. Je ne l'aime pas beaucoup donc je vais probablement le changer. Bien sûr, vous pouvez apporter les modifications que vous souhaitez voir.

En ce moment pour cette version, il faut ouvrir la boite pour déconnecter la batterie LiPo pour la recharger. Si je crée un circuit imprimé pour ce projet, j'ajouterai un autre connecteur pour rendre la batterie accessible sans ouvrir la boîte. Il est peut-être possible de le faire sur cette conception de protoboard et de faire un trou pour le connecteur de charge. Si vous voulez essayer ceci, partagez vos résultats.

J'ai réussi à concevoir une boîte que je ne détestais pas complètement. Nous allons utiliser celui-ci pour tester le système. J'ai joint le haut et le bas de la boîte sous forme de fichiers STL ainsi que le support/guide que j'ai ajouté au bas. J'ai ajouté une paire de guides utilisant de l'acétone pour souder chimiquement les pièces ensemble. Si vous faites cela, soyez prudent. Vous pouvez voir l'assemblage ci-dessus.

Étape 14: Et maintenant ?

Maintenant quoi?
Maintenant quoi?

Vérifiez-moi… Je suis vieux et j'ai peut-être oublié quelque chose ou fait une erreur. Je suis en train de relire et de vérifier cela, mais je peux encore manquer des choses. N'hésitez pas à me dire ce que j'ai fait/fait de mal.

Et, maintenant que vous avez construit la carte du radar périphérique et que vous l'avez chargée et que la batterie LiPo est dans un joli boîtier imprimé en 3D (quand je l'ai fini ou, si vous avez créé la vôtre), que faites-vous ensuite ? Je pense que vous devriez acquérir de l'expérience avec son fonctionnement et apporter des modifications au logiciel. Le contrat de licence du logiciel stipule que vous pouvez l'utiliser, mais si vous apportez des modifications, vous devez les partager. Je ne dis pas que le logiciel de ce projet est compliqué ou étonnant d'une manière ou d'une autre. Il atteint ses objectifs, mais il y a place à amélioration. Aidez-nous à améliorer cet appareil et partagez-le avec nous tous. N'oubliez pas que ce projet consiste à aider les gens. Alors, aidez-moi !

Conseillé: