Utilizando Arduino para criação de Tecnologias Assistivas – Parte II

Continuando o projeto da nossa tecnologia assistiva para deficientes visuais, resolvi acoplar o prototipo em um boné para fazer alguns teste, também tive que fazer algumas modificações no código, principalmente na leitura do sensor ultrasonico, essa modificação teve que ser feita para melhorar a leitura e o tempo de resposta do sensor ultrasonico e consequentemente para o acionamento do motor de vibração.

Código:

/*********************************
Autor: Fernando Krein Pinheiro
Data: 23/05/2012
Linguagem: C (Wiring)
========= IMPORTANTE ===========
O código esta livre para usar,
citar e compartilhar desde que
mantida sua fonte e seu autor.
Obrigado.
********************************/

#include <Ultrasonic.h>
#define echoPin 13
#define triggerPin 12

Ultrasonic ultrasonic(12,13);
int motorPino =  9;

void setup()
{

  Serial.begin(9600);
  pinMode(triggerPin, OUTPUT);
  pinMode(echoPin, INPUT);
  digitalWrite(motorPino, LOW);
}

void loop() {

  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);

  long tempo = pulseIn(echoPin, HIGH);

  //trunca o valor e faz com que seja um inteiro
  int distancia = calculoDistancia(tempo);

  if(distancia < 100)
  {
    digitalWrite(motorPino, HIGH);
  }
  else
   digitalWrite(motorPino, LOW);
   delay(100);
}

float calculoDistancia(long tempo){

  float segundos = (float) tempo / 1000000.0;
  float distancia = segundos * 340;
  distancia = distancia / 2;
  distancia = distancia * 100;
  return distancia;
}

Imagens do Prototipo:

Vídeo demonstrativo:

Repare que no eixo do motor existe uma pequena placa de cor vermelha e azul. Colei essa placa no eixo penas para uma melhor visualização, pois em alguns casos não era possível ver através do vídeo o acionamento do motor. A distancia mínima para o acionamento do motor no vídeo é de 30 centímetros.

As distancias utilizadas para testes foram:

2 metros.
1 metro.
50 centímetros.
30 centímetros.
20 centímetros.

Embora tenha sido curto o período de testes o prototipo mostrou-se bastante eficiente na leitura de todas as distancia e em momento algum houve erros de leitura pelo sensor ou de funcionamento do motor de vibração.

Conclusões sobre o trabalho:

A criação desse prototipo deve servir como um incentivo para a criação de tecnologias que auxiliem pessoas portadoras de necessidades especiais. O prototipo em questão não substitui de forma alguma as bengalas brancas usadas pelas pessoas com deficiência visual, pois os obstáculos como, degraus e muros com alturas inferiores a faixa da cintura de uma pessoa não são detectados por esse prototipo.

O uso de um motor de vibração menor é aconselhável, pois o que foi usado no projeto, além de ser grande e com uma estética ruim, ficará difícil de ser acoplado em uma placa. Aconselho então o uso de um motor de vibração menor que pode ser o mesmo encontrado em celulares.

O prototipo poderá ser construido utilizando dois sensores de ultrasom, um na altura da cabeça acoplado em um boné e outro em um cinto, pois assim poderá ser detectado obstáculos menores que a faixa da cintura de um individuo.

Anúncios
por ferpinheiro Postado em Arduino

4 comentários em “Utilizando Arduino para criação de Tecnologias Assistivas – Parte II

  1. Boa noite tentei compilar seu código I não deu certo, neste código II aparece um erro na linha Ultrasonic ultrasonic(12,13); O que poderia ser?

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s