Índice:

Uso de sonar, Lidar e visão computacional em microcontroladores para auxiliar os deficientes visuais: 16 etapas
Uso de sonar, Lidar e visão computacional em microcontroladores para auxiliar os deficientes visuais: 16 etapas

Vídeo: Uso de sonar, Lidar e visão computacional em microcontroladores para auxiliar os deficientes visuais: 16 etapas

Vídeo: Uso de sonar, Lidar e visão computacional em microcontroladores para auxiliar os deficientes visuais: 16 etapas
Vídeo: Visão Computacional com Arduino (Robótica) - Introdução 2024, Novembro
Anonim
Uso de sonar, Lidar e visão computacional em microcontroladores para auxiliar os deficientes visuais
Uso de sonar, Lidar e visão computacional em microcontroladores para auxiliar os deficientes visuais

Eu quero criar uma "bengala" inteligente que pode ajudar as pessoas com deficiência visual muito mais do que as soluções existentes. A bengala será capaz de notificar o usuário sobre objetos na frente ou nas laterais, fazendo um ruído nos fones de ouvido do tipo surround sound. A bengala terá também uma pequena câmera fotográfica e LIDAR (Light Detection and Ranging) para que reconheça objetos e pessoas na sala e avise o usuário por meio de fones de ouvido. Por razões de segurança, os fones de ouvido não bloquearão todo o ruído, pois haverá um microfone que pode filtrar todos os sons desnecessários e manter as buzinas do carro e as pessoas falando. Por último, o sistema terá um GPS para dar instruções e mostrar ao usuário aonde ir.

Por favor, vote em mim nos concursos de Microcontrolador e Fitness ao ar livre!

Etapa 1: Visão geral do projeto

Visão Geral do Projeto
Visão Geral do Projeto
Visão Geral do Projeto
Visão Geral do Projeto
Visão Geral do Projeto
Visão Geral do Projeto

De acordo com o World Access for the Blind, o movimento físico é um dos maiores desafios para os cegos. Viajar ou simplesmente caminhar por uma rua movimentada pode ser muito difícil. Tradicionalmente, a única solução era usar a comumente conhecida “bengala branca”, que é usada principalmente para escanear os arredores batendo nos obstáculos próximos ao usuário. Uma solução melhor seria um dispositivo que pudesse substituir o assistente com visão, fornecendo informações sobre a localização de obstáculos para que a pessoa cega possa sair em ambientes desconhecidos e se sentir segura. Durante este projeto, um pequeno dispositivo operado por bateria que atende a esses critérios foi desenvolvido. O dispositivo pode detectar o tamanho e a localização do objeto por meio de sensores que medem a posição dos objetos em relação ao usuário, retransmitir essa informação para um microcontrolador e, em seguida, convertê-la em áudio para fornecer informações ao usuário. O dispositivo foi construído usando tecnologias comerciais disponíveis LIDAR (Light Detection and Ranging), SONAR (Sound Navigation and Ranging) e tecnologias de visão computacional vinculadas a microcontroladores e programadas para fornecer a saída de informação audível necessária usando fones de ouvido. A tecnologia de detecção foi incorporada em uma "bengala branca" para indicar a outras pessoas a condição do usuário e fornecer segurança adicional.

Etapa 2: pesquisa de fundo

Pesquisa de Antecedentes
Pesquisa de Antecedentes
Pesquisa de Antecedentes
Pesquisa de Antecedentes
Pesquisa de Antecedentes
Pesquisa de Antecedentes
Pesquisa de Antecedentes
Pesquisa de Antecedentes

Em 2017, a Organização Mundial da Saúde informou que havia 285 milhões de deficientes visuais em todo o mundo, dos quais 39 milhões são completamente cegos. A maioria das pessoas não pensa nos problemas que os deficientes visuais enfrentam todos os dias. De acordo com o World Access for the Blind, o movimento físico é um dos maiores desafios para os cegos. Viajar ou simplesmente caminhar por uma rua movimentada pode ser muito difícil. Por causa disso, muitas pessoas com deficiência visual preferem trazer um amigo ou familiar com visão para ajudá-lo a navegar em novos ambientes. Tradicionalmente, a única solução era usar a comumente conhecida “bengala branca”, que é usada principalmente para escanear os arredores batendo nos obstáculos próximos ao usuário. Uma solução melhor seria um dispositivo que pudesse substituir o assistente com visão, fornecendo informações sobre a localização de obstáculos para que a pessoa cega possa sair em ambientes desconhecidos e se sentir segura. NavCog, uma colaboração entre a IBM e a Carnegie Mellon University, tentou resolver o problema criando um sistema que usa beacons Bluetooth e smartphones para ajudar na orientação. No entanto, a solução era complicada e provou ser muito cara para implementações em grande escala. Minha solução resolve isso eliminando qualquer necessidade de dispositivos externos e usando uma voz para orientar o usuário ao longo do dia (Figura 3). A vantagem de ter a tecnologia incorporada em uma "bengala branca" é que ela sinaliza ao resto do mundo a condição do usuário, o que causa mudança no comportamento das pessoas ao redor.

Etapa 3: requisitos de design

Requisitos de concepção
Requisitos de concepção

Depois de pesquisar as tecnologias disponíveis, discuti possíveis soluções com profissionais da visão sobre a melhor abordagem para ajudar os deficientes visuais a navegar em seu ambiente. A tabela abaixo lista os recursos mais importantes necessários para alguém fazer a transição para o meu dispositivo.

Recurso - Descrição:

  • Computação - O sistema precisa fornecer um processamento rápido para as informações trocadas entre o usuário e os sensores. Por exemplo, o sistema precisa ser capaz de informar o usuário sobre obstáculos na frente que estejam a pelo menos 2m de distância.
  • Cobertura - O sistema precisa fornecer seus serviços em ambientes internos e externos para melhorar a qualidade de vida das pessoas com deficiência visual.
  • Hora - O sistema deve funcionar tão bem durante o dia como à noite.
  • Alcance - O alcance é a distância entre o usuário e o objeto a ser detectado pelo sistema. O alcance mínimo ideal é de 0,5 m, enquanto o alcance máximo deve ser superior a 5 m. Distâncias adicionais seriam ainda melhores, mas mais difíceis de calcular.
  • Tipo de objeto - O sistema deve detectar o aparecimento repentino de objetos. O sistema deve ser capaz de distinguir entre objetos em movimento e objetos estáticos.

Etapa 4: Projeto de Engenharia e Seleção de Equipamentos

Projeto de Engenharia e Seleção de Equipamentos
Projeto de Engenharia e Seleção de Equipamentos
Projeto de Engenharia e Seleção de Equipamentos
Projeto de Engenharia e Seleção de Equipamentos
Projeto de Engenharia e Seleção de Equipamentos
Projeto de Engenharia e Seleção de Equipamentos

Depois de examinar muitos componentes diferentes, decidi as peças selecionadas nas diferentes categorias abaixo.

Preço das peças selecionadas:

  • Zungle Panther: $ 149,99
  • LiDAR Lite V3: $ 149,99
  • LV-MaxSonar-EZ1: $ 29,95
  • Sensor Ultrassônico - HC-SR04: $ 3,95
  • Raspberry Pi 3: $ 39,95
  • Arduino: $ 24,95
  • Kinect: $ 32,44
  • Floureon 11.1v 3s 1500mAh: $ 19,99
  • LM2596HV: $ 9,64

Etapa 5: Seleção de equipamento: Método de interação

Seleção de Equipamento: Método de Interação
Seleção de Equipamento: Método de Interação
Seleção de Equipamento: Método de Interação
Seleção de Equipamento: Método de Interação

Decidi usar o controle de voz como método para interagir com o dispositivo porque ter vários botões em uma bengala pode ser um desafio para uma pessoa com deficiência visual, especialmente se algumas funções exigirem uma combinação de botões. Com o controle de voz, o usuário pode usar comandos predefinidos para se comunicar com a cana, o que reduz possíveis erros.

Dispositivo: Prós --- Contras:

  • Botões: Nenhum erro de comando quando o botão direito é pressionado --- pode ser difícil garantir que os botões corretos sejam pressionados
  • Controle de voz: fácil porque o usuário pode usar comandos predefinidos --- A pronúncia incorreta pode induzir a erros

Etapa 6: Seleção de equipamento: microcontrolador

Seleção de Equipamento: Microcontrolador
Seleção de Equipamento: Microcontrolador
Seleção de Equipamento: Microcontrolador
Seleção de Equipamento: Microcontrolador
Seleção de Equipamento: Microcontrolador
Seleção de Equipamento: Microcontrolador

O dispositivo usava o Raspberry Pi por causa de seu baixo custo e poder de processamento suficiente para calcular o mapa de profundidade. O Intel Joule teria sido a opção preferida, mas seu preço teria dobrado o custo do sistema, o que não seria o ideal este dispositivo que foi desenvolvido para fornecer uma opção de menor custo para os usuários. O arduino foi utilizado no sistema porque pode facilmente obter informações de sensores. O BeagleBone e o Intel Edison não foram usados devido à baixa relação preço / desempenho, o que é ruim para este sistema de baixo custo.

Microcontrolador: Prós --- Contras:

  • Raspberry Pi: Tem poder de processamento suficiente para encontrar obstáculos e tem Wi-Fi / Bluetooth integrado --- Não há muitas opções para receber dados de sensores
  • Arduino: receba facilmente dados de pequenos sensores. ou seja, LIDAR, Ultrasonic, SONAR, etc --- Não há capacidade de processamento suficiente para encontrar obstáculos
  • Intel Edison: pode processar obstáculos rapidamente com processador rápido --- Requer peças extras de desenvolvedor para funcionar para o sistema
  • Intel Joule: Tem o dobro da velocidade de processamento de qualquer um dos microcontroladores no mercado consumidor até hoje --- Custo muito alto para este sistema e difícil de interagir com GPIO para interação do sensor
  • BeagleBone Black: Compacto e compatível com os sensores usados no projeto usando o General Purpose Input Output (GPIO) --- Não há poder de processamento suficiente para encontrar objetos de forma eficaz

Etapa 7: Seleção de equipamento: sensores

Seleção de equipamento: Sensores
Seleção de equipamento: Sensores
Seleção de equipamento: Sensores
Seleção de equipamento: Sensores
Seleção de equipamento: Sensores
Seleção de equipamento: Sensores

Uma combinação de vários sensores é usada para obter alta precisão de localização. O Kinect é o sensor principal por causa da quantidade de área que ele pode rastrear em busca de obstáculos ao mesmo tempo. LIDAR, que significa Light Detection and Ranging, é um método de sensoriamento remoto que usa luz na forma de um laser pulsado para medir distâncias de onde o sensor está até os objetos rapidamente; esse sensor é usado porque pode rastrear uma área de até 40 metros (m) de distância e, como pode fazer a varredura em vários ângulos, pode detectar se há degraus subindo ou descendo. Os sensores de navegação e alcance de som (SONAR) e ultrassônicos são usados como rastreamento de backup caso o Kinect perca um poste ou colisão no solo que possa representar um perigo para o usuário. O sensor de 9 graus de liberdade é usado para rastrear a direção que o usuário está enfrentando para que o dispositivo possa armazenar as informações para uma orientação mais precisa na próxima vez que a pessoa caminhar no mesmo lugar.

Sensores: Prós --- Contras:

  • Kinect V1: pode rastrear objetos 3D com --- Apenas uma câmera para detectar arredores
  • Kinect V2: tem 3 câmeras infravermelhas e uma câmera Red, Green, Blue, Depth (RGB-D) para detecção de objetos 3D de alta precisão --- Pode aquecer e pode precisar de um ventilador de resfriamento, e é maior do que outros sensores
  • LIDAR: Feixe que pode rastrear locais até 40 m de distância --- Precisa ser posicionado em direção ao objeto e só pode olhar naquela direção
  • SONAR: Feixe que pode rastrear 5 m de distância, mas em uma longa distância --- Pequenos objetos como penas podem acionar o sensor
  • Ultrassônico: tem um alcance de até 3 me é muito barato --- As distâncias podem ocasionalmente ser imprecisas
  • Sensor de 9 graus de liberdade: bom para detectar a orientação e a velocidade do usuário --- Se algo interferir nos sensores, os cálculos de distância podem ser calculados incorretamente

Etapa 8: Seleção de equipamento: software

Seleção de Equipamentos: Software
Seleção de Equipamentos: Software
Seleção de Equipamentos: Software
Seleção de Equipamentos: Software
Seleção de Equipamentos: Software
Seleção de Equipamentos: Software

O software selecionado para os primeiros protótipos construídos com o sensor Kinect V1 foi o Freenect, mas não era muito preciso. Ao mudar para Kinect V2 e Freenect2, os resultados de rastreamento foram significativamente melhorados devido ao rastreamento aprimorado, já que o V2 tem uma câmera HD e 3 câmeras infravermelhas em oposição a uma única câmera no Kinect V1. Quando eu estava usando o OpenNi2 com o Kinect V1, as funções eram limitadas e eu não conseguia controlar algumas das funções do dispositivo.

Software: Prós --- Contras:

  • Freenect: Possui um nível de controle inferior para controlar tudo --- Suporta apenas o Kinect V1
  • OpenNi2: Pode criar facilmente os dados de nuvem de pontos a partir do fluxo de informações do Kinect --- Suporta apenas o Kinect V1 e não tem suporte para controle de baixo nível
  • Freenect2: Tem um nível inferior de controle para a barra de sensor --- Funciona apenas para o Kinect V2
  • ROS: Sistema operacional ideal para programar funções de câmera --- Precisa ser instalado em um cartão SD rápido para que o software funcione

Etapa 9: Seleção de equipamento: outras peças

Seleção de equipamento: outras peças
Seleção de equipamento: outras peças
Seleção de equipamento: outras peças
Seleção de equipamento: outras peças

As baterias de íon de lítio foram selecionadas por serem leves, ter alta capacidade de energia e ser recarregáveis. A variante 18650 da bateria de íon de lítio tem um formato cilíndrico e se encaixa perfeitamente no protótipo da cana. O 1º protótipo de cana é feito de tubo de PVC porque é oco e reduz o peso da cana.

Etapa 10: Desenvolvimento do Sistema: Criando o Hardware Parte 1

Desenvolvimento de Sistema: Criando o Hardware Parte 1
Desenvolvimento de Sistema: Criando o Hardware Parte 1
Desenvolvimento de Sistema: Criando o Hardware Parte 1
Desenvolvimento de Sistema: Criando o Hardware Parte 1
Desenvolvimento de Sistema: Criando o Hardware Parte 1
Desenvolvimento de Sistema: Criando o Hardware Parte 1

Primeiro temos que desmontar o Kinect para torná-lo mais leve e caber dentro da bengala. Comecei removendo todo o revestimento externo do Kinect, pois o plástico usado pesa MUITO. Então tive que cortar o cabo para que a base pudesse ser removida. Peguei os fios do conector mostrado na foto e os soldei a um cabo usb com fios de sinal e as outras duas conexões eram para a alimentação de entrada de 12V. Como queria que a ventoinha dentro da cana funcionasse com potência total para resfriar todos os outros componentes, cortei o conector da ventoinha do Kinect e conectei 5V do Raspberry Pi. Também fiz um pequeno adaptador para o fio LiDAR para que ele possa se conectar diretamente ao Raspberry Pi sem nenhum outro sistema entre eles.

Eu acidentalmente soldei o fio branco no preto, então não olhe as imagens para os diagramas de fiação

Etapa 11: Desenvolvimento do Sistema: Criando o Hardware Parte 2

Desenvolvimento de Sistema: Criando o Hardware Parte 2
Desenvolvimento de Sistema: Criando o Hardware Parte 2
Desenvolvimento de Sistema: Criando o Hardware Parte 2
Desenvolvimento de Sistema: Criando o Hardware Parte 2
Desenvolvimento de Sistema: Criando o Hardware Parte 2
Desenvolvimento de Sistema: Criando o Hardware Parte 2
Desenvolvimento de Sistema: Criando o Hardware Parte 2
Desenvolvimento de Sistema: Criando o Hardware Parte 2

Criei uma peça reguladora para fornecer energia a todos os dispositivos que requerem 5V como o Raspberry Pi. Eu ajustei o regulador colocando um medidor na saída e ajustando o resistor para que o regulador fornecesse 5,05V. Eu coloquei um pouco acima de 5V porque com o tempo, a voltagem da bateria diminui e afeta um pouco a voltagem de saída. Também fiz um adaptador que me permite alimentar até 5 dispositivos que requerem 12V da bateria.

Etapa 12: Desenvolvimento do Sistema: Programando o Sistema Parte 1

Desenvolvimento do Sistema: Programando o Sistema Parte 1
Desenvolvimento do Sistema: Programando o Sistema Parte 1
Desenvolvimento do Sistema: Programando o Sistema Parte 1
Desenvolvimento do Sistema: Programando o Sistema Parte 1
Desenvolvimento do Sistema: Programando o Sistema Parte 1
Desenvolvimento do Sistema: Programando o Sistema Parte 1

Uma das partes mais desafiadoras deste sistema é a programação. Quando comecei a usar o Kinect para brincar com ele, instalei um programa chamado RTAB Map, que pega o fluxo de dados do Kinect e o converte em uma nuvem de pontos. Com a nuvem de pontos, ele criou uma imagem 3D que pode ser girada para ver a profundidade de onde todos os objetos estão. Depois de brincar um pouco com ele e ajustar todas as configurações, decidi instalar um software no Raspberry Pi para me permitir ver o fluxo de dados do Kinect. As duas últimas imagens acima mostram o que o Raspberry Pi pode produzir em cerca de 15-20 quadros por segundo.

Recomendado: