69
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DIRETORIA DE GRADUAÇÃO E EDUCAÇÃO PROFISSIONAL DEPARTAMENTO ACADÊMICO DE ELETRÔNICA DEPARTAMENTO ACADÊMICO DE INFORMÁTICA CURSO DE BACHARELADO EM ENGENHARIA DA COMPUTAÇÃO BRUNO OENNING FELIPE LISBOA PAULO RENAUX RENAN PAZINI THAINÃ MONTEIRO AUTOMODELO COM SISTEMA PARK ASSIST TRABALHO DE DISCIPLINA OFICINA DE INTEGRAÇÃO 3 CURITIBA 2014

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

Embed Size (px)

Citation preview

Page 1: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DIRETORIA DE GRADUAÇÃO E EDUCAÇÃO PROFISSIONAL

DEPARTAMENTO ACADÊMICO DE ELETRÔNICA DEPARTAMENTO ACADÊMICO DE INFORMÁTICA

CURSO DE BACHARELADO EM ENGENHARIA DA COMPUTAÇÃO

BRUNO OENNING

FELIPE LISBOA

PAULO RENAUX

RENAN PAZINI

THAINÃ MONTEIRO

AUTOMODELO COM SISTEMA PARK ASSIST

TRABALHO DE DISCIPLINA – OFICINA DE INTEGRAÇÃO 3

CURITIBA

2014

Page 2: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

BRUNO OENNING

FELIPE LISBOA

PAULO RENAUX

RENAN PAZINI

THAINÃ MONTEIRO

AUTOMODELO COM SISTEMA PARK ASSIST

Trabalho de Disciplina de Graduação – Oficina

de Integração 3, apresentado ao Curso de

Engenharia de Computação, do Departamento

Acadêmico de Eletrônica e do Departamento

Acadêmico de Informática, da Universidade

Tecnológica Federal do Paraná – UTFPR, como

requisito parcial para obtenção da aprovação na

disciplina.

Professor(es): Guilherme Alceu Schneider

Gustavo Benvenutti Borba

CURITIBA

2014

Page 3: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

RESUMO

OENNING, Bruno; LISBOA, Felipe; RENAUX, Paulo; PAZINI, Renan; MONTEIRO,

Thainã. Automodelo com Park Assist. 2014. - - f. Monografia (Curso de

Engenharia de Computação), Departamento Acadêmico de Eletrônica,

Departamento Acadêmico de Informática, Universidade Tecnológica Federal do

Paraná. Curitiba, 2014.

O recurso de estacionamento automático (conhecido como Park Assist) é pouco

encontrado entre os automodelos da atualidade, sendo restrito a automodelos de

maior custo. Outro recurso também é o sensoriamento de objetos próximos dos

para-choques dianteiros e traseiros. O estacionamento automático real pode ser

implementado de diferentes formas. Baseado no algoritmo de manobra em arco e

utilizando sensores infravermelhos de proximidade, o projeto foi desenvolvido para

mostrar a aplicação do algoritmo em um protótipo desenvolvido pela equipe. A

fundamentação teórica e cada uma das etapas e a implementação serão descritas

neste documento.

Palavras chave: Automodelo. Park Assist. Sensor de Infravermelho. Manobra em

Arco.

Page 4: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

ABSTRACT

OENNING, Bruno; LISBOA, Felipe; RENAUX, Paulo; PAZINI, Renan; MONTEIRO,

Thainã. Automodelo com Park Assist. 2014. - - f. Monografia (Curso de

Engenharia de Computação), Departamento Acadêmico de Eletrônica,

Departamento Acadêmico de Informática, Universidade Tecnológica Federal do

Paraná. Curitiba, 2014.

Automated parking (also known as Park Assist) is a resource rarely found in modern

cars, being restricted to more expensive models. Other resource present in modern

cars is proximity sensing based on the car’s sides and bumpers. Automated parking

can be implemented in different ways on real modern cars. Based on the algorithm

arc maneuver and using infrared proximity sensors, this project was developed to

display the application of this algorithm on a prototype, developed by the team.

Needed theory for developing the project and each of the parts of its implementation

will be described in this document.

Keywords: Model Car. Park Assist. Infrared Sensor. Arc Maneuver.

Page 5: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

LISTA DE FIGURAS

Figura 1: Ponte H ...................................................................................................... 16

Figura 2: Ponte H com o sentido da corrente ............................................................ 17

Figura 3: Tensão em PWM........................................................................................ 18

Figura 4: Chave Ótica ............................................................................................... 18

Figura 5: Trajetória do Park ....................................................................................... 20

Figura 6: Ângulo de direção de geometria ................................................................ 20

Figura 7: Planejamento da trajetória do estacionamento. ......................................... 21

Figura 8: Forma geométrica do triângulo formado na realização da manobra. ......... 21

Figura 9: Plataforma com motores do automodelo. ................................................... 23

Figura 10: Entrada e saída do driver de motores ...................................................... 24

Figura 11: Driver de controle dos motores ................................................................ 25

Figura 12: Encoder .................................................................................................... 26

Figura 13: Circuito para leitura do encoder ............................................................... 26

Figura 14: Disposição dos sensores no automodelo. ................................................ 29

Figura 15: Medições e Distâncias em diferentes ambientes ..................................... 31

Figura 16: Medição Absoluta vs. Distância Real ....................................................... 32

Figura 17: Interface gráfica da estação base ............................................................ 34

Figura 18: Diagrama de estados para detecção de vaga. ........................................ 36

Figura 19: Diagrama de estados para a realização da baliza. .................................. 37

Figura 20: Foto do driver dos motores ...................................................................... 38

Figura 21: Foto do driver de corrente acoplado ao circuito ....................................... 38

Figura 22: Foto dos jumpers utilizados para integrar circuitos .................................. 39

Figura 23: Foto do automodelo com o arduino e os circuitos auxiliares .................... 39

Figura 24: Cenário de Testes .................................................................................... 40

Figura 25: Automodelo com molde em papel fotográfico .......................................... 41

Figura 26:Início da detecção da vaga ....................................................................... 42

Figura 27: Manobra na vaga de 88cm ....................................................................... 42

Figura 28: Fim da manobra ....................................................................................... 43

Figura 29: Automodelo tentando estacionar em vaga menor que o mínimo ............. 43

Figura 30: Automodelo ignora o espaço menor que o mínimo e segue adiante ....... 44

Figura 31: Obstáculo interrompendo a manobra do automodelo .............................. 45

Figura 32: Estacionamento em vaga de 66 cm ......................................................... 45

Figura 33: Demonstração de automodelo estacionando em vaga de 66 cm ............. 46

Figura 34: Localização do Código ............................................................................. 63

Page 6: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

LISTA DE TABELAS

Tabela 1: Terminais destinados a interrupção de cada modelo do Arduino .............. 15

Tabela 3: Comandos e descrição. Fonte: Autoria própria ......................................... 33

Tabela 4: Pinagem Sensores .................................................................................... 65

Tabela 5: Pinagem Motores ...................................................................................... 68

Tabela 6: Pinagem Encoder ...................................................................................... 68

Page 7: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

SUMÁRIO

1. INTRODUÇÃO ........................................................................................... 9

1.1 TEMA ......................................................................................................... 9

1.2 DELIMITAÇÃO DO ESTUDO ................................................................... 11

1.3 PROBLEMA ............................................................................................. 11

1.4 OBJETIVOS ............................................................................................. 12

1.4.1 Objetivo Geral........................................................................................... 12

1.4.2 Objetivos Específicos ............................................................................... 12

1.5 JUSTIFICATIVA ....................................................................................... 12

1.6 PROCEDIMENTOS METODOLÓGICOS ................................................. 13

1.7 EMBASAMENTO TEÓRICO .................................................................... 13

1.8 ESTRUTURA DO TRABALHO ................................................................. 14

2. FUNDAMENTAÇÃO TEÓRICA ............................................................... 15

2.1 ARDUINO ................................................................................................. 15

2.2 PONTE H ................................................................................................. 16

2.3 PWM ......................................................................................................... 17

2.4 CHAVE ÓPTICA ....................................................................................... 18

2.5 SENSOR INFRAVERMELHO .................................................................. 19

2.6 GEOMETRIA DE ACKERMAN ................................................................. 19

2.7 PROCESSING.......................................................................................... 22

2.8 ZIGBEE .................................................................................................... 22

3. DESENVOLVIMENTO DO PROJETO ..................................................... 23

3.1 MOTORES E PLATAFORMA DO AUTOMODELO .................................. 23

3.2 DRIVER DE CONTROLE DOS MOTORES ............................................. 24

3.3 ENCODER ............................................................................................... 25

3.4 MEDIÇÃO DA DISTÂNCIA PERCORRIDA .............................................. 27

3.5 CÁLCULOS PARA O TAMANHO DA VAGA ............................................ 28

3.6 CONSTRUÇÃO DE SENSORES DE INFRAVERMELHO ....................... 29

3.7 ESTAÇÃO BASE ...................................................................................... 33

3.8 COMUNICAÇÃO SEM FIO ...................................................................... 35

3.9 ALGORITMO DE PARK ASSIST .............................................................. 35

4. RESULTADOS ......................................................................................... 38

5. ENSAIO .................................................................................................... 42

6. CONSIDERAÇÕES FINAIS ..................................................................... 47

Page 8: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

7. APÊNDICES............................................................................................. 51

7.1 APÊNDICE A – Cronograma .................................................................... 51

7.2 APÊNDICE B – Riscos ............................................................................. 51

7.3 APÊNDICE C – Entregas ......................................................................... 59

8. ANEXOS .................................................................................................. 62

8.1 ANEXO A – Biblioteca de Motores e Sensores ........................................ 62

Page 9: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

9

1. INTRODUÇÃO

Este capítulo tem como objetivo apresentar o tema e os objetivos do projeto, bem

como as delimitações de estudos e a problemática do sistema Park Assist. O embasamento

teórico para implementação do projeto, os procedimentos metodológicos adotados e a

justificativa, também serão apresentados nas outras seções.

1.1 TEMA

O Park Assist consiste em um sistema para auxiliar os motoristas na manobra de

baliza. Além disso, pode ser considerado um item de segurança pois o sistema é composto

de sensores com um alto grau de precisão (com uma margem de erro não influenciável na

aplicação), podendo evitar acidentes no decorrer da manobra.

Existem diversos algoritmos de Park Assist. Alguns deles utilizando uma abordagem

de controle não linear, contendo metodologias que monitoram o ângulo de direção e a

velocidade. Entretanto devido á complexidade do modelo não linear, essa abordagem para

uma análise simplificada não tem como ser realizada. Outros modelos de controle de Park

Assist se baseiam na trajetória estimada do veículo onde o mesmo estima uma trajetória,

puramente trigonométrica. Essa abordagem, entretanto, é passível de erros devido a não

garantia do comportamento do automodelo durante a manobra. Outros estudos

relacionando essa abordagem visam garantir o controle e estabilidade do veículo na

trajetória, porém as formas de controle aumentam a dificuldade e assemelham a

complexidade do controle não linear. A manobra em Arco é uma metodologia simplificada

do sistema de Park Assist, levando em consideração o ângulo máximo de direção do

veículo, relacionado diretamente com o raio que ele consegue descrever em movimento.

Para a determinação do raio, é utilizado o princípio de direção de Ackerman, o qual

define a relação entre os eixos dianteiros do veículo e o eixo de direção.

A partir do surgimento das primeiras carruagens, que possuíam um eixo dianteiro

móvel a qual determinava a direção que a mesma tomava, alguns problemas de

performance e inconvenientes começaram a surgir. Um destes inconvenientes era o grande

vão livre necessário ao redor das rodas para permitir o seu movimento completo.

Por volta do ano de 1816 George Langensperger estabeleceu as condições

geométricas necessárias para o esterçamento com pivotamento nas rodas. Estas condições

foram de grande serventia por dois grandes motivos. Primeiro, estas condições reduziam o

Page 10: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

10

atrito das rodas em manobras que envolviam baixa velocidade e segundo descreviam arcos

de manobras com pequenos raios.

Devido a grande importância das condições estabelecidas por George, um outro

grande visionário, Rudolph Ackerman, através de um acordo estabelecido com

Langensperger patenteou a ideia. Assim em Londres a partir de 1817 a “geometria de

Ackerman” ficou amplamente conhecida.

A geometria de Ackerman, como ficou conhecida, basicamente consiste num arranjo

geométrico de ligações na direção de um veículo projetado para resolver o problema do

trajeto da roda interior, que é a roda que fica do lado do centro de uma curva, e exterior

sendo necessário traçar circunferências de diferentes diâmetros.

Quando um veículo é manobrado, segue um caminho que é parte de uma

circunferência cujo o centro se encontra na linha que se estende a partir do eixo fixo. Com o

lado exterior da roda à curva a ser percorrida na circunferência é maior que o lado interior.

Considerando assim os dois lados da roda, a geometria de Ackerman realiza a disposição

automaticamente inclinando os pivots de direção para dentro. Este engenho garante que

qualquer que seja o ângulo da direção, as rodas vão traçar circunferências concêntricas e

os torques do sistema de direção tendem a crescer uniformemente com o ângulo de

esterçamento fornecendo assim uma resposta adequada ao motorista.

Basicamente o sistema Park Assist funciona da seguinte forma, o motorista que

deseja estacionar o seu veículo deve localizar uma possível vaga e então passar próximo a

mesma com velocidade reduzida. Essa velocidade é necessária para que os sensores

presente no veículo possam determinar se a vaga é suficiente para o mesmo. Caso o

espaço seja suficiente para realizar a manobra, o sistema Park Assist pode ser ativado para

que a baliza seja realizada de forma automática. [1]

O projeto tem como tema o desenvolvimento de um automodelo em escala reduzida

com sistema de Park Assist, a fim de demonstrar a problemática da baliza automática.

Page 11: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

11

1.2 DELIMITAÇÃO DO ESTUDO

O projeto consiste em um automodelo com sensores de distância infravermelhos, no

qual será implementado o sistema de Park Assist. O algoritmo realiza a manobra de

estacionamento, a partir de uma posição paralela à vaga. Para o chassi especificado (28

cm de comprimento), o comprimento mínimo da vaga é de 88 cm. A teoria e os cálculos

para a obtenção deste valor serão detalhados no trabalho.

Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção

de vaga. Este estágio é responsável por verificar se um determinado espaço paralelo ao

veículo é suficiente para a realização da baliza. Se a suposta vaga possuir o espaço

mínimo para a manobra, o motorista deve então posicionar o automodelo paralelamente a

vaga e acionar o sistema. A partir deste momento, o motorista deve deixar o controle do

veículo e a baliza será realizada de forma automática.

O sistema de Park Assist que será implementado no automodelo possuirá também

um controle detecção de colisão, dianteira e traseira. Esse atuará somente durante a

manobra do Park, ou seja, quando a manobra de baliza automática estiver sendo

executada e caso um obstáculo venha a bloquear a trajetória da manobra, o veículo

imediatamente interrompe a baliza até que não exista mais obstáculo obstruindo a sua

trajetória.

1.3 PROBLEMA

O projeto consiste na implementação do sistema Park Assist em um pequeno

automodelo. Entre os problemas abordados neste projeto podemos citar a construção e a

manipulação de sensores de infravermelho para determinação da vaga, bem como o

algoritmo de Park Assist prevendo supostas colisões e cálculo do espaço da vaga.

Com o desenvolvimento do projeto, a pergunta que se pretende responder é: Existe

a possibilidade de se realizar uma manobra automática em um automodelo, utilizando

sensores de infravermelho e um algoritmo para o Park automático?

A base para o desenvolvimento deste projeto é o estudo dos algoritmos de Park

Assist e as diferentes metodologias para a realização da manobra utilizados atualmente em

veículos automotores, como por exemplo o veículo Tiguan da Volkswagen. [2]

Page 12: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

12

1.4 OBJETIVOS

Nesta seção são apresentados os objetivos geral e específicos do trabalho, relativos

ao problema anteriormente apresentado.

1.4.1 Objetivo Geral

Desenvolver um sistema de Park Assist utilizando sensores infravermelho.

Implementar um controle para evitar colisões utilizando sensores de infravermelho, para uma

melhor viabilidade.

1.4.2 Objetivos Específicos

Construir a placa de controle dos motores do automodelo.

Desenvolver o algoritmo para o controle dos movimentos do automodelo.

Construir sensores de distância utilizando emissores e receptores de Infravermelho.

Desenvolver um controle para leitura dos sensores.

Aplicar um algoritmo para manipulação dos sensores afim de evitar possíveis

colisões.

Desenvolver um algoritmo para realizar a baliza automática.

Implementar um algoritmo para realizar a verificação do espaço onde se pretende

estacionar o automodelo.

Criar uma interface de comunicação sem fio com a estação base para o envio e

recepção de dados.

1.5 JUSTIFICATIVA

O Park Assist surgiu com o intuito de auxiliar os motoristas na execução da baliza.

Para muitos motoristas, o ato de realizar uma baliza é um grande problema que pode

causar prejuízos financeiros e até mesmo graves acidentes. Tendo em vista este grande

desafio, muitas das grandes empresas do ramo automobilístico estão desenvolvendo

tecnologias para o Park Assist, que trazem conforto e segurança aos motoristas.

Page 13: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

13

A justificativa para o desenvolvimento deste projeto é a implementação de uma

plataforma para a análise de algoritmos de Park Assist considerando os sensores de

infravermelho.

1.6 PROCEDIMENTOS METODOLÓGICOS

Adaptação do chassi do automodelo.

Teste dos motores contidos no chassi do automodelo.

Confecção e estudo dos sensores infravermelhos;

Análise da resposta do sensor IR x Distância;

Desenvolvimento e implementação de um encoder para controle da distância

percorrida e da velocidade;

Estudo do Xbee para comunicação sem fio entre o automodelo e a estação base;

Implantação dos sensores de infravermelho ao redor do chassi do automodelo;

Estudo da plataforma Arduino.

Desenvolvimento de um driver para controle de tensão dos motores.

Testes com o automodelo montado para verificação do algoritmo;

Desenvolvimento do software contendo a interface de comunicação Xbee para envio

e recepção dos dados.

1.7 EMBASAMENTO TEÓRICO

Para o desenvolvimento do Park Assist, serão utilizados como referencial teórico

para a geométrica de Ackerman e metodologia de estacionamento os artigos [6], [9], [10] e

[11].

Page 14: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

14

1.8 ESTRUTURA DO TRABALHO

O trabalho terá a seguinte estrutura.

Capítulo 1 - Introdução: Apresentação da problemática do Park Assist: delimitação do

que o projeto abordará e seus objetivos.

Capítulo 2 – Fundamentação teórica: base teórica para o desenvolvimento do projeto.

Capítulo 3 – Desenvolvimento do Projeto: desenvolvimento e análise dos resultados

obtidos com o projeto,

Capítulo 4 – Resultados: exposição dos trabalhos efetuados no projeto e os testes

realizados.

Capítulo 5 – Considerações finais : descrição sobre os objetivos atingidos do trabalho e

referência sobre aprimoramentos do algoritmo e futuras implementações.

Page 15: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

15

2. FUNDAMENTAÇÃO TEÓRICA

2.1 ARDUINO

O Arduino consiste em uma plataforma open source de hardware baseada em um

microcontrolador e em um ambiente de desenvolvimento de software integrado a qual

possui portas analógicas, digitais e entradas RX e TX para comunicação serial. A

plataforma possui alguns comandos para controle de hardware presente no mesmo, entre

eles estão o PinMode, DigitalWrite, DigitalRead e AttachInterrupt.

O PinMode tem como objetivo basicamente declarar um terminal (conexão de

hardware) como entrada ou saída. O comando DigitalWrite determina o nível lógico de um

terminal, HIGH para o nível alto e LOW para o nível baixo. Já o comando DigitalRead

possui a função de realizar a leitura dos niveis lógicos HIGH e LOW. Para interrupções de

hardware a plataforma oferece o comando AttachInterrupt que desvia o fluxo de

processamento principal para uma rotina de tratamento de interrupção, ou seja, quando

acontece um evento externo uma interrupção é disparada e um código para tratar essa

interrupção é executado. A Tabela 1 apresenta os terminais destinados à interrupção para

cada modelo do arduino.

Tabela 1: Terminais destinados a interrupção de cada modelo do Arduino

Board Int

0

Int

1

Int

2

Int

3

Int

4

Int

5

Uno 2 3

Ethernet

Mega2560 2 3 21 20 19 18

Leonardo 3 2 0 1 7

Due

Page 16: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

16

2.2 PONTE H

A ponte H, como é comumente conhecida, é um circuito eletrônico que permite o

acionamento de motores elétricos de corrente contínua com diferentes tensões e sentidos

de rotação. É composta basicamente de quatro “chaves” de comutação com o formato de

um H como pode ser observado na Figura 1.

Figura 1: Ponte H, fonte:McManis [12]

Na ponte as chaves são acionadas em pares. O acionamento deve ser feito de forma

que as chaves do mesmo lado da ponte não sejam acionadas ao mesmo tempo, o que

causaria um curto circuito. O objetivo da ponte H é tornar possível o movimento do motor no

sentido-horário e no sentido anti-horário. Quando os interruptores High Side left e Low Side

right estão ligados e os outros desligados a corrente terá o sentido do terminal positivo para

o negativo, fazendo o motor girar no sentido horário como mostra a Figura 2 com o sentido

da corrente na cor verde.

Page 17: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

17

Figura 2: Ponte H com o sentido da corrente em verde quando os terminais High Side Left e Low Side Right estão conectados, fonte: McManis [12]

No caso em que as chaves “High side right” e “Low Side left” estão ligadas e as

outras duas desligadas o motor possuirá rotação no sentido anti-horário.

Existem diversos componentes que podem ser utilizados como “chaves” dessa

ponte, entre eles estão relés e transistores.

2.3 PWM

O Pulse-width modulation (PWM), em português modulação por largura de pulso,

consiste na modulação de um sinal através da largura do pulso do sinal, ou seja, os pulsos

possuem tamanho variável, como podemos observar na Figura 3 onde o PWM é

representado em azul e a tensão alternada correspondente a esse PWM é apresentada em

vermelho.

.

Page 18: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

18

Figura 3: Tensão em PWM em azul e tensão em corrente alternada em vermelho, fonte: [7]

Esta técnica é utilizada para acionamento de motores elétricos, pois o torque é

mantido em baixas velocidades.

2.4 CHAVE ÓPTICA

A chave óptica consiste em um componente constituído por um emissor e um

detector de raios infravermelho. Quando um feixe de infravermelho é emitido do emissor

para o receptor e não há nada interrompendo o fluxo, a tensão de saída de uma chave

óptica é igual ao nível lógico HIGH. Já quando existe um obstáculo obstruindo o feixe do

raio infravermelho a tensão de saída da chave é igual ao nível lógico LOW.[13]

Figura 4: Chave Ótica

Page 19: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

19

2.5 SENSOR INFRAVERMELHO

Sensores infravermelhos se utilizam da intensidade de luz infravermelha no ambiente

para a detecção de distância. Um emissor é responsável por enviar um sinal infravermelho

até o obstáculo, e um receptor deve receber a luz infravermelha refletida através do

obstáculo. A variação dos raios infravermelhos recebidos pelo receptor geram uma variação

de tensão no mesmo. [15]

2.6 GEOMETRIA DE ACKERMAN

A geometria de Ackerman [8], como ficou conhecida, consiste num arranjo

geométrico de ligações na direção de um veículo projetado para resolver o problema do

trajeto da roda interior, que é a roda que fica do lado do centro de uma curva e exterior

sendo necessário traçar circunferências de diferentes diâmetros.

Quando um veículo é manobrado, o mesmo segue um caminho que é parte de uma

circunferência cujo o centro se encontra na linha que se estende a partir do eixo fixo. Com o

lado exterior da roda à curva a ser percorrida na circunferência é maior que o lado interior.

Considerando assim os dois lados da roda, a geometria de Ackerman realiza a disposição

automaticamente inclinando os pivôs de direção para dentro. Este engenho garante que

qualquer que seja o ângulo da direção, as rodas vão traçar circunferências concêntricas e

os torques do sistema de direção tendem a crescer uniformemente com o ângulo de

esterçamento, fornecendo assim uma resposta adequada ao motorista.

Com base nestes estudos e cálculos determinados por Ackerman é possível

determinar o tamanho mínimo necessário para estacionar um veículo.

Basicamente pode-se dividir a manobra em três etapas: A primeira consiste no

alinhamento paralelo do automodelo com o veículo da frente, que corresponde a trajetória

do ponto ‘N’ ao ponto ‘P’ como mostra a Figura 5.

A segunda e a terceira etapa são de fato as etapas consideradas automáticas do

Park Assist e correspondem as etapas do ponto ‘P’ ao ponto ‘O’ e do ponto ‘O ao ponto ‘Q’

da Figura 5.

Page 20: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

20

Figura 5: Trajetória do Park. Fonte [8]

Para os cálculos algumas definições são necessárias, onde :

d : distância entre os pontos de contato da roda traseira

l : comprimento entre parte dianteira e traseira do automodelo

ei1 : ângulo interior da roda da frente

ei2 : ângulo externo da roda da frente

RS1 : raio do 1º ângulo de direção de curvatura

S2 : raio do 2º ângulo de direção de curvatura

do : largura do automodelo

Figura 6: Ângulo de direção de geometria. Fonte: [8]

Os ângulos de direção de curvatura do automodelo como apresentados na figura 6,

podem ser definidos através da seguinte formula:

(1)

Page 21: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

21

Figura 7: Planejamento da trajetória do estacionamento. Fonte [8]

A Figura 7 apresenta o planejamento da trajetória do estacionamento, onde se tem

uma forma geométrica de um triângulo que é apresentado na com maior enfoque.

Figura 8: Forma geométrica do triângulo formado na realização da manobra. Fonte: Autoria própria

Considerando o Teorema de Pitágoras o qual relaciona que o quadrado do

comprimento da hipotenusa é igual à soma dos quadrados dos comprimentos dos catetos,

temos para o cálculo da vaga a seguinte relação:

Page 22: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

22

(2)

Os ângulos α e β podem ser determinados através das seguintes expressões:

(3)

(4)

Os comprimentos dos arcos ‘PO’, que corresponde a distância do ponto P até o

ponto O e do arco ‘QO’ que corresponde a distância do ponto Q até o ponto O da Figura 6 e

podem ser determinados através das seguintes expressões:

(5)

(6)

2.7 PROCESSING

O processing é uma linguagem de programação baseada em Java e ambiente de

programação, utilizada amplamente por estudantes. A linguagem oferece integração com

Arduino e permite criações gráficas de forma rápida e simplificada. Com esta linguagem de

programação e ambiente de desenvolvimento, a programação torna-se mais simples para

comunicar com porta serial por já possuir bibliotecas nativas para tal uso. [14]

2.8 ZIGBEE

Protocolos de comunicação sem fio vêm sendo utilizados em larga escala em

sistemas embarcados. Entre esses protocolos esta o ZigBeee, que possui um baixo

consumo de energia e uma infraestrutura simples de rede. Além disso o ZigBee transmite

por uma frequência de 2,4 GHz e um alcance aproximado entre 10 a 100 metros.

Existem basicamente dois modos de operação, o modo API e o modo Transparente.

O modo Transparente funciona de forma que todos os pontos possam receber dados.[18]

Page 23: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

23

3. DESENVOLVIMENTO DO PROJETO

3.1 MOTORES E PLATAFORMA DO AUTOMODELO

Para o desenvolvimento do automodelo são necessários motores para a

movimentação e uma plataforma para servir como base para a eletrônica embarcada e os

motores. Os motores e a plataforma do automodelo foram obtidos através de um carrinho

de brinquedo de controle remoto, do qual foi retirada a parte eletrônica de controle dos

motores e comunicação. Na Figura 9 é apresentada a plataforma do automodelo com os

motores.

Figura 9: Plataforma com motores do automodelo. Fonte: Autoria própria

O automodelo é composto por dois motores de corrente contínua com escovas,

sendo um dianteiro e um traseiro. O motor dianteiro tem como objetivo controlar o ângulo

de movimentação do automodelo, ou seja, é responsável pela direção. Já o motor traseiro é

responsável pela tração do automodelo.

A plataforma do automodelo como observado na Figura 9 é composta basicamente

de plástico.

Page 24: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

24

3.2 DRIVER DE CONTROLE DOS MOTORES

O driver de controle de tensão nos motores tem como objetivo controlar o motor de

forma a rotacionar no sentido horário e anti-horário. Outra funcionalidade do driver é variar

a velocidade dos motores mantendo o torque. Para isso o driver deve receber uma tensão

em PWM apresentada na seção 2.3 e fornecer uma tensão correspondente para os

motores, como é apresentado na Figura 10.

Figura 10: Entrada e saída do driver de motores. Fonte: Autoria própria

Para a construção do driver foram utilizados os circuitos integrados L298[18] e

4N25[17]. Os datasheets dos mesmos podem ser encontrados na seção de anexos. O

circuito integrado L298 [18] consiste em um circuito com duas pontes H, conforme

apresentada na seção 2.2. Esse circuito integrado exerce a função do driver para controle

dos motores, ou seja, recebe uma tensão modulada em PWM e fornece uma devida tensão

para o motor. Já o circuito 4N25 [17] é um circuito optoacoplador, que tem como objetivo

desacoplar eletricamente o circuito dos motores do gerador de PWM. Caso não se utilize

está técnica pode ocorrer de o gerador de PWM funcionar de maneira incorreta, devido ao

ruído gerado pelos motores. Na Figura 11 é exibido o circuito completo do driver.

Page 25: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

25

Figura 11: Driver de controle dos motores Fonte: autoria própria.

3.3 ENCODER

O sistema de Park Assist necessita de um sistema para medir a distância

percorrida, pois no sistema é necessário verificar se a vaga possui tamanho suficiente para

realização da manobra. Um dos componentes necessários para medir a distância

percorrida é o encoder, que foi desenvolvido com 8 furos como apresentado na Figura 12.

Page 26: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

26

Figura 12: Encoder. Fonte: Autoria própria

Para a leitura do encoder foi acoplada uma chave ótica apresentada na seção

2.4, que quando posicionada na direção de um dos furos do encoder, ou seja, não está

interrompida, a tensão de saída é próxima de 0V e quando interrompido, não está na

direção de nenhum dos furos do encoder a tensão de saída é próxima a 5V. O circuito

integrado C860NP[18] juntamente com um resistor pode ser utilizado para realizar essa

função.

A saída de tensão possui algumas variações, ou seja, não possui dois valores de

tensão constante para a chave ótica interrompida e não interrompida. Para resolver pode-se

adicionar o circuito integrado LS7404 [19] que é uma porta lógica NOT, com isso o circuito

de leitura do encoder possui somente duas tensões de saída 0V e 5V. Na Figura 13 é

apresentado o circuito para a leitura do encoder na qual a saída da leitura está conectada

ao Arduino.

Figura 13: Circuito para leitura do encoder. Fonte: Autoria própria

Page 27: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

27

3.4 MEDIÇÃO DA DISTÂNCIA PERCORRIDA

Para a medição da distância percorrida é necessária à utilização de um encoder e

um leitor de encoder apresentados na seção 3.3. Além disso, utilizamos o Arduino

apresentado na seção 2.1. O microcontrolador possui portas para tratamento de

interrupção, ou seja, quando acontecer uma interrupção na porta o processador executa um

código a fim de tratar a interrupção. A distância percorrida é calculada com o auxilio de um

contador que é incrementado quando existe uma interrupção na chave ótica causada pelo

encoder. A função de interrupção utilizada incrementa o contador somente quando há uma

transição de LOW para HIGH. A distância é dada pela formula abaixo:

( 7 )

onde:

r : raio da roda em cm;

n : número de interrupções;

π : 3,14

d : distância percorrida em cm;

No projeto o raio da roda é de 2,5 cm. Assim temos a seguinte equação abaixo

(8)

Substituindo os valores, chegamos a seguinte expressão:

(9)

Page 28: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

28

3.5 CÁLCULOS PARA O TAMANHO DA VAGA

O cálculo do tamanho da vaga foi realizado utilizando como parâmetro os conceitos

apresentados na seção 2.6 referentes à geometria de Ackerman.

Para os cálculos, primeiramente os seguintes parâmetros foram aferidos:

ei1 = 19,1º

ei2 = 21,5º

l = 17,51cm

d = 8,01 cm

Através das formulas de (5) e (6) e os parâmetros definidos acima, os seguintes

cálculos foram realizados:

(7)

RS1 = 54,57

(8)

RS2 = 48,45

Considerando a equação (2) temos que:

AC = 103,02

Utilizando a equação (3) temos:

= 58,01º (9)

e assim:

β = 58,01º

Page 29: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

29

Levando em conta a relação do Teorema de Pitágoras relatada na equação (2)

temos que:

(10)

e, portanto o tamanho da vaga calculado para o projeto é de:

3.6 CONSTRUÇÃO DE SENSORES DE INFRAVERMELHO

Os sensores de infravermelho no projeto tem como objetivos a medição do tamanho

da vaga, com o auxílio do encoder, e a detecção de colisão dianteira e traseira. Para a

medição do tamanho da vaga foram utilizados dois sensores laterais e para a detecção de

colisão um sensor dianteiro e um traseiro. A Figura 14 apresenta a disposição dos sensores

no automodelo.

Figura 14: Disposição dos sensores no automodelo. Fonte: Autoria própria

O desenvolvimento dos sensores de infravermelhos foram realizados pela equipe

através de um emissor IR e um receptor IR acoplados um ao lado do outro. O receptor por

sua vez foi protegido em sua base com uma capa preta para evitar a recepção de sinais

emitidos diretamente pelo emissor. O princípio de funcionamento do conjunto é baseado na

Page 30: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

30

reflexão da luz infravermelha no obstáculo e a captação alguns milissegundos após pelo

emissor.

Para a medição dos sensores de infravermelho foi desenvolvido um algoritmo

descrito no pseudo código no Quadro 1. O tempo de espera entre emissão e leitura foi

calculado baseado na velocidade da luz que é 299792458 m/s. Ou seja, em 1 milisegundo

de espera a luz poderia ser refletida a 149896 metros. Isso nos garante que a luz foi

refletida já que os sensores são utilizados para um obstáculo a no máximo 10 cm de

distância.

Desliga emissor

Aguarda 1 ms

Lê o Infra Vermelho ambiente

Liga o Emissor

Aguarda 1 ms para reflexão

Le o Infra Vermelho no sensor

Valor lido = IR sensor - IR ambiente

Quadro 1: Pseudo código para leitura dos sensores de infravermelho

Os sensores desenvolvidos apresentaram uma particularidade, reagiam de forma

diferente para ambientes com intensidades de iluminação diferentes. Portanto foi

necessário desenvolver um algoritmo de calibragem dos sensores.

Antes disso efetuou-se medições de cada um dos 4 sensores iR em ambientes

diferentes. Alguns resultados podem ser vistos nos gráficos da Figura 15.

Page 31: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

31

Figura 15: Medições e Distâncias em diferentes ambientes

Page 32: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

32

Percebeu-se que cada sensor, mesmo que em condições diferentes de iluminação

ambiente apresentavam uma curva de resposta semelhante, que só diferiam em alguns

pontos.

Com base nisso e nos gráficos levantados utilizou-se regressão lagrangiana para encontrar

uma fórmula matemática para a curva. Como o algoritmo de lagrange fornecia uma função

de segundo grau a resposta era negativa em alguns trechos, o que não é aceitável.

O resultado utilizando o algoritmo de lagrange pode ser visto no gráfico da figura

Figura 16.

Figura 16: Medição Absoluta vs. Distância Real

Efetuando-se uma nova análise dos gráficos percebeu-se que seria possível supor

um comportamento linear para os sensores em 2 trechos sem grandes perdas de precisão.

De 10 cm a 4cm e de 4.01 cm a 1 cm. Ainda percebeu-se que a medição referente a 1 cm

era a que mais variava e as outras até 4.01 cm estavam atreladas a ela. Com essa última

observação foi possível desenvolver um algoritmo de calibração que leva em conta o valor

medido de um obstáculo a 1 cm do sensor para criar a função matemática que descreve o

sensor. Assim cada sensor ao longo do uso do automodelo, após a calibração, possui uma

função matemática que o descreve gerada a partir de interpolação linear de 3 pontos fixos e

1 ponto inserido com a calibragem.

O algoritmo de calibração executado no reset do micro controlador em pseudo

código.

Page 33: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

33

1 BEEP para calibração For sensores Do BEEP número de vezes referente ao sensor Enquanto (Valor sensor < 100) // sem obstáculo a 1 cm Salva valor para 1cm BEEP de confirmação Próximo sensor

BEEP longo de fim de calibração

E pseudo código de conversão de valores medidos

Faz a medição absoluta Efetua a interpolação linear com o valor calibrado Retorna o valor em cm

3.7 ESTAÇÃO BASE

A estação base tem como função no projeto o envio dos comandos de

movimentação do automodelo em modo livre (sistemas de Park Assist e detecção de vagas

desligados) e comandos para iniciar a detecção de vagas e a baliza. Na Tabela 2 são

apresentados os comandos implementados pela estação base.

Tabela 2: Comandos e descrição. Fonte: Autoria própria

Comando Descrição Comando

F1, F2 ou F3 Mover para frente com potência 1, 2

ou 3

T1, T2 ou T3 Mover para trás com potência 1, 2

ou 3

D ou E Girar rodas dianteiras para a direita

ou esquerda

FD e FE Mover para frente e para a direita ou

mover para frente e esquerda,

Page 34: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

34

respectivamente

TD e TE mover para trás e para a direita ou

mover para trás e esquerda

P iniciar algoritmo de estacionamento

S parar movimentação

Para o desenvolvimento da estação base foi utilizada a linguagem de programação

Processing. A interface gráfica implementada pode ser visualizada na Figura 17 onde são

apresentadas as leituras de sensores e as instruções para a operação da mesma.

Figura 17: Interface gráfica da estação base. Fonte: Autoria própria

Page 35: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

35

3.8 COMUNICAÇÃO SEM FIO

Para o desenvolvimento da comunicação sem fio utilizou-se o protocolo ZigBee

apresentado na seção 2.8 implementado no Xbee. O modo utilizado para comunicação

Xbee foi o modo transparente, pois o já havia sido desenvolvida uma comunicação serial

com a estação base o que facilitou o acoplamento do mesmo. O padrão de dados a enviar

para comunicação seguiu o padrão apresentada na Tabela 2 da seção 3.7.

3.9 ALGORITMO DE PARK ASSIST

O algoritmo de Park Assist foi segmentado em duas partes, uma parte para a

detecção de vaga e outra para realizar a manobra. A parte de detecção de vagas

basicamente utiliza da técnica da medição de distância percorrida apresentada na seção

3.4 e da leitura de sensores exibida na seção 3.6. A Figura 19 exibe o diagrama de estados

para essa detecção.

Page 36: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

36

Figura 18: Diagrama de estados para detecção de vaga. Fonte: Autoria própria

O algoritmo de detecção de vagas portanto realiza a leitura dos sensores laterais e

caso estejam livres é iniciada a contagem do tamanho da vaga. Se os sensores

continuarem livres até o tamanho estipulado da vaga, que é 88 cm ,o automodelo envia

para a estação base uma mensagem notificando uma mensagem que o a manobra de

baliza pode ser iniciada.

A manobra de estacionamento para ser realizada deve respeitar as seguintes proposições:

O automodelo deve estar paralelo com a vaga

O automodelo deve estar a uma distância lateral fixa, pois o método funcionará de

acordo com os cálculos do raio do veículo.

Page 37: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

37

A Figura 19 apresenta o diagrama de estados para a realização da baliza.

Figura 19: Diagrama de estados para a realização da baliza.Fonte: Autoria própria

A baliza é realizada utilizando os conceitos apresentados na seção 2.6.

Com objetivo de explorar o tema foi realizada uma segunda modelagem para

realização da manobra da baliza. A segunda implementação leva em consideração a leitura

de sensor lateral para determinar quando trocar o ângulo da direção. Esse método

entretanto exige uma calibração fina dos sensores, influenciando a qualidade da manobra.

Page 38: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

38

4. RESULTADOS

O início do projeto após a adequação do chassi foi a confecção da placa contendo o

driver dos motores, na qual foi montada a ponte H e as conexões do encoder.

Figura 20: Foto do driver dos motores

Devido as restrições de corrente do Arduino, foi necessário a utilização de um driver

de corrente, escolhido o LM2803 [21], com a funcionalidadede de melhorar a potência dos

sensores IR,

Figura 21: Foto do driver de corrente acoplado ao circuito

Page 39: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

39

Inicialmente os cabos utilizados para as conexões dos sensores foram montados a

partir de cabos de rede, porém por serem rígidos, os problemas de mal contato se tornaram

constantes. Para solucionar o problema, foram confeccionados kits de cabos flexíveis,

resolvendo praticamente todas as questões de mal contato do projeto.

Figura 22: Foto dos jumpers utilizados para integrar circuitos

Para melhor fixação do Arduino, o chassi foi perfurado para permitir a inserção de

parafusos, os quais foram posicionados no local dos furos que o próprio Arduino possui.

Isso garantiu a melhor estabilidade da placa.

Figura 23: Foto do automodelo com o arduino e os circuitos auxiliares

Page 40: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

40

Para a realização do ensaio do projeto, foi criado um cenário de testes, com as

superfícies brancas especificadas nas restrições e modularizado, permitindo o ajuste do

espaço da vaga em cada teste.

Figura 24: Cenário de Testes

Page 41: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

41

Por fim foi customizada a parte externa do automodelo, através de um molde

impresso em papel fotográfico e estruturado para ficar mais rígido e permitir a fixação no

carrinho.

Figura 25: Automodelo com molde em papel fotográfico

Page 42: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

42

5. ENSAIO

De acordo com a delimitação, o teste inicial de manobra fez uso do sistema de

detecção da vaga dentro do espaço ensaiado de 88cm.

Figura 26:Início da detecção da vaga

Figura 27: Manobra na vaga de 88cm

Page 43: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

43

Figura 28: Fim da manobra

Outro teste realizado também foi o para verificar se o automodelo realmente é capaz

de detectar uma vaga. Nesse caso foi ajustado o cenário para um tamanho inferior ao

mínimo da vaga.

Figura 29: Automodelo tentando estacionar em vaga menor que o mínimo

Page 44: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

44

Figura 30: Automodelo ignora o espaço menor que o mínimo e segue adiante

Nesse caso o automodelo não sinalizou que existe uma vaga válida e por isso o

sistema tenta novamente localizar uma vaga.

O outro teste também envolve as leituras dos sensores dianteiro e traseiros, para

evitar uma colisão durante a manobra do Parking.

A partir do instante que o sensor localiza um objeto a frente muito próximo, o carrinho

interrompe a manobra e aguarda até a remoção do obstáculo para poder continuar a

manobra, isso tanto para o sensor dianteiro quanto o traseiro.

Page 45: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

45

Figura 31: Obstáculo interrompendo a manobra do automodelo

O último teste teve como objetivo verificar o tamanho mínimo o qual o automodelo é

capaz de estacionar, usando somente a função Park Assist, sem verificar o tamanho da

vaga. O tamanho mínimo da vaga alcançado foi de 66cm.

Figura 32: Estacionamento em vaga de 66 cm

Page 46: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

46

Figura 33: Demonstração de automodelo estacionando em vaga de 66 cm

Ao realizarmos algumas melhorias no eixo dianteiro do automodelo, de forma que o

ângulo de curvatura interior e exterior referente a roda fossem maiores, conseguimos uma

redução no tamanho da vaga. Estes ângulos estão diretamente envolvidos nos cálculos

seguindo a geometria de Ackerman.

Os novos ângulos interior e exterior do automodelo passaram a ser de:

ei1 = 30,1º

ei2 = 35,5º

Realizando novamente os cálculos através das formulas (5), (6), (9) e (10),

chegamos a um novo tamanho mínimo para a vaga correspondente a:

Page 47: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

47

6. CONSIDERAÇÕES FINAIS

Para desenvolvimento de um sistema de park assist a equipe entrou em contato com

diversas áreas e aplicou o conhecimento da maior parte das disciplinas cursadas. A equipe

como um todo se envolveu no projeto nas áreas de planejamento, software, hardware,

testes e apresentação do produto desenvolvido.

Partiu-se do princípio de modelos pré-existentes no mercado automobilistico e a

equipe pode aprofundar seus conhecimentos através de uma ampla pesquisa da biografia

que seria utilizada para embasamento do desenvolvimento do projeto. Nesse momento a

equipe foi surpreendida por estudos realizados sobre parking de veículos no ano de 1816

que já previam manobras para estacionar carroças o qual a equipe baseou grande parte do

algoritmo desenvolvido nesse trabalho.

A pesquisa assim como a implementação do projeto proveu valiosos conhecimentos

principalmente na área de sensoriamento ao passo que a equipe desenvolveu um sistema

completo de sensoriamento, desde a implementação eletrônica do sistema, a montagem e a

solda dos componentes do sensor, o encapsulamento do sistema, o desenvolvimento de

um driver para utilização do sistema e sua integração com o software embarcado.

O tempo foi um grande fator limitante para a equipe já que o semestre letivo possuí

somente 4 meses. Mesmo assim a equipe pode contornar o fato utilizando seu período de

recesso para o desenvolvimento bem como um bom planejamento e as escolhas certas do

que seria implementado.

A aplicação do algoritmo baseado na trajetória em arco, de acordo com a geometria

do automodelo foi a fundamentação da proposição simplificada para a problemática do Park

Assist. A Partir dos calculos e dos testes com o automodelo ficou claro a equipe que a

escolha de tal metodologia para ser seguida se mostrou bastante eficiente, visto que

encima das delimitações do projeto, os nossos objetivos foram alcançados.

Assim que os objetivos do projeto foram alcaçados uma das medidas para

otimização do projeto adotada pela equipe foi a de melhorar os angulos de inclinação das

rodas dianteiras do automodelo. Com esta melhoria podemos perceber um ganho

Page 48: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

48

significativo na redução do tamanho da vaga, que chegou a ser 20% menor que o

tamanho especificado no início do projeto.

O aprimoramento do sistema incluindo a função de alinhamento do veículo, e

otimização do espaço para manobra trariam melhorias substanciais ao projeto, visto que

assim o automodelo em questão se tornaria bem mais robusto. A substituição dos sensores

por uma câmera traria uma melhor precisão na detecção de obstáculos e determinação do

espaço para a manobra da baliza. Porem por questões de prazo e delimitações da

disciplina, tais melhorias não puderam ser implementadas.

A plataforma Arduino é um incrível meio para desenvolvimento devido a sua

acessibilidade em custo e facilidade para diversas implementações. Tal plataforma

escolhida pelo grupo atendeu todas as expectativas com relação a processamento de

código e envio e recepção dos dados.

A linguagem Processing utilizada pela equipe para realizar a recepção dos dados

bem como o envio do feedback ao automodelo, foi considerada ótima pela equipe visto que

a mesma é bastante simples de se programar e atendia as necessidades da equipe. Vale

ressaltar aqui, que a partir deste projeto todos os membros da equipe adquiriram um novo

conhecimento sobre esta linguagem que é o Processing.

Com relação a estrutura fisíca do automodelo, foi necessário ser feito uma adaptação

na estrutura física externa do automodelo, para que o mesmo pudesse vir a comportar os

novos componentes que nele foram agregados. Tais modificações tiveram que ser bastante

cautelosas, visto que não poderíamos agregar muito peso ao automodelo. Sendo assim

materiais como os utilizados para a fixação dos sensores bem como os próprios fios

utilizados foram selecionados visando agregar um menor peso ao automodelo.

Por fim a equipe pode concluir o trabalho tendo adaptado um carrinho de controle

remoto tradicional, construído um sistema de sensoriamento, desenvolvido um sistema

embarcado de park assist com controle sem fio e um software para controle e

acompanhamento do veículo. Os objetivos foram compridos de acordo com o planejado e o

projeto poderá servir de base para novas equipes que desejem trabalhar com sistemas de

auxílio a estacionamento como também sistemas que utilizem sensoriamento infravermelho.

Page 49: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

49

7. BIBLIOGRAFIA

[1] A. GUPTA e R. DIVEKAR, “Autonomous Parallel Parking Methodology for Ackerman

Configured Vehicles,” Department of Electronics and Telecomunication, p. 6, 2011.

[2] Volkswagen, Volkswagen, [Online]. Disponível em:

http://www.volkswagen.co.uk/technology/parking-and-manoeuvring/park-assist. [Acesso

em 19 Agosto 2014].

[3] “Introduction,” [Online]. Disponível em: http://arduino.cc/Guide/Introduction. [Acesso em

19 Agosto 2014].

[4] “Pulse Width Modulation,” [Online]. Disponível em: en.wikipedia.org/wiki/Pulse-width-

modulation. [Acesso em 19 Agosto 2014].

[5] P. L. Candido, “GT Zero,” 05 Maio 2014. [Online]. Disponível em:

http://gtzero.com.br/park-assist/. [Acesso em 19 Agosto 2014].

[11] H. Park, S. BAEK e S. LEE, “IR Sensor Array for a Mobile Robot,” International

Conference on Advanced Inteligent Mechatronics, p. 6, 2005.

[12] C. McMANIS, “H-Bridges: Theory and Practice,” 23 Dezembro 2006. [Online]. Disponível

em: http://www.mcmanis.com/chuck/Robotics/tutorial/h-bridge/. [Acesso em 19 Agosto

2014].

[13] “Chave Óptica,” [Online]. Disponível em: http://www.labdegaragem.org/loja/photo-

sensor.html.

[14] “Processing.org,” [Online]. Disponível em: https://www.processing.org/.

[15] “Sensor de Infravermelho,” [Online]. Disponível em: http://robolivre.org/conteudo/sensor-

de-infravermelho. [Acesso em 19 Agosto 2014].

[16] “ZigBee,” [Online]. Disponível em: http://www.rogercom.com. [Acesso em 20 Janeiro

2012].

[17] “4N25, 4N26, 4N27, 4N28” [Online] Disponível em:

http://www.vishay.com/docs/83725/4n25.pdf [Acesso em 28 Agosto 2014]

[18] "C860NP Chave Ótica Interruptiva sem abas"

http://www.cromatek.com.br/pdf/opto/C860NP.pdf [Acesso em 28 de Agosto de 2014]

[19] "DUAL FULL-BRIDGE DRIVER"

https://www.sparkfun.com/datasheets/Robotics/L298_H_Bridge.pdf [Acesso em 28 de Agosto de

2014]

Page 50: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

50

[20] "HEX INVERTER SN54/74LS04"

http://pdf.datasheetcatalog.com/datasheet/motorola/SN54LS04.pdf [Acesso em 28 de Agosto de

2014]

[21] "ULN2803A Darlington Transistor Arrays" http://www.ti.com/lit/ds/symlink/uln2803a.pdf

[Acesso em 28 de Agosto de 2014]

Page 51: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

51

7. APÊNDICES

7.1 APÊNDICE A – Cronograma

7.2 APÊNDICE B – Riscos

Projeto: Carrinho de Controle Remoto com Sistema Park Assist

1º Etapa: Identificação do Risco

Denominação do Risco: chassi do carrinho No da Identificação:

01

Descrição do Risco: chassi base do carrinho de controle remoto

2º Etapa: Avaliação do Risco

Impacto: Alto: ( ) Médio/Alto: () Médio: (x) Médio/Baixo: ( ) Baixo: ( )

Explique: probabilidade de quebra durante o manuseio incorreto

Page 52: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

52

Probabilidade: Alto: ( ) Médio/Alto: () Médio: ( ) Médio/Baixo: ( ) Baixo: ( x )

Explique: chassi significativamente reforçado, ao menos que haja quedas excessivas

dele.

3º Etapa: Resposta ao Risco

Estratégias e Ações: necessidade de substituição da base

Impacto Reavaliado: remontagem das

estruturas de controle

Probabilidade Reavaliada: rápida

substituição

Elaborado por: Felipe Lisboa Data: 07/05/2014

1º Etapa: Identificação do Risco

Denominação do Risco: motores DC do carrinho No da Identificação:

02

Descrição do Risco: danificação dos motores

2º Etapa: Avaliação do Risco

Impacto: Alto: ( ) Médio/Alto: ( ) Médio: ( x ) Médio/Baixo: ( ) Baixo: ()

Explique: probabilidade de queima caso haja uma sobretensão nos motores

Probabilidade: Alto: ( ) Médio/Alto: () Médio: ( ) Médio/Baixo: ( ) Baixo: ( x )

Explique: manuseio incorreto no motor dianteiro poderá expor ele a tensões acima da

aceitável.

Page 53: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

53

3º Etapa: Resposta ao Risco

Estratégias e Ações: necessidade de substituição dos motores

Impacto Reavaliado: remontagem das

estruturas de controle

Probabilidade Reavaliada: depende do

encaixe do motor, caso não seja igual ao

modelo anterior.

Elaborado por: Felipe Lisboa Data: 07/05/2014

Page 54: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

54

1º Etapa: Identificação do Risco

Denominação do Risco: manuseio do Arduino No da Identificação:

03

Descrição do Risco: manuseio da placa, alimentação, entradas e saídas.

2º Etapa: Avaliação do Risco

Impacto: Alto: ( ) Médio/Alto: (x) Médio: ( ) Médio/Baixo: ( ) Baixo: ()

Explique: probabilidade de queima ou dano a placa com o microcontrolador

Probabilidade: Alto: ( ) Médio/Alto: () Médio: ( ) Médio/Baixo: ( ) Baixo: ( x )

Explique: programação de pinagem incorreta ou ligação incorreta nos pinos da placa

3º Etapa: Resposta ao Risco

Estratégias e Ações: Necessidade de substituição da placa

Impacto Reavaliado: religamento dos

componentes a placa

Probabilidade Reavaliada: rápida

substituição, visto que os componentes

estão encaixados nela

Elaborado por: Felipe Lisboa Data: 07/05/2014

Page 55: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

55

1º Etapa: Identificação do Risco

Denominação do Risco: manuseio da placa de controle

dos motores

No da Identificação:

04

Descrição do Risco: manuseio incorreto da placa confeccionada para controle dos

motores

2º Etapa: Avaliação do Risco

Impacto: Alto: ( ) Médio/Alto: () Médio: (x) Médio/Baixo: ( ) Baixo: ( )

Explique: Probabilidade queima de componentes

Probabilidade: Alto: ( ) Médio/Alto: () Médio: ( ) Médio/Baixo: ( ) Baixo: ( x )

Explique: ligação incorreta da alimentação do circuito de controle

3º Etapa: Resposta ao Risco

Estratégias e Ações: necessidade de substituição placa

Impacto Reavaliado: necessidade de

confecção de uma nova placa

Probabilidade Reavaliada: após a

confecção a substituição da placa no

projeto é rápida.

Elaborado por: Felipe Lisboa Data: 07/05/2014

Page 56: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

56

1º Etapa: Identificação do Risco

Denominação do Risco: manuseio da placa zigbee No da Identificação:

05

Descrição do Risco: manuseio incorreto do módulo zigbee podendo danifica-lo

2º Etapa: Avaliação do Risco

Impacto: Alto: ( x ) Médio/Alto: ( ) Médio: ( ) Médio/Baixo: ( ) Baixo: ( )

Explique: ligação incorreta do zigbee pode queimar a placa, não permitindo o uso. E

tempo de espera de chegada da nova placa.

Probabili

dade:

Alto: ( ) Médio/Alto: ( ) Médio: ( ) Médio/Baixo: ( ) Baixo: ( x )

Explique: boa documentação base sobre as conexões

3º Etapa: Resposta ao Risco

Estratégias e Ações: necessidade de substituição

Impacto Reavaliado: reavaliação dos

contatos antes da reinstalação

Probabilidade Reavaliada: substituição

rápida no projeto.

Elaborado por: Felipe Lisboa Data: 07/05/2014

1º Etapa: Identificação do Risco

Denominação do Risco: problemas com o encoder No da Identificação:

06

Descrição do Risco: problemas na implementação e ajustes do encoder para a

Page 57: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

57

leitura da velocidade do carrinho.

2º Etapa: Avaliação do Risco

Impacto: Alto: (x) Médio/Alto: ( ) Médio: ( ) Médio/Baixo: ( ) Baixo: ()

Explique: problema no uso do algoritmo do Park Assist.

Probabilidade: Alto: ( ) Médio/Alto: ( ) Médio: ( ) Médio/Baixo: ( ) Baixo: ( x )

Explique: vários integrantes da equipe já trabalharam com encoders

3º Etapa: Resposta ao Risco

Estratégias e Ações: necessidade de confecção e garantia de funcionamento

Impacto Reavaliado: necessidade de uma

remodelagem do algoritmo, baseando

puramente na leitura dos sensores de

distancia.

Probabilidade Reavaliada: aumento da

complexidade do algoritmo.

Elaborado por: Felipe Lisboa Data: 07/05/2014

Page 58: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

58

1º Etapa: Identificação do Risco

Denominação do Risco: implementação do algoritmo de

Park Assist

No da Identificação:

07

Descrição do Risco: modelagem incorreta do algoritmo de Park Assist

2º Etapa: Avaliação do Risco

Impacto: Alto: (x) Médio/Alto: () Médio: ( ) Médio/Baixo: ( ) Baixo: ( )

Explique: não atendimento da proposta do projeto

Probabilidade: Alto: ( ) Médio/Alto: () Médio: ( ) Médio/Baixo: ( ) Baixo: ( x )

Explique: a metodologia do algoritmo não necessita de análise de muitas variáveis.

3º Etapa: Resposta ao Risco

Estratégias e Ações: Necessidade de ajuste do algoritmo

Impacto Reavaliado: necessidade de

testes para a conformidade do projeto.

Probabilidade Reavaliada: possibilidade

de funcionar de acordo com o

especificado.

Elaborado por: Felipe Lisboa Data: 07/05/2014

Page 59: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

59

1º Etapa: Identificação do Risco

Denominação do Risco: desenvolvimento do sensor de

distância

No da Identificação:

08

Descrição do Risco: não funcionamento do sensor utilizando leds de infravermelho

2º Etapa: Avaliação do Risco

Impacto: Alto: ( ) Médio/Alto: () Médio: (x) Médio/Baixo: ( ) Baixo: ( )

Explique: perda do sensoriamento de distância

Probabilidade: Alto: ( ) Médio/Alto: () Médio: ( ) Médio/Baixo: (x) Baixo: ( )

Explique: já foram realizados alguns testes envolvendo o sensor.

3º Etapa: Resposta ao Risco

Estratégias e Ações: necessidade da substituição do sensor.

Impacto Reavaliado: necessidade de

mudança no controle de sensoriamento.

Probabilidade Reavaliada: substituição

rápida no projeto.

Elaborado por: Bruno Oenning Data: 07/05/2014

7.3 APÊNDICE C – Entregas

Page 60: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

60

Projeto: Carrinho de Controle Remoto com Sistema Park Assist

Entrega 1 – Protótipo do carrinho

Estudo dos sensores

Resposta do motor

Algoritmo inicial de Park Assist

Aplicação da estação base simplificada: controle básico

Entrega 2 – Aprimoramento do carrinho

Ajuste da precisão dos sensores

Aprimoramento do sistema embarcado

Aprimoramento do algoritmo de Park Assist

Aplicação com aprimoramento da interação

Ajuste de documentação dos aprimoramentos

Entrega 3

Manipulação de sensores traseiros e dianteiros para detecção de colisão

Aprimoramento do algoritmo com os novos sensores

Envio do feedbak para estação base

Visualização dos dados da estação base no software

Ajuste na documentação da modelagem

Entrega 4 – Testes e análise do trabalho

Page 61: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

61

Calibração dos sensores para demais casos

Tentativa de abordar alguns casos particulares de parking (manobras adicionais)

Aprimoramento visual do software da estação base

Especificação final e detalhamento da modelagem da aplicação final

Page 62: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

62

8. ANEXOS

8.1 ANEXO A – Biblioteca de Motores e Sensores

Biblioteca de motores e

sensores

Page 63: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

63

1. Descrição das Bibliotecas de Função

Para que pudesse ser feita a modularização do sistema embarcado utilizou-se o conceito de

bibliotecas na plataforma arduino. Dessa forma foi possível separar as implementações dos

códigos da leitura e controle dos sensores e dos motores.

Para o correto funcionamento das bibliotecas os seus respectivos códigos devem estar

localizados na pasta libraries do Arduino. Conforme Figura 34 - Localização do Código.

Figura 34 - Localização do Código

1.1. Biblioteca Sensores

A biblioteca dos sensores é responsável pelo controle dos sensores infravermelho utilizados no

projeto. O controle realizado nos 4 sensores é feito através da ativação do emissor

infravermelho e a leitura do valor recebido no receptor após um determinado tempo. A bibloteca

também é responsável por filtrar a incidência ambiente de luz no espectro infravermelho. Além

disso é feita a amostragem das medições a fim de garantir mais veracidade na leitura.

O resultado da leitura dos sensores é um valor sem unidade que deve ser convertido para

distância através da parametrização realizada por outros algoritimos do processo.

1.1.1. Algoritmo de Leitura

Para cada sensor infravermelho do projeto o código a seguir é executado:

Conforme explicado anteriormente esse processo é repetido conforme a quantidade de

amostras desejadas por medição.

digitalWrite(pinosEmissores[sensorCount],LOW); // desliga o emissor para captar a luz ambiente delay(10); // delay para ler valores ambientIR = analogRead(pinosSensores[sensorCount]); // luz ambiente digitalWrite(pinosEmissores[sensorCount],HIGH); // emite ir delay(10; obstacleIR = analogRead(pinosSensores[sensorCount]); // medição do sensor Ir distance+= ambientIR-obstacleIR; // diferenca entre ambiente e medido

Page 64: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

64

1.1.2. Funções

O algorítimo de leitura é invisível aos outros módulos que farão uso das leituras, portanto

somente algumas funções públicas são acessadas.

1.1.2.1. Função leSensores

Entradas: Nenhuma.

Retorno: Printa na porta Serial a leitura de todos os sensores para debug.

Função: Utilizada para testar todos os sensores do projeto e acessar dados para calibrá-los.

1.1.2.2. Função leSensorFrente

Entradas: Nenhuma

Retorno: Retorna o valor referente a distância do sensor da frente até o obstáculo.

Função: Efetua a medição da distância em valor absoluto do sensor frontal até o obstáculo(se

houver).

1.1.2.3. Função leSensorLadoFrente

Entradas: Nenhuma

Retorno: Retorna o valor referente a distância do sensor lateral frontal até o obstáculo.

Função: Efetua a medição da distância em valor absoluto do sensor lateral frontal até o

obstáculo(se houver).

1.1.2.4. Função leSensorTras

Entradas: Nenhuma

Retorno: Retorna o valor referente a distância do sensor traseiro até o obstáculo.

Função: Efetua a medição da distância em valor absoluto do sensor traseiro até o obstáculo(se

houver).

1.1.2.5. Função leSensorLadoTras

Page 65: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

65

Entradas: Nenhuma

Retorno: Retorna o valor referente a distância do sensor lateral traseiro até o obstáculo.

Função: Efetua a medição da distância em valor absoluto do sensor lateral traseiro até o

obstáculo(se houver).

1.1.3. Pinagem

A pinagem, ou seja, onde os sensores estão ligados fisicamente ao microcontrolador é

configurável através do código da biblioteca. Para o projeto foram utilizados os seguintes pinos

e sensores conforme Tabela 3 - Pinagem Sensores.

Tabela 3 - Pinagem Sensores

Sensor Emissor Receptor

Lateral Frontal 37 A1

Lateral Traseiro 31 A0

Traseiro 35 A5

Frontal 33 A4

1.1.4. Utilização

Para a utilização da biblioteca dos sensores deve-se efetuar no início do código o include da

biblioteca através da chamada #include <Sensor.h> e logo declarar o objeto da classe Sensor

Sensor sensor. A partir daí as funções já podem ser utilizadas normalmente conforme o

exemplo a seguir.

int distanciaMaxima=200;

if(sensor.leSensorLadoFrente()>distanciaMaxima){

//efetua algo

}

Page 66: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

66

1.2. Biblioteca Motores

A biblioteca dos motores é responsável pelo controle dos motores utilizados no projeto. O

controle realizado nos 2 motores, um para mover o automodelo para frente a para trás e outro

para esquerda e direita é feito através de modulação de pulso PWM.

Apesar de ser uma biblioteca destinada aos atuadores(motores) ela também é responsável pelo

sensoriamento de distância percorrida pelo automodelo, de forma a controlar o momento ideal

para cessar o acionamento dos motores.

O resultado das chamadas das funções da biblioteca é a distância real percorrida pelo

automodelo.

1.2.1. Algoritmo de Acionamento do Motor

A função a seguir é utilizada para mover o protótipo para frente. Enquanto a distância desejada

não for atingida o motor é acionado durante um tempo previamente estipulado(delayMs) e então

os motores são parados até a próxima iteração.

A biblioteca pode ser configurada para reverter os motores no final da distância percorrida. Essa

função move o veículo para o sentido oposto por um tempo pré estipulado(relacaoFreio).

O acionamento em nível de hardware é realizado pelas funções privadas da bibloteca

acionando analogicamente por meio de PWM as portas dos motores conforme código de

exemplo:

void Motor::moveFront(int pwm) { analogWrite(tractionMotor[0],0); analogWrite(tractionMotor[1],pwm); }

distanciaDesejada=distancia; distanciaPercorrida=0;//zera odometro temporario while(distanciaPercorrida<distanciaDesejada){ moveFront(potencia); delay(delayMs);//distancia sera dita com o encoder stopAll();

} if(reverter>=1){ //ativa os motores no sentido contrário moveBack(potencia); delay(delayMs/relacaoFreio); stopAll(); }

Page 67: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

67

1.2.2. Encoder

Para a utilização correta do encoder inicialmente a biblioteca informa ao microcontrolador a

porta e a função responsável por receber e tratar a interrupção gerada pelo sensor.

Então a cada interrupção a função acresce a uma variável de distância percorrida o valor

referente a:

O raio da roda utilizada no projeto foi de 2 cm. O valor 8 é referente a quantidade de

furos(interrupções) do encoder.

1.2.3. Funções

O algoritmo de controle dos motores também é transparente aos outros módulos que farão uso

dos atuadores, portanto somente algumas funções públicas são acessadas.

1.2.3.1. Função moveFrente

Entradas: (int,int) Distância em cm, potência 0-255.

Retorno: Retorna a distância real percorrida em centímetros.

Função: Utilizada para mover o automodelo para frente a uma determinada potência por uma

determinada distância em centímetros.

1.2.3.2. Função moveTras

Entradas: : (int,int) Distância em cm, potência 0-255.

Retorno: Retorna a distância real percorrida em centímetros.

Função: Utilizada para mover o automodelo para trás a uma determinada potência por uma

determinada distância em centímetros.

1.2.3.3. Função moveEsquerda

Entradas: (bool,int,int) Frente-true Trás-false, distância em cm, potência 0-255.

Retorno: Retorna a distância real percorrida em centímetros.

Page 68: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

68

Função: : Utilizada para mover o automodelo para a esquerda para frente ou trás a uma

determinada potência por uma determinada distância em centímetros.

1.2.3.4. Função moveDireita

Entradas: (bool,int,int) Frente-true Trás-false, distância em cm, potência 0-255.

Retorno Retorna a distância real percorrida em centímetros.

Função: : Utilizada para mover o automodelo para a direita para frente ou trás a uma

determinada potência por uma determinada distância em centímetros.

1.2.3.5. Função getOdometro

Entradas: Nenhuma

Retorno: Retorna o valor referente a distância total percorrida até o momento.

Função: Utilizada para controle de distância percorrida pelo automodelo.

1.2.4. Pinagem

A pinagem, ou seja, onde os motores e o encoder estão ligados fisicamente ao microcontrolador

é configurável através do código da biblioteca. Para o projeto foram utilizados os seguintes

pinos e sensores conforme Tabela 4 - Pinagem Motores e Tabela 5 - Pinagem Encoder.

Tabela 4 - Pinagem Motores

Motor Pinos Enable

Direção 12,11 8

Tração 10,9 8

Tabela 5 - Pinagem Encoder

Encoder Pino

Encoder Distância 0

Page 69: UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …fabro/IF66J/Relatorios_Finais/2014_1... · Para que o sistema seja ativado, o primeiro passo é acionar o sistema de detecção de

69

1.2.5. Utilização

Para a utilização da biblioteca dos motores deve-se efetuar no início do código o include da

biblioteca através da chamada #include <Motor.h> e logo declarar o objeto da classe Motor

Motor motor. A partir daí as funções já podem ser utilizadas normalmente conforme o exemplo a

seguir. A função move o veículo 5cm(distância) a uma potência 100 (0-255) para frente(true).

boolean frente=true;

int distanciaDesejada=5;

int potencia=100;

int distanciaReal = motor.moveEsquerda(frente,distanciaDesejada,potencia);