Índice:

Radar periférico para deficientes visuais: 14 etapas
Radar periférico para deficientes visuais: 14 etapas

Vídeo: Radar periférico para deficientes visuais: 14 etapas

Vídeo: Radar periférico para deficientes visuais: 14 etapas
Vídeo: QUEM SE ENQUADRA NA APOSENTADORIA POR VISÃO MONOCULAR? 2024, Julho
Anonim
Radar periférico para deficientes visuais
Radar periférico para deficientes visuais

Como resultado de um acidente horrível, um amigo meu perdeu recentemente a visão do olho direito. Ele ficou muito tempo sem trabalhar e quando voltou me disse que uma das coisas mais enervantes com que ele tem que lidar é a falta de saber o que está do seu lado direito. Menos visão periférica significa esbarrar em coisas e pessoas. Isso me incomodou. Decidi que deveria haver algo que pudéssemos fazer.

Eu queria construir um dispositivo que pudesse medir a distância de objetos no lado direito do meu amigo. Meu plano é usar um motor háptico para vibrar o dispositivo inversamente proporcional à distância de um objeto. Então, se os objetos estivessem longe, o motor não vibraria e quando um objeto estivesse mais perto, ele começaria a vibrar em um nível baixo. Se o objeto estivesse próximo, ele vibraria em um nível muito mais alto (ou em qualquer nível que você desejasse). O dispositivo teria que ser pequeno o suficiente para pendurar na lateral dos óculos com o sensor apontando para a direita. Meu amigo colocaria o dispositivo no lado direito dos óculos, mas claro, para outra pessoa, poderia ser no lado esquerdo.

Lembrei que tinha alguns sensores acústicos de distância em casa. Mas, eles são um pouco grandes e volumosos, menos precisos e provavelmente seriam muito pesados para uso em óculos. Comecei a procurar outra coisa.

O que eu encontrei foi o sensor Time-of-Flight da ST Electronics VL53L0X. Este é um laser infravermelho e um detector infravermelho em um único pacote. Ele emite um pulso de luz laser fora da faixa de visibilidade humana (940 nm) e registra o tempo decorrido para detectar o pulso refletido. Ele divide esse tempo por 2 e multiplica pela velocidade da luz, produzindo uma distância muito precisa em milímetros. O sensor pode detectar distâncias de até 2 metros, mas como tenho visto, 1 metro é mais ideal.

Acontece que a Adafruit tem uma placa de breakout VL53L0X. Então, eu precisava de um motor vibratório, que eles também tinham, e um microcontrolador para fazer tudo funcionar. Acontece que eu tinha um PJRC Teensy 3.2 em mãos. Embora maior do que eu queria, tinha a capacidade de ser cronometrado em baixa velocidade. Eu queria diminuir a velocidade do clock para economizar energia. E no que diz respeito a uma fonte de energia, eu tinha um regulador de impulso Sparkfun em minha caixa de sucata junto com um suporte de bateria AAA. Eu tinha quase tudo de que precisava.

Etapa 1: primeiro protótipo

Primeiro Protótipo
Primeiro Protótipo
Primeiro Protótipo
Primeiro Protótipo

Peguei as peças que tinha em mãos e fiz um protótipo portátil do dispositivo que imaginei. I 3D imprimiu a alça e a placa de montagem e soldou todos os componentes eletrônicos em um protoboard Adafruit. Eu conectei o motor vibratório ao Teensy por meio de um transistor NPN 2N3904. Eu adicionei um potenciômetro para ser usado para definir a distância máxima à qual o dispositivo responderia.

Eu estava funcionando no próximo fim de semana (veja a foto acima). Não era bonito, mas demonstrava o princípio. Meu amigo poderia segurar o dispositivo em seu lado direito e testar se o dispositivo seria útil ou não e para ajudar a refinar o que ele queria para recursos.

Etapa 2: Protótipo # 2

