Taula de continguts:

Radar perifèric per a persones amb discapacitat visual: 14 passos
Radar perifèric per a persones amb discapacitat visual: 14 passos

Vídeo: Radar perifèric per a persones amb discapacitat visual: 14 passos

Vídeo: Radar perifèric per a persones amb discapacitat visual: 14 passos
Vídeo: Жареная рыба без костей, селедка 2 способа рассказала моя бабушка 2024, De novembre
Anonim
Radar perifèric per a persones amb discapacitat visual
Radar perifèric per a persones amb discapacitat visual

Com a resultat d’un terrible accident, un amic meu va perdre la vista recentment a l’ull dret. Va estar molt de temps sense feina i, quan va tornar, em va dir que una de les coses més inquietants que ha d’afrontar és la manca de saber què hi ha al seu costat dret. Menys visió perifèrica significa xocar amb les coses i les persones. Això em va molestar. Vaig decidir que hi havia d’haver alguna cosa que poguéssim fer.

Volia construir un dispositiu que pogués mesurar la distància als objectes del costat dret del meu amic. El meu pla és utilitzar un motor hàptic per fer vibrar el dispositiu inversament proporcional a la distància a un objecte. Llavors, si els objectes estaven lluny, el motor no vibraria i, com que un objecte estigués més a prop, començaria a vibrar a un nivell baix. Si l'objecte estigués a prop, vibraria a un nivell molt superior (o al nivell que vulgueu). El dispositiu hauria de ser prou petit per penjar-se al costat dels vidres amb el sensor apuntat cap a la dreta. El meu amic posaria el dispositiu al costat dret de les ulleres, però, per descomptat, per a una altra persona, podria ser el costat esquerre.

Vaig recordar que tenia uns sensors de distància acústics a casa. Però són una mica grans i voluminosos, menys precisos i probablement serien massa pesats per utilitzar-los en ulleres. Vaig començar a buscar alguna cosa més.

El que vaig trobar va ser el sensor de temps de vol ST Electronics VL53L0X. Es tracta d’un làser d’infrarojos i un detector d’infrarojos en un sol paquet. Emet un pols de llum làser fora del rang visible de l’ésser humà (940 nm) i registra el temps transcorregut que es triga a detectar el pols reflectit. Es divideix aquest temps per 2 i es multiplica per la velocitat de la llum produint una distància molt precisa en mil·límetres. El sensor pot detectar una distància de fins a 2 metres, però com he vist, 1 metre és més òptim.

Com passa, Adafruit té una placa de sortida VL53L0X. Per tant, necessitava un motor vibrador, que també tenien, i un microcontrolador per executar-ho tot. Vaig tenir a mà un PJRC Teensy 3.2. Tot i que era més gran del que volia, tenia la possibilitat de marcar a una velocitat lenta. Volia baixar la velocitat del rellotge per estalviar energia. I pel que fa a una font d’energia, tenia un regulador d’alimentació Sparkfun a la caixa brossa juntament amb un suport de bateria AAA. Tenia gairebé tot el que necessitava.

Pas 1: primer prototip

Primer prototip
Primer prototip
Primer prototip
Primer prototip

Vaig agafar les peces que tenia a mà i vaig fer un prototipus de mà del dispositiu que imaginava. Vaig imprimir en 3D la nansa i la placa de muntatge i vaig soldar tota l'electrònica en un protoard Adafruit. Vaig connectar el motor vibrant al Teensy mitjançant un transistor NPN 2N3904. He afegit un potenciòmetre per utilitzar-lo per definir la distància màxima a la qual respondria el dispositiu.

El vaig tenir funcionant el proper cap de setmana (vegeu la imatge superior). No va ser bonic, però va demostrar el principi. El meu amic podria agafar el dispositiu al costat dret i provar si el dispositiu seria útil o no i per ajudar a refinar el que volia per a les funcions.

Pas 2: prototip 2

Prototip # 2
Prototip # 2
Prototip # 2
Prototip # 2
Prototip # 2
Prototip # 2

