Você está na página 1de 103

1

SOCIEDADE EDUCACIONAL DE SANTA CATARINA – SOCIESC


FACULDADE DE TECNOLOGIA TUPY CURITIBA – FTT

JULIANO PIVA BERMAL


RENANN MANZONI SLOMA

TRABALHO DE CONCLUSÃO DE CURSO

ROBÔ MÓVEL COM SISTEMA DE LOCALIZAÇÃO PARA AMBIENTE INDOOR


CONHECIDO

CURITIBA
2015/2
2

SOCIEDADE EDUCACIONAL DE SANTA CATARINA – SOCIESC


FACULDADE DE TECNOLOGIA TUPY CURITIBA – FTT

JULIANO PIVA BERMAL


RENANN MANZONI SLOMA

TRABALHO DE CONCLUSÃO DE CURSO

ROBÔ MÓVEL COM SISTEMA DE LOCALIZAÇÃO PARA AMBIENTE INDOOR


CONHECIDO

Trabalho de Conclusão de Cursoapresentado na


Faculdade de TecnologiaTupy, mantido
pelaSociedade Educacional de Santa Catarina -
SOCIESC, Curitiba/PR, como requisito
paraobtenção de graduação no curso de
Tecnologia emMecatrônica Industrial.

CURITIBA
2015/2
3

ROBÔ MÓVEL COM SISTEMA DE LOCALIZAÇÃO PARA AMBIENTE INDOOR


CONHECIDO

JULIANO PIVA BERMAL


RENANN MANZONI SLOMA

Trabalho de Conclusão de Curso (TCC) apresentado como requisito parcial


para obtenção do título de Tecnólogo em Mecatrônica Industrial pela Faculdade de
Tecnologia TUPY - SOCIESC em Curitiba/PR, e aprovado pela Banca examinadora.

......................................................................
Coordenador (a) do Curso

Banca Examinadora integrada pelos professores:

.......................................................................
Professor Orientador

........................................................................
Professor da Banca Examinadora

........................................................................
Professor da Banca Examinadora
4

AGRADECIMENTOS

Primeiramente gostaríamos de agradecer a Deus, por ter nos dado força


durante nossa caminhada. As nossas famílias, pela paciência, apoio e compreensão
em todos os momentos. Agradecemos também a nossos professores pelos
conhecimentos transmitidos ao longo de todo o curso, em especial ao professor
Carlos Eduardo Magrin que nos orientou nesse projeto, e a nossos colegas de
faculdade pela troca de informações e experiências.
5

“Eu acredito na intuição e na inspiração.


A imaginação é mais importante que o conhecimento.
O conhecimento é limitado, enquanto a imaginação abraça o mundo inteiro,
estimulando o progresso, dando à luz à evolução. Ela é, rigorosamente falando, um
fator real na pesquisa científica.”
(Albert Einstein)
6

RESUMO

Um robô móvel pode ser utilizado para executar tarefas em determinados


meios sem a necessidade de uma pessoa se expor a estes ambientes. Com um
estudo sobre técnicas de navegação e localização, o projeto consiste no
desenvolvimento de uma plataforma móvel para seguir um determinado caminho
orientado por sensores de ultrassom, encoders e bússola digital para que o mesmo
se movimente, e envie sua posição para o computador via Bluetooth, onde se
localiza o operador. A proposta deste trabalho objetiva o posicionamento e controle
eficiente para robôs móveis, através de um microcontrolador que controla o sistema,
seguindo rotas, coletando dados e os enviando para que estas informações sejam
armazenadas e consultadas posteriormente.

Palavras-chaves: Localização.Robô. Móvel. Microcontrolador.


7

ABSTRACT

A mobile robot may be used for performing tasks in certain media without the
need for a person exposed to these environments. With a study of techniques of
navigation and location, the project is to develop a mobile platform to follow a certain
path guided by ultrasound sensors, encoders and digital compass so that it moves,
and send your position to your computer via Bluetooth where is located the operator.
The purpose of this study aims at positioning and efficient control for mobile robots,
by a microcontroller programming that controls the system, tracing routes, collecting
data and sending them for this information to be stored and recalled later.

Key words: Localization.Robot. Mobile. Microcontroller.


8

LISTA DE ILUSTRAÇÕES

Figura 1 – Triangulação..............................................................................................19
Figura 2 – Representação do filtro de Kalman...........................................................20
Figura 3 – Localização...............................................................................................23
Figura 4 – Diagrama de pinos microcontrolador AVR ATMEGA328P.......................25
Figura 5 – Diagrama de pinos microcontrolador PIC 16F877A..................................26
Figura 6 – Diagrama de pinos PIC18F4550...............................................................27
Figura 7 – Sensor Infravermelho GP2Y0A02YK0F da Sharp....................................29
Figura 8 – Sensor a laser E3Z da OMRON................................................................29
Figura 9 – Funcionamento prático do sensor ultrassônico.........................................31
Figura 10 – Sensor ultrassônico HC-SR04 da ElecFreaks........................................32
Figura 11 – Sensor encoder ótico HOA0901 da Honeywell.......................................33
Figura 12 – IMU GY-80..............................................................................................34
Figura 13 – Triangulação realizada pelo GPS............................................................37
Figura 14 – Motor de corrente contínua.....................................................................38
Figura 15 – Circuito utilizando transistores como chaves..........................................39
Figura 16 – Diagrama de blocos L298.......................................................................40
Figura 17 – Ciclos de PWM em aproximadamente 50%............................................41
Figura 18 – Ciclos de PWM em aproximadamente 25% ...........................................41
Figura 19 – Principais tipos de rodas: a) padrão; b) castor; c) sueca; d) esférica.....48
Figura 20 – Principais tipos de arranjos de rodas e legendas...................................49
Figura 21 – Webots....................................................................................................53
Figura 22 – V-REP.....................................................................................................54
Figura 23 – SuperLogo...............................................................................................55
Figura 24 – Diagrama das portas utilizadas...............................................................57
Figura 25 – Diagrama de blocos dos dispositivos eletroeletrônicos..........................58
Figura 26 – Placa microcontrolada com o PIC 16F877A...........................................59
Figura 27 – Disco usado com o sensor óptico...........................................................60
Figura 28 – Módulo com bússola HMC5883L da Honeywell......................................60
Figura 29 – Testes com a bússola.............................................................................60
Figura 30 – Disposição da bússola digital HMC5883L no protótipo...........................62
Figura 31 – Motor DC com redução acoplada............................................................63
Figura 32 – Ponte H com transistores em placa de circuito impressa.......................64
9

Figura 33 – Esquemático de ligação do LCD.............................................................64


Figura 34 – Roda traseira e dianteira.........................................................................66
Figura 35 – Layout da base inferior do robô...............................................................67
Figura 36 – Montagem do protótipo...........................................................................67
Figura 37 – Labirinto utilizado como ambiente padrão do protótipo..........................68
Figura 38 – Labirinto dividido em grades...................................................................69
Figura 39 – Interface software Bluetooth Serial Terminal..........................................76
Figura 40 – Fluxograma de funcionamento da programação....................................77
10

LISTA DE TABELAS

Tabela 01 – Comandos básicos do SuperLogo.........................................................56

Tabela 02 – Cálculo da corrente consumida pelo protótipo.......................................65


11

LISTA DE ABREVIATURAS E SIGLAS

ROM Read Only Memory (Memória Apenas de Leitura)


RAM Random Access Memory (Memoria de Acesso Aleatório)
I/O In/Out (Entrada/Saída)
UART Universal AsynchronousReceiver-Transmitter (Receptor-Transmissor
Assíncrono Universal)
ULA ArithmeticLogicUnit (Unidade Lógica e Aritmética)
RISC ReducedInstruction Set Computer (computador com um conjunto
reduzido de instruções)
LED Light EmittingDiode (Diodo Emissor de Luz)
PIC Peripheral Integrated Controller (Controlador integrado de periféricos)
EEPROM Electrically-ErasableProgrammableRead-Only Memory (Memórias
Programáveis Apagáveis Eletronicamente Somente para Leitura)
MHz Megahertz - Unidade de medida da frequência
DIP Dual In-line Package (Encapsulamento em linha dupla)
USB Universal Serial Bus (Barramento Universal Serial)
IR Infrared (infravermelho)
KHz Kilohertz - Unidade de medida de frequência
CPR Ciclos por revolução
IMU InertialMeasurementUnit (Unidade de Medição Inercial)
GPS Global Positioning System (Sistema de Posicionamento Global)
DC ou CC DirectCurrent - Corrente Contínua
PWM Pulse WidthModulation (Modulação por Largura de Pulso)
KWh Kilowatt hora
LCD LiquidCrystal Display (Display de Cristal Líquido)
PAN PersonalArea Network (Área Pessoal de Rede)
IDE Integrated DevelopmentEnvironment (Ambiente de Desenvolvimento
Integrado)
I²C Inter Integrated Comunication (Comunicação Entre Integrados)
3D Tree Dimensional (Três Dimensões)
API Interface de Programação de Aplicações
CCP Captura, Comparação, PWM
12

SUMÁRIO

1 INTRODUÇÃO........................................................................................................15
1.1 OBJETIVOS.........................................................................................................16
1.1.1 Objetivo geral..................................................................................................16
1.1.2 Objetivos específicos.....................................................................................16
1.2 JUSTIFICATIVA...................................................................................................16
1.3 METODOLOGIA...................................................................................................17
2. REFERENCIAL TEÓRICO....................................................................................18
2.1 ROBÓTICA MÓVEL.............................................................................................18
2.2 LOCALIZAÇÃO E NAVEGAÇÃO.........................................................................18
2.2.1 Planejamento de rota......................................................................................18
2.2.2 Técnicas para localização..............................................................................19
2.2.2.1 Triangulação...................................................................................................19
2.2.2.2 Filtro de Kalman.............................................................................................19
2.2.2.3 Localização baseada em Landmarks.............................................................20
2.2.2.4 Dead reckoning e odometria..........................................................................21
2.2.3 Tipos de Navegação........................................................................................22
2.2.4 Navegação com base na localização.............................................................23
2.3 ELETROELETRÔNICA........................................................................................24
2.3.1 Microprocessador e microcontrolador..........................................................24
2.3.1.1 Microcontroladores AVR.................................................................................25
2.3.1.2 Microcontroladores PIC..................................................................................26
2.3.2 Sensores..........................................................................................................28
2.3.2.1 Classificação dos sensores............................................................................28
2.3.2.2 Sensor infravermelho.....................................................................................29
2.3.2.3 Sensor a laser................................................................................................29
2.3.2.4 Sonar..............................................................................................................30
2.3.2.5 Encoder..........................................................................................................32
2.3.2.6 IMU.................................................................................................................34
2.3.2.6.1 Acelerômetro...............................................................................................35
2.3.2.6.2 Giroscópio...................................................................................................35
2.3.2.6.3 Magnetômetro.............................................................................................36
2.3.2.7 GPS................................................................................................................36
13

2.3.3 Motor.................................................................................................................37
2.3.4 Controle dos motores.....................................................................................39
2.3.4.1 Sentido de rotação.........................................................................................39
2.3.4.2 Controle de velocidade..................................................................................40
2.3.5 Alimentação.....................................................................................................42
2.3.6 Interfaces.........................................................................................................43
2.3.7 Bluetooth..........................................................................................................43
2.4 MECÂNICA .........................................................................................................44
2.4.1 Tipos de materiais para confecção da plataforma.......................................44
2.4.1.1 Aço carbono...................................................................................................44
2.4.1.2 Aços com baixo teor de carbono....................................................................45
2.4.1.3 Aços com médio teor de carbono...................................................................45
2.4.1.4 Aços com alto teor de carbono.......................................................................46
2.4.1.5 Aços inoxidáveis.............................................................................................46
2.4.1.6 Plásticos.........................................................................................................46
2.4.2 Locomoção......................................................................................................47
2.4.2.1 Tipo de rodas..................................................................................................47
2.4.2.2 Disposições das rodas...................................................................................48
2.5 COMPUTAÇÃO ...................................................................................................50
2.5.1 Programação....................................................................................................50
2.5.2 Comunicação...................................................................................................51
2.5.2.1 Comunicação serial assíncrona e síncrona....................................................52
2.5.2.2 Protocolo I2C..................................................................................................52
2.5.3 Simuladores para robôs móveis....................................................................53
2.5.3.1 Webots...........................................................................................................53
2.5.3.2 V-REP............................................................................................................54
2.5.3.3 O ambiente SuperLogo e a Linguagem Logo................................................54
2.5.4 Fluxograma......................................................................................................56
3 DESENVOLVIMENTO............................................................................................57
3.1 DESENVOLVIMENTO ELETRO-ELETRÔNICA .................................................57
3.1.1 Microcontrolador.............................................................................................57
3.1.2 Sensores..........................................................................................................59
3.1.3 Motores.............................................................................................................63
3.1.3.1 Controle dos motores.....................................................................................63
14

3.1.4 Interface...........................................................................................................64
3.1.5 Alimentação.....................................................................................................65
3.2 DESENVOLVIMENTO MECÂNICO ....................................................................65
3.2.1 Rodas...............................................................................................................65
3.2.2 Escolha do material........................................................................................66
3.2.3 Layout da plataforma......................................................................................66
3.2.4 Ambiente de atuação do robô........................................................................68
3.3 DESENVOLVIMENTO COMPUTACIONAL ........................................................69
3.3.1 Locomoção......................................................................................................69
3.3.2 Localização......................................................................................................71
3.3.2.1 Leitura dos Sonares.......................................................................................71
3.3.2.2 Programação dos encoders...........................................................................72
3.3.2.3 Leitura da bússola..........................................................................................74
3.3.2.4 Display LCD como interface...........................................................................75
3.3.2.5 Bluetooth........................................................................................................75
3.3.3 Fluxograma de funcionamento .........................................................................76
4 CONCLUSÃO.........................................................................................................78
REFERÊNCIAS..........................................................................................................79
15

1 INTRODUÇÃO

A robótica de forma geral constitui uma das chaves para o desenvolvimento


social e econômico humano. Os primeiros robôs eram dispositivos com um ou mais
braços que faziam movimentos semelhantes a movimentos humanos. Nos nossos
dias, os robôs abrangem um grande repertorio de formas, incluindo plataformas de
rodas, manipuladores móveis, robôs com extensões que simulam patas de animais,
e assim por diante. Todos esses robôs podem contribuirde alguma forma para a vida
humana, sejamem atividades industriais, agrícolas, técnicas e sociais. Os benefícios
do uso de robôs móveis autônomosem diversos serviços e aplicações são inúmeros,
e seu impacto positivo na sociedade moderna está aumentando continuamente
(TZAFESTAS, 2014).
Um robô móvel com sistema de localização pode ser usado para diversos
fins, como em indústrias,na execução de tarefas que por algum motivo possam
expor a vida do ser humano em risco,como em ambientes com substâncias
radioativas, no espaço e para fins militares, para uso humanitário, na busca e
resgates de vitimas em destroços e remoção de bombas e minas terrestres ou para
qualquer outro tipo de tarefa diária.
Sabendo-se disso, esse trabalho se propõe a estudar, pesquisar e
desenvolver um sistema de localizaçãomicrocontrolado para ambientesindoor,
baseado em sensores, que será implantado em um protótipo de robôs que também
será desenvolvido durante o trabalho, o mesmodeverá navegar com base na sua
posição inicial, na rota estipulada e nos dados fornecidos pelos sensores.
16

1.1 OBJETIVOS

A seguir serão descritos os objetivos gerais e específicos deste trabalho de


conclusão de curso.

1.1.1 Objetivo geral

Este trabalho tem como objetivo geral estudar, pesquisar, projetar e construir
o protótipo de um robô, capaz seguir rotas estipuladas com base em sua
localizaçãodentro de um ambiente indoor.

1.1.2 Objetivos específicos

Este trabalho busca estudar e pesquisar sobre robótica móvel e sistemas de


posicionamento para ambientes internos, além de projetar e construir um protótipo
de robô com sistema de localização em rotas estipuladas dentro de um
ambienteindoor. Para alcançar o objetivo final, as seguintes etapasforam definidas:
 Pesquisar os componentes que poderão integrar o robô: tipos de base,
sensores, motores e o microcontrolador que será utilizado;
 Definir os componentes que serão utilizados;
 Pesquisar aplicativos para a representação do robô em um ambiente indoor;
 Projetar e desenvolver a parte eletroeletrônica;
 Projetar e desenvolver a estrutura mecânica;
 Desenvolver a programação para o controlador;
 Execução de testes e análise de resultados.

1.2 JUSTIFICATIVA

Sendo a localização um pré-requisito para que robôs móveis possam navegar


e se locomover de forma segura e eficiente em um ambiente, seja ele qual for, esse
trabalho de conclusão de curso visa desenvolver,através do estudo das áreas de
eletroeletrônica, mecânica e computação, ambas envolvidas no curso de
mecatrônica, um sistema de localização e posicionamento microcontrolado para
17

ambientes indoor. O projeto ainda deixa o caminho aberto para possibilidade de


desenvolvimento futuro em diversas áreas, como ciência da computação,
engenharia de controle e tecnologia.

1.3 METODOLOGIA

Para o desenvolvimento e a execução do trabalho foi primeiramente realizada


uma pesquisa exploratória a fim de definir um ponto de partida, segundo Severino
(2007, p. 123), “a pesquisa exploratória busca apenas levantar informações sobre
um determinado objeto, delimitando assim um campo de trabalho, mapeando as
condições de manifestação desse objeto”. Posteriormente foi realizada a
pesquisa bibliográfica em livros, artigos, trabalhos e sites relacionados à robótica
móvel e sensoriamento.
A pesquisa bibliográfica é aquela que se realiza a partir do registro disponível,
decorrente de pesquisas anteriores, em documentos impressos, como livros, artigos,
teses e etc. Utiliza-se de dados ou de categorias teóricas já trabalhados por outros
pesquisadores e devidamente registrados (SEVERINO, 2007).
Também foi realizada pesquisa experimental para coleta e análise de dados,
a fim de obter a confiabilidade dos dados obtidos pelos sensores, além da
construção de protótipos para análise de resultados.
A pesquisa experimental toma o próprio objeto em sua concretude como fonte
e o coloca em condições técnicas de observação e manipulação experimental nas
bancadas e pranchetas de um laboratório, onde são criadas condições adequadas
para seu tratamento (SEVERINO, 2007).
Por fim, com uma base teórica fundamentada e testes básicos executados, foi
desenvolvido o trabalho até a conclusão, e aquisição de resultados finais.
18

2. REFERENCIAL TEÓRICO

A seguir será apresentada uma definição sobre robótica móvel,localização e


navegação, assim como o levantamento de informações e referenciais dos principais
componentes e materiais existentes no mercado que foram e que poderiam ter sido
utilizados para a composição do protótipo do robô e do sistema de sensoriamento.

2.1 ROBÓTICA MÓVEL

Robôs móveis são robôs que podem se mover de um lugar para outro de
forma autônoma, isto é, sem a ajuda de operadores humanos externos. Ao contrário
da maioria dos robôs industriais que podem se mover apenas em um espaço de
trabalho específico, robôs móveis têm a particularidade de se movimentar livremente
dentro de um espaço de trabalho pré-definido para atingir seus objetivos desejados.
Esta capacidade de mobilidade os torna adequados para um grande repertório de
aplicações em ambientes estruturados e não estruturados (TZAFESTAS, 2014).
Sendo a robótica um ramo da tecnologia que alia todas as áreas envolvidas
em mecatrônica, ou seja, a mecânica, a eletroeletrônica e a computação, e que é
responsável pelo estudo, construção e concepção de sistemas robóticos, a robótica
móvel se diferencia basicamente pela mobilidade e pela autonomia.

2.2 LOCALIZAÇÃO E NAVEGAÇÃO

2.2.1 Planejamento de rota

O planejamento da rota pode ser local ou global. O planejamento local é


realizado quando o robô se move tendo como base os sensores locais. Neste caso,
o robô tem a capacidade de gerar um novo caminho em respostas às alterações do
ambiente. O planejamento do caminho global só pode ser executado se o ambiente
é estático e perfeitamente conhecido para o robô. Neste caso, o robô produz um
caminho completo a partir do ponto inicial até o ponto final antes de começar a se
movimentar (TZAFESTAS, 2014).
19

2.2.2 Técnicas para localização

2.2.2.1 Triangulação

Os métodos de triangulação para localização de robôs móveis se baseiam


nos métodos tradicionais de cartografia e navegação, que utilizam os ângulos
observados entre pontos de referência do ambiente para calcular a posição relativa
do observador (HEINEN, 2007).
Em triangulação, a localização de um robô móvel é determinada utilizando
distâncias conhecidas. Tipicamente, três ou mais transmissores de sinais são
utilizados no ambiente e um receptor é acoplado no robô, através dos ângulos
formados pelos transmissores em relação ao receptor é possível calcular a posição.
Outra possibilidade é utilizar um transmissor no robô e os receptores são
espalhados no ambiente (TZAFESTAS, 2014).
A figura 01 ilustra um sistema de localização por triangulação, onde o “X”
representa o robô e os pontos os transmissores ou receptores que servem com
referência.

Figura 01 – Triangulação

Fonte: Adaptado de Lima, 2001.


2.2.2.2 Filtro de Kalman

O filtro de Kalman é um sistema matemático para produzir uma estimativa da


posição futura do sistema com base na posição atual e nas informações fornecidas
20

pelos sensores, levando em consideração possíveis ruídos no sistema e erros de


medição (SIEGWART; NOURBAKHS; SCARAMUZZ, 2011).
Filtro de Kalman é um algoritmo recursivo baseado em probabilidade, utilizado
para calcular a possível posição do robô. Esse tipo de cálculo de posição por
probabilidade exige uma capacidade considerável de processamento, o que muitas
vezes nãoé viável para microcontroladores.
O diagrama (figura 02) representa como é feito o cálculo da posição estimada
de um robô móvel aplicando o filtro de Kalman.

Figura 02 – Representação do filtro de Kalman

Fonte: Adaptado de Siegwart; Nourbakhs; Scaramuzz, 2011.

2.2.2.3 Localização baseada em Landmarks

Landmarks ou marcos de referência são extraídos a partir da percepção do


robô em relação ao ambiente, ou seja, através da leitura de seus sensores externos.
Um problema que ocorre com a localização baseada puramente em Landmarks é
21

que lugares distintos podem parecer similares, o que leva a erros de localização.
Este problema é conhecido como percepção ambígua e ocorre em ambientes com a
aparência homogênea, como escritórios e laboratórios (ODAKURA, 2007).

2.2.2.4 Dead reckoning e odometria

Dead Reckoning é um conceito usado para determinar matematicamente a


possível posição e localização de um robô, com base em um ponto inicial que serve
de referência e através da coleta de dados fornecidos por sensores. Em alguns
casos de aplicações mais simplistas esse conceito é conhecido também por
odometria, que parte da ideia de um dispositivo odômetro, usado para determinar a
distância percorrida por um robô (EVERETT, 1995).
Na localização puramente baseada em dead reckoning o robô conhece sua
localização inicial no ambiente, e incrementa-a, utilizando as percepções de
movimento fornecidas pelos odômetros, ou seja, é uma técnica de localização
incremental, com sensores internos, sem mapa e não probabilística (ODAKURA,
2007).
Alguns sensores muito utilizados para esse tipo de cálculo e estimativa de
posição são os encoders óticos e os sensores inerciais (acelerômetros, giroscópios
e magnetômetros).
Embora os encoders forneçam importantes dados para o cálculo da possível
posição de um robô, podem ocorrer erros de medição, como em casos de
derrapagens dos pneus e irregularidades no terreno, por isso, sensores que
forneçam a velocidade angular relativa ou dados de posição absoluta, como os
sensores inerciais, são muito importantes para a criação de um sistema de
localização e posicionamento. Assim com os dados fornecidos pelos dois tipos de
sensores se torna possível estimar a posição do robô, de forma que a informação
seja a mais próxima possível da realidade.

2.2.3 Tipos de Navegação

A navegação ainda é uma das funções mais desafiadoras para um robô


executar, pois envolve praticamente tudo em robótica móvel: sensoriamento,
atuadores, planejamento, arquiteturas computacionais, hardware e resolução de
22

problemas. Um robô móvel precisa ser capaz de planejar como chegar a um


determinado local, para isso duas categorias diferentes de técnicas surgiram:
navegação topológica e navegação métrica, também conhecidas como navegação
qualitativa e navegação quantitativa, respectivamente (MURPHY, 2000).
A navegação topológica ou navegação qualitativa é vista como sendo a mais
simples e natural para um robô. As pessoas frequentemente dão as outras pessoas
rotas que as direcionam, portanto parece natural esperar que um robô seja capaz de
analisar comandos como “vá ao fundo do corredor, vire a esquerda no beco sem
saída, e entre na segunda sala à direita”. Mesmo sem um mapa de onde tudo está, é
possível navegar se o robô souber o que é um “corredor”, o “beco sem saída” e o
“quarto” (MURPHY, 2000).
A navegação métrica ou navegação quantitativa é o oposto da navegação
topológica. Como acontece com os métodos topológicos o objetivo também é
determinar um caminho para um objetivo específico, a diferença é que os métodos
métricos geralmente possuem técnicas que favorecem para chegar ao objetivo real,
enquanto que os métodos qualitativos produzem o conteúdo para um percurso com
base em pontos de referencia ou entradas identificáveis. Outra diferença é que os
métodos métricos normalmente decompõem os caminhos em sub-rotas, estes
caminhos são na maioria das vezes locais fixos ou formados por coordenadas (x, y).
Sistemas baseados em navegação métrica têm dois elementos importantes: a
representação (estrutura de dados) e o algoritmo. O ambiente primeiro é
particionado em uma estrutura propícia para depois se delimitar o caminho. Não
existe uma técnica dominante de navegação métrica, mas é comum se dividir o
ambiente em grades regulares (MURPHY, 2000).

2.2.4 Navegação com base na localização

As duas questões pertinentes em navegação são: onde estou? E onde eu fui?


As respostas a estas perguntas estão diretamente relacionadas à localização e ao
mapeamento, respectivamente. Ambos estão intimamente relacionados, porque um
robô não pode criar um mapa preciso, se ele não sabe onde ele está (MURPHY,
2000).
Na robótica móvel autônoma, o principal problema que dificulta em muito a
navegação é o problema de localização. Sem saber a posição do robô em relação a
23

sua representação do ambiente (mapa), pouquíssimos sistemas são capazes de


controlar o robô de forma adequada (HEINEN, 2007).
A navegação é uma das competências mais difíceis exigidas de um robô
móvel. Uma navegação bem sucedida requer sucesso nos quatro blocos de
construção de navegação: percepção (o robô deve interpretar seus sensores para
extrair dados significativos); localização (o robô deve determinar a sua posição no
ambiente,(figura 04); cognição (o robô deve decidir como a agir para atingir seus
objetivos); e controle de movimento (o robô deve modular as suas saídas do motor
para atingir a trajetória desejada) (SIEGWART; NOURBAKHS; SCARAMUZZ, 2011).

Figura 03 – Localização

Fonte:Adaptado de Siegwart; Nourbakhs; Scaramuzz, 2011.

Assim, a principal característica que um robô móvel deve possuir é a de se


locomover e navegar, e para que sua navegação se torne eficiente, é necessário
primeiramente, que o robô tenha conhecimento de sua localização. Sabendo-se
disso, e da complexidade envolvida na criação de um sistema de navegação e
localização dentro de um ambiente qualquer, este trabalho busca explorar a
navegação métrica, com base na localização, de um protótipo de robô dentro de
uma rota conhecida e pré-determinada em um ambiente indoor (planejamento de
rota global), usando conceitos de dead reckoning (SIEGWART, 2011).
24

2.3 ELETROELETRÔNICA

2.3.1 Microprocessador e microcontrolador

Um microprocessador é um elemento eletrônico, desenvolvido para executar


tarefas especificas, com linguagem de comando específica. Ele se utiliza de uma
Memória de Programa (Code Memory – ROM) para ler as instruções que deve
executar e se utiliza de uma Memória de dados (Data Memory – RAM) para
armazenar temporariamente informações de uso próprio das instruções, enquanto
essas informações devem ser armazenadas (NICOLOSI, 2007).
Para que um microprocessador constitua um sistema que pode ser usado
para controle, são necessários chips adicionais, como, por exemplo, memória para
armazenamento de programa e dados e portas de entrada/saída para permitir a
comunicação com o mundo externo e receber sinais. O Microcontrolador é a
integração de microprocessador com memórias e interfaces de entrada/saída (I/O) e
outros periféricos, como temporizadores, em um único chip (BOLTON, 2008).
O Microcontrolador pode ser considerado um circuito que contém todos os
elementos de um computador. Este contém unidade central de
processamento,memória para armazenar programas e de trabalho, periféricos de
entrada e saída,UART de comunicação e outros. É possível controlar qualquer
coisa, de modo que pode-se utilizar unidades de controle para máquinas
pneumáticas, hidráulicas,dispensadoras de produtos, motores, temporizadores,
telefonia, automóveis, entre outros (SILVA, 2006).
Um Microcontrolador em geral tem pinos para conexões externas de entrada
e saída, alimentação, clock e sinais de controle. Os pinos para entradas e saídas
são agrupados em unidades denominadas portas. Geralmente estas portas têm oito
linhas para serem capazes de transferir palavras de 08 bits. Duas portas podem ser
usadas para palavras de 16 bits, uma para transferir os 08 bits inferiores e a outra
para os 08 bits superiores. As portas podem ser apenas de entrada, apenas de
saídas ou programáveis como entrada ou saída (BOLTON, 2008).
O Microcontrolador é programável, de modo que toda lógica de operação é
estruturada na forma de um programa e gravada dentro do componente, deste
modo, toda vez que o mesmo for alimentado, o programa interno será executado.
Com relação à “inteligência” do componente, pode-se associar à Unidade Lógica
25

Aritmética (ULA), sendo que nesta unidade todas as operações matemáticas e


lógicas são executadas. Portanto, quando mais poderosa a ULA do componente,
maior sua capacidade de processar informações (SOUZA, 2008).

2.3.1.1 Microcontroladores AVR

Os microcontroladores AVR foram desenvolvidos na Noruega em 1995 e são


produzidos pela ATMEL, apresentam ótima eficiência de processamento e núcleo
compacto. Com uma estrutura RISC avançada, apresentam mais de uma centena
de instruções e arquitetura voltada à programação C, a qual permite produzir
códigos compactos. Também, dado sua arquitetura, o desempenho do seu núcleo
de 8 bits é equivalente ao desenvolvido por microcontroladores de 16 bits (LIMA,
2009).

Figura 04–Diagrama de pinos microcontrolador AVR ATMEGA328P

Fonte: Datasheet do dispositivo.


2.3.1.2 Microcontroladores PIC

O microcontrolador PIC é um componente eletrônico fabricado pela Microchip,


capaz de ser programado para realizar operações lógicas e aritméticas, interagindo
26

com periféricos (LEDS, botões, sensores ou até outro PIC). É daí que vem o nome
PIC (Peripheral Integrated Controller, ou controlador integrado de periféricos). Um
microcontrolador, diferentemente de um microprocessador, possui memória volátil
(RAM) e não volátil (EEPROM), além de outros periféricos internos, o que o torna
bastante útil. Ele é capaz de operar independente de memórias externas, além de
poder ser programado em linguagem de alto nível, como a linguagem C (PEREIRA,
2002).
No projeto foi utilizado um microcontrolador PIC 16F877A de 8 bits. A
frequência de operação desse chip pode chegar até 20MHz, e possui um
encapsulamento do tipo DIP com 40 pinos.

Figura 05–Diagrama de pinos microcontrolador PIC16F877A

Fonte: Datasheet do dispositivo.

Se fosse necessária maior capacidade de memória e processamento ou ainda


comunicação USB (Universal Serial Bus), o microcontrolador poderia ter sido
substituído sem grandes modificações no projeto, pelo modelo PIC18F4550, visto
que possuem o mesmo encapsulamento.
27

Figura 06– Diagrama de pinos PIC18F4550

Fonte: Datasheet do dispositivo.

2.3.2 Sensores

Uma das tarefas mais importantes de um sistema autônomo de qualquer tipo


é adquirir conhecimento sobre seu ambiente. Isso é feito por meio de medidas
usando vários sensores e em seguida, extrair informações significativas a partir
dessas medições (SIEGWART; NOURBAKHS; SCARAMUZZ, 2011).
Os sensores são considerados os sentidos dos robôs, é através deles que os
robôs coletam os dados que são processados para se tornar informações úteis que
ajudam na execução de tarefas.
Os sensores medem uma grandeza física e entregam um sinal elétrico como
saída.Se esse sinal puder tomar qualquer valor dentro de certos limites ao longo do
tempo,esse sensor é chamado de analógico. Se esse sinal elétrico só puder tomar
dois valores ao longo do tempo, sejam eles de qualquer amplitude, esse sensor é
chamado de digital (PAZOS, 2002).
A medição da posição de um objeto é muito utilizada em robótica para o
controle da posição de qualquer peça móvel do robô, trate-se de um manipulador ou
de uma máquina ferramenta, ou da planta como um todo, o que acontece nos casos
do robô ter a possibilidade de se locomover, por exemplo, nos robôs exploradores
(PAZOS, 2002).
28

2.3.2.1 Classificação dos sensores

Os sensores são classificados em robótica móvel em proprioceptivos ou


exteroceptivos. Sensores de medidas proprioceptivas estão relacionados com
valores internos ao robô, por exemplo, velocidade do motor, distância percorrida,
carga da roda, e tensão da bateria. Já os sensores de medidas exteroceptivas tem
relação com o ambiente externo do robô, por exemplo, medições de
distâncias,campo magnético e intensidade de luz. A partir dessas medidas o robô
extrai características significativas a ele (SIEGWART; NOURBAKHS; SCARAMUZZ,
2011).
Outra forma de classificação está relacionada com o tipo de interação com o
meio-ambiente, dividindo os sensores em passivos ou ativos. Os sensores passivos
medem a energia emitida pelo ambiente em que está localizado, como sensores de
temperatura, câmeras e microfones, já os sensores ativos, emitem energia para em
seguida medir a reação do meio-ambiente, como o sensor ultrassônico. Essa reação
pode sofrer interferência entre o seu sinal e outros sinais que não são de seu
controle, como sinais emitidos por outros robôs ou sensores semelhantes do mesmo
robô, por exemplo. Como os sensores ativos podem controlar a interação com o
ambiente, muitas vezes pode-se obter um melhor desempenho sobre o sensor
passivo (SIEGWART; NOURBAKHS; SCARAMUZZ, 2011).

2.3.2.2 Sensor infravermelho

Os sensores IR (infravermelhos) são divididos em ativos e passivos, onde o


ativo tem o mesmo funcionamento dos sensores óticos do tipo barreira, porém
utilizados em outro tipo de aplicação, como: robôs seguidores de linha. Esse sensor
é constituído por emissor e receptor, onde o emissor emite o sinal infravermelho que
será detectado pelo receptor, com uma distância de identificação razoável, entre 15
a 25 metros (THOMAZINI; ALBUQUERQUE, 2005).
29

Figura 07 – Sensor Infravermelho GP2Y0A02YK0F da Sharp

Fonte: Datasheet do dispositivo.

2.3.2.3 Sensor a laser

Sensores Laser também são conhecidos como Ladar (Laser Detection and
Ranging), seu funcionamento é similar ao ultrassônico, com o diferencial do tipo de
energia emitido para o ambiente, nesse caso, a luz. A energia do laser é emitida
numa sequência de pulsos rápidos e curtos que vão diretamente ao objeto a ser
detectado. O tempo necessário para que o laser emitido chegue ao objeto e retorne
é usado para calcular a distância através da velocidade da luz. A resolução para
esse tipo de sensor varia desde centímetros a metros, ao longo de uma extensa
gama de modelos (EVERETT, 1995).

Figura 08– Sensor a laser E3Z da OMRON

Fonte: Datasheet do dispositivo.


30

O sensor permite a detecção de objetos minúsculos e sua posição exata,


portanto é utilizado em aplicações que necessitem de alta precisão. Porém são
necessários muitos sensores para cobrir a área em torno de um robô, além de ser
um dispositivo de custo elevado.

2.3.2.4 Sonar

O sonar ou também conhecido como sensor de ultrassom ou ultrassônico,


possui características interessantes para a robótica móvel. Além de seu baixo custo,
este tipo de sensor é fisicamente robusto, confiável e pode detectar uma grande
variedade de objetos.
São formados por um emissor de ultrassom e um receptor. O emissor está
constituído por um cristal piezoelétrico que emite pulsos de sinais senoidais em
frequência ultrassônica (acima de 20KHz). Esse sinal se reflete num objetodenso e
retorna (figura 10), e então é detectado por um receptor, que consiste simplesmente
num microfone com um filtro para permitir a passagem apenas dos sinais da
frequência emitida. Esse sinal é amplificado e utilizado para desabilitar um contador
de tempo, que foi disparado quando o pulso original deixou o emissor. A distância
entre o sensor e o objeto é igual à velocidade do som no ambiente (no caso do ar é
340 m/s), vezes a metade do tempo em que o pulso de ultrassom demorou para ir
do emissor ao objeto e retornar para o sensor; tempo medido pelo contador
(PAZOS, 2002).
Sendo assim, temos a seguinte equação, onde “d” é à distância, “v” é a
velocidade do som e “t” o tempo obtido pelo contador:

Os sensores de proximidade ultrassônicos são úteis para distâncias de até 5


m e para a maioria dos materiais, líquidos ou sólidos. Sua faixa de detecção máxima
não depende somente do nível de energia emitida, mas também do alvo a ser
identificado, por exemplo, sua área, refletividade e densidade também podem
influenciar sua detecção (EVERETT, 1995).
31

Figura 09 – Funcionamento prático do sensor ultrassônico

Fonte: Adaptado de LMICSE, 2015.

Mesmo sendo uma excelente opção para utilização em robótica móvel, o


sensor pode apresentar alguns erros dependendo do ambiente de sua utilização. A
superfície dos objetos ou paredes a serem detectadas podem originar medidas
diferentes, em uma parede de superfície porosa, por exemplo, a medida pode ter
uma leve variação quando comparada a uma de superfície lisa maciça. Se um
objeto a frente do sensor não estiver perpendicular ao mesmo também poderá
ocorrer erros de medidas. O eco fantasma e a utilização de vários sensores também
pode se tornar um problema, pois existe a possibilidade tanto do som refletir em
mais de uma parede até que o receptor faça a leitura do sinal, quanto a de um
sensor fazer a leitura da onda emitida por outro sensor.(EVERETT, 1995).

Figura 10– Sensor ultrassônico HC-SR04 da ElecFreaks

Fonte: Datasheet do dispositivo.


32

2.3.2.5 Encoder

O deslocamento é uma das poucas grandezas físicas que podem ser


compreendidas como um valor digital sem o uso de um conversor analógico-digital.
Encoders são dispositivos que convertem um deslocamento linear ou angular em um
trem de pulsos, e que podem ser interpretados como bytes
(ALBUQURQUE;THOMAZINI, 2005).
Os encoders ópticos são os dispositivos mais utilizados para medições
angulares, como velocidade e posição dentro de um motor ou no eixo de uma roda.
Na robótica móvel, para controle da posição ou velocidade de rodas e outras
articulações. Devido a esses sensores serem proprioceptivos, quando aplicados ao
problema de localização do robô, são a melhor referência quanto a identificação de
sua posição (SIEGWART; NOURBAKHS; SCARAMUZZ, 2011).
Basicamente, um codificador óptico é um atuador mecânico de luz, que
produz um determinado número de pulsos de onda quadrada, para cada volta do
eixo. É constituído por uma fonte de iluminação, uma grade fixa, que mascara a luz,
um disco com uma grade fina que roda junto ao eixo (móvel) e detectores ópticos
fixos. Quando o rotor se move, os detectores de luz são acionados de acordo com o
alinhamento das grades fixas e móveis, a partir dos resultados obtidos entre luz e
escuro, determina-se uma posição. Sua resolução é medida em ciclos por revolução
(CPR)(SIEGWART; NOURBAKHS; SCARAMUZZ, 2011).

Figura 11– Sensor encoder ótico HOA0901 da Honeywell

Fonte: Datasheet do dispositivo.


33

Há dois tipos de encoder: o incremental e o absoluto. Os encoders


incrementais indicam o deslocamento em relação a um ponto inicial de referência. Já
os encoders absolutos medem o deslocamento em relação a um ponto de referência
interno do dispositivo (THOMAZINI; ALBUQUERQUE, 2005).
Os encoders absolutos guardam seus dados em um disco com um código
padrão, são facilmente conectadosa controladores com base em microprocessador e
em displays, porém em alguns sistemas de controle é necessário a utilização de um
conversor de código Gray para binário (THOMAZINI; ALBUQUERQUE, 2005).
Os sistemas digitais trabalham em alta velocidade e de acordo com as
variações ocorridas nas entradas digitais reagem de formas diferentes. Quando
várias condições de entrada variam juntas, a condição pode ser mal interpretada
eprovocar uma ação errônea. Na sequência de contagem de bits binários, pode-se
observar que muitas vezes é necessário vários bits alterarem seu estado ao mesmo
tempo. Por exemplo, Quando o número 3 (011) muda para 4 (100), os três bits
precisam mudar (TOCCI; GREGORY, 2011).
O código Gray foi criado para representar uma sequência de números a fim
de evitar que condições de entradas sejam mal interpretadas. O que diferencia o
código Gray do código binário é que apenas um bit sofre alteração entre dois
números sucessivos na contagem (TOCCI; GREGORY, 2011).

2.3.2.6 IMU

O IMU pode ser considerado um sensor de medida proprioceptiva (giroscópio,


acelerômetro) ou exteroceptiva (bússola). Eles são utilizados para determinar a
orientação do robô e sua inclinação. Eles nos permitem, juntamente com informação
de velocidade apropriada, integrar o movimento para uma estimativa da posição.
Este procedimento é chamado de cálculo de posição. O IMU é um dispositivo que
integra giroscópios e acelerômetros em um único dispositivo, muito utilizado na
navegação de aeronaves e navios. Um IMU estima seis graus de liberdade do
veículo, posição (x, y, z) e orientação (roll, pitch, yaw) (SIEGWART; NOURBAKHS;
SCARAMUZZ, 2011).
34

Figura 12 – IMU GY-80

Fonte: Autoria própria.


2.3.2.6.1 Acelerômetro

Um acelerômetro é uma configuração de diversos componentes que


convertem aceleração em tensão elétrica. De um ponto de vista geral, um
acelerômetro pode ser considerado um transdutor que converte a energia mecânica
associada ao movimento na forma elétrica (THOMAZINI; ALBUQUERQUE, 2005).
Os acelerômetros podem funcionar a partir de vários efeitos físicos com uma
extensa faixa de valores de aceleração. Esses sensores são utilizados de maneira
geral para a medição de posição, vibração e inclinação.

2.3.2.6.2 Giroscópio

O giroscópio é um sensor de posição que preserva sua orientação em relação


a um quadro fixo de orientação, assim pode oferecer uma medida absoluta num
sistema móvel. Os giroscópios podem ser classificados como mecânicos, ou ópticos
(SIEGWART; NOURBAKHS; SCARAMUZZ, 2011).
Um sensor giroscópio mede a velocidade angular, e a partir dessa velocidade
é possível calcular o ângulo e usar essa informação para manter ou para medir a
orientação.
35

O giroscópio mecânico é baseado nas propriedades inerciais de um rotor fast-


spinning (giro rápido). Se uma roda girar rápido em torno do seu eixo vertical, será
sentido uma dura reação do eixo horizontal, devido ao momento angular associado
com uma roda girando, que irá manter o eixo inercial do giroscópio estável
(SIEGWART; NOURBAKHS; SCARAMUZZ, 2011).
O giroscópio óptico é um sensor óptico de velocidade angular que utiliza dois
feixes monocromáticos de lasers, emitidos a partir da mesma fonte, ao invés de se
mover. Eles trabalham no princípio de que a velocidade da luz é inalterada, porém, a
alteração geométrica varia o tempo em que a luz atinge o seu destino. Assim, um
feixe de laser é enviado no sentido horário por uma fibra, e outro feixe é enviado no
sentido oposto. O feixe que estiver viajando no sentido de rotação terá seu percurso
reduzido, tendo assim uma frequência maior (SIEGWART; NOURBAKHS;
SCARAMUZZ, 2011).
Geralmente o giroscópio é usado para complementar os dados fornecidos por
um acelerômetro, visto que os acelerômetros são muito sensíveis e podem gerar
falsos sinais ou ruídos. Uma importante característica dos giroscópios, é que em sua
grande maioria não são sensíveis ao eletromagnetismo, por isso sua precisão não é
afetada por campos magnéticos.

2.3.2.6.3 Magnetômetro

Um magnetômetro, ou também conhecido como bússola digital, é um sensor


para aquisição de dados magnéticos e geomagnéticos. De forma geral, um
magnetômetro gera um sinal elétrico com base em um campo magnético.
Os tipos de bússolas digitais mais utilizados são de efeito Hall e magneto
resistivo. O efeito Hall descreve o comportamento do potencial elétrico num
semicondutor, quando há presença de um campo magnético. A bússola efeito Hall é
muito utilizada na robótica móvel devido à utilização de dois semicondutores em
ângulos retos, proporcionando dois eixos de direção de campos magnéticos, tendo
assim, uma das oito direções possíveis numa bússola (SIEGWART; NOURBAKHS;
SCARAMUZZ, 2011).
Pode ser usado para medir um campo magnético qualquer ou a posição
angular em relação ao norte magnético da terra. Em robótica móvel costuma ser
utilizado para manter o deslocamento do robô em linha reta ou medir o
36

deslocamento em ângulo em relação a uma posição inicial, tendo como referência o


norte magnético da terra.

2.3.2.6.4 GPS

O GPS (Sistema de Posicionamento Global) é um sistema de navegação que


permite, através de satélites artificiais, a obtenção de informações sobre a
localização geográfica em qualquer lugar da superfície terrestre a qualquer momento
do dia.
O GPS foi inicialmente desenvolvido para uso militar, e hoje é aberto a
diversos outras aplicações, inclusive para a navegação civil. Existem no mínimo
vinte e quatro satélites GPS operacionais, que transmitem continuamente dados que
indicam sua localização e a hora atual. Os receptores GPS são sensores passivos e
exteroceptivos (SIEGWART; NOURBAKHS; SCARAMUZZ, 2011).

Figura 13 – Triangulação realizada pelo GPS

Fonte: Adaptado de LandLousã, 2015.

Porém, para que os receptores do GPS tenham um bom funcionamento é


necessária uma visão desobstruída do céu, portanto devem ser usados ao ar livre,
de preferência longe de prédios, edifícios e áreas florestais. Como o objetivo do
projeto é criar um robô com sistema de localização indoor, o uso de um módulo GPS
se torna inviável.
37

2.3.3Motor

Para dar mobilidade ao protótipo de plataforma que será criado, será


necessário o uso de motores elétricos. Existem diversos tipos que motores elétricos
que atendem as necessidades do projeto, como os motores de passo, os servos
motores, motores DC ou CC (corrente contínua), dentre outros modelos.
Os motores elétricos se diferenciam basicamente pelo principio de
funcionamento, pois em sua composição de maneira geral são bem parecidos, são
formados por bobinas que criam campos magnéticos através da passagem de uma
corrente elétrica. Esses campos por sua vez estabelecem forças, que são
responsáveis por movimentar as partes móveis dos motores, geralmente o eixo
(BRAGA, 2005).
A diferença básica entre um motor de passo e um motor comum está no
modo como suas bobinas são energizadas. Isso ocorre porque os motores de passo
não devem apenas girar, mas também ter seus eixos posicionados de forma precisa,
conforme a aplicação que se destinam (BRAGA, 2005).
Os servos motores se parecem com os motores de passo, mas internamente
possuem um sistema de controle que verifica a posição de acordo com um ângulo
que é transmitido através de pulsos elétricos enviados pelo controlador (BRAGA,
2005).
Os motores de corrente contínua comuns consistem na forma mais utilizada
de se converter energia elétrica em energia mecânica, sendo por esse motivo
amplamente empregados como principal meio de propulsão das partes móveis de
robôs, automatismos e diversos tipos de dispositivos de mecatrônica (BRAGA,
2005).
A fim de facilitar o controle do protótipo e manter o baixo custo do projeto, o
uso de motores CC se torna ideal.
O motor CC é um dispositivo eletromecânico comcaracterísticas bastante
lineares, cuja potência depende da tensão que é aplicada eda intensidade da
corrente que circula através dele. O motor CC é composto por:rotor (armadura),
estator, coletor, escovas e terminais. Ao alimentar o motor (CC) com uma tensão
contínua nominal gera-se um campo magnético interno, oqual é responsável pelo
giro do rotor, ao inverter a polaridade de alimentação, omotor inverte o sentido de
rotação (KOSOW, 1982).
38

Figura 14 – Motor de corrente contínua

Fonte: Adaptado de Kosow, 1982.

2.3.4 Controle dos motores

Os controles para os motores de corrente contínua podem ser bastante


simples, atuando basicamente sobre o sentido de rotação e a velocidade (BRAGA,
2005).

2.3.4.1 Sentido de rotação

Para alterar o sentido de rotação de um motor DC, é necessário inverter o


sentido da corrente que passa através dos polos. Uma maneira simples de fazer tal
inversão, é através do uso de chaves.
A ponte H é um circuito eletrônico que permite que até um microcontrolador
forneça a corrente necessária para o funcionamento do motor de corrente contínua,
visto que o microcontrolador normalmente trabalha em 05 V e com baixas correntes,
enquanto o motor CC costuma exigir altas potências. Além disso, a ponte H torna
possível que o motor rode tanto para um sentido quanto para o outro. Estes circuitos
são geralmente utilizados em robótica e estão disponíveis em circuitos prontos ou
podem ser construídos por componentes (ROSÁRIO, 2005).
39

Pela disposição dos componentes que lembra um “H”, esta configuração


também é chamada de Ponte H ou “H-bridge”, se adotarmos o nome inglês. Neste
caso, temos uma ponte de controle completa, pois iremos controlar as correntes que
circulam pelos dois ramos do circuito (BRAGA, 2005).

Figura 15– Circuito utilizando transistores como chaves

Fonte: Autoria própria.

Um circuito integrado existente no mercado que pode ser usado para o


controle do sentido de giro dos motores é o L298, este dispositivo possui duas ponte
H em seu encapsulamento, conforme a figura 16.

Figura 16– Diagrama de blocos L298

Fonte: Datasheet do dispositivo.


40

O fornecimento de corrente ocorre pelo fechamento das chaves duas a


duas,de tal forma que a fonte e a terra estejam em posições alternadas dos polos do
motor (STMICROELECTRONICS,2000).

2.3.4.2Controle da velocidade

A velocidade de rotação de um motor CC depende diretamente da tensão que


é entregue nos seus pólos, assim variando a tensão é possível variar a velocidade.
Porém a redução da tensão implica também na redução da corrente, com isso,
ocorre perda de potência e, consequentemente, também há redução de torque. Com
a baixa do torque do motor, se limita também a carga suportada, o que pode se
tornar um problema. Uma solução para esse problema é variar a tensão média
mantendo a corrente constante, uma técnica muito conhecida na eletrônica para
isso, se baseia na modulação da largura de pulsos aplicados ao atuador.
A modulação por largura de pulso (PWM – Pulse Width Modulation) é
bastante usada em sistemas de controle como uma forma de controle do valor
médio de uma tensão CC. Portanto, se uma tensão analógica constante for
segmentada em pulsos, através da variação da largura dos pulsos o valor médio da
tensão pode ser alterado. O termo ciclo de trabalho é usado para a fração de cada
ciclo para o qual a tensão é de nível alto. Portanto, para um sinal PWM onde o sinal
é alto em metade de cada ciclo, o ciclo de trabalho é ½ ou 50%(figura 18). Se ele for
apenas um quarto de ciclo, então o ciclo de trabalho é ¼ ou 25%(figura 19).
(BOLTON, 2008).

Figura 17 – Ciclos de PWM em aproximadamente 50%

Fonte: Autoria própria.


41

Figura 18 – Ciclos de PWM em aproximadamente 25%

Fonte: Autoria própria.

O sinal PWM consiste num sinal de frequência fixa em que é variado o ciclo
ativo da onda, conhecido como duty cycle. É muito utilizado no controle de potência
(fonte chaveadas, controles de velocidade, etc.) (PEREIRA, 2002).

2.3.5 Alimentação

Uma bateria é um dispositivo, constituído por uma ou mais células, que


armazenam energia que consequentemente poderá ser convertida em energia
elétrica. A sua unidade de medida é o quilowatt hora (Kwh), mas geralmente a saída
da bateria é medida em Ampere hora (A.h), porque desta forma é mais fácil
medir,com o objetivo de indicar a capacidade de trabalho (WALTHER, 1995).
A bateria divide-se em três partes: os elétrodos, o eletrólito e o recipiente. Os
elétrodos podem ser definidos como os condutores de corrente da bateria, o
eletrólito é a solução que atua sobre os elétrodos e o recipiente guarda o eletrólito e
suporta os elétrodos. A diferença entre as pilhas e baterias está no fato de que as
pilhas, também chamadas de células eletroquímicas, são formadas por dois
eletrodos (positivo (cátodo) e negativo (ânodo)) além de um eletrólito, que é uma
solução condutora de íons onde ocorrem respectivamente as reações de redução e
oxidação. Já as baterias são formadas por várias pilhas ligadas em série ou em
paralelo. Graças a isso, as baterias produzem uma corrente elétrica muito mais forte
que as pilhas. Além disso, as pilhas e baterias podem ser divididas em primárias
(não recarregáveis) e secundárias (recarregáveis) (SOUZA, 2015).
42

Existem vários tipos de baterias, mas as mais conhecidas são as de Níquel


Cádmio e as de Ion-Lítio.
A bateria de Níquel Cádmio é do tipo recarregável, nela os polos positivos são
cobertos por Hidróxido de Níquel e negativos cobertos por material sensível ao
Cádmio estão no mesmo envoltório isolados por um separador, e ambos envolvidos
por uma substância eletrolítica, geralmente o Hidróxido de Potássio, estas baterias
tem menor capacidade de armazenamento e menor vida útil, além do "efeito
memória" quando é carregada enquanto ainda tem carga (SOUZA, 2015).
Baterias de Ion-Lítio é outro tipo de bateria recarregável que é muito utilizada,
armazena três vezes mais que uma de Níquel Cádmio, não sofre o mesmo "efeito
memória" que a bateria de Níquel Cádmio e suporta centenas de ciclos de carga e
descarga, hermeticamente fechada possui uma longa durabilidade até começar a
perder sua eficiência, porém é muito sensível a calor, necessitando de cuidados
especiais (SOUZA, 2015).

2.3.6 Interfaces

Uma forma de interação com o sistema é dirigir a informação da máquina ao


homem através de displays de LED de sete segmentos e módulos LCD, apesar de
exercerem a mesma função, existem diferenças nas aplicações, como visibilidade e
visualização de grandes informações, além do consumo de energia (PEREIRA,
2014).
Basicamente, um display de sete segmentos é composto por oito LEDs,
sendo sete para formar os segmentos de apresentação, mais um para o ponto
decimal, e classificam-se em anodo ou catodo comum, dependendo da topologia de
conexão interna dos LEDs (PEREIRA, 2014).
Os módulos de display LCD são utilizados com interface de saída em
sistemas com microcontroladores e podem ser gráficos ou de caractere. Os gráficos
são utilizados com diversas resoluções e geralmente possuem 20 pinos para
conexão. Os módulos LCD do tipo caractere são classificados em número de linhas
por colunas, 16x02 e 20x04, por exemplo. Os módulos podem ou não, no caso do
tipo caractere, conter LED backlight, que facilita a visualização em ambientes
escuros (BARBACENA; FLEURY, 1996).
43

Osdiplays gráficos são mais caros e complexos de programas, mas podem


apresentar visualmente qualquer tipo de informação na tela, inclusive gráficos, fotos
eetc (PEREIRA, 2014).

2.3.7 Bluetooth

O conceito do Bluetooth é fornecer um protocolo padrão de comunicação sem


fio de curto alcance, do tipo PAN (PersonalArea Network), universal e projetado para
baixo consumo, baseado em microchips transmissores de baixo custo em cada
dispositivo. De acordo com o seu alcance o Bluetooth pode ser divido em três
classes: Classe 1 - com uma potência de 100mW (20 dBm) e um alcance de 100m;
Classe 2 - com uma potência de 2.5mW (4 dBm) e um alcance de 10m; e Classe 3 -
com uma potência de 1mW (0 dBm) e um alcance de 1m (STALLINGS, 2005).

2.4 MECÂNICA

2.4.1Tipos de materiais para confecção da plataforma

2.4.1.1 Aço carbono

Os aços carbono são ligas ferro-carbono com teor de carbono inferior a 2% e


alguns elementos residuais em teores muito reduzidos, como silício, fósforo, enxofre,
entre outros. Os aços carbono de uso mais generalizado são os com teor de
carbono inferior a 1%, sendo o material de construção industrial de maior
importância na sociedade moderna, seja pelas características mecânicas, seja pela
facilidade de construção, especialmente quanto à soldabilidade e ainda pelo custo
relativamente baixo (NUNES, 2012).
Os aços carbono possuem, de modo geral, baixa resistência à corrosão,
exceto nos seguintes casos: em meios básicos, em meios neutros desaerados, em
meios secos, com baixa umidade ou ausência de água líquida. Como estes meios
não são os casos mais frequentes precisa-se aumentar a resistência à corrosão
através de práticas que aumentam essa resistência, como revestimentos, inibidores
de corrosão, etc (NUNES, 2012).
44

2.4.1.2 Aços com baixo teor de carbono

São os aços que têm menos de 0,25% de carbono na sua composição.


Possuem como propriedades importantes: limite de escoamento da ordem de 250
MPa (25 kg/mm²) e limite de resistência à tração em torno dos 450 MPa (45
kg/mm'²), excelentes ductilidade e tenacidade, excepcionais soldabilidade e
usinabilidade, baixa dureza, fraquíssima resistência à corrosão e à erosão. Algumas
aplicações típicas para as quais os aços de baixo carbono podem ser aplicados:
componentes da carcaça de veículos automotores, perfis de uso geral, chapas para
tubos, pontes e edificações, vasos e tanques para baixas pressões, arames e
pregos, chapas zincadas para cobertura e fechamentos, chapas estanhadas para
embalagens de bebidas e alimentos (NUNES, 2012).
Os aços de baixo carbono são fornecidos principalmente em perfis laminados
a quente, chapas finas em bobinas laminadas a quente, chapas médias e grossas
laminadas a quente e chapas finas em bobinas laminadas a frio (NUNES, 2012).

2.4.1.3 Aços com médio teor de carbono

São aqueles aços que têm de 0,25 a 0,76% de carbono na sua composição.
Possuem como características básicas: limite de escoamento da ordem de 450 (45
kg/mm²) Mpa e limite de resistência à tração em torno dos 650 MPa (65 kg/mm²),
boa ductilidade, tenacidade e boa soldabilidade. Algumas aplicações típicas para os
aços de médio carbono são: rodas e trilhos ferroviários, engrenagens, chapas para
tubos, vasos e tanques, peças para máquinas resistentes à abrasão, componentes
estruturais de alta resistência e vergalhões para construção civil. Os aços de médio
carbono são disponíveis principalmente em perfis laminados a quente, chapas em
bobinas laminadas a quente e chapas médias e grossas laminadas a quente
(NUNES, 2012).

2.4.1.4 Aços com alto teor de carbono

São os aços que têm de 0,76 a 1,4% de carbono na sua composição.


Possuem como características básicas: limite de escoamento acima de 450 MPa (45
kg/mm²) e limite de resistência à tração acima dos 650 MPa (65 kg/mm²), fraca
45

ductilidade. Algumas aplicações típicas para os aços de alto carbono são: matrizes,
ferramentas, lâminas de serras, molas, peças para máquinas altamente resistentes à
abrasão, componentes estruturais de alta resistência, os aços de alto carbono são
disponíveis principalmente em tarugos para fundição e forjamento (NUNES, 2012).

2.4.1.5 Aços inoxidáveis

São conhecidas como aços inoxidáveis de ligas ferrosas, com teor de carbono
na faixa dos aços comuns e teores de cromo de 12 a 26, podendo ter níquel até 22%
e eventualmente molibdênio. Os aços inoxidáveis podem ser classificados em: Aços
inoxidáveis austeníticos, que são ligas de Fe-Cr- Ni, Aços inoxidáveis ferríticos, que
são ligas de Fe-Cr com baixo teor de carbono. Aços inoxidáveis martensíticos, que
são ligas de Fe-Cr com maior teor de carbono, Aços inoxidáveis duplex (ferrítico -
austenítico), que são ligas de Fe-Cr-Ni e Mo, com baixo teor de carbono (NUNES,
2012).
Algumas aplicações típicas para os aços inoxidáveis são: tubos e
componentes de alta resistência à corrosão, chapas para tubos, vasos e tanques,
componentes estruturais de alta resistência à corrosão, turbinas a gás, caldeiras
para altas temperaturas, fornos para tratamento térmico, aeronaves e mísseis,
unidades geradoras de energia nuclear, utensílios domésticos resistentes à
corrosão, como, por exemplo, talheres, panelas, etc (NUNES, 2012).

2.4.1.6 Plásticos

Os plásticos são geralmente divididos em duas categorias quanto a sua


escala de fabricação e/ou de acordo com o desempenho de suas propriedades.
(WIEBECK; HARADA, 2005).
Os plásticos de uso geral podem ser termoplásticos ou termorrígidos. Os
termoplásticos de uso geral são: polietileno (PE), polipropileno (PP), poliestireno
(PS), etc. Os plásticos apresentam as seguintes propriedades: módulo de
elasticidade elevado, mesmo a temperatura relativamente elevada, boa resistência
ao impacto, boa resistência à tração e flexão, estabilidade dimensional a alta
temperatura, resistência à degradação térmica e a oxidação, resistência a reagentes
e a solventes (WIEBECK; HARADA, 2005).
46

2.4.2 Locomoção

Um sistema de locomoção pode ser considerado o inverso de um sistema de


manipulação de um robô. Na manipulação o robô é fixo e um braço move os objetos
do ambiente através da aplicação de forças aos mesmos. Já na locomoção o
ambiente é fixo e o robô se move aplicando forças no ambiente de trabalho. Nos
dois casos, são utilizadas aplicações que geram forças de interação, e mecanismos
que aplicam as propriedades desejadas para o movimento (SIEGWART;
NOURBAKHS; SCARAMUZZ, 2011).

2.4.2.1 Tipos de rodas

Na robótica móvel, garantir que o robô se movimente de forma eficiente é tão


importante quanto os sensores empregados nele. Existem diversas maneiras para
se movimentar um robô, tanto artificiais, como rodas e esteiras, ou como as que
simulam formas naturais, como pernas. (SIEGWART; NOURBAKHS; SCARAMUZZ,
2011).
Para que a plataforma autônoma tenha uma boa movimentação, deve-se
levar em conta a manobrabilidade e a estabilidade desejada. Robôs com duas rodas
direcionais são os que têm maior manobrabilidade, devido à capacidade de girar em
torno do próprio eixo, podendo oferecer uma boa estabilidade se forem bem
projetados (SIEGWART; NOURBAKHS; SCARAMUZZ, 2011).
A figura 21 ilustra os principais tipos de rodas usadas em robótica móvel para
robôs terrestres, sendo essas do tipo padrão, castor, sueca e esférica.
As rodas padrão e castor possuem um eixo de rotação, na roda padrão seu
centro de rotação passa pelo ponto de contato da roda com o solo, já na roda castor
o eixo vertical não passa por esse ponto de contato com o solo, mas ambas se
fazem necessário que sofram rotação no seu eixo vertical para se movimentarem em
uma direção diferente sem sofrerem grandes efeitos de esforços na estrutura e na
movimentação. Nas outras duas rodas, sueca e esférica, causam menos
complicações quanto a variação, a roda sueca devido a angulação de seus
rolamentos, possui menos resistência em direções diferentes, a esférica minimiza o
atrito e aumenta a dirigibilidade para que consiga rolar em qualquer direção,
tornando-a multidirecional (SIEGWART; NOURBAKHS; SCARAMUZZ, 2011).
47

Figura 19 – Principais tipos de rodas: a) padrão; b) castor; c) sueca; d) esférica

Fonte: Adaptado de Siegwart; Nourbakhs; Scaramuzz, 2011.

2.4.2.2 Disposições das rodas

Na escolha do arranjo das rodas, se faz necessário levar em conta sua


geometria para o sistema de locomoção, três fundamentos que influenciam esta
escolha são: estabilidade, manobrabilidade e controlabilidade (SIEGWART;
NOURBAKHS; SCARAMUZZ, 2011).
A figura 22 ilustra os principais tipos de arranjos utilizados para robôs móveis
terrestres.
48

Figura 20 – Principais tipos de arranjos de rodas e legendas

Roda sueca tracionada


Roda padrão Tracionada
Roda padrão guiada

Roda padrão não Roda Ball caster


Tracionada

Roda multidirecional não Rodas conectadas


tracionada

Fonte: Adaptado de Siegwart; Nourbakhs; Scaramuzz, 2011.

São necessárias no mínimo duas rodas para se garantir a estabilidade. É


possível dispor duas rodas de forma que o robô possua estabilidade, para isto é
49

necessário que o centro de massa do mesmo esteja abaixo do eixo das rodas.
Alguns robôs são omnidirecionais, ou seja, podem se mover a qualquer momento
para qualquer direção, independentemente de sua orientação em relação ao seu
eixo vertical. Esse grau de manobrabilidade exige rodas que possam se mover em
mais de uma direção, e por isso robôs omnidirecionais normalmente possuem rodas
suecas ou esféricas que são tracionadas. Em geral existe uma relação inversamente
proporcional entre a controlabilidade e a manobrabilidade, nos necessitamos de um
grau de processamento significativo para converter as rotações e translações de
cada roda em um valor desejado para a movimentação do robô como um todo. Além
disto, os arranjos omnidirecionais possuem elevados números de graus de
liberdade. Por exemplo, a roda sueca possui um arranjo de rolamentos livres em
torno do perímetro da roda. Esses graus de liberdade causam uma acumulação de
possibilidades de derrapagem, tendendo a reduzir a precisão do movimento e
aumentar a complexidade do projeto (SIEGWART; NOURBAKHS; SCARAMUZZ,
2011).
Para a seleção dos tipos de rodas e sua configuração de geometria no chassi
existem muitas variações das disposições, como mostradas na figura 22, e a partir
destas foi definido como sendo a melhor opção para nosso projeto, o arranjo com
três rodas, sendo duas do tipo padrão tracionada e uma multidirecional castor não
tracionada.

2.5COMPUTAÇÃO

2.5.1 Programação

Podemos dizer que a programação consiste na tradução do pensamento


lógico necessário para o cumprimento de determinada tarefa, em uma sequência de
comandos que podem ser interpretados e executados por uma máquina (PEREIRA,
2014).
Existem vários softwares de programação onde é possível o desenvolvimento
de programas para microcontroladores. Um deles é o MPLAB, que é disponível
gratuitamente no site da Microchip. O MPLAB é um ambiente integrado de
programação (IDE) que possui módulos como montagem e simulação de programas
para microcontroladores PIC. Sua linguagem padrão de programação é o assembly,
50

e para que tal linguagem seja desenvolvida, é disponível o assembler MPASM.


Pode-se utilizar de outras linguagens de programação, como C e Pascal,
comercializadas por terceiros, dentro do MPLAB. (PEREIRA, 2002).
Há também outros pacotes de programação para Microcontroladores, como o
CCS, com pacote de programação em C. Esse pacote, conhecido como PCW, é
constituído de um ambiente integrado de programação (IDE), onde é disponível
programar e compilar programas em C. Os compiladores CCS são conhecidos pela
sua diversidade em tipos de variáveis, como ponto flutuante, inteiros, etc. Os
compiladores C são programas de conversão de programas escritos em linguagem
de alto nível (C) para linguagem de máquina (PEREIRA, 2002).
A utilização da linguagem C para a programação de microcontroladores PICs
é natural, devido à possibilidade de construção de programas e aplicações muito
mais complexas do que seria viável utilizando apenas o Assembly. A utilização do C
permite que o programador preocupe-se mais com a própria programação em si, e o
compilador trata das demais ações controle (PEREIRA, 2014).

2.5.2 Comunicação

Em alguns casos de aplicações microcontroladas, pode ser necessário


realizar a comunicação entre um ou mais dispositivos externos e o microcontrolador.
A escolha do sistema de comunicação mais adequado para realizar a tarefa
depende de diversos fatores, como velocidade, imunidade a ruídos, custo etc.As
técnicas de comunicação podem ser divididas em duas grandes categorias, sendo
serial e paralela. (PEREIRA, 2014).
Na comunicação serial, a informação a ser transmitida é fracionada em
pequenas partes (bits) que são enviadas ao equipamento receptor após a outra, em
série, daí a denominação serial. (PEREIRA, 2014).
Na comunicação paralela, os bits componentes da informação são
transmitidos simultaneamente (total ou parcialmente) em paralelo. Como exemplos
de sistemas de comunicação paralela, podemos citar os barramentos internos dos
microprocessadores e microcontroladores. (PEREIRA, 2014).
51

2.5.2.1 Comunicação serial assíncrona e síncrona

A comunicação assíncrona caracteriza-se pela utilização de marcadores de


início e fim de transmissão.A transmissão começa por um sinal de início (start),
seguido pelos bits de dados (no caso 8 bits), iniciando pelo bit LSB e após eles, um
bit de parada (stop) para sinalizar o fim do caractere. (PEREIRA, 2014).
Nos protocolos síncronos, além da(s) linha(s) de comunicação, encontramos
uma ou mais linhas de sincronização (clock). A informação na linha de dados é
enviada a cada transição da linha de clock. O elemento que gera o sinal de
sincronização de transmissão (clock) é chamado de mestre, o(s) dispositivo(s) que
recebe(m) o sinal de sincronismo é(são) chamado(s) de escravo(s) (PEREIRA,
2014).

2.5.2.2 Protocolo I²C

O protocolo I²C (Inter Integrated Comunication - Comunicação entre


integrados) é um dos mais utilizados na comunicação dos dispositivos dentro de um
mesmo circuito ou equipamento eletrônico.
Esse protocolo foi desenvolvido pela Philips para facilitar o desenvolvimento
de sistemas modulares para televisores e outros aparelhos eletrônicos de consumo
geral.
Trata-se de um protocolo síncrono de dois fios ou linhas, sendo uma linha de
clock (chamada de SCL) e outra de dados (chamada de SDA). Graças à
especificação de saídas em coletor (ou dreno) aberto, o protocolo permite a ligação
de diversos dispositivos nas mesmas linhas, formando um autêntico barramento de
comunicação serial, ou uma rede de dispositivos.
Atualmente o protocolo está em sua revisão número 2.1 e suporta
velocidades de até 3,4 megabits por segundo. Na realidade, a grande maioria dos
dispositivos I²C é compatível com as versões anteriores do protocolo, portanto
limitadas a velocidades de 100 ou 400 Kbps conforme o dispositivo.
A quantidade de dispositivos presente no barramento é apenas limitada pela
capacitância máxima admitida que é de 400pF (PEREIRA, 2014)
52

2.5.3 Simuladores para robôs móveis

Existem diversos simuladores para robôs móveis, alguns podem


simular vários tipos de robôs em ambientes diferentes, outros limitam-sea um tipo de
plataforma em ambientes formados por formas geométricas simples, como o V-Rep
e o Webots, respectivamente.
Porém, a representação de um ambiente em forma de mapa pode ser uma
tarefa um tanto quanto complexa, devido ao número de dados e informações
necessárias e do tempo que deve ser gasto para tal tarefa.Dessa forma, em vez de
mapear o ambiente, pode-se apenas representar a rota que o robô deve seguir. Um
exemplo de softwareque pode ser utilizado para tal tarefa é oSuperLogo, um
programa que também é utilizado no ensino de programação da linguagem Logo.

2.5.3.1 Webots

Webots é um simulador de robôs móveis em 3D comercializado pela


Cyberbotics, ele permite a simulação de robôs de duas rodas com cinemática
diferencial. Seu público alvo são pesquisadores e professores da área de agentes
autônomos, visão computacional e inteligência artificial. [...] O ambiente virtual é
tridimensional e possui um editor para customizar os ambientes que são compostos
de primitivas geométricas simples. (HEINEN, 2012).

Figura 21 – Webots

Fonte: Adaptado de Heinen, 2012.


53

2.5.3.2 V-REP

O simulador de robô V-REP, com ambiente de desenvolvimento integrado, é


baseado em uma arquitetura de controle distribuído: cada objeto/modelo pode ser
controlado individualmente por meio de um script incorporado, um plug-in, um cliente
API remoto, ou uma solução personalizada. Isso faz com que V-REP seja muito
versátil e ideal para aplicações multi-robô. Controladores podem ser escritos em
C/C++, Python, Java, Lua, Matlab, Octave ou Urbi. V-REP pode ser usado para
simulações, prototipagem, monitoramento, etc (COPPELIAROBOTICS, 2015).

Figura 22 – V-REP

Fonte:Coppeliarobotics, 2015.

2.5.3.3 O ambiente SuperLogo e a linguagem Logo

Desenvolvida por SeymourPapert, um educador matemático, nos anos


sessenta, no MIT - Massachusetts InstituteofTechnology, de Cambridge, MA,
Estados Unidos, e adaptada para o português em 1982, na Unicamp, pelo Núcleo de
Informática Aplicada à Educação (NIED), a linguagem logo vem sendo utilizada para
trabalhar com crianças e adolescentes (SOARES, 2009).
A primeira versão de LOGO usava um robô eletrônico que lembrava uma
tartaruga. No caso da tela do computador, ela é o cursor onde a tartaruga se
encontra (seja na forma de um triângulo, seja na forma de uma tartaruga) (SOARES,
2009).
54

Ao iniciar o programa aparecerão duas janelas: aJanela Gráfica e a Janela de


Comandos. Juntas formam oambiente do SuperLogo (Figura 25).Na janela gráfica
aparece a figura da tartaruga, umcursor gráfico que, através da execução de
algunscomandos, movimenta-se e constrói desenhos.Na janela de comandos, o
usuário digita asinstruções a serem executadas pela tartaruga e aciona osbotões do
ambiente (MOTTA; MIRANDA, 2008).

Figura 23 – SuperLogo

Fonte: Adaptado de Motta; Miranda, 2008.

Os comandos básicos para movimentação datartaruga são idênticos a


quando se realiza umacaminhada, ou seja, anda-se para frente, para trás, para
adireita ou para esquerda. A diferença é que, usando umrecurso computacional,
deve-se indicar qual odeslocamento e o giro. No SuperLogo considera-se
aequivalência de que para cada 1 (um) cm tem-se 50 passosde tartaruga, ou seja,
50 pixels (MOTTA; MIRANDA, 2008).
55

Tabela 01 – Comandos básicos do SuperLogo

Comando Mnemônico Função

Parafrente PF Deslocamento para frente

Paratras PT Deslocamento para trás

Gira para a esquerda de


acordo com seu eixo em um
Paraesquerda PE
ângulo especifico

Gira para a direita de acordo


com seu eixo em um ângulo
Paradireita Pd
especifico

Fonte: Fonte: Adaptado de Motta; Miranda, 2008.

Cada comando deve ser seguido por um espaço embranco, logo após a
indicação do descolamento ou giro.Após a digitação do comando, pressiona-se a
tecla Enterou Executar na barra de comandos. Os comandos pf e pt alteram a
posição da tartaruga e os comandos pd e pe, asua orientação em relação ao seu
eixo de simetria (MOTTA; MIRANDA, 2008).

2.5.4 Fluxograma

Fluxograma é uma ferramenta de elementos gráficos que determina uma


sequência de operação necessária para que se conclua uma determinada tarefa e,
por consequência, solucionar um problema. Os elementos utilizados para
elaboração de um fluxograma são: Início ou terminação, processo, dados e tomada
de decisão. Início ou terminação são utilizados para representar o início e término de
um algoritmo, o elemento processo descreve a realização de uma tarefa, o símbolo
de dados é utilizado para indicar um processo de entrada de dados e o elemento
tomada de decisão representa um teste condicional, onde pode-se tomar dois
caminhos a serem seguidos, uma para quando a condição é atendida e outra para
quando não é atendida (PEREIRA, 2007).
56

3 DESENVOLVIMENTO

3.1 DESENVOLVIMENTO ELETRO-ELETRÔNICA

3.1.1 Microcontrolador

No projeto foi utilizadoo Microcontrolador PIC16F877A, este componenteé


interessante para o projeto devido seu baixo custo, seu grande número de portas I/O
disponíveis, 33 no total, além de outros recursos, como duas portas CCP (Captura,
Comparação e PWM), comunicação via protocolo RS-232 e i²C e 3 Timers.

Figura 24 – Diagrama das portas utilizadas

Fonte: Autoria própria.

O microcontrolador é o principal componente do projeto, ele recebe dados dos


sensores, faz o processamento e mostra as informações no módulo LCD no próprio
robô e envia via Bluetooth para o computador, onde poderão ser visualizadas e
analisadas, também é responsável por acionar o circuito da ponte H, que irá acionar
57

os motores no sentido de giro escolhido e na velocidade determinada através do


controle PWM.

Figura 25 – Diagrama de blocos dos dispositivos eletroeletrônicos

Fonte: Autoria própria.

A placa de controle com o microcontrolador foi confeccionada em placa


universal perfurada de fibra de vidro, com dimensões de 10 cm x 15 cm, utilizando
barras de pinos ligadas a todas as portas, também foi anexada à mesma um mini
protoboard para facilitar a ligação dos fios.
58

Figura 26 – Placa microcontrolada com o PIC 16F877A

Fonte: Autoria própria.

3.1.2 Sensores

No projeto foram utilizados dois encoders óticos (figura 29) incrementais,


modelo HOA0901 daHoneywell, posicionados em cada eixo dos motores junto com
discos plásticos que proporcionam 20 resoluções, assim após uma volta completa
do disco, o sensor ótico composto por um diodo emissor de luz e um fototransistor
terá feita a detecção e sinalização de 10 níveis altos e 10 níveis baixos.
59

Figura 27 – Disco usado com o sensor óptico

Fonte: Autoria própria.

Além do sistema de odometria formado pelos encoders, o sistema de


localização de rota conta com uma bússola digitalda marca Honeywell modelo
HMC5883L (figura 30), que é responsável por detectar e sinalizar o deslocamento
em relação ao norte magnético da terra.

Figura 28 – Módulo com bússola HMC5883L da Honeywell

Fonte: Autoria própria.


Inicialmente a ideia era usar os encoder para calcular a distância percorrida e
a bússola digital como sensor absoluto, assim seria possível obter o deslocamento
60

em forma de vetor, com a distância percorrida e o ângulo de deslocamento em


relação ao norte magnético da terra. Porém com a realização de testes constatou-se
que a bússola utilizada, apresentava resultados instáveis, sendo que qualquer tipo
de campo eletromagnético ou metal ferroso que se aproximasse da mesma
ocasionava ruídos e alterações nos valores lidos.

Figura 29 – Testes com a bússola

Fonte: Autoria própria.

Dessa forma, a bússola digital está sendo usada apenas para indicar os
pontos cardeais e colaterais da terra, mesmo assim foi necessário isolar o integrado
do protótipo devido ao campo eletromagnético gerado pelos motores. Através de
testes executados verificou-se que a partir de 30 cm de distância do protótipo a
bússola passou a fornecer valores mais estáveis.

Figura 30 – Disposição da bússola digital HMC5883L no protótipo


61

Fonte: Autoria própria.

O protótipo do robô também conta com 3 sensores sonares modelo HC-SR04


da ElecFreaks (figura 11), sendo um posicionado na frente, um do lado esquerdo e
outro do lado direito, que são usados para evitar que o mesmo venha a colidir com
obstáculos a sua frente ou dos lados.

3.1.3 Motores

Foram utilizados apenas dois motores DCno robô, posicionados na parte de


trás da plataforma. Os motores contam com uma caixa de redução 1:48, a tensão de
operação é de 3 a 8V consumindo em média 200mA de corrente, podendo chegar a
velocidade máxima sem carga de 200 RPM.
62

Figura 31 – Motor DC com redução acoplada

Fonte: Autoria própria.

3.1.3.1 Controle dos motores

O controle de velocidade e sentido de giro dos motores é feito pelo


microcontrolador, utilizando as duas portas PWM do mesmo e outras 4 portas
digitais tendo como drive um CI L298 (figura 17), como o circuito integrado conta
com duas ponte-H integradas que suportam fornecer uma corrente de 3 A cada, um
único chip é suficiente para os dois motores, mas se fosse consumida uma corrente
maior, poderia ser utilizado mais um chip e as ponte-H poderiam ser ligadas em
paralelo, conforme sugere o datasheet do componente, assim poderiam fornecer
uma corrente de até 6 A.
Inicialmente foram construídas duas ponte H com transistores TIP122 em
placa de circuito impressa, conforme a figura 34, porém visando diminuir o espaço
físico ocupado pelo circuito, optou-se pelo integrado.
Figura 32 – Ponte H com transistores em placa de circuito impressa
63

Fonte: Autoria própria.

3.1.4 Interface

Como dispositivo de interface, foi utilizado um Display LCD alfanumérico de 4


linhas e 20 colunas, acoplado na própria placa do microcontrolador, necessário para
a execução de testes e exibição dos dados fornecidos pelos sensores. Também foi
utilizado um módulo Bluetooth HC-05 (figura 20) que envia informações para o
computador, onde são exibidas no software Bluetooth Serial Terminal.

Figura 33 – Esquemático de ligação do LCD

Fonte: Autoria própria.


64

3.1.5 Alimentação

A alimentação de todos os circuitos e componentes que constituem o


protótipo do robô é feita por uma bateria recarregável de lítio de 8 Voltse 1.500 mA.
Para definição da corrente mínima necessária que a bateria deve fornecer, foi feito o
cálculo com base no consumo dos componentes que constituem o protótipo,
apresentado na tabela 02.

Tabela 02 – Cálculo da corrente consumida pelo protótipo

CORRENTE CONSUMIDA PELO PROTÓTIPO

Componente Quantidade Corrente consumida (mA)

PIC 1 300

Sonar 3 15

Bússola digital 1 0,1

Display LCD 1 1,5

Motor 2 200

Bluetooth 1 40

Encoder 2 0,1

TOTAL: 786,8

Fonte: Autoria própria.

3.2 DESENVOLVIMENTO MECÂNICO

3.2.1 Rodas

Junto com os motores DC foram utilizados dois pneus de plástico, com


diâmetro de 68mm e largura de 26mm. A parte dianteira do robô possui apenas um
rodízio giratório com uma roda de diâmetro de 30mm e largura de 15mm, este tipo
de rodízio também é conhecido por roda “boba”.
65

Figura 34 – Roda traseira e dianteira

Fonte: Autoria própria.

3.2.2 Escolha do material

Existem diversos tipos de materiais que atendem as necessidades do projeto.


Porém, visando manter a leveza, o baixo custo e facilitar a confecção da plataforma,
optou-se por usar o acrílico como material.
O acrílico ou polimetil-metacrilato (PMMA) é um tipo de polímero, é um
material transparente, rígido e incolor, é considerado um dos melhores plásticos
existentes, por sua leveza, facilidade em adquirir formas e alta resistência.
Outro fator que influenciou a escolha do material foi o fato de já possuirmos o
mesmo, dessa forma não tivemos gastos com o material.

3.2.3 Layout da plataforma

Com o auxilio do software de modelagem mecânica SolidWorks 2014 foi feito


o desenho do perfil da base para o robô,com comprimento de 200 mm e 140mm de
largura total, também foram marcados os furos necessários para a fixação dos
espaçadores, dos encoders, da Ponte-H e dos motores.
66

Figura 35 – Layout da base inferior do robô

Fonte: Autoria própria.

Depois de feito o desenho do perfil da base do protótipo, foi feita a simulação


da montagem com os espaçadores (apêndice B),a base do robô e uma placa com a
possível dimensão da placa de controle para representar a mesma, com auxilio do
software SolidWorks 2014, a fim de eliminar possíveis erros das medidas.

Figura 36 – Montagem do protótipo

Fonte: Autoria própria.


67

A fabricação da plataforma foi feita na própria faculdade durante o semestre


de mecânica na matéria de Fabricação Auxiliada por Computador, ministrada pelo
professor Gilmar José de Lara.

3.2.4 Ambiente de atuação do robô

O ambiente físico para o qual o robô foi projetado para atuar é um labirinto
(figura 39) usado em competições de robô labirinto na Faculdade de Tecnologia
Tupy de Curitiba, instituição mantida pela Sociedade Educacional de Santa Catarina.

Figura 37 – Labirinto utilizado como ambiente padrão do protótipo

Fonte: Faculdade de Tecnologia Tupy, 2015.

O ambiente que é composto por módulos de madeira múltiplos de 40 cm, foi


dividido em grids (grades) formando uma matriz (figura 40), e em cada grid que o
robô passar para atravessar o labirinto, o mesmo deve indicar sua localização e
orientação em relação aos pontos cardeais (Norte, Sul, Leste e Oeste) e colaterais
(Noroeste, Nordeste, Sudeste e Sudoeste), da terra, sendo a grade A01 o início do
percurso e a grade A06 o ponto final.
68

Figura 38 – Labirinto dividido em grades

Fonte: Autoria própria.

3.3 DESENVOLVIMENTO COMPUTACIONAL

Como o projeto além de propor o desenvolvimento de um protótipo de robô


móvel também trata o inicio do problema de localização e navegação em robótica
móvel, o desenvolvimento computacional será dividido em duas partes principais,
uma tratando da programação básica para mobilidade do robô e outra da
programação responsável por evitar a colisão, calcular a possível posição do robô e
transmitir essa informação, conforme programação no apêndice F.

3.3.1 Locomoção

Para o robô se locomover é necessário fazer o acionamento dos motores,


indicando o sentido de giro e a velocidade dos mesmos, porém como o
69

microcontrolador não supre a corrente consumida pelos motores, o comando de


acionamento e de controle de velocidade (realizado por PWM) é passado
primeiramente para odrive, no caso a ponte H dupla L298,para isso foram
elaboradas algumas funções utilizadas para facilitar a programação.
O robô inicia seu ciclo lógico parado, e como é necessário após o
acionamento do sistema de locomoção que retorne a esse estado, a função Stop()
garante isso colocando as saídas utilizadas do microcontrolador para o controle em
níveis baixos:
voidStop()
{
output_low(PIN_d7);
output_low(PIN_d6);
output_low(PIN_d5);
output_low(PIN_d4);
}
Para que o robô de locomova para frente ou para trás foram criadas mais
duas funções, Frente() e Re(), que fazem o acionamento alternando os níveis
lógicos das saídas em pares:
void Frente()
{
output_low(PIN_d7);
output_high(PIN_d6);
output_low(PIN_d5);
output_high(PIN_d4);
}
void Re()
{
output_high(PIN_d7);
output_low(PIN_d6);
output_high(PIN_d5);
output_low(PIN_d4);
}
Também foram criadas mais duas funções, Esquerda() e Direita(), para os
casos em que o robô necessite fazer a conversão para a esquerda ou para a direita:
70

void Esquerda()
{
output_low(PIN_d7);
output_high(PIN_d6);
output_low(PIN_d5);
output_low(PIN_d4);
}
void Direita()
{
output_low(PIN_d7);
output_low(PIN_d6);
output_low(PIN_d5);
output_high(PIN_d4);
}
Para o controle de velocidade foram utilizadas as portas CCP do PIC
configuradas como PWM, utilizando a seguinte função:
voidpwm()
{
setup_timer_2 (T2_DIV_BY_16, 100, 10);
setup_ccp1 (ccp_pwm); //configura ccp1 modo pwm
setup_ccp2 (ccp_pwm); //configura ccp2 modo pwm
set_pwm1_duty (0); //zera o ciclo ativo do pwm1
set_pwm2_duty (0); //zera o ciclo ativo do pwm2
}
Sendo que o ciclo de trabalho é configurado indicando um valor de 0% a
100% nos comandos set_pwm1_duty (ciclo_1) e set_pwm2_duty (ciclo_2).

3.3.2 Localização

3.3.2.1 Leitura dos sonares

Para evitar que o protótipo venha a colidir com as paredes do labirinto, foram
utilizados os três sensores sonares, que calculam a distância do robô até as
71

paredespor meio da mesma estrutura de programação, alterando apenas o nome da


função e asvariáveis:
voidsonar_frontal()
{
output_high(trig_1);
delay_us(10);
output_low(trig_1);
while(!input(echo_1)) {}
tempo=0;
distância=0;
set_timer1(0);
while(input(echo_1)) {}
tempo=get_timer1();
distância=tempo/constante_de_calibração;
}
A função aciona o emissor do sensor por meio de um pulso enviado ao
triggerde 10 µs, então o sensor emite um sinal de ultrassom e o microcontrolador
inicia um temporizador que é parado quando o receptor do sensor recebe o eco do
sinal enviado, por meio do tempo gasto para o retorno do eco e da velocidade do
som no ar, é possível calcular a distância do robô até o obstáculo.
Porém devido a características de hardware tanto da placa de controle quanto
do próprio sensor, a distância obtida pode ser diferente do valor real, por isso foi
utilizado uma constante de calibração, obtida pela média de amostras de tempo e
distâncias reais, chegando ao valor de 24,16666 us/cm, assim basta dividir o tempo
contabilizado pelo contador pela constante pra se chegar ao valor da distância.

3.3.2.2 Programação do encoder

A programação dos encoders é feita na própria rotina do programa principal,


como foi utilizado encoder incremental, antes do inicio do programa é
necessárioidentificar a posição do disco em relação ao sensor ótico, ou seja, se está
em nível alto ou baixo e armazenar essa informação:
if ((!input(enc_d))) ed=1; //encoder direito
if ((input(enc_d))) ed=0; //encoder direito
72

if ((!input(enc_e))) ee=1; //encoder esquerdo


if ((input(enc_e))) ee=0; //encoder esquerdo
Após identificar o estado dos encoder, a programação entra no laço de
repetição, onde são acionados os motores e a cada ciclo do programa ocorre à
verificação do estado do encoder, se ocorrer alguma mudança o contador é
incrementado, e a variável que armazena o estado muda o valor:
if (ed==0)
{
if ((!input(enc_d)))
{
ced++;
ed=!ed;
}
}
elseif (ed==1)
{
if ((input(enc_d)))
{
ced++;
ed=!ed;
}
}
if (ee==0)
{
if (!input(enc_e))
{
cee++;
ee=!ee;
}
}
elseif (ee==1)
{
if ((input(enc_e)))
{
73

cee++;
ee=!ee;
}
}
Para calcular a distância percorrida basta dividir o contorno da roda que é de
21,5cm pela resolução do encoder que é de 20 pulsos, ou seja, para cada pulso o
robô se move 1,075cm, conforme equação:
dist_ed=ced*1.075 (1);
dist_ee=cee*1.075 (2);
Como o cálculo da distância percorrida deve ser o mais preciso possível, para
que o robô realize a leitura dos sonares, por exemplo, é necessário parar os
motores, assim o tempo gasto para a leitura dos sensores não interfere na contagem
de pulsos do encoder, uma alternativa seria usar a própria interrupção interna do
microcontrolador, porém o modelo selecionado ao inicio do projeto só possui uma
interrupção externa, assim a melhor alternativa encontrada foi realizar a interrupção
via software:
if (((dist_ee%20)==0)||((dist_ed%20)==0))
{
stop();
leitura_sensores();
}
Dessa forma a cada 20cm de deslocamento, o robô para e verifica os
sensores de ultrassom.

3.3.2.3 Leitura da bússola

A comunicação entre a bússola e o microcontrolador é realizada através de


protocolo i²C que é configurado pela biblioteca HMC5883L.h, também é necessário
adicionar a biblioteca matemática math.h, devido aos cálculos realizados para
indicar o norte magnético da Terra.
No inicio do programa é chamada a função que inicializa a bússola,
HMC5883L_init(); após a inicialização pode ser usada uma variável real ou um
inteiro longo para receber o valor da leitura, que também é dado por uma função, no
caso foi utilizada a variável do tipo inteiro longo:
74

int16 norte;
norte=HMC5883l_heading();

3.3.2.4 Display LCD como interface

Para a utilização do display LCD como interface foram dedicadas seis portas
do microcontrolador e incluído no código a biblioteca LCD_20x04_P2, que declara
as portas que são utilizadas para comunicação e configuração do display.
No inicio do programa, é necessário inicializar o LCD chamando a função
inicializa_lcd(), após essa declaração é possível exibir dados ou mensagens no
mesmo, antes indicando a linha e a coluna que se deseja iniciar a escrita e em
seguida usando a função “printf()” do próprio compilador e entre parêntese declarar
onde será a escrita:
caracter_inicio(1,1);
printf(escreve_lcd,"Norte: %lu", norte);
No exemplo acima seria exibido o valor da leitura da bússola, iniciando a
escrita na linha 01 e coluna 01 do LCD. O código “%lu” indica que o valor a ser
exibido se trata de um inteiro longo.

3.3.2.5 Bluetooth

A comunicação do microcontrolador com o módulo Bluetooth é feita via


protocolo RS-232 utilizando duas portas do PIC para o envio e recepção de dados.
No cabeçalho do programa é necessário declarar a utilização do protocolo, a
utilização da UARTinterna e a velocidade de transferência:
#use rs232(uart1, baud=9600)
Posteriormente é possível ler dados e informações recebidos via Bluetooth na
porta serial utilizando a função “getc()” e escrever para envio utilizando a função
“printf()”.
No computador é utilizado o software Bluetooth Serial Terminal para envio de
comandos para o protótipo e recebimento de informações de localização.
75

Figura 39 – Interface software Bluetooth Serial Terminal

Fonte: Autoria própria.

3.3.3 Fluxograma de funcionamento

A figura 42 representa em forma de fluxograma o funcionamento do programa


criado para o robô. Como pode ser visto, assim que se inicia o ciclo lógico do
programa é feita a leitura dos sensores sonares e algumas comparações em relação
aos valores obtidos, se o robô estiver em uma posição segura em relação ao
ambiente o ciclo lógico segue e então é feita a leitura da bússola assim como a
leitura dos encoders com a movimentação do robô, sendo que a cada 40 cm de
deslocamento os valores são exibidos nas interfaces, os motores são parados e o
ciclo lógico se reinicia.
A rotina criada permite que o robô navegue e forneça sua localização dentro
do ambiente padrão utilizado, o labirinto, de forma simples, mas bem eficaz,
informando a cada grade percorrida sua posição e sua orientação em relação aos
pontos cardeais e colaterais da Terra, através dos dados fornecidos pelos encoders,
utilizados para calcular a distância percorrida e da bússola digital que fornece a
posição em graus do norte magnético da Terra.
76

Figura 40 – Fluxograma de funcionamento da programação

Fonte: Autoria própria.


77

4 CONCLUSÃO

Com base no estudo e na pesquisa realizada foi possível levantar os dados e


selecionar as partes necessárias para a criação de um robô móvel e de um sistema
de localização indoor. O projeto, de maneira geral, conseguiu alcançar os objetivos
delimitados inicialmente, com uma base teórica fundamentada e quase todo o
conhecimento obtido durante o curso de Tecnologia em Mecatrônica Industrial
aplicado, o trabalho pode servir de ponta pé inicial para projetos futuros na área de
robótica, mais especificamente de robótica móvel.
Tivemos algumas dificuldades bem pertinentes com relação à parte eletrônica
e de programação, a bússola digital, por exemplo, que seria utilizada como sensor
de posição absoluta se mostrou bastante inconstante com relação às informações
fornecidas, a programação do microcontrolador para fazer a leitura dos encoders e o
calculo do deslocamento também exigiu bastante tempo e dedicação para que se
obtivessem resultados satisfatórios.Mas apesar dos problemas enfrentados, o
projeto pôde ser concluído com êxito.
Para o desenvolvimento futuro, se planeja a criação de uma estrutura mais
robusta, para que o protótipo possa navegar em outros ambientes, e a adição de
sensores inerciais ao protótipo, como acelerômetros e giroscópios, para refinar os
resultados da localização e consequentemente da navegação.
78

REFERÊNCIAS

ANALOG DEVICES. DatasheetADXL345 – Digital Accelerometer. USA:


AnalogDevices, 2015.

ATMEL. DatasheetAVR MicrocontrollerATmega48PA, ATmega88PA,


ATmega168PA, ATmega328P. Atmel, 2009.

BARBACENA, Ilton L.; FLEURY, Claudio Afonso.DISPLAY LCD. Faculdade de


Engenharia Elétrica e Computação - Unicamp: Campinas, 1996.

BRAGA, C. Newton. Eletrônica básica para mecatrônica. 1.Ed. São Paulo: Editora
Saber, 2005.

BOLTON, W.. Mecatrônica: Uma abordagem multidisciplinar. 4. ed. Porto Alegre:


Artmed Editora S.a., 2008. 664 p.

COPPELIAROBOTICS. V-Rep: Virtual RobotExperimentationPlatform. Disponível


em: <http://www.coppeliarobotics.com/>. Acesso em: 03 out. 2015.

ELECFREAKS. DatasheetHC-SR04 UltrasonicRanging Module. Elecfreaks, 2015.

EVERETT, H. R.. Sensors for MobileRobots: Theoryand Application. Wellessley,


Ma: A K Peters, Ltd, 1995. 543 p.

GUANGZHOU HC. Datasheet HC-05. Guangzhou HC InformationTechnology Co.,


Ltd. 2011.

HEINEN, Farlei José. Sistema de Controle Híbrido para Robôs Móveis


Autônomos. 2002. 130 f. Dissertação (Mestre) - Universidade do Vale do Rio Dos
Sinos, São Leopoldo, 2007.

HONEYWELL. DatasheetHOA0901. Honeywell, 2015.

KOSOW, Irving Lionel. - Máquinas Elétricas e Transformadores.Porto Alegre,


Editora Globo, 1982.
79

LIMA, Charles Borges de. Os Poderosos Microcontroladores AVR. Florianópilis:


Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina, 2009. 143 p.
Disponível em: <http://files.arduinoprojects.webnode.pt/200000013-
ed611ee5ba/Apostila-ATMEGA.pdf>. Acesso em: 03 ago. 2015.

LIMA, Eliomar Araújo de. Sistema para localização de pessoas e objetos em


ambientes indoor. 2001. 41 f. Dissertação (Mestrado) - Curso de Computação
Móvel, Departamento de Informática, Pontifícia Universidade Católica do Rio de
Janeiro, Rio de Janeiro, 2001. Disponível em: <http://www.inf.puc-rio.br/>. Acesso
em: 10 set. 2015.

LMICSE: Lego Mindstorms in ComputerScienceEducation.Howto use sonar.


Disponível em
<http://www.mcs.alma.edu/LMICSE/LabMaterials/AlgoComp/Lab5/AlgCoL5.htm>.
Acesso em 10 ago. de 2015.

LAND LOUSÃ. Leitura de altitudes a partir de um receptor GPS. Disponível em:


<http://www.landlousa.com/2011/04/leituras-de-altitude-a-partir-de-um-receptor-gps-
geometria-dos-satelites/>. Acesso em: 10 set. 2015.

MICROCHIP. Datasheet PIC16F877A. Microchip TechnologyInc,, 2003.

MICROCHIP. DatasheetPIC18F4550. Microchip Technology Inc., 2009.

MOTTA, Marcelo Souza; MIRANDA, Dimas Felipe de. Geometria da


Tartaruga. Belo Horizonte: Pontifícia Universidade Católica de Minas Gerais, 2008.
94 p. Disponível em:
<http://www1.pucminas.br/imagedb/documento/DOC_DSC_NOME_ARQUI20140528
143213.pdf>. Acesso em: 10 out. 2015.

MURPHY, Robin R. Introduction to AI Robotics. Massachussets,


MassachusettsInstituteofTechnology, 2000. 487 p.

NICOLOSI, Denys E. C.. Microcontrolador 8051: Detalhado. 8ª Edição São Paulo:


Editora Érica Ltda, 2007.
80

NUNES, Laerce de Paula. Materiais: Aplicações de Engenharia, Seleção e


Integridade. Rio de Janeiro: Interciência, 2012. 375 p.

ODAKURA, Valguima Victoria Viana Aguiar. Localização de Markov para


Multirrobôs Cooperativos. 2007. 146 f. Tese (Doutorado) - Curso de Engenharia
Elétrica, Escola Politécnica da Universidade de São Paulo, São Paulo, 2007.
Disponível em: <http://www.teses.usp.br/teses/disponiveis/3/3141/tde-07082007-
151502/pt-br.php>. Acesso em: 02 ago. 2015.

OMRON. DatasheetLaser E3Z. OmronElectronicsIberia, S.A., 2015.

PAZOS, FernandoAgustin. Automação de sistemas e robótica. Rio de Janeiro:


Axcel Books, 2002. 377 p.

PEREIRA, Fábio. Microcontroladores: PIC - Programação em C. 7ª Ed. São


Paulo: Érica Ltda, 2014. 358 p.

PEREIRA, Fábio. Microcontroladores PIC: Técnicas Avançadas. São Paulo:


Érica, 2002.

ROSÁRIO, João Maurício. Princípios da Mecatrônica. São Paulo: Pearson Prentice


Hall, 2005.

SEVERINO, Antônio Joaquim. Metodologia do Trabalho Científico. 23.ed. São


Paulo: Cortez, 2007.

SHARP. DatasheetGP2Y0A02YK0F. SHARP Corporation, 2006.

SIEGWART, Roland; NOURBAKHS, Illah R.; SCARAMUZZ, Davide.Introduction to


AutonomousMobileRobots. 2. ed.Cambrigde: TheMitPress, 2011. 472 p.

SILVA, R. Programando Microcontroladores PIC: Linguagem C. São Paulo:Ensino


Profissional, 2006.

SOARES, Alexandre Rodrigues. ProjetoLogo. 2009. Disponível em:


<http://projetologo.webs.com/texto1.html>. Acesso em: 10 out. 2015.

SOUZA, David José de. Desbravando o PIC - Ampliado e Atualizado para PIC
16F628A. 12ª Edição Nacional: Érica, 2008.
81

SOUZA, Líria Alves De. Qual a diferença entre pilhas e baterias?. Brasil Escola.
Disponível em <http://www.brasilescola.com/quimica/qual-diferenca-entre-pilhas-
baterias.htm>. Acesso em: 13 out. 2015.

STALLINGS, W. Comunicaciones y redes de computadores. 6ª edição. Madrid:


Prentice Hall, 2000.

GREGORY, L. Moss; Sistemas digitais: Princípios e aplicações. 11ª edição. São


Paulo: Pearson Prentice Hall, 2011.

TZAFESTAS, Spyros G.. Introduction to MobileRobotControl. Waltham: Elsevier


Inc., 2014. 691 p.

WALTHER, Robert C. - ElectricSystems Management. Standard


handbookofplantengineering. 2ª edição. Nova Iorque: McGraw-Hill, 1995.

WIEBECK, Hélio; HARADA, Júlio. Plásticos de Engenharia – Tecnologia e


Aplicações. São Paulo: Artliber, 2005.
82

APÊNDICE A
BASE DO ROBÔ
83

APÊNDICE B
ESPAÇADOR ENTRE A BASE E A PLACA
84

APÊNDICE C
MONTAGEM DA BASE E ESPAÇADORES
85

APÊNDICE D
ESQUEMÁTICO CIRCUITO ELETRÔNICO
86

APÊNDICE E
AMBIENTE PADRÃO UTILIZADO
87

APÊNDICE F
PROGRAMAÇÃO DO MICROCONTROLADOR

Programa principal

#include "D:\PIC\Biblioteca\Lib_encoder.h"
int1ed=0, ee=0;
int i=0, pwm1=55, pwm2=57, liga=9, c=0;
int16dist_ed=0, dist_ee=0, ced=0, cee=0;

voidmain()
{
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8
inicializa_lcd(); // Inicializa o LCD
delay_ms(1000);
HMC5883L_init();
limpa_lcd(); // Limpa o display do LCD
pwm();
set_pwm1_duty (pwm1); //esquerda min.49 53
set_pwm2_duty (pwm2); //direita min.52 55
caracter_inicio(1,1);
printf(escreve_lcd,"Teste Encoder");
delay_ms(1000);
output_low(led_1);
output_low(led_2);
if ((!input(enc_d))) ed=1;
if ((input(enc_d))) ed=0;
if ((!input(enc_e))) ee=1;
if ((input(enc_e))) ee=0;
while(true)
{
88

caracter_inicio(1,15);
printf(escreve_lcd,"N: %c%c", n, nn);
caracter_inicio(2,13);
printf(escreve_lcd," ");
caracter_inicio(2,1);
printf(escreve_lcd,"SF:%lu SE:%lu SD:%lu", d_1, d_2, d_3);
caracter_inicio(3,1);
printf(escreve_lcd,"Dist_D = %luPd %lu", dist_ed, ced);
caracter_inicio(4,1);
printf(escreve_lcd,"Dist_E = %luPe %lu", dist_ee, cee);
if (kbhit())
{
i = getc(); // Leitura porta serial
i=i-48; // Conversão de ASCII para Decimal
if(i==0) liga=0;
elseif(i==1) liga=1;
elseif(i==2) liga=2;
elseif(i==9) liga=9;
}

if (liga==0) stop(); // Primeiro laço

elseif (liga==9) // Segundo laço


{
stop();
liga=0;
cee=0;
ced=0;
dist_ee=0;
dist_ed=0;
c=0;
}
elseif(liga==1) // Terceiro laço
{
89

// Leitura dos sonares


sonar_frontal();
sonar_esquerda();
sonar_direita();

// Laço lógico de comparaçãodos sensores


if (d_1<9)
{
re();
delay_ms(500);
stop();
liga=1;
}
elseif ((d_1>=9)&&(d_1<20))
{
if (d_2>d_3)
{
direita();
delay_ms(550);//550
}
elseif(d_3>d_2)
{
esquerda();
delay_ms(550);//550
}
stop();
liga=2;
}
elseif(d_1>=20)
{
if (d_2<9)
{
esquerda();
delay_ms(20);
90

stop();
liga=1;
}
elseif (d_3<9)
{
direita();
delay_ms(20);
stop();
liga=1;
}
else
{
// Leitura da Bússola
norte=HMC5883L_heading();
bussola();
liga=2;
}
}
}

elseif(liga==2) // Quarto laço


{
frente();
if (ed==0)
{
if ((!input(enc_d)))
{
ced++;
ed=!ed;
output_toggle(led_1);
}
}
elseif (ed==1)
{
91

if ((input(enc_d)))
{
ced++;
ed=!ed;
output_toggle(led_1);
}
}
if (ee==0)
{
if (!input(enc_e))
{
cee++;
ee=!ee;
output_toggle(led_2);
}
}
elseif (ee==1)
{
if ((input(enc_e)))
{
cee++;
ee=!ee;
output_toggle(led_2);
}
}
dist_ed=ced*1.075;
dist_ee=cee*1.075;

if((dist_ee==0)&&(c==0))
{
printf("\nA01\n");
c++;
}
if(dist_ee>0)
92

{
if (((dist_ee%20)==0))
{
liga=1;//2
stop();
if (((dist_ee%40)==0) &&(c==1))
{
printf("\nA02\n");
c++;
stop();
}
elseif ((dist_ee>=80)&&(c==2))
{
printf("\nA03\n");
c++;
esquerda();
delay_ms(500);
frente();
liga=2; //2
}
elseif ((dist_ee>=120)&&(c==3))
{
printf("\nB03\n");
c++;
stop();
}
elseif ((dist_ee>=160)&&(c==4))
{
printf("\nC03\n");
c++;
stop();
}
elseif ((dist_ee>=200)&&(c==5))
{
93

printf("\nD03\n");
c++;
esquerda();
delay_ms(550);
frente();
liga=1;
}
elseif ((dist_ee>=240)&&(c==6))
{
printf("\nD02\n");
c++;
stop();
}
elseif ((dist_ee>=280)&&(c==7))
{
printf("\nD01\n");
c++;
direita();
delay_ms(550);
frente();
liga=1;
}
elseif ((dist_ee>=320)&&(c==8))
{
printf("\nE01\n");
c++;
direita();
delay_ms(550);
frente();
liga=1;
}
elseif ((dist_ee>=360)&&(c==9))
{
printf("\nE02\n");
94

c++;
stop();
}
elseif ((dist_ee>=400)&&(c==10))
{
printf("\nE03\n");
c++;
}
elseif ((dist_ee>=440)&&(c==11))
{
printf("\nE04\n");
c++;
direita();
delay_ms(550);
frente();
}
elseif ((dist_ee>=480)&&(c==12))
{
printf("\nD04\n");
c++;
}
elseif ((dist_ee>=520)&&(c==13))
{
printf("\nC04\n");
c++;
stop();
}
elseif ((dist_ee>=560)&&(c==14))
{
printf("\nB04\n");
c++;
stop();
}
elseif ((dist_ee>=600)&&(c==15))
95

{
printf("\nA04\n");
c++;
esquerda();
delay_ms(550);
frente();
}
elseif ((dist_ee>=640)&&(c==16))
{
printf("\nA05\n");
c++;
esquerda();
delay_ms(550);
frente();
}
elseif ((dist_ee>=680)&&(c==17))
{
printf("\nB05\n");
c++;
stop();
}
elseif ((dist_ee>=720)&&(c==18))
{
printf("\nC05\n");
c++;
stop();
}
elseif ((dist_ee>=760)&&(c==19))
{
printf("\nD05\n");
c++;
stop();
}
elseif ((dist_ee>=800)&&(c==20))
96

{
printf("\nE05\n");
c++;
stop();
}
elseif ((dist_ee>=840)&&(c==21))
{
printf("\nF05\n");
c++;
direita();
delay_ms(550);
frente();
}
elseif ((dist_ee>=880)&&(c==22))
{
printf("\nF06\n");
c++;
direita();
delay_ms(550);
frente();
liga=1;
}
elseif ((dist_ee>=920)&&(c==23))
{
printf("\nE06\n");
c++;
stop();
}
elseif ((dist_ee>=960)&&(c==24))
{
printf("\nD06\n");
c++;
stop();
}
97

elseif ((dist_ee>=1000)&&(c==25))
{
printf("\nC06\n");
c++;
stop();
}
elseif ((dist_ee>=1040)&&(c==26))
{
printf("\nB06\n");
c++;
stop();
}
elseif ((dist_ee>=1080)&&(c==27))
{
printf("\nA06\n");
c++;
stop();
liga=0;
}
if (((dist_ee%40)==0)) printf("%c%c\n", n, nn);
}
else liga=2;
}
}
}
}

Biblioteca “Lib_encoder.h” utilizada

#include <16F877A.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
98

#FUSES NOWDT
#FUSES HS
#FUSES PUT
#FUSES NOPROTECT
#FUSES NODEBUG
#FUSES BROWNOUT
#FUSES NOLVP
#FUSES NOCPD
#FUSES NOWRT

#use delay(clock=12000000)
#use i2c(master, sda=pin_C4, scl=pin_C3)
#use rs232(uart1, baud=9600)
#include <HMC5883L.h>
#include lcd_20x04_P2.h

#define enc_d pin_d0


#define enc_e pin_d1
#define led_1 pin_e2
#define led_2 pin_c0
#define Bt_1 pin_d3
#define Bt_2 pin_d2
#define trig_1 pin_e0 // Pino trig do sensor frontal;
#define echo_1 pin_e1 // Pino echo do sensor frontal;
#define trig_2 pin_a4 // Pino trig do sensor esquerdo;
#define echo_2 pin_a5 // Pino echo do sensor esquerdo;
#define trig_3 pin_a2 // Pino trig do sensor direito;
#define echo_3 pin_a3 // Pino echo do sensor direito;
voidpwm()
{
setup_timer_2 (T2_DIV_BY_16, 100, 10);
setup_ccp1 (ccp_pwm); //configura ccp1 modo pwm - PIN_C2
setup_ccp2 (ccp_pwm); //configura ccp2 modo pwm - PIN_C1
99

set_pwm1_duty (0); //zera o ciclo ativo do pwm1 //esquerda min.49


set_pwm2_duty (0); //zera o ciclo ativo do pwm2 //direita min.52
}
voidStop()
{
output_low(PIN_d7);
output_low(PIN_d6);
output_low(PIN_d5);
output_low(PIN_d4);
}
void Frente()
{
output_low(PIN_d7);
output_high(PIN_d6);
output_low(PIN_d5);
output_high(PIN_d4);
}
void Re()
{
output_high(PIN_d7);
output_low(PIN_d6);
output_high(PIN_d5);
output_low(PIN_d4);
}
void Esquerda()
{
output_low(PIN_d7);
output_high(PIN_d6);
output_low(PIN_d5);
output_low(PIN_d4);
}
void Direita()
{
output_low(PIN_d7);
100

output_low(PIN_d6);
output_low(PIN_d5);
output_high(PIN_d4);
}
char n=' ', nn=' ';
int16 norte;
void bussola()
{
if ((norte>=0)&&(norte<23))
{
n=('N');
nn=(' ');
}
elseif ((norte>22)&&(norte<68))
{
n=('N');
nn=('E');
}
elseif ((norte>67)&&(norte<113))
{
n=('L');
nn=(' ');
}
elseif ((norte>112)&&(norte<158))
{
n=('S');
nn=('E');
}
elseif ((norte>157)&&(norte<203))
{
n=('S');
nn=(' ');
}
elseif ((norte>202)&&(norte<248))
101

{
n=('S');
nn=('O');
}
elseif ((norte>247)&&(norte<293))
{
n=('O');
nn=(' ');
}
elseif ((norte>292)&&(norte<338))
{
n=('N');
nn=('O');
}
elseif ((norte>237)&&(norte<=360))
{
n=('N');
nn=(' ');
}
else
{
n=('-');
nn=('-');
}
}

int16 tempo, d_1=0, d_2=0, d_3=0;


voidsonar_frontal()
{
delay_us(10);
output_low(trig_1);
while(!input(echo_1)) {}
tempo=0;
d_1=0;
102

set_timer1(0);
while(input(echo_1)) {}
tempo=get_timer1();
d_1=tempo/24,16666;
}
voidsonar_esquerda()
{
delay_us(10);
output_low(trig_2);
while(!input(echo_2)) {}
tempo=0;
d_2=0;
set_timer1(0);
while(input(echo_2)) {}
tempo=get_timer1();
d_2=tempo/24,16666;
}
voidsonar_direita()
{
delay_us(10);
output_low(trig_3);
while(!input(echo_3)) {}
tempo=0;
d_3=0;
set_timer1(0);
while(input(echo_3)) {}
tempo=get_timer1();
d_3=tempo/24,16666;
}
103

BERMAL, Juliano Piva; SLOMA, Renann Manzoni. Robô móvel com sistema de
localização para ambiente Indoor conhecido. 2015. 104 f. TCC (Graduação) -
Curso de Tecnologia em Mecatrônica Industrial, Faculdade de Tecnologia Tupy -
Unisociesc, Curitiba, 2015.

Você também pode gostar