Protótipo 2
Protótipo 2
Protótipo 2
Protótipo 2
Protótipo 2
Protótipo 2

Depois do primeiro protótipo portátil, comecei a fazer uma versão menor. Eu queria chegar mais perto do meu objetivo de fazer algo que pudesse caber em óculos. O Teensy que usei na versão portátil me permitiu desacelerar o relógio para economizar energia. Mas o tamanho ia ser um fator, então mudei para um Adafruit Trinket M0. Embora sua freqüência seja de 48 MHz, o processador ARM no qual se baseia pode ter uma freqüência mais lenta. Usando o oscilador RC interno, ele pode funcionar a 8, 4 2 e até 1 MHz.

O protótipo # 2 surgiu muito rápido, pois eu tinha tudo pronto no fim de semana seguinte. O circuito era o mesmo do protótipo # 1, exceto pelo ARM M0. Eu imprimi em 3D um pequeno compartimento e coloquei guias na parte de trás para que pudesse ser deslizado nos óculos. Veja a foto acima. Inicialmente, ele está sendo sincronizado na taxa de 48 MHz.

Etapa 3: Protótipo # 3

Protótipo # 3
Protótipo # 3

Então, este Instructable realmente começa aqui. Decidi fazer um último protótipo. Decidi comprimi-lo o mais possível, sem usar um PWB personalizado (que é para onde tenho certeza de que estamos indo). O resto deste Instructable tratará de mostrar a você como fazer um. Assim como as pessoas que fazem mãos impressas em 3D para crianças com deficiência, minha esperança é que as pessoas as façam para qualquer pessoa com perda de visão semelhante em um olho.

Eu mantive a lista de peças igual ao protótipo # 2, mas decidi remover o potenciômetro. Depois de conversar com meu amigo decidimos fazer a distância máxima definida usando um software. Como tenho a capacidade de usar um sensor de toque com o Teensy, podemos sempre definir a distância máxima como uma configuração tocando. Um toque define uma distância curta, ou mais toque uma distância mais longa, outro toque a distância mais longa e, para mais um toque, volte ao início. Mas, a princípio, usaremos uma distância fixa para prosseguir.

Etapa 4: peças

Peças
Peças

Para este protótipo, eu precisava de uma placa menor. Eu escolhi um protoboard Sparkfun (PRT-12702) porque suas dimensões pequenas (cerca de 1,8 "X 1,3") seriam um bom tamanho para atirar.

Eu também precisava usar algo diferente de uma bateria AAA como fonte de alimentação. Um LiPo parecia a escolha certa, pois teria capacidade de armazenamento e peso leve. Tentei uma célula tipo moeda, mas ela não tinha energia suficiente para lidar com o motor por muito tempo. Escolhi um pequeno LiPo com capacidade de 150 mAH.

Eu ficaria com o Trinket M0 e, claro, a placa breakout VL53L0X.

Agora que chegamos aos detalhes, aqui está uma lista de peças para este protótipo:

Adafruit VL53L0X Sensor de distância de voo - ID DO PRODUTO: 3317 Adafruit - Minidisco de motor vibratório - ID DO PRODUTO: 1201 Adafruit - Bateria de polímero de íon lítio - 3,7v 150mAh - ID DO PRODUTO: 1317 SparkFun - Tábua de pão soldável - Mini - PRT-12702 Sparkfun - Conector JST de ângulo reto - Orifício de 2 pinos - PRT-09749 resistor de 10K ohm - Caixa de sucata (olhe no seu chão) 2N3904 Transistor NPN - Caixa de sucata (ou telefone para um amigo) Algum fio de conexão (eu usei trançado calibre 22)

Para carregar a bateria LiPo eu também peguei:

Adafruit - Micro Lipo - Carregador USB LiIon / LiPoly - v1 - ID DO PRODUTO: 1304

Etapa 5: Esquemático

Esquemático
Esquemático