Després del primer prototipus de mà, vaig començar a fer una versió més petita. Volia apropar-me al meu objectiu de fer alguna cosa que pogués cabre a les ulleres. El Teensy que vaig utilitzar a la versió de mà em va permetre alentir el rellotge per estalviar energia. Però la mida seria un factor important i, per tant, vaig canviar a un Adafruit Trinket M0. Tot i que la seva freqüència de rellotge és de 48 MHz, el processador ARM en què es basa es pot marcar més lentament. En utilitzar l’oscil·lador RC intern pot funcionar a 8, 4 2 i fins i tot a 1 MHz.

El prototip 2 es va reunir bastant ràpid, ja que ho tenia tot junt el cap de setmana següent. El circuit era el mateix que el prototip 1, excepte el model ARM M0. Vaig imprimir en 3D un petit recinte i vaig posar guies a la part posterior perquè es pogués lliscar a les ulleres. Vegeu la imatge superior. Inicialment s’està marcant a la velocitat de 48 MHz.

Pas 3: prototip 3

Prototip # 3
Prototip # 3

Per tant, aquest instructiu realment comença aquí. Vaig decidir fer un darrer prototip. Decideixo apretar-lo tan petit com puc fer servir un PWB personalitzat (que és cap on estic segur que ens dirigim). La resta d’aquest instructiu us mostrarà com fer-ne un. Igual que les persones que fabriquen mans impreses en 3D per a nens amb discapacitat, la meva esperança és que les persones les facin a qualsevol persona amb una pèrdua de visió similar en un ull.

Vaig mantenir la llista de parts igual que el prototip 2, però vaig decidir eliminar el potenciòmetre. Després de parlar amb el meu amic, vam decidir fer la distància màxima establerta mitjançant el programari. Com que tinc la possibilitat d’utilitzar un sensor tàctil amb Teensy, sempre podríem ajustar la distància màxima tocant. Un toc estableix una distància curta, o més, una distància més llarga, un altre toca la distància més llarga i, per un toc més, envolteu-lo fins al principi. Però, al principi, utilitzarem una distància fixa per començar.

Pas 4: parts

Parts
Parts

Per a aquest prototip necessitava una placa més petita. Vaig anar amb un protoboard Sparkfun (PRT-12702) perquè les seves dimensions reduïdes (aproximadament 1,8 "X 1,3") serien de bona mida.

També necessitava utilitzar una altra cosa que una bateria AAA com a font d’energia. Un LiPo semblava l’elecció correcta, ja que tindria capacitat d’emmagatzematge i poc pes. Vaig provar una cèl·lula de moneda, però no va tenir prou potència per manejar el motor durant molt de temps. He triat un LiPo petit que té una capacitat de 150 mAH.

Anava a quedar-me amb el Trinket M0 i, per descomptat, amb el tauler de sortida VL53L0X.

Ara que ja tenim els detalls, aquí teniu una llista de les parts d’aquest prototip:

Sensor de distància de temps de vol Adafruit VL53L0X - Codi de producte: 3317 Adafruit - Mini disc vibrant - Codi de producte: 1201 Adafruit - Bateria de polímer de ions de liti - 3,7 v 150 mAh - Codi de producte: 1317 SparkFun - Tauler de pa soldable - Mini - PRT-12702 Sparkfun - Connector d'angle dret JST - 2 forats passants - PRT-09749 10K ohm resistors - Junkbox (mireu al terra) 2N3904 NPN Transistor - Junkbox (o truqueu a un amic) Alguns cables de connexió

Per carregar la bateria de LiPo també he recollit:

Adafruit - Micro Lipo - Carregador USB LiIon / LiPoly - v1 - Identificador del producte: 1304

Pas 5: esquema

Esquema
Esquema

L’esquema d’aquest dispositiu es mostra a la part superior. L'entrada tàctil serà per a una versió futura, però de totes maneres es mostra a l'esquema. A més, la resistència de 10K entre el Trinket M0 i la base del 2N3904 proporciona la base suficient per engegar el motor sense copsar-lo massa fort.

El que segueix és una descripció de muntatge pas a pas.

Pas 6: el Protoboard

El Protoboard
El Protoboard

Molts de vosaltres que teniu experiència ho sabeu, però això és per a aquells que poden ser principiants en protobordo de soldadura:

El protoard Sparkfun (PRT-12702) que es mostra a dalt té 17 columnes (grups) de 5 pins a cada costat d'un espai de tres dècimes de polzada. Cada columna vertical de 5 pins a banda i banda de la bretxa és comuna entre si. Amb això vull dir que qualsevol connexió a un pin del grup és una connexió a tots els altres pins del grup. Per a aquesta placa, això no sembla obvi, però podeu comprovar-ho si utilitzeu un DVM (Digital Volt Meter). Si mireu al darrere, només podeu distingir les traces que connecten els grups.

Pas 7: col·locació de components

Col·locació de components
Col·locació de components
Col·locació de components
Col·locació de components

Probablement haureu de soldar tires de passadors tant al Trinket M0 com al VL53L0X. Tots dos vénen amb les tires, però cal soldar-les. Adafruit té instruccions al seu centre d'aprenentatge per a aquestes dues parts. Si no esteu al cas, aneu-hi (aquí i aquí) abans de soldar les tires als taulers. Les tires de passadors proporcionen un perfil més baix del que seria un endoll.

El primer que s’ha de tenir en compte a l’hora de soldar alguna cosa en una protoborda amb poc espai és la col·locació de components. Vaig col·locar el Trinket i el VL53L0X a les posicions que es mostren a la figura anterior. El Trinket té pins a les dues vores del tauler, però el VL53L0X té 7 pins a tots els costats del tauler. El lateral del VL53L0X que no té pins utilitzarem per connectar alguns components … com veurem.

També he soldat l’interruptor lliscant a la seva posició i he soldat el 2N3904. He enfosquit els forats on es col·loquen aquestes parts i, per al 2N3904, he observat quins passadors són el col·lector, la base i l’emissor. Quan el soldeu per primera vegada, haureu de deixar-lo perpendicular al tauler per poder soldar altres connexions. Més endavant podreu doblegar-lo (amb cura) perquè estigui més a prop d’estar a ras del tauler.

NOTA: El JST Battery Breakout NO es solda al tauler en aquest moment. Es soldarà a la part posterior del tauler, però només després de soldar les nostres altres connexions. Serà l'últim que hem soldat.

Pas 8: cables

Filferros
Filferros

El diagrama anterior mostra de nou la protoborda amb forats enfosquits on es situaran els components. Els he afegit les etiquetes al llarg de les vores per facilitar el cablejat. Tingueu en compte que es mostra el motor de vibració, però estarà situat a la part posterior del tauler i es connectarà gairebé a la darrera, de manera que, per ara, només cal ignorar-lo. També mostro el JST Battery Breakout amb una línia discontínua. Tal com es va identificar al pas anterior, no el connecteu, però si us plau, deixeu oberts els 4 forats de la part superior del tauler (és a dir, no els soldeu).

Suposo que en aquest moment sabeu com treure l'aïllament d'un filferro, estanyar els extrems amb soldadura i soldar a una placa. Si no és així, aneu a veure una de les instruccions sobre soldadura.

Per a aquest pas, soldeu els cables com es mostra en groc. Els punts finals són els forats als quals els hauríeu de soldar. També heu de soldar la resistència de 10 K ohmios al tauler com es mostra. Les connexions que s'estan fent són:

1. Una connexió des del terminal positiu de la bateria al terminal COMmon (central) del commutador lliscant. Un dels costats del commutador lliscant entrarà en contacte amb l’entrada BAT al Trinket. El regulador incorporat del Trinket genera 3,3 V a partir de la tensió d’entrada BAT.

2. Una connexió des del terminal negatiu (terra) de la bateria fins a la terra del quincalla.

3. Una connexió des del terminal negatiu (terra) de la bateria a l'emissor del 2N3904

4. Una connexió des del pin de 3,3 volts (3V) del Trinket al VIN del VL53L0X. El VL53L0X regularà això fins a 2,8 volts per al seu propi ús. També porta aquest voltatge a un pin, però no el necessitem, de manera que es deixarà sense connectar.

Pas 9: més cables

Més cables
Més cables

Ara, doncs, afegim el següent grup de cables, tal com es mostra més amunt. Aquí hi ha una llista de cada connexió:

1. Una connexió des del pin del Trinket etiquetada com a 2 al pin SCL VL53L0X. Aquest és el senyal de rellotge I2C. El protocol sèrie I2C és el que utilitza el Trinket per comunicar-se amb el VL53L0X.

2. Una connexió des del pin del Trinket etiquetada com a 0 (zero) al pin SDA VL53L0X. Aquest és el senyal de dades I2C.

3. Una connexió des del pin VL53L0X GND a través de la bretxa de la protoborda a l'emissor del 2N3904. Això proporciona terra al VL53L0X.

4. Una connexió des del pin del Trinket etiquetada com a resistència de 4 a 10K. Aquesta és la unitat del motor de vibració. Aquest cable definitivament s’ha de soldar a la part posterior del tauler si trieu el meu punt de connexió.

Recordeu que, qualsevol grup vertical de 5 pins és comú entre si, de manera que podeu connectar-vos a qualsevol lloc del grup que sigui convenient. Notareu a les fotos del meu tauler que he canviat alguns dels meus punts de connexió. Sempre que siguin la connexió correcta, el teclat que trieu està bé.

Pas 10: Motor de vibració

Motor de vibració
Motor de vibració

El motor de vibració ve amb un adhesiu capaç de trencar a la part posterior. Ho traieu per revelar un material enganxós que permet enganxar el motor a la part posterior del tauler (però, vegeu el comentari següent abans d’enganxar-lo). El vaig col·locar a l'esquerra (mirant a la part posterior del tauler) del tauler JST Battery Breakout que encara no hem adjuntat. Per tant, deixeu una mica d’espai per a la placa JST Battery Breakout. També volia assegurar-me que la carcassa metàl·lica del motor no tallés cap pin al llarg de la bretxa de la protoborda. Per tant, vaig tallar un petit tros de cinta de doble cara i el vaig enganxar a la part posterior del costat enganxós del motor de vibració. Llavors vaig empènyer això a la part posterior del tauler. Ajuda a mantenir la caixa metàl·lica alta i allunyada de qualsevol agulla. Però, tot i així, tingueu cura de col·locar-lo de manera que NO quedi curt cap pin.

Soldeu el cable vermell del motor de vibració a la clavilla de 3V del quincalla. El fil negre del motor de vibració es solda al col·lector del 2N3904. Quan el programari impulsa el 2N3904 (proporciona una lògica de 1 a 3,3 V), el transistor s'encén connectant el fil negre del motor de vibració a terra (o a prop d'ell). Això fa que el motor vibri.

Podria haver afegit una mica de capacitat al punt de connexió de fil vermell del motor de vibració. Però hi ha capacitat a la línia de 3,3 V del Trinket, així que estic segur que està bé, però si voleu afegir alguna altra capacitat, podeu … sempre que la pugueu apretar. Per tant, el cable vermell es podria connectar. directament al costat positiu de la bateria LiPo. Vaig triar el costat de 3,3 V per mantenir la tensió constant. Fins ara sembla que funciona bé.

Pas 11: per últim però no menys …

Per últim, però no menys important…
Per últim, però no menys important…
Per últim, però no menys important…
Per últim, però no menys important…

Per últim, connectem el tauler de ruptura de la bateria JST a la part posterior del protobordo. He soldat pins al tauler i he col·locat el tauler de ruptura de la bateria JST amb la cara superior orientada cap a la protoborda, tal com es mostra a la part superior. Quan col·loqueu aquesta peça, assegureu-vos que heu soldat els cables per obtenir una bateria positiva i connecteu-los a terra als passadors adequats. Si us equivoqueu, invertireu la polaritat de les parts i probablement les destruireu. Per tant, comproveu i torneu a comprovar abans de soldar i endollar la bateria.

Pas 12: programari

Programari
Programari

Per instal·lar i / o modificar el programari, necessitareu l'IDE Arduino i els fitxers de la placa del Trinket M0, així com les biblioteques del VL53L0X. Tot això és aquí, aquí i aquí.

Seguiu les instruccions per utilitzar l'Adafruit M0 al seu lloc d'aprenentatge aquí.

Un cop carregat el programari, la placa hauria d'iniciar-se i executar-se a la connexió sèrie USB. Mou el costat del tauler amb el VL53L0X a prop d’una paret o de la mà i hauries de sentir que el motor vibra. La vibració hauria de baixar d'amplitud com més lluny del dispositiu es trobi un objecte.

El comportament que es veu al dispositiu s’explica una mica als comentaris del codi font. Però el gràfic adjunt hauria de fer molt bé aquest punt. El dispositiu no hauria de començar a vibrar fins a uns 863 mm d’un objecte. Aconseguirà el seu nivell màxim de vibració a 50 mm d’un objecte. Si us acosteu a un objecte de més de 50 mm, el dispositiu no produirà més vibració que la de 50 mm.

Pas 13: recinte

Recinte
Recinte
Recinte
Recinte
Recinte
Recinte
Recinte
Recinte

Vaig dissenyar un recinte i el vaig imprimir en 3D amb plàstic ABS. Podeu imprimir-lo en PLA o ABS o el material que vulgueu. Faig servir ABS perquè puc soldar peces d’acetona al tauler si cal. La placa que he dissenyat és senzilla i té un forat per al port USB del Trinket i un forat per a l’interruptor d’alimentació. Vaig fer que els dos taulers s’ajuntessin amb uns petits braços als costats de la caixa. No m'agrada molt, així que és probable que el canviï. Per descomptat, podeu fer els canvis que vulgueu veure.

Ara mateix, per a aquesta versió, s’ha d’obrir la caixa per desconnectar la bateria LiPo per recarregar-la. Si creo una placa de circuit per a aquest projecte afegiré un altre connector per fer accessible la bateria sense obrir la caixa. Pot ser possible fer-ho en aquest disseny de protoard i fer un forat per al connector per carregar-se. Si voleu provar això, compartiu els vostres resultats.

Vaig aconseguir dissenyar una caixa que no odiava del tot. L’utilitzarem per provar el sistema. He adjuntat la part superior i inferior del quadre com a fitxers STL, així com el suport / guia que he afegit a la part inferior. Vaig afegir un parell de guies amb acetona per soldar químicament les parts. Si feu això, aneu amb compte. Podeu veure el muntatge anterior.

Pas 14: ara què?

Ara que?
Ara que?

Comproveu-me … Sóc vell i potser he oblidat alguna cosa o he desordenat. Estic rellegint i comprovant això, però encara puc perdre coses. No dubteu a dir-me tot el que he fet / fet malament.

I, ara que heu construït la placa de radar perifèric i la heu carregat i la bateria de LiPo es troba en una bonica caixa impresa en 3D (quan l’acabo o, si heu fet la vostra), què feu a continuació? Crec que hauríeu de tenir experiència amb el seu funcionament i fer modificacions al programari. L’acord de llicència del programari estableix que el podeu utilitzar, però si feu canvis, esteu obligats a compartir-los. No dic que el programari d’aquest projecte sigui d’alguna manera complicat o sorprenent. Assoleix els seus objectius, però hi ha marge de millora. Ajudeu a millorar aquest dispositiu i compartiu-ho amb tots nosaltres. Recordeu, aquest projecte tracta d’ajudar les persones. Doncs, ajuda!

Recomanat: