Você está na página 1de 10

MEDIO DE DISTNCIA DOS OBSTCULOS UTILIZANDO SENSORES

DE INFRAVERMELHO E PLATAFORMA ARDUINO

CAROLINE A. ALCNTARA, FRANCISCO A. ALVES, LUCAS M. BATISTA, PATRICIA M. K. N.


TEIXEIRA, VANESSA B. , WELLINGTON PASSOS
Departamento de Engenharia Eltrica, Universidade Federal da Bahia
Rua Prof. Aristides Novis, 2 - Federao- Salvador Bahia Brasil
E-mails: carolinedealcantara@gmail.com, franciscoalvessf@gmail.com,
lucasmarbatista@gmail.com, patriciamartinezkn@gmail.com,
bryvanessa@gmail.com, passos.well@gmail.com

Abstract - This article presents distance measurement by a infrared sensor model GP2Y0A21YK0F and one arduino kit
AtMega2560. The measurement conversion of sensor and the stocked results are performed by the arduino platform. The principles
of sensor calibration, the achievment of the funcion volts x distance and the programming were realized by studied concepts in the
disciplines Microprocessed System and Statistic Methods.
Keywords - Arduin, calibration, distance, sensor.
Resumo - Este artigo apresenta um medidor de distncia atravs do sensor por infravermelho modelo GP2Y0A21YK0F e um kit
Arduino AtMega2560. A converso da medio dos sensores e os resultados armazenados so realizados pela plataforma Arduno.
Os princpios de calibragem dos sensores, a caracterizao da funo voltagem x distncia e a programao foram realizados
utilizando conceitos abordados nas disciplinas Sistemas Microprocessados e Mtodos Estatsticos.
Palavras-chave - Arduino, calibrao, distncia, sensor.

Introduo

O projeto de medio das distncias do objeto


aos obstculos consiste em utilizar 10 sensores
do tipo infravermelho que produziro leituras
em formato de tenso ao encontrarem objetos no
seu campo de alcance. Essas leituras foram
captadas pelo Arduino que efetuar a converso
das tenses em distncias atravs de seu cdigo
de programao. As leituras referentes a cada
sensor foram armazenadas pelo Arduino como
um vetor de distncias o qual podem ser
acessados e enviados caso necessrio via
protocolo I2C.
As

etapas

bsicas

do

processo

Converso do sinal digital para medidas em


formato de tenso. (O sinal digital vir em
uma faixa entre 0 e 1023, j que estamos
utilizando uma resoluo de 10 bits)

Converso desse valor de tenso para o


valor referente distncia encontrado
atravs da curva de caracterizao calculada
da funo Tenso x Distncia.

Armazenamento dos valores da distncia de


cada sensor em um vetor.

Transmisso serial dos valores da distncia


de cada sensor via I2C.

foram:
2 Desenvolvimento

Calibrao do sensor, medindo a tenso que


o sensor produz entre uma distncia mnima
de 10cm e mxima de 80cm.

Caracterizao da curva da funo Tenso x


Distncia do sensor diante de obstculos de
cores escuras e claras.

Utilizar
10
sensores
modelo
GP2Y0A21YK0F para medir distncias;

Converso da leitura analgica do sensor


para formato digital atravs do Arduino.

Enviar os valores das distncias medidas


por cada sensor por um canal I2C;

2.1 Especificaes do Projeto


So exigncias do projeto:

A luz refletida incide no receptor e transmitida


a um pequeno dispositivo de carga acoplada
(CCD) localizado dentro do sensor, que tem
como funo determinar o ngulo de reflexo.
Os ngulos formados no tringulo variam de
acordo com a distncia que est o objeto.
Assim, o sensor calcula a distncia a partir desse
ngulo de reflexo e emite uma tenso no seu
pino de sada correspondente distncia
detectada.

2.2 Sensor de distncia GP2Y0A21YK0F


GP2Y0A21YK0F um sensor infravermelho,
composto de uma combinao integrada entre
um PSD (position sensitive detector, detector de
posio), um IRED (infrared emitting diode,
diodo emissor de infravermelho) e um circuito
processador de sinal.

Este mtodo oferece grande imunidade contra a


interferncia da luz ambiente e a variao de cor
do obstculo. Porm, a relao entre a tenso de
sada e a distncia torna-se no linear,
aparentando uma curva logartmica, como
mostra a Figura 3 obtida do datasheet do
dispositivo. possvel observar tambm que
para distncias fora da faixa de operao do
sensor, a sada torna-se no proporcional e deve
ser rejeitada.
Figura 1 - Diagrama de blocos da organizao interna do
sensor GP2Y0A21YK0F

Segundo o datasheet disponibilizado pelo


fabricante, so caractersticas relevantes do
dispositivo:

Faixa de distncias de medida: 10 a 80cm;


Tipo de sada: tenso analgica entre 0 e
5V;
Corrente mdia de consumo tpica: 30mA;
Faixa de tenses de alimentao: 4,5 a
5,5V.

O GP2Y0A21YK0F utiliza um mtodo de


triangulao para calcular a distncia de um
determinado objeto. Um pulso de luz
infravermelha emitido pelo emissor e se
propaga at encontrar um objeto. Ao encontrar
um obstculo, esta luz refletida e forma-se um
tringulo entre o emissor, o ponto de reflexo e
o detector do sensor, conforme Figura 2.

Figura 3 Curva caracterstica do sensor


GP2Y0A21YK0F

2.3 Obteno da curva caracterstica do


sensor
A curva caracterstica do sensor, fornecida pelo
datasheet, foi ilustrada na Figura 3. Entretanto,
cada sensor possui um comportamento
especfico, devido sua estrutura interna. Por
isso, foi necessrio realizar uma srie de
medidas experimentais para verificar a curva
caracterstica de um determinado sensor.

Figura 2 Triangulao do sensor GP2Y0A21YK0F

Figura 5 Dados da tenso e distncia obtidos atravs de


um obstculo de cor branca.

Para realizar essa medio, foi necessrio


conectar os trs terminais do sensor, respeitando
a indicao da Figura 4. A alimentao Vcc
utilizada foi de 5V, que est de acordo com a
condio de operao Supply voltage
recomendada pelo datasheet do produto, que
varia de 4,5 a 5,5V. A partir da, foi possvel ler
os resultados de tenso no terminal Vo do
sensor, atravs de um multmetro, na medida em
que varivamos a distncia entre o mesmo e um
obstculo.
Devido

preciso
do
GP2Y0A21YK0F, s foi possvel medir a
voltagem referente ao intervalo de distncia de
10 a 80cm.

Figura 6 Curva caracterstica da funo


Voltagem x Distncia para obstculo branco.

Visualmente, percebe-se que a curva resultante,


apresentada no grfico acima, prxima curva
fornecida pelo datasheet. Alm disso, a partir
desses dados coletados, foi possvel encontrar a
equao da curva que mais se aproxima do
comportamento voltagem x distncia do
sensor. Para isso, foi utilizado o mtodo de
regresso no linear (do tipo potncia) no qual
ajustamos a curva da funo atravs de uma
ferramenta no Excel chamada Linha de
Tendncia obtendo o seguinte resultado:

Figura 4 Pinagem referente ao sensor


GP2Y0A21YK0F

As medidas foram realizadas com duas cores de


obstculo diferente: uma folha de papel A4
branco de gramatura 75g/m e um
paraleleppedo envolvido em couro preto.
Os dados referentes ao obstculo branco podem
ser observados na tabela a seguir:

Figura 7 Ajuste da Linha de Tendncia realizada no


Excel para amostras feitas com obstculo branco.

A prpria ferramenta do Excel nos fornece a


equao da curva que apresentada abaixo.

V 15,5109 d -0,8778

(1)

Sendo:
d = distncia do sensor ao obstculo de cor
branca.
V = tenso escrita pelo sensor para representar
aquela distncia ao obstculo.

curva do datasheet. Este resultado pode


explicado devido a erros dos operadores
medio, e pode ser constatado atravs
equao encontrada para este conjunto
medidas, utilizando o mesmo mtodo
regresso supracitado.

O R indicado no grfico um parmetro,


chamado de coeficiente de determinao, que
avalia a qualidade da regresso. Quanto mais
prximo de 1, melhor o ajuste entre a funo e
os dados coletados. O R varia de 0 a 1,
indicando em porcentagem o quanto o modelo
consegue explicar os valores observados.

ser
da
da
de
de

Nesse caso temos um R = 0,9982 , o que


significa que 99,82% da varivel dependente
consegue ser explicada pelos regressores
presentes no modelo.
Quando utilizamos um obstculo preto para
fazer as medidas da tenso em relao
distncia desse objeto at o sensor, encontramos
um resultado no satisfatrio.

Figura 10 Ajuste da Linha de Tendncia realizada no


Excel para amostras feitas com obstculo preto.

A equao da curva feita pelo Excel


apresentada abaixo.

V 13,262 d -0,769

(2)

Sendo:
d = distncia do sensor ao obstculo de cor
preta.
V = tenso escrita pelo sensor para representar
aquela distncia ao obstculo.
Nesse caso temos um R = 0,9545 , o que
significa que 95,45% da varivel dependente
consegue ser explicada pelos regressores
presentes no modelo.
Figura 8 Dados da tenso e distncia obtidos atravs de
um obstculo de cor preta.

Observamos que o nvel de confiana maior se


trabalharmos com obstculos de cor branca, j
que a curva das amostras de distncia por tenso
que coletamos est mais prxima da equao de
regresso que calculamos. Com um coeficiente
de determinao de 99,82%, referente anlise
de dados do obstculo branco, temos uma
segurana maior para aplicarmos o mtodo
utilizado para representar a curva caracterstica
do sensor.

2.4 Condicionamento do sinal do sensor


O condicionamento de sinais necessrio para
converter os sinais oriundos dos sensores e
ento interfaciar de forma adequada com o
controlador. Mesmo em aplicaes envolvendo
processamento digital, algum tipo de

Figura 9 Curva caracterstica da voltagem x distncia.

Neste caso, percebe-se que a curva encontrada


possui distores em relao curva referente
ao obstculo branco, e tambm em relao

processamento analgico requerido antes que


a converso analgico-digital seja feita,
limitando a largura de banda do sinal no
mximo metade da taxa de amostragem,
casando sua amplitude com a faixa de entrada
do conversor e eliminando rudos no sinal que
venha do sensor.

2.5 Controlador Arduino

O sensor GP2YOA21YKOF pouco


susceptvel variao de reflexo sobre o
objeto, a temperatura ambiente e o tempo de
operao do sensor. O datasheet menciona que
para reduzir o rudo, precisa-se colocar um
capacitor de 10 uF entre o terra e a entrada de
voltagem. Mesmo assim, tem uma presena de
rudo. Para eliminar esse rudo, adiciona-se na
sada do sensor um filtro ativo de primeira
ordem.

O Arduino foi escolhido devido a facilidade de


programao, de obteno do kit para testes e
pela quantidade de portas analgicas presentes
para converso Anlogico/Digital da tenso dos
10 sensores.

Os
10
sensores
infravermelhos
GP2Y0A21YK0F so utilizados no projeto na
inteno de medir distncia e para isso
utilizamos o microcontrolador Atmega2560 da
plataforma Arduino Mega2560.

So as principais caractersticas do Arduino


Mega2560:

Tenso de operao: 5V, proveniente de


fonte externa ou da porta USB de um
computador;
54 pinos de entrada e sada digital, sendo 15
portas com capacidade para PWM;
16 pinos de entrada analgica;
Corrente mxima por pino digital de 40mA;
Memria de programa flash de 256KB,
incluindo bootloader;
Memria RAM de 8KB;
Memria EEPROM de 4KB;
Clock de 16MHz.

Suas especificaes so visualizadas de forma


clara na Figura 12.

Figura 11 Mapeamento do circuito utilizando o


software Protheus Isis 7. Sensor associado a um filtro
passa-baixa.

O ATMEGA2560 contem um nico conversor


analgico-digital de 10 bits com uma frequncia
de amostragem igual 15 kHz. Conforme o
teorema de Nyquist, a frequncia mxima do
sinal de entrada do conversor deve ser igual ou
menor que 7.5 kHz, desta forma eliminamos o
efeito chamado aliasing ou foldover em que a
alta frequncia medida erroneamente como
sendo de frequncia mais baixa. Os valores dos
componentes so escolhidos tal que R1 = R2 =
10k (j que o ganho do filtro passa-baixa
obedece a equao K = -R2/R1 = -1) e C1 =
4,7nF de maneira a ter uma frequncia de corte
Fc = 1/(2.R2.C1) = 3.4 kHz.

Figura 12 Plataforma detalhada do Arduino Mega2560

O Arduino um projeto de circuito baseado em


microprocessador de cdigo aberto, da indstria
Atmel. uma placa fsica com circuitos de
entrada/sada simples, microcontrolada e
desenvolvida sobre uma biblioteca que
simplifica a escrita da linguagem de
programao em C/C++. Sua linguagem de
programao baseado na linguagem Wiring
(prototipagem eletrnica de hardware livre

composta por uma linguagem de programao,


um ambiente de desenvolvimento integrado e
um microcontrolador de placa nica) e seu
ambiente de desenvolvimento baseado no
Processing.

matemtica para realizao dos clculos no


microcontrolador.
importante salientar que neste relatrio
informamos somente a calibragem de um
sensor, por conta da acessibilidade aos materiais
do projeto. No entanto, durante a programao
deixamos uma parte do cdigo reservado para
incluir as outras funes caractersticas advindas
das calibraes dos outros 9 sensores.

O Arduino tem a funcionalidade de interpretar


as variveis do ambiente e transform-las em
sinal eltrico, atravs de sensores ligados aos
terminais de entrada, controlando ou acionando
algum
outro
elemento
eletro-eletrnico
conectado
ao
terminal
de
sada.
Resumidamente, o Arduino uma ferramenta de
entrada e sada de dados que pode ser acionada
por um sensor, e depois processada para poder
acionar um atuador. Esse funcionamento
simplificado no esquema abaixo.

Quando h mudana de cor do objeto de branco


(clara) para preto (escura) ou vice-versa foi
possvel perceber que a tenso no sensor muda
mantendo a mesma distncia. Isso ocorre, pois a
reflexo do infravermelho ser menor quando a
cor do objeto for preta. Nesse projeto iremos
considerar que os objetos encontrados sero da
cor branca.
Com as amostras de tenso para cada distncia
que obtivemos, encontramos a relao Distncia
x Tenso pelo mtodo dos mnimos quadrados.
Essa relao, que ser usada durante a
programao, escrita como:

Figura 13 Diagrama simplificado de funcionamento do


Arduno.

d 26,1049 V -1,13718

Com o Arduino pode-se desenvolver objetos


interativos, permitindo a entrada de sensores ou
chaves, controlando uma variedade de luzes,
motores ou sadas fsicas. Com ele pode-se
manipular o hardware (sensores, portas,
alarmes) atravs do software.
Algumas de suas
utilizao so:

grandes

vantagens

(3)

Sendo:
d = distncia do sensor ao obstculo de cor
branca
V = tenso escrita pelo sensor para representar a
distncia ao obstculo

de

A curva para calibragem foi apresentado no


grfico abaixo.

Preo: Relacionando com as outras


plataformas de microcontroladores, o
Arduino possui um preo relativamente
baixo.
Multi-plataforma: O seu software roda no
Windows, Linux e Macintosh OSX.
Utilizao simples e clara: O seu ambiente
de programao de fcil uso e seu cdigo
fonte aberto e pode ser aperfeioado por
programadores mais experientes.

2.6 Lgica de programao, Fluxograma e


cdigo

Figura 14 - Curva de calibragem construda


utilizando uma folha de papel A4 da Chamex modelo
multi, gramatura 75g/m2, como obstculo.

Para converso de valores de tenso para


valores de distncia foi necessrio fazer uma
calibragem no sensor infravermelho que
consiste em obter os valores experimentais de
tenso para cada distncia. Aps vrias
medies possvel gerar uma funo

Com a funo da distncia bem definida,


iniciamos a escrita do cdigo de programao
do Arduino.
Todo cdigo necessita da incluso de
bibliotecas. Como o nosso cdigo ir conter

funes matemticas, inclumos em nossa


programao a biblioteca math.h.
Alm disso, nosso projeto dever conter uma
comunicao serial via I2C que servir para
enviar os dados dos valores da distncia quando
solicitados. Portanto, ser necessrio incluir a
biblioteca Wire.h.

float sensor = o dado enviado pelo sensor ao


encontrar o obstculo. Esse dado vir na faixa
de 0 a 1023 que a faixa considerada para a
resoluo de 10 bits que estamos utilizando.
Como os dados do sensor ser um sinal
analgico, necessrio pedir que o compilador
leia esse sinal. Por isso usamos a chamada
analogRead() que permite a leitura do pino que
recebe o sinal analgico. Considerando o canal
de converso analgico-digital de 10 bits que
estamos utilizando, o Arduino ir mapear
tenses de entrada entre 0 e 5V em valores
inteiros entre 0 e 1023. O que produz uma
resoluo de leitura de 5 volts por 1024
unidades.
A chamada analogRead() vem especificando
entre os parnteses o pino que recebe o sinal
analgico. Como usamos a porta A0, A1, A2,
A3, A4, A5, A6, A7, A8, A9 como pinos de
entrada dos sinais analgicos (10 portas, pois
usamos 10 sensores), especificamos no
analogRead() o pino (i + 14), sendo i um
nmero inteiro que varia entre 0 e 9, e 14 o
valor conhecido pelo compilador como porta A0
(15 a porta A1, 16 a porta A2, 17 a porta
A3 e assim sucessivamente).

Iniciamos nosso cdigo tambm com o prprocessador #define que exige que compilador
ao longo do programa faa a substituio da
constante definida pelo pr-processador por um
valor tambm pr definido.
No nosso caso fizemos #define canaisAD 10
que substitui tudo que estiver escrito como
canaisAD por 10. Esses canais AD so todos os
canais analgicos-digitais que temos para
converter os sinais analgicos advindos dos
sensores. Como possumos 10 sensores, logo
necessitamos de 10 conversores ADs, ento
definimos canaisAD como 10.
Declaramos o inteiro i que servir como valor
que varia entre 0 e 9 para ajudar na funo dos
vetores que criamos para armazenar dados.
Foi necessrio declarar tambm as constantes
das funes caracterstica de cada sensor, bem
como os expoentes dessas funes. Para tal
criamos
dois
vetores
a[canaisAD]
e
b[canaisAD] que armazena as 10 constantes e
os 10 expoentes da funo de cada sensor
respectivamente.

float volt = a tenso que iremos calcular


atravs do dado recebido pelo float sensor.
Como o dado do sensor vir numa faixa entre 0
e 1023, para transformar esse nmero num valor
em Volts usamos a frmula abaixo:

O esboo de nossa programao inicializa com a


funo void setup() no qual se usa para
inicializar variveis, seleo de pinagens, etc.
Dentro dessa funo, necessrio inicializar a
comunicao serial, informando a taxa de dados
em bits por segundo para transmisso de dados
serial. Cada serial possui um nvel diferente de
taxa de dados de transmisso que variam entre
300 115200 bits por segundo. Como estamos
conectando o computador via serial, este exige
somente uma taxa de 9600 bits por segundo.
Nessa funo ser necessrio, tambm,
inicializar a comunicao via I2C, atravs da
funo Wire.begin().

volt

5 sensor
1023.0

(4)

Sendo:
5 = a tenso mxima em volt (tenso de
alimentao)
sensor = o valor recebido do sensor (que varia
de 0 a 1023)
1023 = o mximo valor da faixa recebida do
sensor
float dist = o valor da distncia do sensor ao
obstculo. Esse valor calculado pela frmula
(3) j mencionada. Como queremos armazenar
os valores da distncia de cada sensor aos
obstculos, fizemos a varivel dist como vetor,
escrevendo como dist [canaisAD - 1]. Como o
vetor distncia armazena dados de cada canal
analgico-digital, definimos que este vetor
possui o tamanho igual dos canaisAD, ou seja,
um vetor que armazena 10 valores de distncia
(que varia de 0 9). Ao aplicar a frmula (3)
para calcular a distncia, usamos o vetor dist
como sendo dist [i], com i variando entre 0 e 9.
A frmula fica:

Depois de criar uma funo setup(), que


inicializa e define os valores iniciais, a funo
void loop() faz exatamente o que seu nome
sugere, laos consecutivos, permitindo que o
programa continue em seu processo de leitura,
manipulao de dados e escrita.
Nas definies de variveis temos:

dist[i] a[i] volt b[i ]

O cdigo do programa indicado abaixo:

(5)

#include <Wire.h> // Biblioteca I2C


#include <math.h> // Biblioteca matemtica

A cada valor de i variando de 0 a 9, possumos


novos valores de tenso calculados para cada
dado recebido pelo sensor. Desta forma, temos
os diferentes valores das distncias armazenados
no vetor que varia de dist [0] dist [9]. Observe
tambm que a[i] o vetor que armazena as
constantes e b[i] o vetor que armazena os
expoentes da funo caracterstica de cada
sensor, definida aps calibragem.

#define canaisAD 10 // nmeros de canais AD


// dos sensores (temos 10
// canais)
int i = 0;
//declarao das constantes de calibrao de
//cada sensor, usados para calcular distncia,
// os valores para outros sensores devem ser
//obtidos como segue no artigo:

Para que cada valor do vetor distncia seja


escrito no monitor do computador, indicamos a
funo Serial.println(dist[i]). Alm disso, ser
necessrio uma interrupo do programa cada
escrita dos valores das distncias obtidas. Essa
interrupo importante para que possamos ver
com clareza os valores no monitor do
computador. Para isso, necessrio utilizar a
funo delay(300), no qual colocamos uma
parada de 300 milisegundos (0,3 segundos) de
uma escrita para outra.
Para o envio do vetor distncia (dist[i]) via I2C,
quando solicitado, implementamos no cdigo a
funo Wire.write(int (dist[i])).

const float a[canaisAD] = {26.1049,


constante2,constante3,...,constante10};
const float b[canaisAD] = {-1.13718,
expoente2,expoente3,...,expoente10};
void setup( ) {
// Inicializa comunicao serial em 9600
//bits por segundo:
Serial.begin(9600);
// Inicia o I2C:
Wire.begin( );

O valor de i incrementado (somado 1) cada


vez que um valor de distncia for armazenado
no vetor.
Quando o valor de i chegar 10 (valor de
canaisAD) o compilador zera i (coloca i = 0) e
retorna ao incio do loop, onde recomear a
leitura das distncias do obstculo cada
sensor.

}
// A rotina roda num loop roda para sempre:
void loop( ) {

Segue adiante o fluxograma que simplifica


todas essas etapas da programao.

float sensor = analogRead(i+14);


// porta A0 chamada de 14 pelo programa, A1
// 15 e assim sucessivamente
float volt;
float dist [canaisAD];
// Imprime o dado para leitura
// clculo para achar o valor em volts no sensor:
volt = 5*sensor/(1023.0);
// cria um vetor que contm canaisAD valores
//de distncias que sero lidas pelo sensor:
dist[i] = a[i]*pow(volt,b[i]);
if( (dist[i] > 70.0) || (dist[i] < 15.0)) {
Serial.print(Sensor );
Serial.print(i);
Serial.println( excedeu a faixa);
}

Figura 15 - Fluxo de execuo do cdigo feito para


Arduino.

// Imprime no Serial Monitor o valor:


Serial.println(dist[i]);

Segue o circuito modelo utilizado para leitura de


dados do sensor e retorno de valores de
distncia entre sensor e obstculo:

// Envia via I2C os valores das distncias.


//Envia em formato inteiro, pois no funciona
//com ponto flutuante:
Wire.write(int (dist[i]));
delay(300); // Espera 0,3 s
i++;
if (i = = canaisAD) {
// Se chegar igual a canaisAD volta a 0 e mede o
//valor da primeira porta novamente.
i=0;
}
}
3 Resultados prticos

Figura 16: Circuito usado para teste de cdigo.


Arduino utilizado para teste, Arduino Nano.

Para implementao e teste do cdigo de


programao do projeto, foi utilizado somente 1
sensor ligado ao Arduino Nano (placa pequena
baseada no ATmega326) no qual possui as
seguintes caractersticas:

Para ligao do sensor placa do Arduino


utilizamos a referncia da pinagem do sensor
encontrada em seu datasheed. Conectamos as 2
entradas do sensor (GND e Vcc) e a sada do
sensor (Vo) s portas do Arduino.
Observa-se na imagem que a sada Vo do sensor
est ligado porta A0 da placa. Esse sinal Vo
o sinal referente s distncias do sensor ao
obstculo, e esse sinal que ser aplicado no
nosso programa para definirmos os valores das
distncias atravs da equao (5).
A porta 5V da placa conectada ao pino de
entrada Vcc do sensor. Essa porta 5V serve de
alimentao ao sensor e a tenso proveniente
da alimentao entregue pelo computador ao
Arduino (via USB).
A porta GND da placa conectada ao pino de
entrada GND do sensor para finalizar as
ligaes suficiente para a interao entre
microprocessador e sensor.

Tenso de operao: 5V, proveniente de


fonte externa ou da porta USB de um
computador;
14 pinos de entrada e sada digital, sendo 6
portas com capacidade para PWM;
8 pinos de entrada analgica;
Corrente mxima por pino digital de 40mA;
Memria de programa flash de 32KB,
incluindo bootloader;
Memria RAM de 2KB;
Memria EEPROM de 1KB;
Clock de 16MHz.

O que diferencia de fato esse Arduino Nano ao


Arduino Mega2560 so as quantidades de pinos
de entrada analgica, pinos de entrada e sada
digital e capacidade de memrias flash, RAM e
EEPROM. No entanto, para efeito de teste da
programao, essa diferena no afetaria nosso
projeto, j que testaremos a programao
utilizando somente 1 sensor. Com o teste
validando a qualidade do nosso programa,
bastou somente alterar o cdigo do programa
para mais 9 sensores, implementando um loop e
criando vetor de dados.

4 Concluso
O projeto em questo analisou o comportamento
do sensor infravermelho em diferentes tipos de
obstculos e permitiu a caracterizao da funo
Distncia por Voltagem atravs de calibrao e
regresso no linear dos valores das amostras.
Foi feita a escolha em trabalhar com a melhor
curva que caracteriza-se nosso sistema, por isso

foi feita a anlise do coeficiente de


determinao de cada tipo de obstculo (o da
cor branca e o da cor preta) ficando clara a
maior confiabilidade diante da equao
caracterstica ao se utilizar obstculo de cor
branca.
Diante do objetivo em desenvolver um
programa que informasse ao usurio a distncia
dos sensores aos obstculos, foi possvel
perceber a facilidade de manuseio e o bom
desempenho ao se utilizar do microprocessador
Arduino que consegue atender de forma prtica
e simples aos objetivos finais no trabalho.
De forma geral, os resultados obtidos foram
satisfatrios e fiis ao esperado teoricamente. O
projeto permitiu o aprofundamento do
conhecimento de microcontroladores e da
facilidade de manipulao de dados que estes
podem nos fornecer. Alm disso, o projeto
permitiu enxergar a importncia das anlises
estatsticas referente s amostras durante
calibrao de componentes.

Zuben , Fernando J. V., 2013, Notas de aula do


curso EA616 , DCA/FEEC/UNICAMP
Ibrahim, Dogan, 2006, Microcontroller Based
Applied
DigitalControl John Wiley & Sons, Ltd.
Seguine, Dennis, July 15, 2011, Associated
Application Notes: AN2095, AN2219,Cypress
MCU Application Design Team, Choi, June,
1D/A Converter by Using PWM, 8-bit
Microcontroller Application Note
http://www.mantech.co.za/datasheets/products/
A000047.pdf
http://www.cefetsp.br/edu/sertaozinho/professor
es/Fernando_Fortuna/material_341_3ano.pdf
http://www.acroname.com/robotics/info/articles
/sharp/sharp.html

A participao no trabalho, nos permitiu


identificar possveis aplicaes do projeto em
trabalhos como sensoriamento de posio de um
rob atravs destes sensores conectados
diversas partes da sua estrutura, permitindo at
um estudo da presena do rob no espao
inserido, informado a sua localizao ou mesmo
onde existem obstculos e como ele dever agir
diante dessas barreiras fsicas.

http://arduino.cc/en/Reference/HomePage
http://www.arduino.cc/

So sugestes para o melhoramento do projeto,


estudar como tornar o sistema de medio de
distncia imune a variao de cores, ou at
mesmo permitir que atravs dos dados enviados
pelos sensores o programa possa identificar e
informar as cores captadas pelos sensores,
ajudando a reconstruir a imagem do ambiente.
5 Agradecimentos
Os autores deste artigo agradecem ao professor
Js Cerqueira pela colaborao e orientao ao
longo do desenvolvimento do projeto.
6 Referncias Bibliogrficas
Taylor, C. W. (1994). Power System Voltage
Stability. Ed McGraw-Hill , Inc..
OGATA, Katsuhiko, 2003, Engenharia de
controle moderno. 4. ed. So Paulo: PrenticeHall do Brasil

10