O esquema para este dispositivo é mostrado acima. A entrada de toque será para uma versão futura, mas é mostrada no esquema mesmo assim. Além disso, o resistor de 10K entre o Trinket M0 e a base do 2N3904 fornece base suficiente para ligar o motor sem bater com força.

O que se segue é uma descrição passo a passo da montagem.

Etapa 6: o protoboard

O protoboard
O protoboard

Muitos de vocês que têm experiência sabem disso, mas isso é para aqueles que são novos na soldagem de protoboards:

O protoboard Sparkfun (PRT-12702) mostrado acima tem 17 colunas (grupos) de 5 pinos em cada lado de uma lacuna de três décimos de polegada. Cada coluna vertical de 5 pinos em cada lado da lacuna são comuns entre si. Com isso, quero dizer que qualquer conexão a um pino do grupo é uma conexão a todos os outros pinos do grupo. Para esta placa, isso não parece óbvio, mas você pode verificar se usar um DVM (Voltímetro Digital). Se você olhar no verso, poderá ver os traços que conectam os grupos.

Etapa 7: posicionamento do componente

Posicionamento de componente
Posicionamento de componente
Posicionamento de componente
Posicionamento de componente

Você provavelmente terá que soldar tiras de pinos no Trinket M0 e no VL53L0X. Ambos vêm com as tiras, mas precisam ser soldadas. A Adafruit tem instruções em seu Centro de aprendizagem para ambas as partes. Se você é novo nisso, vá até lá (aqui e aqui) antes de soldar as tiras nas placas. As tiras de pinos fornecem um perfil mais baixo do que um soquete.

A primeira coisa a se considerar ao soldar algo em um protoboard com espaço limitado é a colocação dos componentes. Coloquei o Trinket e o VL53L0X nas posições mostradas na figura acima. O Trinket tem pinos em ambas as bordas da placa, mas o VL53L0X tem 7 pinos, todos em uma borda da placa. A lateral do VL53L0X que não possui pinos usaremos para conectar alguns componentes… como veremos.

Também soldei a chave deslizante na posição e soldei o 2N3904. Escurei os orifícios onde essas peças são colocadas e, para o 2N3904, observei quais pinos são o Coletor, a Base e o Emissor. Ao soldá-lo pela primeira vez, você deve deixá-lo perpendicular à placa para que possa soldar outras conexões. Mais tarde, você poderá dobrá-lo (com cuidado) para que fique mais perto de ficar alinhado com o tabuleiro.

NOTA: A bateria Breakout JST NÃO é soldada à placa neste momento. Ele será soldado na parte de trás da placa, mas somente DEPOIS de soldarmos nossas outras conexões. Será a última coisa que soldaremos.

Etapa 8: fios

Fios
Fios

O diagrama acima mostra o protoboard novamente com orifícios escurecidos onde os componentes serão localizados. Eu adicionei as etiquetas para eles ao longo das bordas para facilitar a ligação. Observe que o motor de vibração é mostrado, mas ele estará localizado na parte de trás da placa e será conectado quase por último, então, por enquanto, ignore-o. Também mostro o JST Battery Breakout com uma linha tracejada. Conforme identificado na etapa anterior, não o conecte, mas deixe os 4 orifícios na parte superior da placa abertos (ou seja, não solde neles).

Presumo que agora você saiba como retirar o isolamento de um fio, estanhar as pontas com solda e soldar em uma placa. Caso contrário, consulte um dos Instructables sobre soldagem.

Para esta etapa, solde os fios conforme mostrado em amarelo. Os pontos finais são os orifícios aos quais você deve soldá-los. Você também deve soldar o resistor de 10K ohm na placa como mostrado. As conexões sendo feitas são:

1. Uma conexão do terminal positivo da bateria ao terminal COMmon (central) da chave deslizante. Um lado do interruptor deslizante fará contato com a entrada BAT para o Trinket. O regulador integrado do Trinket gera 3,3 V da tensão de entrada BAT.

2. Uma conexão do terminal negativo (terra) da bateria ao terra do Trinket.

3. Uma conexão do terminal negativo (terra) da bateria ao emissor do 2N3904

4. Uma conexão do pino de 3,3 volts (3V) do Trinket ao VIN do VL53L0X. O VL53L0X irá regular ainda mais isso para 2,8 volts para seu próprio uso. Ele também traz essa tensão para um pino, mas como não precisamos dela, ele ficará desconectado.

Etapa 9: Mais fios

Mais fios
Mais fios

Portanto, agora adicionamos o próximo grupo de fios, conforme mostrado acima. Aqui está uma lista de cada conexão:

1. Uma conexão do pino do Trinket identificado como 2 ao pino VL53L0X SCL. Este é o sinal de clock I2C. O protocolo serial I2C é o que é usado pelo Trinket para se comunicar com o VL53L0X.

2. Uma conexão do pino do Trinket identificado como 0 (zero) para o pino VL53L0X SDA. Este é o sinal de dados I2C.

3. Uma conexão do pino VL53L0X GND através da lacuna no protoboard para o Emissor do 2N3904. Isso fornece aterramento para o VL53L0X.

4. Uma conexão do pino do Trinket rotulado como 4 para o resistor de 10K. Este é o motor do motor de vibração. Este fio definitivamente deve ser soldado na parte de trás da placa, se você escolher meu ponto de conexão.

Lembre-se de que qualquer grupo vertical de 5 pinos é comum entre si, então você pode conectar em qualquer lugar deste grupo que seja conveniente. Você notará nas fotos da minha placa que mudei alguns dos meus pontos de conexão. Contanto que sejam a conexão correta, qualquer pad que você escolher está certo.

Etapa 10: Motor de vibração

Motor de vibração
Motor de vibração

O motor de vibração vem com um adesivo transparente na parte traseira. Você retira isso para revelar um material pegajoso que permite que o motor seja preso na parte de trás da placa (mas, veja o comentário abaixo antes de colocá-lo). Coloquei-o à esquerda (olhando para a parte de trás da placa) da placa JST Battery Breakout que ainda não anexamos. Portanto, deixe algum espaço para a placa JST Battery Breakout. Eu também queria ter certeza de que a caixa de metal do motor não causasse curto-circuito em nenhum pino no vão do protoboard. Então, cortei um pequeno pedaço de fita dupla-face e colei na parte de trás do lado adesivo do motor de vibração. Então eu empurrei isso na parte de trás do quadro. Isso ajuda a manter a caixa de metal elevada e longe de quaisquer pinos. Mesmo assim, tome cuidado para colocá-lo de uma forma que NÃO cause curto nos pinos.

Solde o fio vermelho do motor de vibração no pino 3V do Trinket. O fio preto do motor de vibração é soldado ao coletor do 2N3904. Quando o software pulsa o 2N3904 (fornece uma lógica 1 como 3,3 V), o transistor liga conectando o fio preto do motor de vibração ao aterramento (ou próximo a ele). Isso faz o motor vibrar.

Eu poderia ter adicionado alguma capacitância no ponto de conexão do fio vermelho do Motor de vibração. Mas há capacitância na linha de 3,3 V do Trinket, então tenho certeza de que está tudo bem, mas se você quiser adicionar alguma outra capacitância, você pode … contanto que você possa espremê-la. Por falar nisso, o fio vermelho pode ser conectado diretamente para o lado positivo da bateria LiPo. Eu escolhi o lado de 3,3 V para manter a tensão constante. Até agora, parece funcionar bem.

Etapa 11: por último, mas não menos importante …

Por último mas não menos importante…
Por último mas não menos importante…
Por último mas não menos importante…
Por último mas não menos importante…

Por último, conectamos a placa de breakout da bateria JST na parte de trás do protoboard. Soldei os pinos na placa e coloquei a placa breakout da bateria JST com o lado superior voltado para o protoboard, conforme mostrado acima. Certifique-se de soldar os fios da bateria positiva e do aterramento aos pinos corretos ao colocar esta peça. Se você estiver errado, você inverterá a polaridade para as partes e provavelmente destruirá todas elas. Portanto, verifique e verifique novamente antes de soldar e conectar a bateria.

Etapa 12: Software

Programas
Programas

Para instalar e / ou modificar o software, você precisará do Arduino IDE e dos arquivos da placa para o Trinket M0, bem como das bibliotecas para o VL53L0X. Tudo isso está aqui, aqui e aqui.

Siga as instruções para usar o Adafruit M0 em seu site de aprendizagem aqui.

Uma vez que o software é carregado, a placa deve inicializar e rodar na conexão serial USB. Mova a lateral da placa com o VL53L0X próximo a uma parede ou à sua mão e você deverá sentir o motor vibrar. A amplitude da vibração deve ser menor quanto mais longe do dispositivo um objeto estiver.

Um comportamento visto no dispositivo é explicado de alguma forma nos comentários do código-fonte. Mas o gráfico anexo deve esclarecer bem esse ponto. O dispositivo não deve começar a vibrar até cerca de 863 mm de um objeto. Ele atingirá seu nível máximo de vibração a 50 mm de um objeto. Se você se mover mais perto de um objeto do que 50 mm, o dispositivo não produzirá mais vibração do que a 50 mm.

Etapa 13: Gabinete

Gabinete
Gabinete
Gabinete
Gabinete
Gabinete
Gabinete
Gabinete
Gabinete

Projetei um gabinete e imprimi em 3D em plástico ABS. Você pode imprimi-lo em PLA ou ABS ou qualquer material que desejar. Eu uso o ABS porque posso soldar as peças com acetona na placa, se necessário. A placa que projetei é simples e tem um orifício para a porta USB do Trinket e um orifício para a chave liga / desliga. Fiz as duas pranchas se encaixarem com pequenos braços nas laterais da caixa. Eu não gosto muito disso, então é provável que mude. Claro, você pode fazer as alterações que desejar.

Neste momento, para esta versão, a caixa deve ser aberta para desconectar a bateria LiPo para recarregá-la. Se eu criar uma placa de circuito para este projeto, adicionarei outro conector para tornar a bateria acessível sem abrir a caixa. Pode ser possível fazer isso neste projeto de protoboard e fazer um orifício para o conector de carregamento. Se você quiser tentar isso, compartilhe seus resultados.

Consegui projetar uma caixa que não odiava completamente. Usaremos este para testar o sistema. Anexei a parte superior e inferior da caixa como arquivos STL, bem como o suporte / guia que adicionei na parte inferior. Eu adicionei um par de guias usando acetona para soldar quimicamente as peças. Se você fizer isso, tenha cuidado. Você pode ver a montagem acima.

Etapa 14: e agora?

O que agora?
O que agora?

Verifique … Estou velho e posso ter esquecido algo ou bagunçado. Estou relendo e verificando isso, mas ainda posso perder algumas coisas. Sinta-se à vontade para me dizer o que eu fiz / fiz de errado.

E, agora que você construiu a placa do Radar Periférico e carregou-a e a bateria LiPo está em uma bela caixa impressa em 3D (quando eu terminar ou, se você fizer a sua própria), o que você faz a seguir? Acho que você deve ter experiência em como funciona e fazer modificações no software. O contrato de licença do software indica que você pode usá-lo, mas se fizer alguma alteração, será necessário compartilhá-la. Não estou dizendo que o software para este projeto seja complicado ou incrível de alguma forma. Ela cumpre seus objetivos, mas há espaço para melhorias. Ajude a tornar este dispositivo melhor e compartilhe isso com todos nós. Lembre-se de que este projeto visa ajudar as pessoas. Então, ajude!

Recomendado: