Tabla de contenido:
- Paso 1: primer prototipo
- Paso 2: Prototipo n. ° 2
- Paso 3: Prototipo n. ° 3
- Paso 4: Partes
- Paso 5: esquema
- Paso 6: Protoboard
- Paso 7: Colocación de componentes
- Paso 8: cables
- Paso 9: más cables
- Paso 10: motor de vibración
- Paso 11: Por último, pero no menos importante …
- Paso 12: software
- Paso 13: Recinto
- Paso 14: ¿Y ahora qué?
Video: Radar periférico para personas con discapacidad visual: 14 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Como resultado de un terrible accidente, un amigo mío perdió la vista recientemente en su ojo derecho. Estuvo mucho tiempo sin trabajo y cuando regresó me dijo que una de las cosas más desconcertantes con las que tiene que lidiar es la falta de saber lo que está en su lado derecho. Una visión menos periférica significa chocar con cosas y personas. Esto me molestó. Decidí que tenía que haber algo que pudiéramos hacer.
Quería construir un dispositivo que pudiera medir la distancia a los objetos del lado derecho de mi amigo. Mi plan es usar un motor háptico para hacer vibrar el dispositivo de manera inversamente proporcional a la distancia a un objeto. Entonces, si los objetos estuvieran lejos, el motor no vibraría y, a medida que un objeto estuviera más cerca, comenzaría a vibrar a un nivel bajo. Si el objeto estuviera cerca, vibraría a un nivel mucho más alto (o al nivel que quisieras). El dispositivo tendría que ser lo suficientemente pequeño como para colgarlo del costado de las gafas con el sensor apuntando hacia la derecha. Mi amigo pondría el dispositivo en el lado derecho de sus lentes pero, por supuesto, para otra persona, podría ser el lado izquierdo.
Recordé que tenía unos sensores acústicos de distancia en casa. Pero, son un poco grandes y voluminosos, menos precisos y probablemente serían demasiado pesados para usarlos en anteojos. Empecé a buscar algo más.
Lo que encontré fue el sensor de tiempo de vuelo ST Electronics VL53L0X. Este es un láser infrarrojo y un detector de infrarrojos en un solo paquete. Emite un pulso de luz láser fuera del rango visible para el ser humano (940 nm) y registra el tiempo transcurrido para detectar el pulso reflejado. Divide este tiempo por 2 y lo multiplica por la velocidad de la luz produciendo una distancia muy precisa en milímetros. El sensor puede detectar una distancia de hasta 2 metros, pero como he visto, 1 metro es más óptimo.
Da la casualidad de que Adafruit tiene una placa de ruptura VL53L0X. Entonces necesitaba un motor vibratorio, que también tenían, y un microcontrolador para hacer funcionar todo. Sucedió que tenía un PJRC Teensy 3.2 a mano. Aunque era más grande de lo que quería, tenía la capacidad de sincronizarse a baja velocidad. Quería bajar la velocidad del reloj para ahorrar energía. Y en lo que respecta a la fuente de alimentación, tenía un regulador de impulso Sparkfun en mi caja de basura junto con un soporte de batería AAA. Tenía casi todo lo que necesitaba.
Paso 1: primer prototipo
Tomé las piezas que tenía a mano e hice un prototipo de mano del dispositivo que imaginé. Imprimí en 3D el mango y la placa de montaje y soldé todos los componentes electrónicos en un protoboard Adafruit. Conecté el motor vibratorio al Teensy a través de un transistor NPN 2N3904. Agregué un potenciómetro que se usará para establecer la distancia máxima a la que respondería el dispositivo.
Lo tenía funcionando el próximo fin de semana (vea la imagen de arriba). No fue bonito, pero demostró el principio. Mi amigo podía sostener el dispositivo en su lado derecho y probar si el dispositivo sería útil o no y para ayudar a refinar lo que quería para las funciones.
Paso 2: Prototipo n. ° 2
Después del primer prototipo de mano comencé a hacer una versión más pequeña. Quería acercarme a mi objetivo de hacer algo que pudiera caber en los anteojos. El Teensy que usé en la versión portátil me permitió reducir la velocidad del reloj para ahorrar energía. Pero el tamaño iba a ser un factor, así que me cambié a un Adafruit Trinket M0. Si bien su frecuencia de reloj es de 48 MHz, el procesador ARM en el que se basa puede tener una frecuencia más lenta. Al usar el oscilador RC interno, puede funcionar a 8, 4 2 e incluso 1 MHz.
El prototipo n. ° 2 se ensambló bastante rápido, ya que lo tenía todo listo para el próximo fin de semana. El circuito era el mismo que el del prototipo n. ° 1, excepto por el ARM M0. Imprimí en 3D un pequeño recinto y puse guías en la parte posterior para que pudiera deslizarse sobre las gafas. Vea la imagen de arriba. Inicialmente se sincroniza a la frecuencia de 48 MHz.
Paso 3: Prototipo n. ° 3
Entonces, este Instructable realmente comienza aquí. Decidí hacer un último prototipo. Decido exprimirlo lo más pequeño que pueda sin usar un PWB personalizado (que es hacia donde estoy seguro de que nos dirigimos). El resto de este Instructable tratará de mostrarte cómo hacer uno. Al igual que las personas que hacen manos impresas en 3D para niños con discapacidades, espero que las personas las hagan para cualquier persona con una pérdida de visión similar en un ojo.
Mantuve la lista de piezas igual que el prototipo n. ° 2, pero decidí quitar el potenciómetro. Después de hablar con mi amigo, decidimos establecer la distancia máxima mediante un software. Debido a que tengo la capacidad de usar un sensor táctil con Teensy, siempre podemos hacer que la distancia máxima sea un ajuste tocando. Un toque establece una distancia corta, o más toques una distancia más larga, otro toque la distancia más larga y luego, para un toque más, vuelve al principio. Pero al principio, usaremos una distancia fija para empezar.
Paso 4: Partes
Para este prototipo necesitaba una placa más pequeña. Escogí un protoboard Sparkfun (PRT-12702) porque sus pequeñas dimensiones (alrededor de 1.8 "X 1.3") serían un buen tamaño para disparar.
También necesitaba usar algo más que una batería AAA como fuente de alimentación. Un LiPo parecía la elección correcta, ya que tendría capacidad de almacenamiento y peso ligero. Probé una celda de botón, pero no tenía suficiente potencia para manejar el motor por mucho tiempo. Elegí un LiPo pequeño que tiene una capacidad de 150 mAH.
Me iba a quedar con la Trinket M0 y, por supuesto, la placa de ruptura VL53L0X.
Ahora que estamos en los detalles, aquí hay una lista de piezas para este prototipo:
Adafruit VL53L0X Sensor de distancia de tiempo de vuelo - ID DE PRODUCTO: 3317 Adafruit - Mini disco de motor vibrante - ID DE PRODUCTO: 1201 Adafruit - Batería de polímero de iones de litio - 3.7v 150mAh - ID DE PRODUCTO: 1317 SparkFun - Placa de pruebas soldable - Mini - PRT-12702 Sparkfun - Conector en ángulo recto JST - Agujero pasante de 2 pines - PRT-09749 Resistencia de 10K ohmios - Caja de conexiones (mire en su piso) Transistor NPN 2N3904 - Caja de conexiones (o llame a un amigo) Algún cable de conexión (yo usé trenzado calibre 22)
Para cargar la batería LiPo también recogí:
Adafruit - Micro Lipo - Cargador USB LiIon / LiPoly - v1 - ID DE PRODUCTO: 1304
Paso 5: esquema
El esquema de este dispositivo se muestra arriba. La entrada táctil será para una versión futura, pero de todos modos se muestra en el esquema. Además, la resistencia de 10K entre el Trinket M0 y la base del 2N3904 proporciona la base suficiente para encender el motor sin golpearlo con demasiada fuerza.
Lo que sigue es una descripción de ensamblaje paso a paso.
Paso 6: Protoboard
Muchos de ustedes que tienen experiencia lo saben, pero esto es para aquellos que pueden ser nuevos en la soldadura de protoboards:
El protoboard Sparkfun (PRT-12702) que se muestra arriba tiene 17 columnas (grupos) de 5 pines a cada lado de un espacio de tres décimas de pulgada. Cada columna vertical de 5 pines a cada lado del espacio son comunes entre sí. Con esto quiero decir que cualquier conexión a un pin del grupo es una conexión a todos los demás pin del grupo. Para esta placa, eso no parece obvio, pero puede verificar esto si usa un DVM (Voltímetro digital). Si miras hacia atrás, puedes distinguir las huellas que conectan a los grupos.
Paso 7: Colocación de componentes
Probablemente tenga que soldar tiras de pines tanto al Trinket M0 como al VL53L0X. Ambos vienen con las tiras pero necesitan ser soldadas. Adafruit tiene instrucciones en su Centro de aprendizaje para ambas partes. Si es nuevo en esto, vaya allí (aquí y aquí) antes de soldar las tiras en las placas. Las tiras de clavijas proporcionan un perfil más bajo que el de un enchufe.
Lo primero a considerar al soldar algo en un protoboard con espacio limitado es la ubicación de los componentes. Coloqué el Trinket y el VL53L0X en las posiciones que se muestran en la figura de arriba. El Trinket tiene pines en ambos bordes de la placa, pero el VL53L0X tiene 7 pines, todos en un borde de su placa. El lado del VL53L0X que no tiene pines lo usaremos para conectar algunos componentes… como veremos.
También soldé el interruptor deslizante en su posición y soldé el 2N3904. Oscurecí los orificios donde se colocan esas piezas y, para el 2N3904, noté qué pines son el colector, la base y el emisor. Cuando lo suelde por primera vez, debe dejarlo perpendicular a la placa para que pueda soldar otras conexiones. Más tarde podrá doblarlo (con cuidado) para que esté más cerca de quedar al ras con la tabla.
NOTA: La batería JST Breakout NO se suelda a la placa en este momento. Se soldará en la parte posterior de la placa, pero solo DESPUÉS de que soldemos nuestras otras conexiones. Será lo último que soldemos.
Paso 8: cables
El diagrama de arriba muestra el protoboard nuevamente con agujeros oscurecidos donde se ubicarán los componentes. Les agregué las etiquetas a lo largo de los bordes para facilitar el cableado. Tenga en cuenta que se muestra el motor de vibración, pero estará ubicado en la parte posterior de la placa y se conectará casi al final, así que por ahora, simplemente ignórelo. También muestro la ruptura de la batería JST con una línea discontinua. Como se identificó en el paso anterior, no lo conecte, pero deje abiertos los 4 orificios en la parte superior de la placa (es decir, no los suelde).
Supongo que en este punto sabes cómo quitar el aislamiento de un cable, estañar los extremos con soldadura y soldar a una placa. De lo contrario, consulte uno de los Instructables sobre soldadura.
Para este paso, suelde los cables como se muestra en amarillo. Los puntos finales son los orificios a los que debe soldarlos. También debe soldar la resistencia de 10K ohmios a la placa como se muestra. Las conexiones que se realizan son:
1. Una conexión desde el terminal positivo de la batería al terminal COMmon (centro) del interruptor deslizante. Un lado del interruptor deslizante hará contacto con la entrada BAT del Trinket. El regulador integrado del Trinket genera 3.3V a partir del voltaje de entrada BAT.
2. Una conexión desde el terminal negativo (tierra) de la batería a la tierra del Trinket.
3. Una conexión desde el terminal negativo (tierra) de la batería al emisor del 2N3904
4. Una conexión desde el pin de 3.3 voltios (3V) del Trinket al VIN del VL53L0X. El VL53L0X regulará aún más esto a 2.8 voltios para su propio uso. También lleva este voltaje a un pin, pero no lo necesitamos, por lo que se dejará desconectado.
Paso 9: más cables
Entonces ahora agregamos el siguiente grupo de cables como se muestra arriba. Aquí hay una lista de cada conexión:
1. Una conexión desde el pin del Trinket etiquetado como 2 al pin SCL del VL53L0X. Esta es la señal de reloj I2C. El protocolo serial I2C es lo que utiliza Trinket para comunicarse con el VL53L0X.
2. Una conexión desde el pin del Trinket etiquetado como 0 (cero) al pin VL53L0X SDA. Esta es la señal de datos I2C.
3. Una conexión desde el pin VL53L0X GND a través del espacio en el protoboard al Emisor del 2N3904. Esto proporciona tierra al VL53L0X.
4. Una conexión desde el pin del Trinket etiquetado como 4 a la resistencia de 10K. Este es el accionamiento del motor de vibración. Este cable definitivamente debe soldarse en la parte posterior de la placa si elige mi punto de conexión.
Recuerde que cualquier grupo vertical de 5 pines son comunes entre sí, por lo que puede conectarse en cualquier lugar de este grupo que sea conveniente. Notarás en las fotos de mi tablero que cambié algunos de mis puntos de conexión. Siempre que tengan la conexión correcta, cualquier almohadilla que elija está bien.
Paso 10: motor de vibración
El motor de vibración viene con una etiqueta adhesiva que se puede pegar en la parte posterior. Lo saca para revelar un material pegajoso que permite que el motor se adhiera a la parte posterior de la placa (pero, consulte el comentario a continuación antes de pegarlo). Lo coloqué a la izquierda (mirando la parte posterior de la placa) de la placa JST Battery Breakout que aún no hemos conectado. Por lo tanto, deje algo de espacio para la placa de ruptura de batería JST. También quería asegurarme de que la carcasa metálica del motor no cortara ningún pasador en el espacio del protoboard. Entonces, corté un pequeño trozo de cinta adhesiva de doble cara y lo pegué en la parte posterior del lado adhesivo del motor de vibración. Luego lo puse en la parte posterior del tablero. Ayuda a mantener la caja metálica en alto y lejos de cualquier alfiler. Pero aún así, tenga cuidado de colocarlo de una manera que NO cortocircuite ningún pasador.
Suelde el cable rojo del motor de vibración al pin 3V del Trinket. El cable negro del motor de vibración está soldado al colector del 2N3904. Cuando el software pulsa el 2N3904 (proporciona un 1 lógico como 3.3V), el transistor se enciende conectando el cable negro del motor de vibración a tierra (o cerca de él). Esto hace vibrar el motor.
Podría haber agregado algo de capacitancia en el punto de conexión del cable rojo del motor de vibración. Pero hay capacitancia en la línea de 3.3V del Trinket, así que estoy seguro de que está bien, pero si desea agregar alguna otra capacitancia, puede … siempre que pueda apretarla. Para el caso, el cable rojo podría conectarse directamente al lado positivo de la batería LiPo. Elegí el lado de 3.3V para mantener el voltaje constante. Hasta ahora, parece funcionar bien.
Paso 11: Por último, pero no menos importante …
Por último, conectamos la placa de ruptura de la batería JST a la parte posterior del protoboard. Soldé pines en la placa y coloqué la placa de ruptura de la batería JST con su lado superior hacia el protoboard como se muestra arriba. Asegúrese de soldar los cables para la batería positiva y masa a los pines correctos cuando coloque esta pieza. Si se equivoca, invertirá la polaridad de las piezas y probablemente las destruirá todas. Por lo tanto, verifique y vuelva a verificar antes de soldar y enchufar la batería.
Paso 12: software
Para instalar y / o modificar el software, necesitará el IDE de Arduino y los archivos de placa para el Trinket M0, así como las bibliotecas para el VL53L0X. Todo eso está aquí, aquí y aquí.
Siga las instrucciones para usar Adafruit M0 en su sitio de aprendizaje aquí.
Una vez que se carga el software, la placa debe iniciarse y ejecutarse en la conexión en serie USB. Mueva el lado del tablero con el VL53L0X cerca de una pared o de su mano y debería sentir el motor vibrar. La vibración debería disminuir en amplitud cuanto más lejos esté un objeto del dispositivo.
Un comportamiento visto en el dispositivo se explica de alguna manera en los comentarios del código fuente. Pero el gráfico adjunto debería aclarar este punto. El dispositivo no debería empezar a vibrar hasta que se encuentre a unos 863 mm de un objeto. Alcanzará su nivel máximo de vibración a 50 mm de un objeto. Si se acerca a un objeto más de 50 mm, el dispositivo no producirá más vibración que a 50 mm.
Paso 13: Recinto
Diseñé una carcasa y la imprimí en 3D en plástico ABS. Puede imprimirlo en PLA o ABS o cualquier material que desee. Utilizo ABS porque puedo soldar piezas con acetona en el tablero si es necesario. La placa que diseñé es simple y tiene un orificio para el puerto USB en el Trinket y un orificio para el interruptor de encendido. Hice que las dos tablas se unieran con pequeños brazos a los lados de la caja. No me gusta mucho, así que es probable que lo cambie. Por supuesto, puede realizar los cambios que desee.
Ahora mismo, para esta versión, hay que abrir la caja para desconectar la batería LiPo y recargarla. Si creo una placa de circuito para este proyecto, agregaré otro conector para que la batería sea accesible sin abrir la caja. Puede ser posible hacer eso en este diseño de protoboard y hacer un agujero para el conector para cargar. Si quieres probar esto, comparte tus resultados.
Me las arreglé para diseñar una caja que no odié por completo. Usaremos este para probar el sistema. He adjuntado la parte superior e inferior de la caja como archivos STL, así como el soporte / guía que agregué en la parte inferior. Agregué un par de guías usando acetona para soldar químicamente las piezas. Si hace esto, tenga cuidado. Puedes ver el montaje arriba.
Paso 14: ¿Y ahora qué?
Mírame … Soy viejo y puede que haya olvidado algo o lo haya estropeado. Estoy releyendo y comprobando esto, pero todavía puedo perderme cosas. No dudes en decirme todo lo que hice o hice mal.
Y, ahora que ha construido la placa Peripheral Radar y la ha cargado y la batería LiPo está en una bonita carcasa impresa en 3D (cuando la termine o, si hizo la suya propia), ¿qué debe hacer a continuación? Creo que debería adquirir experiencia con su funcionamiento y realizar modificaciones en el software. El acuerdo de licencia del software indica que puede usarlo, pero si realiza algún cambio, debe compartirlo. No estoy diciendo que el software para este proyecto sea complicado o sorprendente de alguna manera. Cumple sus objetivos pero hay margen de mejora. Ayude a mejorar este dispositivo y compártalo con todos nosotros. Recuerde, este proyecto se trata de ayudar a las personas. ¡Así que ayuda!
Recomendado:
Zapato háptico para personas con discapacidad visual: 12 pasos
Zapato háptico para personas con discapacidad visual: hay más de 37 millones de personas con discapacidad visual en todo el mundo. La mayoría de estas personas usan un bastón, un palo o dependen de otra persona para viajar. No solo disminuye su autodependencia, sino que también, en algunos casos, les perjudica
Guía a pie para mejorar la movilidad de las personas con discapacidad visual: 6 pasos
Guía para caminar para mejorar la movilidad de las personas con discapacidad visual: el objetivo del instructivo es desarrollar una guía para caminar que pueda ser utilizada por personas discapacitadas, especialmente las personas con discapacidad visual. El instructable tiene la intención de investigar cómo la guía para caminar se puede usar de manera efectiva, de modo que los requisitos de diseño
Experiencia de bus mejorada para personas con discapacidad visual con Arduino e impresión 3D: 7 pasos
Experiencia de autobús mejorada para personas con discapacidad visual con Arduino e impresión 3D: ¿Cómo se pueden simplificar los desplazamientos en transporte público para las personas con problemas de visión? Los datos en tiempo real en los servicios de mapas a menudo no son fiables cuando se utiliza el transporte público. personas con discapacidad visual. T
Dispositivo ultrasónico para mejorar la navegación de personas con discapacidad visual: 4 pasos (con imágenes)
Dispositivo ultrasónico para mejorar la navegación de las personas con discapacidad visual: Nuestro corazón está con los desfavorecidos mientras usamos nuestro talento para mejorar la tecnología y las soluciones de investigación para mejorar las vidas de los que sufren. Este proyecto fue creado exclusivamente para ese propósito. Este guante electrónico utiliza detección ultrasónica para mejorar
Uso de sonar, Lidar y visión por computadora en microcontroladores para ayudar a las personas con discapacidad visual: 16 pasos
Uso de sonar, Lidar y visión por computadora en microcontroladores para ayudar a las personas con discapacidad visual: quiero crear un "bastón" inteligente que pueda ayudar a las personas con discapacidad visual mucho más que las soluciones existentes. El bastón podrá avisar al usuario de objetos en el frente o en los laterales haciendo un ruido en los auriculares tipo sonido envolvente